         // Step 3: commit the selection change and caret change 
         if (_selectedIndex != NO_SELECTION)
             itemSelected(_selectedIndex, false);
-        if (_proposedSelectedIndex != NO_SELECTION)
+        if (_proposedSelectedIndex != NO_SELECTION && _proposedSelectedIndex != CUSTOM_SELECTED_ITEM)
             itemSelected(_proposedSelectedIndex, true);
         _selectedIndex = _proposedSelectedIndex;
         setCurrentCaretIndex(_proposedSelectedIndex); 

        {
            if (dataProvider)
                _proposedSelectedIndex = dataProvider.getItemIndex(_pendingSelectedItem);
            _pendingSelectedItem = undefined;
        }
        

    //  selectedItem
    //----------------------------------
    
    mx_internal var _pendingSelectedItem:*;
    private var _selectedItem:*;
    
    [Bindable("change")]
    /**
