         if (!scrollRect)
             return null;
 
-        // Make sure that the drag-scrolling regions don't overlap 
-        var horizontalRegionSize:Number = Math.min(dragScrollRegionSize, layoutTarget.width);
-        var verticalRegionSize:Number = Math.min(dragScrollRegionSize, layoutTarget.height);
-
-        var x:Number = dropLocation.dropPoint.x;
-        var y:Number = dropLocation.dropPoint.y;
-        
-        // Return early if the mouse is outside of the drag-scroll region.
-        if (scrollRect.left + horizontalRegionSize < x && x < scrollRect.right - horizontalRegionSize &&
-            scrollRect.top + verticalRegionSize < y && y < scrollRect.bottom - verticalRegionSize )
-            return null;
+		// Make sure that the drag-scrolling regions don't overlap 
+		var x:Number = dropLocation.dropPoint.x;
+		var y:Number = dropLocation.dropPoint.y;
+		
+		var horizontalRegionSize:Number = Math.min(dragScrollRegionSizeHorizontal, layoutTarget.width/2);
+		var verticalRegionSize:Number = Math.min(dragScrollRegionSizeVertical, layoutTarget.height/2);
+		// Return early if the mouse is outside of the drag-scroll region.
+		if (scrollRect.left + horizontalRegionSize < x && x < scrollRect.right - horizontalRegionSize &&
+			scrollRect.top + verticalRegionSize < y && y < scrollRect.bottom - verticalRegionSize )
+			return null;
+		
+		if (timeElapsed < dragScrollInitialDelay)
+			return new Point(); // Return zero point to continue firing events, but not actually scroll.
+		timeElapsed -= dragScrollInitialDelay;
 
         // Speedup based on time elapsed
         var timeSpeedUp:Number = Math.min(timeElapsed, 2000) / 2000;

        _dragScrollDelta = calculateDragScrollDelta(dropLocation,
                                                    dragScrollInterval,
                                                    dragScrollElapsedTime);
        if (_dragScrollDelta && (_dragScrollDelta.x != 0 || _dragScrollDelta.y != 0))
        {
            // Update the drag-scroll event
            _dragScrollEvent = dropLocation.dragEvent;

    private var _dragScrollTimer:Timer;
    private var _dragScrollDelta:Point;
    private var _dragScrollEvent:DragEvent;
    mx_internal var dragScrollRegionSizeHorizontal:Number = 20;
	mx_internal var dragScrollRegionSizeVertical:Number = 20;
    mx_internal var dragScrollSpeed:Number = 5;
	mx_internal var dragScrollInitialDelay:int = 250;
    mx_internal var dragScrollInterval:int = 32;
    mx_internal var dragScrollHidesIndicator:Boolean = false;
    
