                  
         super.selectedIndex = value;
         
-        if (value !== NO_SELECTION) 
+        if (value > NO_SELECTION) 
             _proposedSelectedIndices = [value];
         else 
             _proposedSelectedIndices = [];
             
-        commitMultipleSelection(); 
+        multipleSelectionChanged = true;
+        invalidateProperties();  
     }
     
     //----------------------------------

        {
            for (i = 0; i < selectedIndices.length; i++)
            {
                curr = selectedIndices[i]; 
                //adding an item above one of the selected items,
                //bump the selected item up. 
                if (curr >= index)

     */
    override public function get selectedItem():*
    {   
        if (dataProvider == null)
            return undefined; 
        
        if (selectedIndices && selectedIndices.length > 0)
            return dataProvider.getItemAt(selectedIndices[selectedIndices.length - 1]); 
        
        return super.selectedItem; 
    }
    
