     mx_internal function viewportVerticalScrollPositionChangeHandler(event:PropertyChangeEvent):void
     {
     }   
-	
-	//---------------------------------
-	// Thumb dragging handlers
-	//---------------------------------
-	
-	/**
-	 *  @private
-	 */
-	override protected function thumb_mouseDownHandler(event:MouseEvent) : void
-	{
-		// Stop animation before thumb dragging
-		if (animatingSinglePage)
-		{
-			animationEndHandler(animator);
-			animator.stop();
-		}
-		
-		super.thumb_mouseDownHandler(event);
-	}
-	
+    
+    //---------------------------------
+    // Thumb dragging handlers
+    //---------------------------------
+    
+    /**
+     *  @private
+     */
+    override protected function thumb_mouseDownHandler(event:MouseEvent) : void
+    {
+        // Stop animation before thumb dragging
+        stopAnimation();
+        
+        super.thumb_mouseDownHandler(event);
+    }
+    
     //---------------------------------
     // Mouse up/down handlers
     //---------------------------------

     */
    protected function button_buttonDownHandler(event:Event):void
    {
		// Make sure we finish any running page animation before starting
		// to step.
		if (animatingSinglePage)
		{
			animationEndHandler(animator);
			animator.stop();
		}
		
        // Noop if we're currently running a stepping animation. We get
        // called repeatedly here due to the button's autoRepeat
        if (!steppingDown && !steppingUp)
        {
            var increment:Boolean = (event.target == incrementButton);

			if (!isStepping && 
				((increment && value < maximum) ||
				 (!increment && value > minimum)))
			{
				dispatchEvent(new FlexEvent(FlexEvent.CHANGING));
				isStepping = true;
			}
			
            // FIXME (chaase): first step is non-animated, just to simplify the delayed
            // start of the animated stepping. Seems okay, but worth thinking
            // about whether we should animate the first step too
            changeValueByStep(increment);
            
			systemManager.getSandboxRoot().addEventListener(MouseEvent.MOUSE_UP, 
				button_buttonUpHandler, true);
			systemManager.getSandboxRoot().addEventListener(
				SandboxMouseEvent.MOUSE_UP_SOMEWHERE, button_buttonUpHandler);
			
            // Only animate if smoothScrolling enabled and we're not at the end already
            if (getStyle("smoothScrolling") &&
                ((increment && value < maximum) ||

            }
            return;
        }
        
        dispatchEvent(new FlexEvent(FlexEvent.CHANGE_START));
        // Assume we're repeating unless user releases 
        animatingOnce = false;
        
        changeValueByPage(trackScrollDown);
        
