diff --git a/app/src/main/java/org/fdroid/fdroid/net/WifiStateChangeService.java b/app/src/main/java/org/fdroid/fdroid/net/WifiStateChangeService.java
index 1b41743ff..ee67d6781 100644
--- a/app/src/main/java/org/fdroid/fdroid/net/WifiStateChangeService.java
+++ b/app/src/main/java/org/fdroid/fdroid/net/WifiStateChangeService.java
@@ -92,7 +92,7 @@ public class WifiStateChangeService extends IntentService {
                 WifiInfo wifiInfo = null;
 
                 int wifiState = wifiManager.getWifiState();
-
+                int retryCount = 0;
                 while (FDroidApp.ipAddressString == null) {
                     if (isInterrupted()) { // can be canceled by a change via WifiStateChangeReceiver
                         return;
@@ -107,7 +107,7 @@ public class WifiStateChangeService extends IntentService {
                                 try {
                                     FDroidApp.subnetInfo = new SubnetUtils(FDroidApp.ipAddressString, netmask).getInfo();
                                 } catch (IllegalArgumentException e) {
-                                    // catch this mystery error: "java.lang.IllegalArgumentException: Could not parse [null/24]"
+                                    // catch mystery: "java.lang.IllegalArgumentException: Could not parse [null/24]"
                                     e.printStackTrace();
                                 }
                             }
@@ -123,6 +123,11 @@ public class WifiStateChangeService extends IntentService {
                         setIpInfoFromNetworkInterface();
                     }
 
+                    if (retryCount > 120) {
+                        return;
+                    }
+                    retryCount++;
+
                     if (FDroidApp.ipAddressString == null) {
                         Thread.sleep(1000);
                         Utils.debugLog(TAG, "waiting for an IP address...");