diff --git a/Settings/AndroidManifest.xml b/Settings/AndroidManifest.xml
index f739f5d..f0a882b 100644
--- a/Settings/AndroidManifest.xml
+++ b/Settings/AndroidManifest.xml
@@ -418,14 +418,6 @@
             </intent-filter>
         </activity>
 
-        <receiver android:name=".accessories.BluetoothConnectionsManager" >
-            <intent-filter>
-                <action android:name="android.bluetooth.device.action.ACL_CONNECTED" />
-                <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED" />
-                <action android:name="android.bluetooth.adapter.action.STATE_CHANGED" />
-            </intent-filter>
-        </receiver>
-
         <receiver android:name=".accessories.BluetoothPairingRequest" >
             <intent-filter>
                 <action android:name="android.bluetooth.device.action.PAIRING_REQUEST" />
diff --git a/Settings/src/com/android/tv/settings/MainFragment.java b/Settings/src/com/android/tv/settings/MainFragment.java
index c2ca9c5..3af07d5 100644
--- a/Settings/src/com/android/tv/settings/MainFragment.java
+++ b/Settings/src/com/android/tv/settings/MainFragment.java
@@ -98,6 +98,8 @@
         }
     };
 
+    private final BroadcastReceiver mBtConnectionReceiver = new BluetoothConnectionsManager();
+
     public static MainFragment newInstance() {
         return new MainFragment();
     }
@@ -160,7 +162,12 @@
         final IntentFilter filter =
                 new IntentFilter(BluetoothConnectionsManager.ACTION_BLUETOOTH_UPDATE);
         LocalBroadcastManager.getInstance(getContext()).registerReceiver(mBCMReceiver, filter);
-        mConnectivityListener.start();
+        IntentFilter btChangeFilter = new IntentFilter();
+        btChangeFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
+        btChangeFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
+        btChangeFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED);
+        LocalBroadcastManager.getInstance(getContext()).registerReceiver(mBtConnectionReceiver, btChangeFilter);
+	mConnectivityListener.start();
     }
 
     @Override
@@ -184,6 +191,7 @@
     public void onStop() {
         super.onStop();
         mAuthenticatorHelper.stopListeningToAccountUpdates();
+        LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBtConnectionReceiver);
         LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(mBCMReceiver);
         mConnectivityListener.stop();
     }
