      */
     public function getHorizontalScrollPositionDelta(scrollUnit:uint):Number
     {
-        // TBD: replace provisional implementation
-        var scrollR:Rectangle = scrollRect;
-        if (!scrollR)
-            return 0;
-            
-        var maxDelta:Number = contentWidth - scrollR.width - scrollR.x;
-        var minDelta:Number = -scrollR.x; 
-            
-        switch (scrollUnit)
-        {
-            case ScrollUnit.UP:
-                return (scrollR.x <= 0) ? 0 : -1;
-                
-            case ScrollUnit.DOWN:
-                return (scrollR.x >= maxDelta) ? 0 : 1;
-                
-            case ScrollUnit.PAGE_LEFT:
-                return Math.max(minDelta, -scrollR.width);
-                
-            case ScrollUnit.PAGE_RIGHT:
-                return Math.min(maxDelta, scrollR.width);
-                
-            case ScrollUnit.HOME: 
-                return minDelta;
-                
-            case ScrollUnit.END: 
-                return maxDelta;
-                
-            default:
-                return 0;
-        }       
+        // The scroller's keyDown handler is activated before TLF's keyDown
+        // handler which recognizes many more keys and key combinations than
+        // the scroller does.  Tell the scroller there is no delta and then
+        // let TLF handle the scrolling.  When TLF scrolls, it will call our
+        // scroll handler which will update horizontalScrollPosition.  The
+        // scroller is bound to this so it will get notified and do the
+        // appropriate adjustments to the slider, etc.  
+        
+        return 0;
     }
     
     //----------------------------------

    {        
        var composeWidth:Number;                                       

        if (hostFormat.lineBreak == "toFit")
        {
            // The default for maxWidth is 10000 which isn't a 
            // reasonable default for the autoSize width so use the default
            // measured width which is 160 instead.
             var maxWidth:Number = !isNaN(explicitMaxWidth) ?
                              explicitMaxWidth : 
                              UIComponent.DEFAULT_MEASURED_WIDTH;
            
            // Need to set a width to cause a wrap.  Never compose over the 
            // max width because the width will always be adjusted down to this 
            // and it's easy to get into an infinite measure/update display 
            // loop.            
            if (!isNaN(widthConstraint) && widthConstraint <= maxWidth)
                composeWidth = widthConstraint
            else
                composeWidth = maxWidth;
            explicitMinWidth = NaN;
        }
        else

    private var _clipAndEnableScrolling:Boolean = false;

    /**
     *  @private
     */
    private var clipAndEnableScrollingChanged:Boolean = false;

    /**
     *  @copy mx.layout.LayoutBase#clipAndEnableScrolling
     *  
     *  @langversion 3.0
