diff --git a/router/java/src/net/i2p/router/util/RandomIterator.java b/router/java/src/net/i2p/router/util/RandomIterator.java
index e6e7df59e852dbc646d82d2be760ff504ce467e2..ef31d4c2b8d2d49cb754fb3d13d15de7b38da007 100644
--- a/router/java/src/net/i2p/router/util/RandomIterator.java
+++ b/router/java/src/net/i2p/router/util/RandomIterator.java
@@ -137,9 +137,9 @@ public class RandomIterator<E> implements Iterator<E> {
         if (hasNext()) {
             if (index == lower)
                 // workaround for Android ICS bug - see below
-                lower = isAndroid ? nextClearBit(lower) : served.nextClearBit(lower);
+                lower = isAndroid ? nextClearBit(index) : served.nextClearBit(index);
             else if (index == upper)
-                upper = previousClearBit(upper - 1);
+                upper = previousClearBit(index - 1);
         }
         return list.get(index);
     }