         var hsbIsDependent:Boolean = false;
         var vsbIsDependent:Boolean = false;
         
-        if (vsbVisible && !hsbVisible && hAuto && (contentW >= (viewportW + Scroller.SDT)))
-            hsbVisible = hsbIsDependent = true;
-        else if (!vsbVisible && hsbVisible && vAuto && (contentH >= (viewportH + Scroller.SDT)))
-            vsbVisible = vsbIsDependent = true;
+        if (vsbVisible && !hsbVisible && hAuto && (contentW >= (viewportW + SDT)))
+            hsbVisible = hsbIsDependent = _canScrollHorizontally = true;
+        else if (!vsbVisible && hsbVisible && vAuto && (contentH >= (viewportH + SDT)))
+            vsbVisible = vsbIsDependent = _canScrollVertically = true;
 
         // If the HSB doesn't fit, hide it and give the space back.   Likewise for VSB.
         // If both scrollbars are supposed to be visible but they don't both fit, 

        if (((cw == 0) && (ch == 0)) || (isNaN(cw) || isNaN(ch)))
            return new Point(0,0);
        return MatrixUtil.transformSize(cw, ch, viewport.getLayoutMatrix());
    }

    //----------------------------------

                var viewportPreferredW:Number =  viewport.getPreferredBoundsWidth();
                var viewportContentW:Number = contentSize.x;
                var viewportW:Number = viewport.getLayoutBoundsWidth();  // "current" size
                var currentSizeNoHSB:Boolean = !isNaN(viewportW) && ((viewportW + SDT) > viewportContentW);
                if (hAuto && !showHSB && ((viewportPreferredW + SDT) <= viewportContentW) && currentSizeNoHSB)
                    measuredW += viewportW;
                else
                    measuredW += Math.max(viewportPreferredW, (showHSB) ? hsb.getMinBoundsWidth() : 0);
