zoneCache.RLock()
        name, ok := zoneCache.toName[index]
        zoneCache.RUnlock()
-       if !ok {
-               if !updated {
-                       zoneCache.update(nil, true)
-                       zoneCache.RLock()
-                       name, ok = zoneCache.toName[index]
-                       zoneCache.RUnlock()
-               }
+       if !ok && !updated {
+               zoneCache.update(nil, true)
+               zoneCache.RLock()
+               name, ok = zoneCache.toName[index]
+               zoneCache.RUnlock()
        }
-       if !ok {
+       if !ok { // last resort
                name = uitoa(uint(index))
        }
        return name
        zoneCache.RLock()
        index, ok := zoneCache.toIndex[name]
        zoneCache.RUnlock()
-       if !ok {
-               if !updated {
-                       zoneCache.update(nil, true)
-                       zoneCache.RLock()
-                       index, ok = zoneCache.toIndex[name]
-                       zoneCache.RUnlock()
-               }
+       if !ok && !updated {
+               zoneCache.update(nil, true)
+               zoneCache.RLock()
+               index, ok = zoneCache.toIndex[name]
+               zoneCache.RUnlock()
        }
-       if !ok {
+       if !ok { // last resort
                index, _, _ = dtoi(name)
        }
        return index