diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 4bf5414..7cad3f5 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -308,14 +308,10 @@
         <attr name="visualInsetsRight" format="dimension|fraction" />
         <!-- Width of the key, in pixels or percentage of display width.
              If the value is fillRight, the actual key width will be determined to fill out the area
-             up to the right edge of the keyboard.
-             If the value is fillBoth, the actual key width will be determined to fill out the
-             area between the nearest key on the left hand side and the right edge of the keyboard.
-             -->
+             up to the right edge of the keyboard. -->
         <!-- This should be aligned with KeyboardBuilder.Row.KEYWIDTH_* -->
         <attr name="keyWidth" format="dimension|fraction|enum">
             <enum name="fillRight" value="-1" />
-            <enum name="fillBoth" value="-2" />
         </attr>
         <!-- The X-coordinate of upper right corner of this key including horizontal gap.
              If the value is negative, the origin is the right edge of the keyboard. -->
diff --git a/java/res/xml/rows_georgian.xml b/java/res/xml/rows_georgian.xml
index 9bddfc7..8c81dd0 100644
--- a/java/res/xml/rows_georgian.xml
+++ b/java/res/xml/rows_georgian.xml
@@ -47,7 +47,7 @@
             latin:keyboardLayout="@xml/rowkeys_georgian3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillBoth"
+            latin:keyWidth="fillRight"
             latin:visualInsetsLeft="1%p" />
     </Row>
     <include
diff --git a/java/res/xml/rows_qwerty.xml b/java/res/xml/rows_qwerty.xml
index 716d106..cdd4203 100644
--- a/java/res/xml/rows_qwerty.xml
+++ b/java/res/xml/rows_qwerty.xml
@@ -47,7 +47,7 @@
             latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillBoth"
+            latin:keyWidth="fillRight"
             latin:visualInsetsLeft="1%p" />
     </Row>
     <include
diff --git a/java/res/xml/rows_spanish.xml b/java/res/xml/rows_spanish.xml
index b311297..ecda4a4 100644
--- a/java/res/xml/rows_spanish.xml
+++ b/java/res/xml/rows_spanish.xml
@@ -46,7 +46,7 @@
             latin:keyboardLayout="@xml/rowkeys_qwerty3" />
         <Key
             latin:keyStyle="deleteKeyStyle"
-            latin:keyWidth="fillBoth"
+            latin:keyWidth="fillRight"
             latin:visualInsetsLeft="1%p" />
     </Row>
     <include
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java
index 28855f5..bd3b0e1 100644
--- a/java/src/com/android/inputmethod/keyboard/Keyboard.java
+++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java
@@ -511,7 +511,6 @@
             // keyWidth enum constants
             private static final int KEYWIDTH_NOT_ENUM = 0;
             private static final int KEYWIDTH_FILL_RIGHT = -1;
-            private static final int KEYWIDTH_FILL_BOTH = -2;
 
             private final Params mParams;
             /** Default width of a key in this row. */
@@ -576,11 +575,6 @@
             public float getKeyX(TypedArray keyAttr) {
                 final int widthType = Builder.getEnumValue(keyAttr,
                         R.styleable.Keyboard_Key_keyWidth, KEYWIDTH_NOT_ENUM);
-                if (widthType == KEYWIDTH_FILL_BOTH) {
-                    // If keyWidth is fillBoth, the key width should start right after the nearest
-                    // key on the left hand side.
-                    return mCurrentX;
-                }
 
                 final int keyboardRightEdge = mParams.mOccupiedWidth
                         - mParams.mHorizontalEdgesPadding;
@@ -610,14 +604,10 @@
                         R.styleable.Keyboard_Key_keyWidth, KEYWIDTH_NOT_ENUM);
                 switch (widthType) {
                 case KEYWIDTH_FILL_RIGHT:
-                case KEYWIDTH_FILL_BOTH:
                     final int keyboardRightEdge =
                             mParams.mOccupiedWidth - mParams.mHorizontalEdgesPadding;
                     // If keyWidth is fillRight, the actual key width will be determined to fill
                     // out the area up to the right edge of the keyboard.
-                    // If keyWidth is fillBoth, the actual key width will be determined to fill out
-                    // the area between the nearest key on the left hand side and the right edge of
-                    // the keyboard.
                     return keyboardRightEdge - keyXPos;
                 default: // KEYWIDTH_NOT_ENUM
                     return Builder.getDimensionOrFraction(keyAttr,
