         if (value != prevValue)
             dispatchEvent(new Event("change"));
 
-        event.stopImmediatePropagation();
+		if (stopPropagation)
+        	event.stopPropagation();
     }
 }
 

    override protected function keyDownHandler(event:KeyboardEvent):void
    {
        var prevValue:Number = this.value;
        
        switch (event.keyCode)
        {
            case Keyboard.DOWN:
            //case Keyboard.LEFT:
            {
                step(false);
                break;
            }


            //case Keyboard.RIGHT:
            {
                step(true);
                stopPropagation = true;
                break;
            }

            case Keyboard.HOME:
            {
                value = minimum;
                stopPropagation = true;
                break;
            }

            case Keyboard.END:
            {
                value = maximum;
                stopPropagation = true;
                break;
            }
            
