diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2d9cbdc..3afe481 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -995,6 +995,12 @@
     <!-- Sound settings screen, setting option summary text when check box is clear -->
     <string name="sound_effects_enable_summary_off">Play sound when making screen selection</string>
     <!-- Sound settings screen, setting check box label -->
+    <string name="lock_sounds_enable_title">Screen lock sounds</string>
+    <!-- Sound settings screen, setting option summary text when check box is selected -->
+    <string name="lock_sounds_enable_summary_on">Play sounds when locking and unlocking the screen</string>
+    <!-- Sound settings screen, setting option summary text when check box is clear -->
+    <string name="lock_sounds_enable_summary_off">Play sounds when locking and unlocking the screen</string>
+    <!-- Sound settings screen, setting check box label -->
     <string name="haptic_feedback_enable_title">Haptic feedback</string>
     <!-- Sound settings screen, setting option summary text when check box is selected -->
     <string name="haptic_feedback_enable_summary_on">Vibrate when pressing soft keys and on certain UI interactions</string>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 08ce0d6..e4d80e6 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -90,11 +90,20 @@
                 android:defaultValue="true" />
 
         <CheckBoxPreference
+                android:key="lock_sounds"
+                android:title="@string/lock_sounds_enable_title"
+                android:summaryOn="@string/lock_sounds_enable_summary_on"
+                android:summaryOff="@string/lock_sounds_enable_summary_off"
+                android:dependency="silent"
+                android:order="11"
+                android:defaultValue="true" />
+
+        <CheckBoxPreference
                 android:key="haptic_feedback"
                 android:title="@string/haptic_feedback_enable_title"
                 android:summaryOn="@string/haptic_feedback_enable_summary_on"
                 android:summaryOff="@string/haptic_feedback_enable_summary_off"
-                android:order="11"
+                android:order="12"
                 android:defaultValue="true" />
 
         <ListPreference
diff --git a/src/com/android/settings/SoundSettings.java b/src/com/android/settings/SoundSettings.java
index 52947ac..2070519 100644
--- a/src/com/android/settings/SoundSettings.java
+++ b/src/com/android/settings/SoundSettings.java
@@ -55,6 +55,7 @@
     private static final String KEY_EMERGENCY_TONE = "emergency_tone";
     private static final String KEY_SOUND_SETTINGS = "sound_settings";
     private static final String KEY_NOTIFICATION_PULSE = "notification_pulse";
+    private static final String KEY_LOCK_SOUNDS = "lock_sounds";
 
     private CheckBoxPreference mSilent;
 
@@ -70,6 +71,7 @@
     private CheckBoxPreference mSoundEffects;
     private CheckBoxPreference mHapticFeedback;
     private CheckBoxPreference mNotificationPulse;
+    private CheckBoxPreference mLockSounds;
 
     private AudioManager mAudioManager;
 
@@ -114,6 +116,10 @@
         mHapticFeedback.setPersistent(false);
         mHapticFeedback.setChecked(Settings.System.getInt(resolver,
                 Settings.System.HAPTIC_FEEDBACK_ENABLED, 0) != 0);
+        mLockSounds = (CheckBoxPreference) findPreference(KEY_LOCK_SOUNDS);
+        mLockSounds.setPersistent(false);
+        mLockSounds.setChecked(Settings.System.getInt(resolver,
+                Settings.System.LOCKSCREEN_SOUNDS_ENABLED, 1) != 0);
 
         if (TelephonyManager.PHONE_TYPE_CDMA == activePhoneType) {
             ListPreference emergencyTonePreference =
@@ -221,6 +227,10 @@
             Settings.System.putInt(getContentResolver(), Settings.System.HAPTIC_FEEDBACK_ENABLED,
                     mHapticFeedback.isChecked() ? 1 : 0);
 
+        } else if (preference == mLockSounds) {
+            Settings.System.putInt(getContentResolver(), Settings.System.LOCKSCREEN_SOUNDS_ENABLED,
+                    mLockSounds.isChecked() ? 1 : 0);
+
         } else if (preference == mNotificationPulse) {
             boolean value = mNotificationPulse.isChecked();
             Settings.System.putInt(getContentResolver(),
