         
         if (pageSizeChanged)
         {
-            if (valueInterval != 0)
-                _pageSize = nearestValidInterval(_pageSize, valueInterval);
-            
+            _pageSize = nearestValidSize(_pageSize);
             pageSizeChanged = false;
         }
     }

    /**
     * @private
     * This variable tracks whether we are currently running an animation to
     * do a single page() operation. This is used to end that operation properly
     * if another operation interrupts it.
     */ 
    private var animatingSinglePage:Boolean;

        if (animatingSinglePage)
            animator.end();
        
        // Cache original event location for use on later repeating events
        trackPosition = track.globalToLocal(new Point(event.stageX, event.stageY));
        
        // If the user shift-clicks on the track, then offset the event coordinates so 
        // that the thumb ends up centered under the mouse.
        if (event.shiftKey)
        {
            var thumbW:Number = (thumb) ? thumb.getLayoutBoundsWidth() : 0;
            var thumbH:Number = (thumb) ? thumb.getLayoutBoundsHeight() : 0;
            trackPosition.x -= (thumbW / 2);
            trackPosition.y -= (thumbH / 2);        
        }

        var newScrollValue:Number = pointToValue(trackPosition.x, trackPosition.y);
        trackScrollDown = (newScrollValue > value);
        
        if (event.shiftKey)
        {
            // shift-click positions jumps to the clicked location instead
            // of incrementally paging
            var slideDuration:Number = getStyle("slideDuration");
            var adjustedValue:Number = nearestValidValue(newScrollValue, snapInterval);
            if (getStyle("smoothScrolling") && 
                slideDuration != 0 && 
                (maximum - minimum) != 0)
