diff --git a/res/drawable-hdpi/btn_keyboard_key_normal.9.png b/res/drawable-hdpi/btn_keyboard_key_normal.9.png
index 5bd9f0ed606bca597432f957ad89ac87e5d1235e..42c7c146d67525b6b97af6b4edb42e75ad2851da 100644
Binary files a/res/drawable-hdpi/btn_keyboard_key_normal.9.png and b/res/drawable-hdpi/btn_keyboard_key_normal.9.png differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png b/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png
index aa4a4a368c9d8b5598ccf4b44a6ab35702acbc22..01e2506b0fa38481381570397249b2af89bcd9c8 100644
Binary files a/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png and b/res/drawable-hdpi/btn_keyboard_key_normal_off.9.png differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png b/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png
index 27556f8451e7959168f6994ffe96f51267016a3f..83c6eb3fc1a8c7264b5554016f1a30a25dcf3b1a 100644
Binary files a/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png and b/res/drawable-hdpi/btn_keyboard_key_normal_on.9.png differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed.9.png
index e43504ce0680e2f5546891ad33a8842ae61fddd2..e047eaff156e610e1a898175fb966b73861ea1a4 100644
Binary files a/res/drawable-hdpi/btn_keyboard_key_pressed.9.png and b/res/drawable-hdpi/btn_keyboard_key_pressed.9.png differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png
index e55ab1ead14f788b0cbf1d0232f866c65c9006b1..218a2d29ee0ce205540e727471d76629375ba275 100644
Binary files a/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png and b/res/drawable-hdpi/btn_keyboard_key_pressed_off.9.png differ
diff --git a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png b/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png
index 02010b443e142ea497760600746e4650f199a660..afe49512e9ec9756f6126b852ea40db9178dea3a 100644
Binary files a/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png and b/res/drawable-hdpi/btn_keyboard_key_pressed_on.9.png differ
diff --git a/res/drawable-hdpi/sym_keyboard_feedback_123_mic_.png b/res/drawable-hdpi/sym_keyboard_feedback_123_mic.png
similarity index 100%
rename from res/drawable-hdpi/sym_keyboard_feedback_123_mic_.png
rename to res/drawable-hdpi/sym_keyboard_feedback_123_mic.png
diff --git a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png
index 8f9b493acaf521eb0bc2d234d6d3faa1f8a803bf..c7638bff116129cce866b02aa74827726ae2f0fb 100644
Binary files a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png and b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_left.png differ
diff --git a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png
index a2fbd0fd0f8f7261066ba80dd2d0c0341a7d14df..7acb07c86fb4704019cb0a72cca130537fd45fb0 100644
Binary files a/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png and b/res/drawable-hdpi/sym_keyboard_feedback_language_arrows_right.png differ
diff --git a/res/drawable-mdpi/sym_keyboard_feedback_123_mic_.png b/res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
similarity index 100%
rename from res/drawable-mdpi/sym_keyboard_feedback_123_mic_.png
rename to res/drawable-mdpi/sym_keyboard_feedback_123_mic.png
diff --git a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png
index 8ab87d05ec613fa9602bac636f4d7685df65a7ee..e3f80fada2ebfeb1389aa92d12b5575f1db2c5f3 100644
Binary files a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png and b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_left.png differ
diff --git a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png
index 92d19b5b130e86fc76b114854d84f28da3d8c804..3cb0d991350f39124c8421e4477f8a5df21dd62a 100644
Binary files a/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png and b/res/drawable-mdpi/sym_keyboard_feedback_language_arrows_right.png differ
diff --git a/src/com/android/inputmethod/latin/LatinKeyboard.java b/src/com/android/inputmethod/latin/LatinKeyboard.java
index 92f93b39c44278675e9840e9319e9050bdd54fb0..9821a1610be0527f5629e576e40b9d585755e604 100644
--- a/src/com/android/inputmethod/latin/LatinKeyboard.java
+++ b/src/com/android/inputmethod/latin/LatinKeyboard.java
@@ -56,6 +56,7 @@ public class LatinKeyboard extends Keyboard {
     private Key mEnterKey;
     private Key mF1Key;
     private Key mSpaceKey;
+    private Key m123Key;
     private int mSpaceKeyIndex = -1;
     private int mSpaceDragStartX;
     private int mSpaceDragLastDiff;
@@ -103,6 +104,8 @@ public class LatinKeyboard extends Keyboard {
         mMicPreviewIcon = res.getDrawable(R.drawable.sym_keyboard_feedback_mic);
         mButtonArrowLeftIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_left);
         mButtonArrowRightIcon = res.getDrawable(R.drawable.sym_keyboard_language_arrows_right);
+        m123MicIcon = res.getDrawable(R.drawable.sym_keyboard_123_mic);
+        m123MicPreviewIcon = res.getDrawable(R.drawable.sym_keyboard_feedback_123_mic);
         sSpacebarVerticalCorrection = res.getDimensionPixelOffset(
                 R.dimen.spacebar_vertical_correction);
         setF1Key();
@@ -128,6 +131,9 @@ public class LatinKeyboard extends Keyboard {
         case 32:
             mSpaceKey = key;
             break;
+        case KEYCODE_MODE_CHANGE:
+            m123Key = key;
+            break;
         }
         return key;
     }
@@ -267,6 +273,10 @@ public class LatinKeyboard extends Keyboard {
             mF1Key.codes = new int[] { ',' };
             mF1Key.icon = null;
             mF1Key.iconPreview = null;
+            if (m123Key != null) {
+                m123Key.icon = m123MicIcon;
+                m123Key.iconPreview = m123MicPreviewIcon;
+            }
         } else {
             mF1Key.codes = new int[] { LatinKeyboardView.KEYCODE_VOICE };
             mF1Key.label = null;
@@ -560,20 +570,15 @@ public class LatinKeyboard extends Keyboard {
         public void draw(Canvas canvas) {
             canvas.save();
             if (mHitThreshold) {
-                mTextPaint.setColor(0);
+                mTextPaint.setColor(0xFF000000);
                 canvas.clipRect(0, 0, mWidth, mHeight);
-                int alpha = (255 * Math.max(0, mWidth / 2 - Math.abs(mDiff))) / (mWidth / 2);
-                mTextPaint.setAlpha(alpha);
-
                 if (mCurrentLanguage == null) {
                     mCurrentLanguage = getInputLanguage(mWidth, mTextPaint);
                     mNextLanguage = getNextInputLanguage(mWidth, mTextPaint);
                     mPrevLanguage = getPrevInputLanguage(mWidth, mTextPaint);
                 }
-
                 canvas.drawText(mCurrentLanguage,
                         mWidth / 2 + mDiff, -mAscent + 4, mTextPaint);
-                mTextPaint.setAlpha(255 - alpha);
                 canvas.drawText(mNextLanguage,
                         mDiff - mWidth / 2, -mAscent + 4, mTextPaint);
                 canvas.drawText(mPrevLanguage,