         // get the item renderer to be passed in the ITEM_OPENING events
         if (listItems[visibleRowIndex])
             treeItemRenderer = listItems[visibleRowIndex][treeColumnIndex];
-
-        if (event.ctrlKey && event.shiftKey && event.keyCode == Keyboard.SPACE)
+		
+		// If rtl layout, need to swap LEFT and RIGHT so correct action
+		// is done.
+		var keyCode:uint = mapKeycodeForLayoutDirection(event);
+
+        if (event.ctrlKey && event.shiftKey && keyCode == Keyboard.SPACE)
         {
             // if user has moved the caret cursor from the selected item
             // move the cursor back to selected item

     */
    override protected function headerNavigationHandler(event:KeyboardEvent):void
    {
       if (!columnGrouping || headerIndex == -1 || selectedHeaderInfo == null)
       {
          super.headerNavigationHandler(event);

                }
            }
        }
        else if (keyCode == Keyboard.NUMPAD_SUBTRACT)
        {
            if (isItemOpen(item))
            {
