diff --git a/res/values/strings.xml b/res/values/strings.xml
index dea1620..db68d71 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5624,6 +5624,9 @@
     <!-- Sound: Title for the option defining the default notification ringtone. [CHAR LIMIT=30] -->
     <string name="notification_ringtone_title">Default notification ringtone</string>
 
+    <!-- Sound: Title for the option defining the default alarm ringtone. [CHAR LIMIT=30] -->
+    <string name="alarm_ringtone_title">Default alarm ringtone</string>
+
     <!-- Sound: Title for the option managing whether or not to vibrate when ringing. [CHAR LIMIT=30] -->
     <string name="vibrate_when_ringing_title">Also vibrate for calls</string>
 
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 2cdebc4..dd03fb0 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -81,6 +81,14 @@
                 android:persistent="false"
                 android:ringtoneType="notification" />
 
+        <!-- Default alarm ringtone -->
+        <com.android.settings.DefaultRingtonePreference
+                android:key="alarm_ringtone"
+                android:title="@string/alarm_ringtone_title"
+                android:dialogTitle="@string/alarm_ringtone_title"
+                android:persistent="false"
+                android:ringtoneType="alarm" />
+
         <PreferenceScreen
                 android:key="cell_broadcast_settings"
                 android:title="@string/cell_broadcast_settings" >
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 1c21329..dae492f 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -73,6 +73,7 @@
     private static final String KEY_NOTIFICATION_VOLUME = "notification_volume";
     private static final String KEY_PHONE_RINGTONE = "ringtone";
     private static final String KEY_NOTIFICATION_RINGTONE = "notification_ringtone";
+    private static final String KEY_ALARM_RINGTONE = "alarm_ringtone";
     private static final String KEY_VIBRATE_WHEN_RINGING = "vibrate_when_ringing";
     private static final String KEY_MASTER_MONO = "master_mono";
     private static final String KEY_WIFI_DISPLAY = "wifi_display";
@@ -103,6 +104,7 @@
 
     private Preference mPhoneRingtonePreference;
     private Preference mNotificationRingtonePreference;
+    private Preference mAlarmRingtonePreference;
     private TwoStatePreference mVibrateWhenRinging;
     private TwoStatePreference mMasterMono;
     private ComponentName mSuppressor;
@@ -324,6 +326,7 @@
         }
         mNotificationRingtonePreference =
                 getPreferenceScreen().findPreference(KEY_NOTIFICATION_RINGTONE);
+        mAlarmRingtonePreference = getPreferenceScreen().findPreference(KEY_ALARM_RINGTONE);
     }
 
     private void lookupRingtoneNames() {
@@ -347,6 +350,13 @@
                     mHandler.obtainMessage(H.UPDATE_NOTIFICATION_RINGTONE, summary).sendToTarget();
                 }
             }
+            if (mAlarmRingtonePreference != null) {
+                final CharSequence summary =
+                        updateRingtoneName(mContext, RingtoneManager.TYPE_ALARM);
+                if (summary != null) {
+                    mHandler.obtainMessage(H.UPDATE_ALARM_RINGTONE, summary).sendToTarget();
+                }
+            }
         }
     };
 
@@ -484,6 +494,7 @@
         private static final int UPDATE_EFFECTS_SUPPRESSOR = 4;
         private static final int UPDATE_RINGER_MODE = 5;
         private static final int UPDATE_MASTER_MONO = 6;
+        private static final int UPDATE_ALARM_RINGTONE = 7;
 
         private H() {
             super(Looper.getMainLooper());
@@ -510,6 +521,9 @@
                 case UPDATE_MASTER_MONO:
                     updateMasterMono();
                     break;
+                case UPDATE_ALARM_RINGTONE:
+                    mAlarmRingtonePreference.setSummary((CharSequence) msg.obj);
+                    break;
             }
         }
     }
