diff --git a/src/com/android/launcher2/DragView.java b/src/com/android/launcher2/DragView.java
index a8dad7a..433dab8 100644
--- a/src/com/android/launcher2/DragView.java
+++ b/src/com/android/launcher2/DragView.java
@@ -123,6 +123,14 @@
         // The point in our scaled bitmap that the touch events are located
         mRegistrationX = registrationX;
         mRegistrationY = registrationY;
+
+        // Force a measure, because Workspace uses getMeasuredHeight() before the layout pass
+        int ms = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
+        measure(ms, ms);
+    }
+
+    public float getOffsetY() {
+        return mOffsetY;
     }
 
     public void setDragRegion(int left, int top, int width, int height) {
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 540b373..2e2c441 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -2257,6 +2257,13 @@
                                     dragView.getDragRegionHeight());
                         }
                     }
+                } else if (source == this) {
+                    // When dragging from the workspace, the drag view is slightly bigger than
+                    // the original view, and offset vertically. Adjust to account for this.
+                    final View origView = mDragInfo.cell;
+                    originX += (dragView.getMeasuredWidth() - origView.getWidth()) / 2;
+                    originY += (dragView.getMeasuredHeight() - origView.getHeight()) / 2
+                            + dragView.getOffsetY();
                 }
 
                 if (mDragTargetLayout != null) {
