diff --git a/src/com/android/launcher2/AllAppsView.java b/src/com/android/launcher2/AllAppsView.java
index 783be93..795f490 100644
--- a/src/com/android/launcher2/AllAppsView.java
+++ b/src/com/android/launcher2/AllAppsView.java
@@ -1028,6 +1028,20 @@
             mTouchXBorders[4] = width;
         }
 
+        void fling() {
+            mInvokeFling.execute();
+        }
+
+        void move() {
+            mInvokeMove.execute();
+        }
+
+        void moveTo(float row) {
+            mState.targetPos = row;
+            mState.save();
+            mInvokeMoveTo.execute();
+        }
+
         int chooseTappedIcon(int x, int y, float pos) {
             // Adjust for scroll position if not zero.
             y += (pos - ((int)pos)) * (mTouchYBorders[1] - mTouchYBorders[0]);
@@ -1051,22 +1065,14 @@
                 return -1;
             }
 
-            return (((int)pos) * Defines.COLUMNS_PER_PAGE)
+            int index = (((int)pos) * Defines.COLUMNS_PER_PAGE)
                     + (row * Defines.ROWS_PER_PAGE) + col;
-        }
 
-        void fling() {
-            mInvokeFling.execute();
-        }
-
-        void move() {
-            mInvokeMove.execute();
-        }
-
-        void moveTo(float row) {
-            mState.targetPos = row;
-            mState.save();
-            mInvokeMoveTo.execute();
+            if (index >= mState.iconCount) {
+                return -1;
+            } else {
+                return index;
+            }
         }
 
         /**
