         // minimize the scroll
         var dx:Number = (Math.abs(dxl) < Math.abs(dxr)) ? dxl : dxr;
         var dy:Number = (Math.abs(dyt) < Math.abs(dyb)) ? dyt : dyb;
-                
+        
+        if (!isNaN(topOffset))
+            dy = dyt + topOffset;
+        else if (!isNaN(bottomOffset))
+            dy = dyb - bottomOffset;
+        
+        if (!isNaN(leftOffset))
+            dx = dxl + leftOffset;
+        else if (!isNaN(rightOffset))
+            dx = dxr - rightOffset;
+        
         // scrollR "contains"  elementR in just one dimension
         if ((elementR.left >= scrollR.left) && (elementR.right <= scrollR.right))
-           dx = 0;
+            dx = 0;
         else if ((elementR.bottom <= scrollR.bottom) && (elementR.top >= scrollR.top))
-           dy = 0;
-           
+            dy = 0;
+        
         // elementR "contains" scrollR in just one dimension
         if ((elementR.left <= scrollR.left) && (elementR.right >= scrollR.right))
-           dx = 0;
+            dx = 0;
         else if ((elementR.bottom >= scrollR.bottom) && (elementR.top <= scrollR.top))
             dy = 0;
-           
+        
         return new Point(dx, dy);
     }
-     
     //--------------------------------------------------------------------------
     //
     //  Drop methods

    */
    public function getScrollPositionDeltaToElement(index:int):Point
    {
        var elementR:Rectangle = getElementBounds(index);
        if (!elementR)
           return null;
        
        var scrollR:Rectangle = getScrollRect();
        if (!scrollR || !target.clipAndEnableScrolling)
           return null;
        
        if (scrollR.containsRect(elementR) || elementR.containsRect(scrollR))
           return null;
           
        var dxl:Number = elementR.left - scrollR.left;     // left justify element
        var dxr:Number = elementR.right - scrollR.right;   // right justify element
        var dyt:Number = elementR.top - scrollR.top;       // top justify element

     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public function getElementBounds(index:int):Rectangle
    {
        var g:GroupBase = target;
        if (!g)
