         
         // Re-dispatch the event so that the drag initiator handles it as if
         // the DragProxy is dispatching in response to user input.
-		// Always switch over to DRAG_OVER, don't re-dispatch DRAG_ENTER
-		var dragEvent:DragEvent = new DragEvent(DragEvent.DRAG_OVER,
-											    _dragScrollEvent.bubbles,
-												_dragScrollEvent.cancelable, 
-												_dragScrollEvent.dragInitiator, 
-												_dragScrollEvent.dragSource, 
-												_dragScrollEvent.action, 
-												_dragScrollEvent.ctrlKey, 
-												_dragScrollEvent.altKey, 
-												_dragScrollEvent.shiftKey);
-		
-		dragEvent.draggedItem = _dragScrollEvent.draggedItem;
-		dragEvent.localX = _dragScrollEvent.localX;
-		dragEvent.localY = _dragScrollEvent.localY;
-		dragEvent.relatedObject = _dragScrollEvent.relatedObject;
+        // Always switch over to DRAG_OVER, don't re-dispatch DRAG_ENTER
+        var dragEvent:DragEvent = new DragEvent(DragEvent.DRAG_OVER,
+                                                _dragScrollEvent.bubbles,
+                                                _dragScrollEvent.cancelable, 
+                                                _dragScrollEvent.dragInitiator, 
+                                                _dragScrollEvent.dragSource, 
+                                                _dragScrollEvent.action, 
+                                                _dragScrollEvent.ctrlKey, 
+                                                _dragScrollEvent.altKey, 
+                                                _dragScrollEvent.shiftKey);
+        
+        dragEvent.draggedItem = _dragScrollEvent.draggedItem;
+        dragEvent.localX = _dragScrollEvent.localX;
+        dragEvent.localY = _dragScrollEvent.localY;
+        dragEvent.relatedObject = _dragScrollEvent.relatedObject;
         _dragScrollEvent.target.dispatchEvent(dragEvent);
     }
     

        if (!scrollRect)
            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;

     *  define the height of all container children, 
     *  as the following example shows:</p>
     * 
     *  <pre>
     *  &lt;s:Group&gt;
     *    &lt;s:layout&gt;
     *      &lt;s:VerticalLayout variableRowHeight="false"
     *          typicalLayoutElement="{b3}"/&gt; 
     *    &lt;/s:layout&gt;
     *    &lt;s:Button id="b1" label="Button 1"/&gt;
     *    &lt;s:Button id="b2" label="Button 2"/&gt;
     *    &lt;s:Button id="b3" label="Button 3" fontSize="36"/&gt;
     *    &lt;s:Button id="b4" label="Button 4" fontSize="24"/&gt;
     *  &lt;/s:Group&gt;</pre>
     * 
     *  <p>If this property has not been set and the target is non-null 
     *  then the target's first layout element is cached and returned.</p>
