diff --git a/res/values/strings.xml b/res/values/strings.xml
index 49231d1..410fbf0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1033,6 +1033,12 @@
     <string name="dock_not_found_title">Dock not found</string>
     <!-- Dock not found dialog text -->
     <string name="dock_not_found_text">The phone must be docked to configure dock audio</string>
+    <!-- Dock settings screen, dock events SFX setting check box label -->
+    <string name="dock_sounds_enable_title">Dock insertion sound</string>
+    <!-- Dock settings screen, setting option summary text when check box is selected -->
+    <string name="dock_sounds_enable_summary_on">Play sound when inserting or removing phone from dock</string>
+    <!-- Sound settings screen, setting option summary text when check box is clear -->
+    <string name="dock_sounds_enable_summary_off">Don\'t play sound when inserting or removing phone from dock</string>
 
     <!-- Acounts & Sync settings screen setting option name to go into the screen for data sync settings-->
     <string name="sync_settings">Accounts &amp; sync</string>
diff --git a/res/xml/dock_settings.xml b/res/xml/dock_settings.xml
index 43e9fa5..d3d6e43 100644
--- a/res/xml/dock_settings.xml
+++ b/res/xml/dock_settings.xml
@@ -26,4 +26,11 @@
         android:summary="@string/dock_settings_summary"
         android:widgetLayout="@*android:layout/preference_dialog" />
 
-</PreferenceScreen>
\ No newline at end of file
+    <CheckBoxPreference
+        android:key="dock_sounds"
+        android:title="@string/dock_sounds_enable_title"
+        android:summaryOn="@string/dock_sounds_enable_summary_on"
+        android:summaryOff="@string/dock_sounds_enable_summary_off"
+        android:defaultValue="false" />
+
+</PreferenceScreen>
diff --git a/src/com/android/settings/DockSettings.java b/src/com/android/settings/DockSettings.java
index fe9aeb7..795fb3c 100644
--- a/src/com/android/settings/DockSettings.java
+++ b/src/com/android/settings/DockSettings.java
@@ -24,9 +24,11 @@
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.os.Bundle;
+import android.preference.CheckBoxPreference;
 import android.preference.Preference;
 import android.preference.PreferenceActivity;
 import android.preference.PreferenceScreen;
+import android.provider.Settings;
 
 import com.android.settings.bluetooth.DockEventReceiver;
 
@@ -34,7 +36,9 @@
 
     private static final int DIALOG_NOT_DOCKED = 1;
     private static final String KEY_AUDIO_SETTINGS = "dock_audio";
+    private static final String KEY_DOCK_SOUNDS = "dock_sounds";
     private Preference mAudioSettings;
+    private CheckBoxPreference mDockSounds;
     private Intent mDockIntent;
 
     private BroadcastReceiver mReceiver = new BroadcastReceiver() {
@@ -71,10 +75,17 @@
     }
 
     private void initDockSettings() {
+        ContentResolver resolver = getContentResolver();
+
         mAudioSettings = findPreference(KEY_AUDIO_SETTINGS);
         if (mAudioSettings != null) {
             mAudioSettings.setSummary(R.string.dock_audio_summary_none);
         }
+
+        mDockSounds = (CheckBoxPreference) findPreference(KEY_DOCK_SOUNDS);
+        mDockSounds.setPersistent(false);
+        mDockSounds.setChecked(Settings.System.getInt(resolver,
+                Settings.System.DOCK_SOUNDS_ENABLED, 0) != 0);
     }
 
     private void handleDockChange(Intent intent) {
@@ -118,6 +129,9 @@
                 i.setClass(this, DockEventReceiver.class);
                 sendBroadcast(i);
             }
+        } else if (preference == mDockSounds) {
+            Settings.System.putInt(getContentResolver(), Settings.System.DOCK_SOUNDS_ENABLED,
+                    mDockSounds.isChecked() ? 1 : 0);
         }
 
         return true;
