diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4ce4fb9..69ec091 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -347,7 +347,7 @@
         </activity>
 
         <activity android:name=".inputmethod.InputMethodAndSubtypeEnablerActivity"
-                android:label="@string/input_methods_and_subtype_enabler_title"
+                android:label=""
                 android:clearTaskOnLaunch="true">
             <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
diff --git a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
index 43d54a2..b5353d6 100644
--- a/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
+++ b/src/com/android/settings/inputmethod/InputMethodAndSubtypeEnabler.java
@@ -22,6 +22,7 @@
 import android.app.AlertDialog;
 import android.content.Context;
 import android.content.DialogInterface;
+import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.content.res.Configuration;
 import android.os.Bundle;
@@ -56,19 +57,29 @@
         Configuration config = getResources().getConfiguration();
         mHaveHardKeyboard = (config.keyboard == Configuration.KEYBOARD_QWERTY);
 
+        final Bundle arguments = getArguments();
         // Input method id should be available from an Intent when this preference is launched as a
         // single Activity (see InputMethodAndSubtypeEnablerActivity). It should be available
         // from a preference argument when the preference is launched as a part of the other
         // Activity (like a right pane of 2-pane Settings app)
         mInputMethodId = getActivity().getIntent().getStringExtra(
                 android.provider.Settings.EXTRA_INPUT_METHOD_ID);
-        if (mInputMethodId == null && (getArguments() != null)) {
+        if (mInputMethodId == null && (arguments != null)) {
             final String inputMethodId =
-                    getArguments().getString(android.provider.Settings.EXTRA_INPUT_METHOD_ID);
+                    arguments.getString(android.provider.Settings.EXTRA_INPUT_METHOD_ID);
             if (inputMethodId != null) {
                 mInputMethodId = inputMethodId;
             }
         }
+        CharSequence title = getActivity().getIntent().getStringExtra(
+                Intent.EXTRA_TITLE);
+        if (title == null && (arguments != null)) {
+            title = arguments.getString(Intent.EXTRA_TITLE);
+        }
+
+        if (!TextUtils.isEmpty(title)) {
+            getActivity().setTitle(title);
+        }
 
         onCreateIMM();
         setPreferenceScreen(createPreferenceHierarchy());
