      *  When the throw is over, no need to listen for mouse events anymore.
      *  Also, use this to hide the scrollbars.
      */
-    private function touchScrollEndHandler(event:TouchScrollEvent):void
-    {
-        captureNextMouseDown = false;
-        // don't reset captureNextClick here because touchScrollEnd
-        // may be invoked on mouseUp and mouseClick occurs immediately 
-        // after that, so we want to block this next mouseClick
-        
-        hideScrollBars();
+    private function gestureCaptureEndHandler(event:GestureCaptureEvent):void
+    {
+        if (event.relatedObject == this)
+        {
+            captureNextMouseDown = false;
+            // don't reset captureNextClick here because touchScrollEnd
+            // may be invoked on mouseUp and mouseClick occurs immediately 
+            // after that, so we want to block this next mouseClick
+            
+            hideScrollBars();
+        }
     }
     
     /**

     *  @private
     *  Event handler dispatched when someone is about to start scrolling.
     */
    private function touchScrollStartingHandler(event:TouchScrollEvent):void
    {
        // if it's us, don't do anything
        // if it's someone else and we've started scrolling, cancel this event
        // if it's someone else and we haven't started scrolling, don't do anything
        // here yet. Worry about it in the touchScrollStartHandler().
        if (event.scrollingObject != this && (horizontalScrollInProgress || verticalScrollInProgress))
        {
            event.preventDefault();
        }

            var dx:Number = event.stageX - scrollGestureAnchorPoint.x;
            var dy:Number = event.stageY - scrollGestureAnchorPoint.y;
            
            scroller.performDrag(dx, dy);
            
            // Call updateAfterEvent() to make sure it looks smooth, but don't 
            // call it on the first or second time because the thumb might not be positioned 
