diff --git a/src/com/android/browser/NetworkStateHandler.java b/src/com/android/browser/NetworkStateHandler.java
index 74a355a..9faa996 100644
--- a/src/com/android/browser/NetworkStateHandler.java
+++ b/src/com/android/browser/NetworkStateHandler.java
@@ -62,19 +62,22 @@
             public void onReceive(Context context, Intent intent) {
                 if (intent.getAction().equals(
                         ConnectivityManager.CONNECTIVITY_ACTION)) {
+                    final ConnectivityManager cm = (ConnectivityManager)
+                            context.getSystemService(Context.CONNECTIVITY_SERVICE);
+                    NetworkInfo info = cm.getActiveNetworkInfo();
 
-                    NetworkInfo info = intent.getParcelableExtra(
-                            ConnectivityManager.EXTRA_NETWORK_INFO);
+                    if (info == null) {
+                        onNetworkToggle(false);
+                        return;
+                    }
+
                     String typeName = info.getTypeName();
                     String subtypeName = info.getSubtypeName();
                     sendNetworkType(typeName.toLowerCase(),
                             (subtypeName != null ? subtypeName.toLowerCase() : ""));
                     BrowserSettings.getInstance().updateConnectionType();
 
-                    boolean noConnection = intent.getBooleanExtra(
-                            ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
-
-                    onNetworkToggle(!noConnection);
+                    onNetworkToggle(info.isConnectedOrConnecting());
                 }
             }
         };
@@ -105,6 +108,10 @@
         if (w != null) {
             w.setNetworkAvailable(up);
         }
+        Tab t = mController.getCurrentTab();
+        if (t != null) {
+            t.setNetworkAvailable(up);
+        }
     }
 
     boolean isNetworkUp() {
diff --git a/src/com/android/browser/Tab.java b/src/com/android/browser/Tab.java
index 107ab07..c4260da 100644
--- a/src/com/android/browser/Tab.java
+++ b/src/com/android/browser/Tab.java
@@ -357,6 +357,12 @@
         }
     }
 
+    public void setNetworkAvailable(boolean networkUp) {
+        if (networkUp && mReceivedError && (mMainView != null)) {
+            mMainView.reload();
+        }
+    }
+
     // -------------------------------------------------------------------------
     // WebViewClient implementation for the main WebView
     // -------------------------------------------------------------------------
