diff --git a/java/Android.mk b/java/Android.mk
index 60c321ab2d738fb0859c2efcd6d3808ce7fe6ae2..43168e5635c29d5d5ba5b28c5501763211ab8c35 100644
--- a/java/Android.mk
+++ b/java/Android.mk
@@ -12,6 +12,7 @@ LOCAL_CERTIFICATE := shared
 LOCAL_JNI_SHARED_LIBRARIES := libjni_latinime
 
 LOCAL_STATIC_JAVA_LIBRARIES := android-common
+LOCAL_STATIC_JAVA_LIBRARIES += inputmethod-common
 
 # Do not compress dictionary files to mmap dict data runtime
 LOCAL_AAPT_FLAGS := -0 .dict
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index f7d43f24adf464cb4799a49931e41c9527103c7c..739f72f366792bb882dbabe73e1a43e4252d656f 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -304,6 +304,9 @@
     <!-- Title for input language selection screen -->
     <string name="language_selection_title">Input languages</string>
 
+    <!-- Preference for input language selection -->
+    <string name="select_language">Select input languages</string>
+
     <!-- Add to dictionary hint -->
     <string name="hint_add_to_dictionary">\u2190 Touch again to save</string>
 
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 1851973280baea8422e43d02c771f2927a89ab67..9b819972320197128405a61746333e92fd192e5a 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -21,6 +21,7 @@ import com.android.inputmethod.compat.InputMethodManagerCompatWrapper;
 import com.android.inputmethod.compat.InputMethodServiceCompatWrapper;
 import com.android.inputmethod.deprecated.VoiceProxy;
 import com.android.inputmethod.compat.VibratorCompatWrapper;
+import com.android.inputmethodcommon.InputMethodSettingsFragment;
 
 import android.app.Activity;
 import android.app.AlertDialog;
@@ -49,7 +50,7 @@ import android.widget.TextView;
 import java.util.Arrays;
 import java.util.Locale;
 
-public class Settings extends PreferenceActivity
+public class Settings extends InputMethodSettingsFragment
         implements SharedPreferences.OnSharedPreferenceChangeListener,
         DialogInterface.OnDismissListener, OnPreferenceClickListener {
     private static final String TAG = "Settings";
@@ -331,6 +332,8 @@ public class Settings extends PreferenceActivity
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
+        setInputMethodSettingsCategoryTitle(R.string.language_selection_title);
+        setSubtypeEnablerTitle(R.string.select_language);
         final Resources res = getResources();
         final Context context = getActivityInternal();
 
diff --git a/java/src/com/android/inputmethod/latin/SettingsActivity.java b/java/src/com/android/inputmethod/latin/SettingsActivity.java
index 2da171a63c19de7be775aaaa08d09868cf483e17..7a6c2efd046bf13803b7ae4d826a9128349f338b 100644
--- a/java/src/com/android/inputmethod/latin/SettingsActivity.java
+++ b/java/src/com/android/inputmethod/latin/SettingsActivity.java
@@ -16,5 +16,15 @@
 
 package com.android.inputmethod.latin;
 
-public class SettingsActivity extends Settings {
+import android.content.Intent;
+import android.preference.PreferenceActivity;
+
+public class SettingsActivity extends PreferenceActivity {
+    @Override
+    public Intent getIntent() {
+        final Intent modIntent = new Intent(super.getIntent());
+        modIntent.putExtra(EXTRA_SHOW_FRAGMENT, Settings.class.getName());
+        modIntent.putExtra(EXTRA_NO_HEADERS, true);
+        return modIntent;
+    }
 }