                 // move event will continue to be handled right in this function.
                 if (Scroller.dragEventThinning)
                 {
-                // Start the periodic timer that will do subsequent drag 
-                // scrolling if necessary. 
-                dragTimer.start();
-                
-                // No additional mouse events received yet, so no scrolling pending.
-                dragScrollPending = false;
-            }
+                    // Start the periodic timer that will do subsequent drag 
+                    // scrolling if necessary. 
+                    dragTimer.start();
+                    
+                    // No additional mouse events received yet, so no scrolling pending.
+                    dragScrollPending = false;
+                }
             }
             else
             {

        if (throwEffect && throwEffect.isPlaying && (didNotThrowFarEnough || threwTooFar))
        {
            // There's currently a throw animation playing, and it's throwing to a 
            // now-incorrect position.  We're going to stop the animation and start
            // a better one to continue the throw.
            
            var velX:Number = 0;
            var velY:Number = 0;

            // Get the current position of the existing throw animation
            var effectTime:Number = throwEffect.playheadTime;

            // It's possible for playheadTime to not be set if we're getting it
            // before the first animation timer call.
            if (isNaN(effectTime))
                effectTime = 0;

            var effectDuration:Number = throwEffect.duration;
            
            // Now get the current effective velocity for each motionpath in the animation. 
            for (var t:int = 0; t < throwEffect.motionPaths.length; t++)
            {
                var vel:Number = getMotionPathCurrentVelocity(throwEffect.motionPaths[t], effectTime, effectDuration);

                // The property can only either be horizontalScrollPosition or verticalScrollPosition
                if (throwEffect.motionPaths[t].property == "horizontalScrollPosition")
                    velX = vel;
                else
                    velY = vel;
            }

            // Stop the existing throw animation now that we've determined its current velocities.
            stoppedPreemptively = true;
            throwEffect.stop();

            // Now perform a new throw to get us to the right position.
            performThrow(-velX, -velY);
        }
        else if (!inTouchInteraction)
        {
            // No touch interaction is in effect, but the content may be sitting at
            // a scroll position that is now invalid.  Note that performThrow will
            // only actually perform a throw if the positions actually are invalid.
            performThrow(0, 0);
        }
    }
    
    /**

        }
        averageDt /= len-1;
        
		// if off screen for some reason, let's end scrolling:
		if (!scroller.stage)
		{
            endTouchScroll();
			return;
		}
		
        var lastMouseEventPoint:Point = mouseEventCoordinatesHistory[endIndex];

        // calculate the last velocity and make sure there was no pause that occurred
