diff --git a/java/res/values/config.xml b/java/res/values/config.xml
index 8f6c125..61779d4 100644
--- a/java/res/values/config.xml
+++ b/java/res/values/config.xml
@@ -41,7 +41,7 @@
     <integer name="config_keyboard_grid_width">32</integer>
     <integer name="config_keyboard_grid_height">16</integer>
     <integer name="config_double_space_period_timeout">1100</integer>
-    <!-- This configuration is the index of the array {@link KeyboardSwitcher.KEYBOARD_THEMES}. -->
+    <!-- This configuration is an index of  {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. -->
     <string name="config_default_keyboard_theme_index" translatable="false">2</string>
     <integer name="config_max_more_keys_column">5</integer>
 
diff --git a/java/res/values/donottranslate.xml b/java/res/values/donottranslate.xml
index ca9d7c3..af5ec06 100644
--- a/java/res/values/donottranslate.xml
+++ b/java/res/values/donottranslate.xml
@@ -111,12 +111,24 @@
         <item>@string/layout_gingerbread</item>
         <item>@string/layout_klp</item>
     </string-array>
+    <!-- An element must be an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. -->
     <string-array name="keyboard_layout_modes_values">
         <item>0</item>
         <item>1</item>
         <item>2</item>
     </string-array>
 
+    <!-- For keyboard color scheme option dialog. -->
+    <string-array name="keyboard_color_schemes">
+        <item>@string/keyboard_color_scheme_white</item>
+        <item>@string/keyboard_color_scheme_blue</item>
+    </string-array>
+    <!-- An element must be an index of {@link KeyboardSwitcher#KEYBOARD_THEMES[]}. -->
+    <string-array name="keyboard_color_schemes_values">
+        <item>2</item>
+        <item>0</item>
+    </string-array>
+
     <!-- Subtype locale display name exceptions.
          For each exception, there should be related string resources for display name that may have
          explicit keyboard layout. The string resource name must be "subtype_<locale>" or
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index b159bb5..11b3ea3 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -452,6 +452,13 @@
     <!-- Description for Emoji keyboard subtype [CHAR LIMIT=25] -->
     <string name="subtype_emoji">Emoji</string>
 
+    <!-- Title of the preference settings for switching keyboard color scheme [CHAR LIMIT=35] -->
+    <string name="keyboard_color_scheme">Color scheme</string>
+    <!-- The keyboard color scheme name, White [CHAR LIMIT=16] -->
+    <string name="keyboard_color_scheme_white">White</string>
+    <!-- The keyboard color scheme name, Blue [CHAR LIMIT=16] -->
+    <string name="keyboard_color_scheme_blue">Blue</string>
+
     <!-- Title of the preference settings for custom input styles (language and keyboard layout pairs) [CHAR LIMIT=35]-->
     <string name="custom_input_styles_title">Custom input styles</string>
     <!-- Title of the option menu to add a new style entry in the preference settings [CHAR LIMIT=16] -->
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 6c36b0e..d2b4475 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -158,6 +158,14 @@
                 android:summary="@string/sliding_key_input_preview_summary"
                 android:persistent="true"
                 android:defaultValue="true" />
+            <ListPreference
+                android:key="pref_keyboard_layout_20110916"
+                android:title="@string/keyboard_color_scheme"
+                android:summary="%s"
+                android:persistent="true"
+                android:entryValues="@array/keyboard_color_schemes_values"
+                android:entries="@array/keyboard_color_schemes"
+                android:defaultValue="@string/config_default_keyboard_theme_index" />
             <PreferenceScreen
                 android:fragment="com.android.inputmethod.latin.settings.AdditionalSubtypeSettings"
                 android:key="custom_input_styles"
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
index f893636..a6b293f 100644
--- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
+++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java
@@ -27,6 +27,7 @@
 import android.view.inputmethod.EditorInfo;
 
 import com.android.inputmethod.accessibility.AccessibleKeyboardViewProxy;
+import com.android.inputmethod.compat.InputMethodServiceCompatUtils;
 import com.android.inputmethod.keyboard.KeyboardLayoutSet.KeyboardLayoutSetException;
 import com.android.inputmethod.keyboard.internal.KeyboardState;
 import com.android.inputmethod.latin.InputView;
@@ -75,6 +76,7 @@
     private EmojiPalettesView mEmojiPalettesView;
     private LatinIME mLatinIME;
     private Resources mResources;
+    private boolean mIsHardwareAcceleratedDrawingEnabled;
 
     private KeyboardState mState;
 
@@ -108,7 +110,16 @@
         mPrefs = prefs;
         mSubtypeSwitcher = SubtypeSwitcher.getInstance();
         mState = new KeyboardState(this);
-        setContextThemeWrapper(latinIme, getKeyboardTheme(latinIme, prefs));
+        mIsHardwareAcceleratedDrawingEnabled =
+                InputMethodServiceCompatUtils.enableHardwareAcceleration(mLatinIME);
+    }
+
+    public void updateKeyboardTheme() {
+        final boolean themeUpdated = updateKeyboardThemeAndContextThemeWrapper(
+                mLatinIME, getKeyboardTheme(mLatinIME, mPrefs));
+        if (themeUpdated && mKeyboardView != null) {
+            mLatinIME.setInputView(onCreateInputView(mIsHardwareAcceleratedDrawingEnabled));
+        }
     }
 
     private static KeyboardTheme getKeyboardTheme(final Context context,
@@ -128,12 +139,15 @@
         return KEYBOARD_THEMES[Integer.valueOf(defaultIndex)];
     }
 
-    private void setContextThemeWrapper(final Context context, final KeyboardTheme keyboardTheme) {
+    private boolean updateKeyboardThemeAndContextThemeWrapper(final Context context,
+            final KeyboardTheme keyboardTheme) {
         if (mThemeContext == null || mKeyboardTheme.mThemeId != keyboardTheme.mThemeId) {
             mKeyboardTheme = keyboardTheme;
             mThemeContext = new ContextThemeWrapper(context, keyboardTheme.mStyleId);
             KeyboardLayoutSet.clearKeyboardCache();
+            return true;
         }
+        return false;
     }
 
     public void loadKeyboard(final EditorInfo editorInfo, final SettingsValues settingsValues) {
@@ -365,7 +379,7 @@
             mKeyboardView.closing();
         }
 
-        setContextThemeWrapper(mLatinIME, mKeyboardTheme);
+        updateKeyboardThemeAndContextThemeWrapper(mLatinIME, mKeyboardTheme);
         mCurrentInputView = (InputView)LayoutInflater.from(mThemeContext).inflate(
                 R.layout.input_view, null);
         mMainKeyboardFrame = mCurrentInputView.findViewById(R.id.main_keyboard_frame);
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 745fb43..d33e0c5 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -809,6 +809,7 @@
         super.onStartInputView(editorInfo, restarting);
         mRichImm.clearSubtypeCaches();
         final KeyboardSwitcher switcher = mKeyboardSwitcher;
+        switcher.updateKeyboardTheme();
         final MainKeyboardView mainKeyboardView = switcher.getMainKeyboardView();
         // If we are starting input in a different text field from before, we'll have to reload
         // settings, so currentSettingsValues can't be final.
diff --git a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
index 1b592b5..da1fb73 100644
--- a/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
+++ b/java/src/com/android/inputmethod/latin/settings/DebugSettings.java
@@ -113,9 +113,7 @@
                 mServiceNeedsRestart = true;
             }
         } else if (key.equals(PREF_FORCE_NON_DISTINCT_MULTITOUCH)
-                || key.equals(KeyboardSwitcher.PREF_KEYBOARD_LAYOUT)) {
-            mServiceNeedsRestart = true;
-        } else if (key.equals(PREF_USE_ONLY_PERSONALIZATION_DICTIONARY_FOR_DEBUG)) {
+                || key.equals(PREF_USE_ONLY_PERSONALIZATION_DICTIONARY_FOR_DEBUG)) {
             mServiceNeedsRestart = true;
         }
     }
