diff --git a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
index c31f49d..46391d3 100644
--- a/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
+++ b/src/com/android/settings/bluetooth/CachedBluetoothDevice.java
@@ -140,7 +140,7 @@
         if (isConnected()) {
             askDisconnect();
         } else if (bondState == BluetoothDevice.BOND_BONDED) {
-            connect();
+            connect(true);
         } else if (bondState == BluetoothDevice.BOND_NONE) {
             pair();
         }
@@ -264,18 +264,18 @@
         super.finalize();
     }
 
-    public void connect() {
+    public void connect(boolean connectAllProfiles) {
         if (!ensurePaired()) return;
 
         mConnectAttempted = SystemClock.elapsedRealtime();
 
-        connectWithoutResettingTimer(true);
+        connectWithoutResettingTimer(connectAllProfiles);
     }
 
     /*package*/ void onBondingDockConnect() {
         // Attempt to connect if UUIDs are available. Otherwise,
         // we will connect when the ACTION_UUID intent arrives.
-        connect();
+        connect(false);
     }
 
     private void connectWithoutResettingTimer(boolean connectAllProfiles) {
@@ -646,7 +646,7 @@
             if (mDevice.isBluetoothDock()) {
                 onBondingDockConnect();
             } else if (mConnectAfterPairing) {
-                connect();
+                connect(false);
             }
             mConnectAfterPairing = false;
         }
diff --git a/src/com/android/settings/bluetooth/DockService.java b/src/com/android/settings/bluetooth/DockService.java
index d165f9b..8104652 100644
--- a/src/com/android/settings/bluetooth/DockService.java
+++ b/src/com/android/settings/bluetooth/DockService.java
@@ -663,7 +663,7 @@
             }
 
             if (profileManager.getPreferred(device) == auto) {
-                cachedDevice.connect();
+                cachedDevice.connect(false);
                 break;
             }
         }
@@ -735,7 +735,7 @@
 
         if (callConnect) {
             if (DEBUG) Log.d(TAG, "applyBtSettings - Connecting");
-            cachedDevice.connect();
+            cachedDevice.connect(false);
         }
     }
 
