diff --git a/src/com/android/settings/vpn/VpnSettings.java b/src/com/android/settings/vpn/VpnSettings.java
index 0587619..960d37e 100644
--- a/src/com/android/settings/vpn/VpnSettings.java
+++ b/src/com/android/settings/vpn/VpnSettings.java
@@ -190,30 +190,38 @@
         // for long-press gesture on a profile preference
         registerForContextMenu(getListView());
 
-        // listen to vpn connectivity event
-        mVpnManager.registerConnectivityReceiver(mConnectivityReceiver);
 
         retrieveVpnListFromStorage();
-        checkVpnConnectionStatusInBackground();
         restoreInstanceState(savedInstanceState);
     }
 
     @Override
+    public void onPause() {
+        // ignore vpn connectivity event
+        mVpnManager.unregisterConnectivityReceiver(mConnectivityReceiver);
+        super.onPause();
+    }
+
+    @Override
     public void onResume() {
         super.onResume();
         if (DEBUG)
             Log.d(TAG, "onResume");
+
+        // listen to vpn connectivity event
+        mVpnManager.registerConnectivityReceiver(mConnectivityReceiver);
+
         if ((mUnlockAction != null) && isKeyStoreUnlocked()) {
             Runnable action = mUnlockAction;
             mUnlockAction = null;
             getActivity().runOnUiThread(action);
         }
+        checkVpnConnectionStatusInBackground();
     }
 
     @Override
     public void onDestroyView() {
         unregisterForContextMenu(getListView());
-        mVpnManager.unregisterConnectivityReceiver(mConnectivityReceiver);
         if ((mShowingDialog != null) && mShowingDialog.isShowing()) {
             mShowingDialog.dismiss();
         }
