diff --git a/src/com/android/settings/DreamSettings.java b/src/com/android/settings/DreamSettings.java
index 3b14fa5..43f3ce6 100644
--- a/src/com/android/settings/DreamSettings.java
+++ b/src/com/android/settings/DreamSettings.java
@@ -303,6 +303,8 @@
 
             ImageView settingsButton = (ImageView) row.findViewById(android.R.id.button2);
             settingsButton.setVisibility(showSettings ? View.VISIBLE : View.INVISIBLE);
+            settingsButton.setAlpha(dreamInfo.isActive ? 1f : 0.7f);
+            settingsButton.setEnabled(dreamInfo.isActive);
             settingsButton.setOnClickListener(new OnClickListener(){
                 @Override
                 public void onClick(View v) {
diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index ce53550..f6c1734 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -374,12 +374,6 @@
 
     private void updateBluetoothState(String[] available, String[] tethered,
             String[] errored) {
-        int bluetoothTethered = 0;
-        for (String s : tethered) {
-            for (String regex : mBluetoothRegexs) {
-                if (s.matches(regex)) bluetoothTethered++;
-            }
-        }
         boolean bluetoothErrored = false;
         for (String s: errored) {
             for (String regex : mBluetoothRegexs) {
@@ -399,6 +393,7 @@
                     mBluetoothPan != null && mBluetoothPan.isTetheringOn()) {
             mBluetoothTether.setChecked(true);
             mBluetoothTether.setEnabled(true);
+            int bluetoothTethered = mBluetoothPan.getConnectedDevices().size();
             if (bluetoothTethered > 1) {
                 String summary = getString(
                         R.string.bluetooth_tethering_devices_connected_subtext, bluetoothTethered);
diff --git a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
old mode 100644
new mode 100755
index 4fd6cee..16476fa
--- a/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
+++ b/src/com/android/settings/bluetooth/BluetoothPermissionActivity.java
@@ -251,6 +251,13 @@
         CachedBluetoothDeviceManager cachedDeviceManager =
             bluetoothManager.getCachedDeviceManager();
         CachedBluetoothDevice cachedDevice = cachedDeviceManager.findDevice(mDevice);
-        cachedDevice.setPhonebookPermissionChoice(permissionChoice);
+        if (cachedDevice != null ) {
+            cachedDevice.setPhonebookPermissionChoice(permissionChoice);
+        } else {
+            cachedDevice = cachedDeviceManager.addDevice(bluetoothManager.getBluetoothAdapter(),
+                                                         bluetoothManager.getProfileManager(),
+                                                         mDevice);
+            cachedDevice.setPhonebookPermissionChoice(permissionChoice);
+        }
     }
 }
