diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
index b3f1364d84a91ee7c1b2d19bf7cbf8e468ff2280..c1b1008b02c6a9206f3540256b031f631e09bff0 100644
--- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
+++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java
@@ -214,7 +214,10 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
     private OnKeyboardActionListener mKeyboardActionListener;
 
     private final ArrayList<PointerTracker> mPointerTrackers = new ArrayList<PointerTracker>();
+
+    // TODO: Let the PointerTracker class manage this pointer queue
     private final PointerQueue mPointerQueue = new PointerQueue();
+
     private final boolean mHasDistinctMultitouch;
     private int mOldPointerCount = 1;
 
@@ -1053,8 +1056,10 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx
         boolean result = onLongPress(popupKey);
         if (result) {
             dismissKeyPreview();
-            tracker.setAlreadyProcessed();
             mMiniKeyboardTrackerId = tracker.mPointerId;
+            // Mark this tracker "already processed" and remove it from the pointer queue
+            tracker.setAlreadyProcessed();
+            mPointerQueue.remove(tracker);
         }
         return result;
     }