diff --git a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
index 79dbbbd..f47fecc 100755
--- a/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
+++ b/src/com/android/settings/bluetooth/BluetoothDiscoverableEnabler.java
@@ -57,7 +57,7 @@
 
     static final int DEFAULT_DISCOVERABLE_TIMEOUT = DISCOVERABLE_TIMEOUT_TWO_MINUTES;
 
-    private final Context mContext;
+    private Context mContext;
     private final Handler mUiHandler;
     private final Preference mDiscoveryPreference;
     // Preference for visibility time out.  Not final as it needs to be set through setter.
@@ -91,9 +91,8 @@
         }
     };
 
-    BluetoothDiscoverableEnabler(Context context, LocalBluetoothAdapter adapter,
+    BluetoothDiscoverableEnabler(LocalBluetoothAdapter adapter,
             Preference discoveryPreference) {
-        mContext = context;
         mUiHandler = new Handler();
         mLocalAdapter = adapter;
         mDiscoveryPreference = discoveryPreference;
@@ -105,11 +104,15 @@
         mVisibilityTimeoutPreference = visibilityPreference;
     }
 
-    public void resume() {
+    public void resume(Context context) {
         if (mLocalAdapter == null) {
             return;
         }
 
+        if (mContext != context) {
+            mContext = context;
+        }
+
         IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_SCAN_MODE_CHANGED);
         mContext.registerReceiver(mReceiver, filter);
         mDiscoveryPreference.setOnPreferenceClickListener(this);
diff --git a/src/com/android/settings/bluetooth/BluetoothSettings.java b/src/com/android/settings/bluetooth/BluetoothSettings.java
index 14c6054..68cf37a 100755
--- a/src/com/android/settings/bluetooth/BluetoothSettings.java
+++ b/src/com/android/settings/bluetooth/BluetoothSettings.java
@@ -156,7 +156,7 @@
         super.onResume();
 
         if (mDiscoverableEnabler != null) {
-            mDiscoverableEnabler.resume();
+            mDiscoverableEnabler.resume(getActivity());
         }
         getActivity().registerReceiver(mReceiver, mIntentFilter);
         if (mLocalAdapter != null) {
@@ -262,9 +262,9 @@
 
                 if (!isRestrictedAndNotPinProtected()) {
                     if (mDiscoverableEnabler == null) {
-                        mDiscoverableEnabler = new BluetoothDiscoverableEnabler(getActivity(),
-                                mLocalAdapter, mMyDevicePreference);
-                        mDiscoverableEnabler.resume();
+                        mDiscoverableEnabler = new BluetoothDiscoverableEnabler(mLocalAdapter,
+                                mMyDevicePreference);
+                        mDiscoverableEnabler.resume(getActivity());
                         LocalBluetoothManager.getInstance(getActivity()).setDiscoverableEnabler(
                                 mDiscoverableEnabler);
                     }
diff --git a/src/com/android/settings/bluetooth/LocalDeviceProfilesSettings.java b/src/com/android/settings/bluetooth/LocalDeviceProfilesSettings.java
index 8d71007..ed27697 100644
--- a/src/com/android/settings/bluetooth/LocalDeviceProfilesSettings.java
+++ b/src/com/android/settings/bluetooth/LocalDeviceProfilesSettings.java
@@ -82,7 +82,7 @@
         super.onResume();
         mManager.setForegroundActivity(getActivity());
         mAdvertisingEnabler.resume();
-        mDiscoverableEnabler.resume();
+        mDiscoverableEnabler.resume(getActivity());
     }
 
     @Override
