 			t: Date.now() # We don't use timeStamp because it's different on Chrome/Safari
 
 		offset =
-			x: touchEvent.clientX - @_layerStartPoint.x - @_layerCursorOffset.x
-			y: touchEvent.clientY - @_layerStartPoint.y - @_layerCursorOffset.y
+			x: touchEvent.clientX - @_correctedLayerStartPoint.x - @_layerCursorOffset.x
+			y: touchEvent.clientY - @_correctedLayerStartPoint.y - @_layerCursorOffset.y
 
 		# Scale the offset with the screen scale for the current layer
 		offset.x = offset.x * @speedX * (1 / @_screenScale.x) * @layer.scaleX * @layer.scale


		# Store cursor/layer offset
		@_layerCursorOffset =
			x: touchEvent.clientX - @_layerStartPoint.x
			y: touchEvent.clientY - @_layerStartPoint.y

		# Store the current layer scale so we can correct movement for it
		@_screenScale =

			t: Date.now()

		# Store original layer position
		@_layerStartPoint = @layer.point
		@_correctedLayerStartPoint = @layer.point
		
		# If we are beyond bounds, we need to correct for the scaled clamping from the last drag, 
		# hence the 1 / overdragScale
		if @constraints and @bounce
			@_correctedLayerStartPoint = @_constrainPosition(
				@_correctedLayerStartPoint, @constraints, 1 / @overdragScale)

		# Store start cursor position
		@_cursorStartPoint =
