             {
                 newValue = nearestValidValue(pendingValue - stepSize, snapInterval);
                 setValue(newValue);
-                stopPropagation = true;
+                event.preventDefault();
                 break;
             }
 

            {
                newValue = nearestValidValue(pendingValue + stepSize, snapInterval);
                setValue(newValue);
                stopPropagation = true;
                break;
            }
            
            case Keyboard.HOME:
            {
                value = minimum;
                stopPropagation = true;
                break;
            }

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

        if (value != prevValue)
            dispatchEvent(new Event(Event.CHANGE));
          
        // Flex 4 redispatches scrolling keyboard events with cancelable=true
        // so typically we will preventDefault (read "cancel") here, rather
        // than stopping dispatching.
        if (stopPropagation)
        {
            if (event.cancelable)
                event.preventDefault();
            else
                event.stopPropagation();
        }
    }

    //---------------------------------

        // array is returned. Consider reversed HSliders or VSliders.
        var prevValue:Number = this.value;
        var newValue:Number;
        
        switch (event.keyCode)
        {
