diff --git a/src/net/i2p/android/router/receiver/I2PReceiver.java b/src/net/i2p/android/router/receiver/I2PReceiver.java
index b54fcab6971483773951953c0aecc5e123261ba3..307ff8ee3e56c0eebf3bcc81f272e1103224aae2 100644
--- a/src/net/i2p/android/router/receiver/I2PReceiver.java
+++ b/src/net/i2p/android/router/receiver/I2PReceiver.java
@@ -57,14 +57,21 @@ public class I2PReceiver extends BroadcastReceiver {
 
         if (action.equals(ConnectivityManager.CONNECTIVITY_ACTION) ||
             action.equals(Intent.ACTION_TIME_TICK)) {
-            if (_wasConnected && !isConnected()) {
+            boolean connected = isConnected();
+            if (_wasConnected && !connected) {
                 // notify + 2 timer ticks
                 if (++_unconnectedCount >= 3) {
-                    // connection will call networkStop()
-                    System.err.println("********* Network down, binding to router");
-                    bindRouter();
+                    if (_isBound) {
+                        System.err.println("********* Network down, already bound");
+                        _routerService.networkStop();
+                    } else {
+                        System.err.println("********* Network down, binding to router");
+                        // connection will call networkStop()
+                        bindRouter();
+                    }
                 }
             } else {
+                _wasConnected = connected;
                 _unconnectedCount = 0;
             }
         }