                     vsbVisible = (contentH >= (viewportH + SDT));
                 }                        
                 break;
-
+            
+            case ScrollPolicy.OVERLAY:
+                vsbVisible = scroller.verticalScrollInProgress;
+                vsbTakeUpSpace = false;
+                break;
+            
             default:
                 vsbVisible = false;
         }

        // the viewport's size was explicitly set, then we just use that. 
        
        if (isNaN(explicitViewportW))
            viewportW = w - ((vsbVisible) ? (minViewportInset + vsbRequiredWidth()) : (minViewportInset * 2));
        else 
            viewportW = explicitViewportW;
        
        if (isNaN(explicitViewportH))
            viewportH = h - ((hsbVisible) ? (minViewportInset + hsbRequiredHeight()) : (minViewportInset * 2));
        else 
            viewportH = explicitViewportH;


                } 
                break;

            case ScrollPolicy.OVERLAY:
                hsbVisible = scroller.horizontalScrollInProgress;
                hsbTakeUpSpace = false;
                break;
            
            default:
                hsbVisible = false;
        } 

        var vAuto:Boolean = false;
        var vsbTakeUpSpace:Boolean = true; // if visible
        switch(scroller.getStyle("verticalScrollPolicy")) 
        {
           case ScrollPolicy.ON: 
