                 // commitSelectedIndex() is called below.
                 _proposedSelectedIndex = 0;
             }
+        }
+        
+        if (_pendingSelectedItem !== undefined)
+        {
+            if (dataProvider)
+                _proposedSelectedIndex = dataProvider.getItemIndex(_pendingSelectedItem);
+            _pendingSelectedItem = undefined;
         }
         
         if (_proposedSelectedIndex != NO_PROPOSED_SELECTION)

     */
    public function get selectedItem():*
    {
        if (selectedIndex == NO_SELECTION)
           return undefined;
           
        return dataProvider.getItemAt(selectedIndex);

    //  selectedItem
    //----------------------------------
    
    private var _pendingSelectedItem:*;
    
    [Bindable("selectionChanged")]
    /**
     *  The item that is currently selected. 
