diff --git a/src/com/android/settings/wifi/WifiNoInternetDialog.java b/src/com/android/settings/wifi/WifiNoInternetDialog.java
index e33cab6..eb42097 100644
--- a/src/com/android/settings/wifi/WifiNoInternetDialog.java
+++ b/src/com/android/settings/wifi/WifiNoInternetDialog.java
@@ -52,6 +52,7 @@
     private ConnectivityManager.NetworkCallback mNetworkCallback;
     private CheckBox mAlwaysAllow;
     private String mAction;
+    private boolean mButtonClicked;
 
     private boolean isKnownAction(Intent intent) {
         return intent.getAction().equals(ACTION_PROMPT_UNVALIDATED)
@@ -169,14 +170,31 @@
             mCM.unregisterNetworkCallback(mNetworkCallback);
             mNetworkCallback = null;
         }
+
+        // If the user exits the no Internet or partial connectivity dialog without taking any
+        // action, disconnect the network, because once the dialog has been dismissed there is no
+        // way to use the network.
+        //
+        // Unfortunately, AlertDialog does not seem to offer any good way to get an onCancel or
+        // onDismiss callback. So we implement this ourselves.
+        if (isFinishing() && !mButtonClicked) {
+            if (ACTION_PROMPT_PARTIAL_CONNECTIVITY.equals(mAction)) {
+                mCM.setAcceptPartialConnectivity(mNetwork, false /* accept */, false /* always */);
+            } else if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
+                mCM.setAcceptUnvalidated(mNetwork, false /* accept */, false /* always */);
+            }
+        }
         super.onDestroy();
     }
 
+    @Override
     public void onClick(DialogInterface dialog, int which) {
         if (which != BUTTON_NEGATIVE && which != BUTTON_POSITIVE) return;
         final boolean always = mAlwaysAllow.isChecked();
         final String what, action;
 
+        mButtonClicked = true;
+
         if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
             what = "NO_INTERNET";
             final boolean accept = (which == BUTTON_POSITIVE);
