diff --git a/src/com/android/browser/Controller.java b/src/com/android/browser/Controller.java
index adc2677..ff1ad0e 100644
--- a/src/com/android/browser/Controller.java
+++ b/src/com/android/browser/Controller.java
@@ -253,8 +253,6 @@
     }
 
     void start(final Bundle icicle, final Intent intent) {
-        NfcHandler.register(mActivity, this);
-
         boolean noCrashRecovery = intent.getBooleanExtra(NO_CRASH_RECOVERY, false);
         if (icicle != null || noCrashRecovery) {
             doStart(icicle, intent);
@@ -637,6 +635,7 @@
         mNetworkHandler.onPause();
 
         WebView.disablePlatformNotifications();
+        NfcHandler.unregister(mActivity);
     }
 
     void onSaveInstanceState(Bundle outState) {
@@ -670,6 +669,7 @@
         mUi.onResume();
         mNetworkHandler.onResume();
         WebView.enablePlatformNotifications();
+        NfcHandler.register(mActivity, this);
     }
 
     private void releaseWakeLock() {
diff --git a/src/com/android/browser/NfcHandler.java b/src/com/android/browser/NfcHandler.java
index 6147aea..1b34df2 100644
--- a/src/com/android/browser/NfcHandler.java
+++ b/src/com/android/browser/NfcHandler.java
@@ -45,7 +45,18 @@
         if (adapter == null) {
             return;  // NFC not available on this device
         }
-        adapter.setNdefPushMessageCallback(new NfcHandler(controller), activity);
+        NfcHandler handler = null;
+        if (controller != null) {
+            handler = new NfcHandler(controller);
+        }
+
+        adapter.setNdefPushMessageCallback(handler, activity);
+    }
+
+    public static void unregister(Activity activity) {
+        // Passing a null controller causes us to disable
+        // the callback and release the ref to out activity.
+        register(activity, null);
     }
 
     public NfcHandler(Controller controller) {
