     protected function animatePaging(newValue:Number, pageSize:Number):void
     {
         animatingSinglePage = false;
-        if (trackScrollDown)
-            newValue = newValue - pageSize;
         // FIXME (chaase): hard-coding easing behavior, how to style it?
         startAnimation(
             getStyle("repeatInterval") * (Math.abs(newValue - value) / pageSize),
-            nearestValidValue(newValue, pageSize), linearEaser);
+            newValue, linearEaser);
     }
 
     /**

        // (represented by fraction) is not past the current
        // mouse position on the track 
        var newScrollValue:Number = pointToValue(trackPosition.x, trackPosition.y);

        if (trackScrollDown)
        {
            var range:Number = maximum - minimum;
            if (range == 0)
                return;
            
            if ((value + pageSize) > newScrollValue)
                return;
        }
        else if (newScrollValue > value)
        {

            // This gets called after an initial repeateDelay on a paging
            // operation, but after that we're just running the animation. This
            // function is only called repeatedly in the non-smoothScrolling case.
            var valueDelta:Number = Math.abs(value - newScrollValue);
            var pages:int;
            var pageToVal:Number;
            if (newScrollValue > value)
            {
                pages = pageSize != 0 ? 
                    int(valueDelta / pageSize) :
                    valueDelta;
                if (fixedThumbSize && nearestValidValue(newScrollValue, pageSize) == maximum)
                    pageToVal = maximum;
                else
                    pageToVal = value + (pages * pageSize);
            }
            else
            {
                pages = pageSize != 0 ? 
                    int(Math.ceil(valueDelta / pageSize)) :
                    valueDelta;
                pageToVal = Math.max(minimum, value - (pages * pageSize));
            }
            animatePaging(pageToVal, pageSize);
            return;
        }

