diff --git a/res/values/strings.xml b/res/values/strings.xml
index 29ba1d3..9944723 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2491,7 +2491,7 @@
     <!-- On Language & keyboard settings screen, heading. Inside the "Language & keyboard settings" screen, this is the header for settings that relate to language (select the system language, user dictionary for the language). -->
     <string name="language_settings_category">Language settings</string>
     <!-- On Language & keyboard settings screen, heading. Inside the "Language & keyboard settings" screen, this is the header for settings that relate to keyboard (enable/disable each keyboard, settings for each keyboard). -->
-    <string name="keyboard_settings_category">Keyboard settings</string>
+    <string name="keyboard_settings_category">Keyboard &amp; input methods</string>
     <!-- On Text & language settings screen, setting option name. title of the setting to take the user to a screen to select the locale. -->
     <string name="phone_language">Select language</string>
     <!-- On Text & language settings screen, setting option name. summary of the setting to take the user to a screen to select the locale. -->
@@ -2522,17 +2522,17 @@
     <xliff:g id="ime_application_name">%1$s</xliff:g>.
     Use this input method?</string>
     <!-- On Language & input settings screen, heading. Inside the "Language & input settings" screen, this is the header for settings that relate to mouse and trackpad devices. [CHAR LIMIT=40] -->
-    <string name="pointer_settings_category">Mouse and trackpad settings</string>
+    <string name="pointer_settings_category">Mouse/trackpad</string>
     <!-- On Language & input settings screen, setting summary.  Setting for mouse pointer speed. [CHAR LIMIT=35] -->
     <string name="pointer_speed">Pointer speed</string>
 
     <!-- User dictionary settings --><skip />
     <!-- User dictionary settings, The titlebar text of the User dictionary settings screen. -->
     <string name="user_dict_settings_titlebar">User dictionary</string>
-    <!-- User dictionary settings, The title of the list item to go into the User dictionary settings screen when there is only one user dictionary. -->
-    <string name="user_dict_single_settings_title">User dictionary</string>
-    <!-- User dictionary settings, The title of the list item to go into the User dictionary list when there are several user dictionaries. -->
-    <string name="user_dict_multiple_settings_title">Manage user dictionaries</string>
+    <!-- User dictionary settings, The title of the list item to go into the User dictionary settings screen when there is only one user dictionary. [CHAR LIMIT=35] -->
+    <string name="user_dict_single_settings_title">Personal dictionary</string>
+    <!-- User dictionary settings, The title of the list item to go into the User dictionary list when there are several user dictionaries. [CHAR LIMIT=35] -->
+    <string name="user_dict_multiple_settings_title">Personal dictionaries</string>
     <!-- User dictionary settings.  The summary of the listem item to go into the User dictionary settings screen. -->
     <string name="user_dict_settings_summary">""</string>
     <!-- User dictionary settings. The title of the menu item to add a new word to the user dictionary. -->
@@ -2590,8 +2590,8 @@
     <string name="input_methods_settings_title">Text input</string>
     <!-- Setting name for Input Method chooser -->
     <string name="input_method">Input method</string>
-    <!-- Title for selecting the current input method [CHAR LIMIT=35] -->
-    <string name="current_input_method">Current input method</string>
+    <!-- Title for the option to press to choose the current input method [CHAR LIMIT=35] -->
+    <string name="current_input_method">Default</string>
     <!-- Title for setting the visibility of input method selector [CHAR LIMIT=35] -->
     <string name="input_method_selector">Input method selector</string>
     <!-- An option to always show input method selector automatically when needed [CHAR LIMIT=25] -->
@@ -2932,22 +2932,20 @@
     <!-- Title of keyboard settings list item within voice input/output settings -->
     <string name="keyboard_settings_title">Android keyboard</string>
     <!-- Title for the 'voice input' category of voice input/output settings -->
-    <string name="voice_input_category">Voice input</string>
-    <!-- Title for the 'voice output' category of voice input/output settings -->
-    <string name="voice_output_category">Voice output</string>
+    <string name="voice_category">Voice</string>
     <!-- Title for the voice recognizer setting in voice input/output settings -->
     <string name="recognizer_title">Voice recognizer</string>
     <!-- Title for the link to settings for the chosen voice recognizer in voice input/output settings -->
-    <string name="recognizer_settings_title">Voice recognizer settings</string>
+    <string name="recognizer_settings_title">Voice input for search</string>
     <!-- Summary for the link to settings for the chosen voice recognizer in voice input/output settings.
          Would say something like, e.g., "Settings for 'Google'". -->
     <string name="recognizer_settings_summary">Settings for \'<xliff:g id="recognizer_name">%s</xliff:g>\'</string>
 
     <!-- Text-To-Speech (TTS) settings --><skip />
-    <!-- Title of setting on main settings screen.  This item will take the user to the screen to tweak settings related to the text-to-speech functionality -->
+    <!-- Name of the TTS package as listed by the package manager. -->
     <string name="tts_settings">Text-to-speech settings</string>
-    <!-- Main TTS Settings screen title -->
-    <string name="tts_settings_title">Text-to-speech settings</string>
+    <!-- TTS option item name in the main settings screen -->
+    <string name="tts_settings_title">Text-to-speech output</string>
     <!-- On main TTS Settings screen, title for toggle used to force use of default TTS settings -->
     <string name="use_default_tts_settings_title">Always use my settings</string>
     <!-- On main TTS Settings screen, summary for toggle used to force use of default TTS settings -->
diff --git a/res/xml/language_settings.xml b/res/xml/language_settings.xml
index 1598939..fbfb3d7 100644
--- a/res/xml/language_settings.xml
+++ b/res/xml/language_settings.xml
@@ -18,23 +18,18 @@
         xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
         android:title="@string/language_keyboard_settings_title">
 
-    <PreferenceCategory android:key="language_settings_category"
-            android:title="@string/language_settings_category">
+    <PreferenceScreen
+            android:fragment="com.android.settings.LocalePicker"
+            android:key="phone_language"
+            android:title="@string/phone_language"/>
 
-        <PreferenceScreen
-                 android:fragment="com.android.settings.LocalePicker"
-                 android:key="phone_language"
-                 android:title="@string/phone_language"/>
+    <com.android.settings.inputmethod.SpellCheckersPreference
+            android:key="spellcheckers_settings"
+            android:title="@string/spellcheckers_settings_title"/>
 
-        <!-- User dictionary preference title and fragment will be set programmatically. -->
-        <PreferenceScreen
-                 android:key="key_user_dictionary_settings" />
-
-        <com.android.settings.inputmethod.SpellCheckersPreference
-                 android:key="spellcheckers_settings"
-                 android:title="@string/spellcheckers_settings_title"/>
-
-    </PreferenceCategory>
+    <!-- User dictionary preference title and fragment will be set programmatically. -->
+    <PreferenceScreen
+            android:key="key_user_dictionary_settings" />
 
     <PreferenceCategory android:key="keyboard_settings_category"
             android:title="@string/keyboard_settings_category">
@@ -65,8 +60,8 @@
                 android:persistent="false"/>
     </PreferenceCategory>
 
-    <PreferenceCategory android:key="voice_input_category"
-            android:title="@string/voice_input_category" >
+    <PreferenceCategory android:key="voice_category"
+            android:title="@string/voice_category" >
 
         <!-- entries, entryValues, and defaultValue will be populated programmatically. -->
         <ListPreference
@@ -77,10 +72,6 @@
         <!-- An intent for this preference will be populated programmatically. -->
         <PreferenceScreen android:key="recognizer_settings"
                 android:title="@string/recognizer_settings_title" />
-    </PreferenceCategory>
-
-    <PreferenceCategory android:key="voice_output_category"
-            android:title="@string/voice_output_category" >
 
         <PreferenceScreen android:key="tts_settings"
                 android:fragment="com.android.settings.tts.TextToSpeechSettings"
diff --git a/src/com/android/settings/VoiceInputOutputSettings.java b/src/com/android/settings/VoiceInputOutputSettings.java
index 1e86801..9e3add4 100644
--- a/src/com/android/settings/VoiceInputOutputSettings.java
+++ b/src/com/android/settings/VoiceInputOutputSettings.java
@@ -51,12 +51,12 @@
 
     private static final String TAG = "VoiceInputOutputSettings";
 
-    private static final String KEY_VOICE_INPUT_CATEGORY = "voice_input_category";
+    private static final String KEY_VOICE_CATEGORY = "voice_category";
     private static final String KEY_RECOGNIZER = "recognizer";
     private static final String KEY_RECOGNIZER_SETTINGS = "recognizer_settings";
     
     private PreferenceGroup mParent;
-    private PreferenceCategory mVoiceInputCategory;
+    private PreferenceCategory mVoiceCategory;
     private ListPreference mRecognizerPref;
     private PreferenceScreen mSettingsPref;
     private SettingsPreferenceFragment mFragment;
@@ -70,11 +70,11 @@
     public void onCreate() {
 
         mParent = (PreferenceGroup) mFragment.getPreferenceScreen();
-        mVoiceInputCategory = (PreferenceCategory) mParent.findPreference(KEY_VOICE_INPUT_CATEGORY);
-        mRecognizerPref = (ListPreference) mVoiceInputCategory.findPreference(KEY_RECOGNIZER);
+        mVoiceCategory = (PreferenceCategory) mParent.findPreference(KEY_VOICE_CATEGORY);
+        mRecognizerPref = (ListPreference) mVoiceCategory.findPreference(KEY_RECOGNIZER);
         mRecognizerPref.setOnPreferenceChangeListener(this);
         mSettingsPref = (PreferenceScreen)
-                mVoiceInputCategory.findPreference(KEY_RECOGNIZER_SETTINGS);
+                mVoiceCategory.findPreference(KEY_RECOGNIZER_SETTINGS);
 
         mAvailableRecognizersMap = new HashMap<String, ResolveInfo>();
 
@@ -89,11 +89,11 @@
         
         if (numAvailable == 0) {
             // No recognizer available - remove all related preferences.
-            mFragment.getPreferenceScreen().removePreference(mVoiceInputCategory);
+            mFragment.getPreferenceScreen().removePreference(mVoiceCategory);
         } else if (numAvailable == 1) {
             // Only one recognizer available, so don't show the list of choices, but do
             // set up the link to settings for the available recognizer.
-            mVoiceInputCategory.removePreference(mRecognizerPref);
+            mVoiceCategory.removePreference(mRecognizerPref);
 
             // But first set up the available recognizers map with just the one recognizer.
             ResolveInfo resolveInfo = availableRecognitionServices.get(0);
@@ -193,7 +193,7 @@
             // No settings preference available - hide the preference.
             Log.w(TAG, "no recognizer settings available for " + si.packageName);
             mSettingsPref.setIntent(null);
-            mVoiceInputCategory.removePreference(mSettingsPref);
+            mVoiceCategory.removePreference(mSettingsPref);
         } else {
             Intent i = new Intent(Intent.ACTION_MAIN);
             i.setComponent(new ComponentName(si.packageName, settingsActivity));
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
index 45621e5..5c85374 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java
@@ -139,8 +139,7 @@
         if (null == localeList) {
             // The locale list is null if and only if the user dictionary service is
             // not present or disabled. In this case we need to remove the preference.
-            ((PreferenceGroup)findPreference("language_settings_category")).removePreference(
-                    userDictionaryPreference);
+            getPreferenceScreen().removePreference(userDictionaryPreference);
         } else if (localeList.size() <= 1) {
             userDictionaryPreference.setTitle(R.string.user_dict_single_settings_title);
             userDictionaryPreference.setFragment(UserDictionarySettings.class.getName());
