         // 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

          }
          // horizontal scrolling when focus is on header
          else if ( event.shiftKey
                  && (event.keyCode == Keyboard.PAGE_UP
                     || event.keyCode == Keyboard.PAGE_DOWN) )
          {
             moveSelectionHorizontally(event.keyCode, event.shiftKey, event.ctrlKey);
          }
        
          // don't we allow vertical scrolling when focus is on the header?


        var newCaretColumnIndex:int;

        switch (keyCode)
        {
            case Keyboard.UP:
            {
