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

     */
    public function set selectedItem(value:*):void
    {
        selectedIndex = dataProvider.getItemIndex(value);
    }

    //----------------------------------

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