         
         var hsbIsDependent:Boolean = false;
         var vsbIsDependent:Boolean = false;
-    
-        if (vsbVisible && !hsbVisible && hAuto && (contentW > viewportW))
+        
+        if (vsbVisible && !hsbVisible && hAuto && (contentW >= (viewportW + SDT)))
             hsbVisible = hsbIsDependent = true;
-        else if (!vsbVisible && hsbVisible && vAuto && (contentH > viewportH))
+        else if (!vsbVisible && hsbVisible && vAuto && (contentH >= (viewportH + SDT)))
             vsbVisible = vsbIsDependent = true;
 
         // If the HSB doesn't fit, hide it and give the space back.   Likewise for VSB.

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


    /**
     *  @private
     *  SDT - Scrollbar Display Threshold.  If the content size exceeds the
     *  viewport's size by SDT, then we show a scrollbar.  For example, if the 
     *  contentWidth >= viewport width + SDT, show the vertical scrollbar.
     */
    private static const SDT = 1.0;

    /**
     *  @private
     *  Used by updateDisplayList() to prevent looping.
     */
    private var invalidationCount:int = 0;
