diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index e3171eb..a8eaab9 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -46,6 +46,9 @@
         <!-- Amount to offset the touch Y coordinate by, for bias correction. -->
         <attr name="verticalCorrection" format="dimension" />
 
+        <!-- Amount of allowance for selecting keys in a mini popup keyboard by sliding finger. -->
+        <attr name="miniKeyboardSlideAllowance" format="dimension" />
+
         <!-- Layout resource for popup keyboards. -->
         <attr name="popupLayout" format="reference" />
 
diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml
index 16478c8..6ec4286 100644
--- a/java/res/values/styles.xml
+++ b/java/res/values/styles.xml
@@ -27,6 +27,7 @@
         <item name="labelTextSize">14sp</item>
         <item name="popupLayout">@layout/keyboard_popup_keyboard</item>
         <item name="verticalCorrection">-10dip</item>
+        <item name="miniKeyboardSlideAllowance">30dip</item>
         <item name="shadowColor">#BB000000</item>
         <item name="shadowRadius">2.75</item>
         <item name="backgroundDimAmount">0.5</item>
diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index 5732cf7..610d954 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -200,6 +200,7 @@
     private int mMiniKeyboardOriginY;
     private long mMiniKeyboardPopupTime;
     private int[] mWindowOffset;
+    private float mMiniKeyboardSlideAllowance;
 
     /** Listener for {@link OnKeyboardActionListener}. */
     private OnKeyboardActionListener mKeyboardActionListener;
@@ -388,6 +389,9 @@
             case R.styleable.LatinKeyboardBaseView_verticalCorrection:
                 mVerticalCorrection = a.getDimensionPixelOffset(attr, 0);
                 break;
+            case R.styleable.LatinKeyboardBaseView_miniKeyboardSlideAllowance:
+                mMiniKeyboardSlideAllowance = a.getDimensionPixelOffset(attr, 0);
+                break;
             case R.styleable.LatinKeyboardBaseView_keyPreviewLayout:
                 previewLayout = a.getResourceId(attr, 0);
                 break;
@@ -1091,8 +1095,8 @@
         } else if (x > (getMeasuredWidth() - container.getMeasuredWidth())) {
             adjustedX = getMeasuredWidth() - container.getMeasuredWidth();
         }
-        mMiniKeyboardOriginX = adjustedX + container.getPaddingLeft();
-        mMiniKeyboardOriginY = y + container.getPaddingTop();
+        mMiniKeyboardOriginX = adjustedX + container.getPaddingLeft() - mWindowOffset[0];
+        mMiniKeyboardOriginY = y + container.getPaddingTop() - mWindowOffset[1];
         mMiniKeyboard.setPopupOffset(adjustedX, y);
         mMiniKeyboard.setShifted(isShifted());
         // Mini keyboard needs no pop-up key preview displayed.
@@ -1116,7 +1120,12 @@
 
     private MotionEvent generateMiniKeyboardMotionEvent(int action, int x, int y, long eventTime) {
         return MotionEvent.obtain(mMiniKeyboardPopupTime, eventTime, action,
-                x - mMiniKeyboardOriginX, y - mMiniKeyboardOriginY, 0);
+                x - mMiniKeyboardOriginX,
+                // TODO: Currently just taking care of "below" of the keys in a mini popup keyboard
+                // for key detection by sliding finger.  Need to take care of left, right, and
+                // upper of "edge" keys.
+                y - mMiniKeyboardOriginY - (int)mMiniKeyboardSlideAllowance,
+                0);
     }
 
     private PointerTracker getPointerTracker(final int id) {
