 import mx.core.IFlexModule;
 import mx.core.IFlexModuleFactory;
 import mx.core.IUIComponent;
+import mx.core.IVisualElement;
 import mx.core.UIComponentGlobals;
 import mx.core.mx_internal;
 import mx.events.DragEvent;

		if (nonNullTarget == null)
			nonNullTarget = dragInitiator;
		
		var point:Point = new Point(mouseEvent.localX, mouseEvent.localY);
		point = DisplayObject(nonNullTarget).localToGlobal(point);
		point = DisplayObject(sandboxRoot).globalToLocal(point);
		var mouseX:Number = point.x;

        // Make sure any scale/rotation from the initiator will be reflected.
        var concatenatedMatrix:Matrix = MatrixUtil.getConcatenatedMatrix(DisplayObject(dragInitiator));
        // Zero out the translation part of the matrix, as we're going to 
        // position the dragProxy explicitly further below.        
        concatenatedMatrix.tx = 0;
        concatenatedMatrix.ty = 0;
        // Combine with the matrix of the dragImage if it has any.
