diff --git a/java/res/layout/emoji_palettes_view.xml b/java/res/layout/emoji_palettes_view.xml
index e2933f9..43d8edd 100644
--- a/java/res/layout/emoji_palettes_view.xml
+++ b/java/res/layout/emoji_palettes_view.xml
@@ -63,6 +63,7 @@
             android:layout_width="2dip"
             android:layout_height="match_parent"
             android:background="@drawable/suggestions_strip_divider" />
+        <!-- TODO: Implement KeyView and replace this. -->
         <ImageButton
             android:id="@+id/emoji_keyboard_delete"
             android:layout_width="0dip"
@@ -86,18 +87,30 @@
         android:layout_height="0dip"
         android:layout_weight="1"
     >
+        <!-- TODO: Implement a KeyView and replace this. -->
         <TextView
             android:id="@+id/emoji_keyboard_alphabet_left"
             android:layout_width="0dip"
             android:layout_weight="0.15"
             android:gravity="center"
             android:layout_height="match_parent" />
-        <ImageButton
+        <!-- TODO: Implement KeyView and replace this. -->
+        <RelativeLayout
             android:id="@+id/emoji_keyboard_space"
             android:layout_width="0dip"
             android:layout_weight="0.70"
             android:layout_height="match_parent"
-            android:contentDescription="@string/spoken_description_space"/>
+            android:contentDescription="@string/spoken_description_space">
+            <!-- WORKAROUND: Show the spacebar icon as a bacground of this View. -->
+            <View
+                android:id="@+id/emoji_keyboard_space_icon"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_marginLeft="12dp"
+                android:layout_marginRight="12dp"
+                android:layout_centerInParent="true" />
+        </RelativeLayout>
+        <!-- TODO: Implement KeyView and replace this. -->
         <TextView
             android:id="@+id/emoji_keyboard_alphabet_right"
             android:layout_width="0dip"
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
index fbc1282..582e091 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiLayoutParams.java
@@ -19,7 +19,6 @@
 import android.content.res.Resources;
 import android.support.v4.view.ViewPager;
 import android.view.View;
-import android.widget.ImageView;
 import android.widget.LinearLayout;
 
 import com.android.inputmethod.latin.R;
@@ -84,10 +83,10 @@
         ll.setLayoutParams(lp);
     }
 
-    public void setKeyProperties(final ImageView ib) {
-        final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) ib.getLayoutParams();
+    public void setKeyProperties(final View v) {
+        final LinearLayout.LayoutParams lp = (LinearLayout.LayoutParams) v.getLayoutParams();
         lp.leftMargin = mKeyHorizontalGap / 2;
         lp.rightMargin = mKeyHorizontalGap / 2;
-        ib.setLayoutParams(lp);
+        v.setLayoutParams(lp);
     }
 }
diff --git a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
index 7b4bd3d..c0c9e20 100644
--- a/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
+++ b/java/src/com/android/inputmethod/keyboard/emoji/EmojiPalettesView.java
@@ -75,7 +75,9 @@
     private ImageButton mDeleteKey;
     private TextView mAlphabetKeyLeft;
     private TextView mAlphabetKeyRight;
-    private ImageButton mSpacebar;
+    private View mSpacebar;
+    // TODO: Remove this workaround.
+    private View mSpacebarIcon;
     private TabHost mTabHost;
     private ViewPager mEmojiPager;
     private int mCurrentPagerPosition = 0;
@@ -195,12 +197,13 @@
         mAlphabetKeyRight.setTag(Constants.CODE_ALPHA_FROM_EMOJI);
         mAlphabetKeyRight.setOnTouchListener(this);
         mAlphabetKeyRight.setOnClickListener(this);
-        mSpacebar = (ImageButton)findViewById(R.id.emoji_keyboard_space);
+        mSpacebar = findViewById(R.id.emoji_keyboard_space);
         mSpacebar.setBackgroundResource(mSpacebarBackgroundId);
         mSpacebar.setTag(Constants.CODE_SPACE);
         mSpacebar.setOnTouchListener(this);
         mSpacebar.setOnClickListener(this);
         mEmojiLayoutParams.setKeyProperties(mSpacebar);
+        mSpacebarIcon = findViewById(R.id.emoji_keyboard_space_icon);
     }
 
     @Override
@@ -349,7 +352,8 @@
         }
         final int spacebarResId = iconSet.getIconResourceId(KeyboardIconsSet.NAME_SPACE_KEY);
         if (spacebarResId != 0) {
-            mSpacebar.setImageResource(spacebarResId);
+            // TODO: Remove this workaround to place the spacebar icon.
+            mSpacebarIcon.setBackgroundResource(spacebarResId);
         }
         final KeyDrawParams params = new KeyDrawParams();
         params.updateParams(mEmojiLayoutParams.getActionBarHeight(), keyVisualAttr);
