diff --git a/router/java/src/net/i2p/router/transport/GeoIP.java b/router/java/src/net/i2p/router/transport/GeoIP.java
index 185547a319d0e57a4b68292f006886a50262b12e..93ddfe215e6e85cb366cdc2dae103b2cadb1ad75 100644
--- a/router/java/src/net/i2p/router/transport/GeoIP.java
+++ b/router/java/src/net/i2p/router/transport/GeoIP.java
@@ -212,10 +212,10 @@ public class GeoIP {
                     String[] s = buf.toString().split(",");
                     long ip1 = Long.parseLong(s[0]);
                     long ip2 = Long.parseLong(s[1]);
-                    while (search[idx].longValue() < ip1 && idx < search.length) {
+                    while (idx < search.length && search[idx].longValue() < ip1) {
                         idx++;
                     }
-                    while (search[idx].longValue() >= ip1 && search[idx].longValue() <= ip2 && idx < search.length) {
+                    while (idx < search.length && search[idx].longValue() >= ip1 && search[idx].longValue() <= ip2) {
                         rv[idx++] = s[2].toLowerCase();
                     }
                 } catch (IndexOutOfBoundsException ioobe) {