diff --git a/src/com/android/launcher2/DragController.java b/src/com/android/launcher2/DragController.java
index e546697..331ebd6 100644
--- a/src/com/android/launcher2/DragController.java
+++ b/src/com/android/launcher2/DragController.java
@@ -557,6 +557,9 @@
             handleMoveEvent(screenX, screenY);
             break;
         case MotionEvent.ACTION_UP:
+            // Ensure that we've processed a move event at the current pointer location.
+            handleMoveEvent(screenX, screenY);
+
             mHandler.removeCallbacks(mScrollRunnable);
             if (mDragging) {
                 drop(screenX, screenY);
@@ -571,10 +574,11 @@
         return true;
     }
 
-    private boolean drop(float x, float y) {
+    private void drop(float x, float y) {
         final int[] coordinates = mCoordinatesTemp;
         DropTarget dropTarget = findDropTarget((int) x, (int) y, coordinates);
 
+        boolean accepted = false;
         if (dropTarget != null) {
             dropTarget.onDragExit(mDragSource, coordinates[0], coordinates[1],
                     (int) mTouchOffsetX, (int) mTouchOffsetY, mDragView, mDragInfo);
@@ -582,16 +586,10 @@
                     (int) mTouchOffsetX, (int) mTouchOffsetY, mDragView, mDragInfo)) {
                 dropTarget.onDrop(mDragSource, coordinates[0], coordinates[1],
                         (int) mTouchOffsetX, (int) mTouchOffsetY, mDragView, mDragInfo);
-                mDragSource.onDropCompleted((View) dropTarget, mDragInfo, true);
-                return true;
-            } else {
-                mDragSource.onDropCompleted((View) dropTarget, mDragInfo, false);
-                return true;
+                accepted = true;
             }
-        } else {
-            mDragSource.onDropCompleted(null, mDragInfo, false);
         }
-        return false;
+        mDragSource.onDropCompleted(null, mDragInfo, accepted);
     }
 
     private DropTarget findDropTarget(int x, int y, int[] dropCoordinates) {
diff --git a/src/com/android/launcher2/DragScroller.java b/src/com/android/launcher2/DragScroller.java
index 6af9c30..6ef4bd8 100644
--- a/src/com/android/launcher2/DragScroller.java
+++ b/src/com/android/launcher2/DragScroller.java
@@ -26,6 +26,7 @@
 
     /**
      * The touch point has entered the scroll area; a scroll is imminent.
+     * This event will only occur while a drag is active.
      *
      * @param direction The scroll direction
      */
@@ -33,6 +34,7 @@
 
     /**
      * The touch point has left the scroll area.
+     * NOTE: This may not be called, if a drop occurs inside the scroll area.
      */
     void onExitScrollArea();
 }
