      *  handle multiple selection via the commitMultipleSelection() 
      *  helper method. 
      */
-    override protected function commitSelection(dispatchSelectionChanged:Boolean = true):Boolean
-    {
-        var oldIndex:Number = _selectedIndex; 
+    override protected function commitSelection(dispatchChangedEvents:Boolean = true):Boolean
+    {
+        var oldSelectedIndex:Number = _selectedIndex;
+        var oldCaretIndex:Number = _currentCaretIndex;  
         
         // Ensure that multiple selection is allowed and that proposed 
         // selected indices honors it. For example, in the single 

    }
    
    /**
     *  @private
     */
    override protected function itemInCaret(index:int, caret:Boolean):void
    {
        super.itemInCaret(index, caret);
        
        var renderer:Object = dataGroup ? dataGroup.getElementAt(index) : null;
        
        if (renderer is IItemRenderer)

        // Validate and commit the multiple selection related properties. 
        commitMultipleSelection(); 
        
        // Set the currentCaretIndex based on the current selection 
        setCurrentCaretIndex(selectedIndex);
        
        // And dispatch selectionChanged and itemFocusChanged events so that all of 
        // the bindings update correctly. 
        if (dispatchChangedEvents && retVal)
        {
            var e:IndexChangedEvent = new IndexChangedEvent(IndexChangedEvent.SELECTION_CHANGED);
            e.oldIndex = oldSelectedIndex;
            e.newIndex = _selectedIndex;
            dispatchEvent(e);
            
            e = new IndexChangedEvent(IndexChangedEvent.ITEM_FOCUS_CHANGED); 
            e.oldIndex = oldCaretIndex; 
            e.newIndex = currentCaretIndex; 
            dispatchEvent(e);    
        }
        
        return retVal; 
