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);
+        }
     }
 }
