diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java
index c61e573..ac758dc 100644
--- a/src/com/android/settings/TetherSettings.java
+++ b/src/com/android/settings/TetherSettings.java
@@ -172,7 +172,7 @@
                 com.android.internal.R.string.config_ethernet_iface_regex);
 
         final boolean usbAvailable = mUsbRegexs.length != 0;
-        final boolean bluetoothAvailable = mBluetoothRegexs.length != 0;
+        final boolean bluetoothAvailable = adapter != null && mBluetoothRegexs.length != 0;
         final boolean ethernetAvailable = !TextUtils.isEmpty(mEthernetRegex);
 
         if (!usbAvailable || Utils.isMonkeyRunning()) {
@@ -326,7 +326,8 @@
         if (intent != null) mTetherChangeReceiver.onReceive(activity, intent);
 
         mEthernetListener = new EthernetListener();
-        mEm.addListener(mEthernetListener);
+        if (mEm != null)
+            mEm.addListener(mEthernetListener);
 
         updateState();
     }
@@ -340,7 +341,8 @@
         }
         getActivity().unregisterReceiver(mTetherChangeReceiver);
         mTm.unregisterTetheringEventCallback(mTetheringEventCallback);
-        mEm.removeListener(mEthernetListener);
+        if (mEm != null)
+            mEm.removeListener(mEthernetListener);
         mTetherChangeReceiver = null;
         mStartTetheringCallback = null;
         mTetheringEventCallback = null;
@@ -438,7 +440,7 @@
         if (isTethered) {
             mEthernetTether.setEnabled(!mDataSaverEnabled);
             mEthernetTether.setChecked(true);
-        } else if (isAvailable || mEm.isAvailable()) {
+        } else if (isAvailable || (mEm != null && mEm.isAvailable())) {
             mEthernetTether.setEnabled(!mDataSaverEnabled);
             mEthernetTether.setChecked(false);
         } else {
diff --git a/src/com/android/settings/network/TetherEnabler.java b/src/com/android/settings/network/TetherEnabler.java
index c4b36d3..87832d9 100644
--- a/src/com/android/settings/network/TetherEnabler.java
+++ b/src/com/android/settings/network/TetherEnabler.java
@@ -212,7 +212,8 @@
         // Only check bluetooth tethering state if not stopped by user already.
         if (!mBluetoothTetheringStoppedByUser) {
             final BluetoothPan pan = mBluetoothPan.get();
-            if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON
+            if (mBluetoothAdapter != null &&
+                mBluetoothAdapter.getState() == BluetoothAdapter.STATE_ON
                     && pan != null && pan.isTetheringOn()) {
                 tetherState |= TETHERING_BLUETOOTH_ON;
             }
@@ -279,7 +280,7 @@
 
         if (choice == TETHERING_BLUETOOTH) {
             mBluetoothTetheringStoppedByUser = false;
-            if (isBluetoothTethering(state)) {
+            if (mBluetoothAdapter == null || isBluetoothTethering(state)) {
                 return;
             } else if (mBluetoothAdapter.getState() == BluetoothAdapter.STATE_OFF) {
                 if (DEBUG) {
