         // Delegate to the layout to tell us what the next item is we should select or focus into.
         // TODO (jszeto) At some point we should refactor this so we don't depend on layout
         // for keyboard handling. If layout doesn't exist, then use some other keyboard handler
-        var proposedNewIndex:int = layout.getDestinationIndex(navigationUnit, currentCaretIndex); 
+        var proposedNewIndex:int = layout.getDestinationIndex(navigationUnit, caretIndex); 
         
         // TODO (jszeto) proposedNewIndex depends on CTRL key
         // move CTRL key logic into single selection

        invalidateProperties();
    }
    
    [Bindable("selectionChanged")]
    /**
     *  An Array of the currently selected data items. 
     *  If multiple selection is disabled by setting <code>allowMultipleSelection</code>

                }
            }
            selectedIndices = newInterval;  
            ensureIndexIsVisible(proposedNewIndex); 
        }
        // Entering the caret state with the Ctrl key down 
        else if (event.ctrlKey)
        {
            var oldCaretIndex:Number = caretIndex; 
            setCurrentCaretIndex(proposedNewIndex);
            var e:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.CARET_CHANGE); 
            e.oldIndex = oldCaretIndex; 
            e.newIndex = caretIndex; 
            dispatchEvent(e);    
            ensureIndexIsVisible(proposedNewIndex); 
        }
        // Its just a new selection action, select the new index.
        else
        {
            selectedIndex = proposedNewIndex;
            ensureIndexIsVisible(proposedNewIndex);
        }
    }
  
