             }            
             case Keyboard.SPACE:
             {
-                currentRenderer = dataGroup.getElementAt(focusedIndex) as IItemRenderer;
+                currentRenderer = dataGroup.getElementAt(caretIndex) as IItemRenderer;
                 if (!currentRenderer || (currentRenderer.selected && requireSelection))
                     return;
                 currentRenderer.dispatchEvent(event);

    /**
     *  @private
     */
    private function buttonBar_keyUpHandler(event:KeyboardEvent):void
    {
        var currentRenderer:IItemRenderer;
        var renderer:IItemRenderer;

        
        if (renderer)
        {
            setCurrentCaretIndex(index);
            renderer.selected = selected;
        }
    }
        
    /**
     *  @private
     */
    override protected function partAdded(partName:String, instance:Object):void
    {
