             }
             
             // Only adjust for local bounds if the element is taller than the scroll height
-            if (elementR.height > scrollR.height)
+            if (elementR.height > scrollR.height || !entireElementVisible)
             {
                 if (elementLocalBounds.bottom > scrollR.bottom) 
                     dy = elementLocalBounds.bottom - scrollR.bottom;

        if (elementLocalBounds)
            elementLocalBounds = convertLocalToTarget(element, elementLocalBounds);
        return getScrollPositionDeltaToElementHelperHelper(
            elementR, elementLocalBounds,
            topOffset, bottomOffset, 
            leftOffset, rightOffset);
        

    protected function getScrollPositionDeltaToElementHelperHelper(
                                    elementR:Rectangle,
                                    elementLocalBounds:Rectangle,
                                    entireElementVisible:Boolean = true,
                                    topOffset:Number = NaN, 
                                    bottomOffset:Number = NaN, 
                                    leftOffset:Number = NaN,
