diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index e7fbd22..665c641 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -320,7 +320,8 @@
     };
 
     static class KeyDebouncer {
-        private Key[] mKeys;
+        private final Key[] mKeys;
+        private final int mKeyDebounceThresholdSquared;
 
         // for move de-bouncing
         private int mLastCodeX;
@@ -334,9 +335,9 @@
         private long mLastMoveTime;
         private long mCurrentKeyTime;
 
-        private final int mKeyDebounceThresholdSquared;
-
         KeyDebouncer(Key[] keys, float hysteresisPixel) {
+            if (keys == null || hysteresisPixel < 1.0f)
+                throw new IllegalArgumentException();
             mKeys = keys;
             mKeyDebounceThresholdSquared = (int)(hysteresisPixel * hysteresisPixel);
         }
@@ -379,11 +380,11 @@
         public boolean isMinorMoveBounce(int x, int y, int newKey, int curKey) {
             if (newKey == curKey) {
                 return true;
-            } else if (curKey == NOT_A_KEY) {
-                return false;
-            } else {
+            } else if (curKey >= 0 && curKey < mKeys.length) {
                 return getSquareDistanceToKeyEdge(x, y, mKeys[curKey])
-                    < mKeyDebounceThresholdSquared;
+                        < mKeyDebounceThresholdSquared;
+            } else {
+                return false;
             }
         }
 
