      *  is the same. This flag is cleared in commitProperties().
      */
     mx_internal var selectedIndexAdjusted:Boolean = false;
+    
+    /** 
+     *  @private
+     *  Flag that is set when the currentCaretIndex has been adjusted due to
+     *  items being added or removed. This flag is cleared in 
+     *  commitProperties().
+     */
+    mx_internal var currentCaretIndexAdjusted:Boolean = false;
     
     /**
      *  @private

     *  Returns true if the selection was committed, or false if the selection
     *  was cancelled.
     */
    protected function commitSelection(dispatchSelectionChanged:Boolean = true):Boolean
    {
        // Step 1: make sure the proposed selected index is in range.
        var maxIndex:int = dataProvider ? dataProvider.length - 1 : -1;
        var oldIndex:int = _selectedIndex;
        
        if (_proposedSelectedIndex < NO_SELECTION)
            _proposedSelectedIndex = NO_SELECTION;

     */
    override protected function commitProperties():void
    {
    	var e:IndexChangedEvent; 
        var changedSelection:Boolean = false;
        
        super.commitProperties();
