         
         private var timeout:uint;
         private var repeater:uint;
-		private var stop:Boolean = false;
         
         private function mouseDownHandler(event:MouseEvent):void
         {
             event.target.addEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);   
             event.target.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
-			stop = false;
-            setTimeout(sendFirstRepeat, delay); 
+            timeout = setTimeout(sendFirstRepeat, delay); 
         }
         
         private function mouseOutHandler(event:MouseEvent):void
         {
             event.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);   
             event.target.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); 
-			stop = true;
             if (repeater > 0)
                 clearInterval(repeater);
             repeater = 0;

        private function mouseUpHandler(event:MouseEvent):void
        {
            event.target.removeEventListener(MouseEvent.MOUSE_OUT, mouseOutHandler);   
            event.target.removeEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);   
			stop = true;
            if (repeater > 0)
                clearInterval(repeater);
            repeater = 0;

        {
            clearTimeout(timeout);
            timeout = 0;
        	repeater = setInterval(sendRepeats, interval);
        	IEventDispatcher(_strand).dispatchEvent(new Event("buttonRepeat"));
        }
        
        private function sendRepeats():void
        {
       	    IEventDispatcher(_strand).dispatchEvent(new Event("buttonRepeat"));
        }
	}
}