             var count:int = value.length;
             
             for (var i:int = 0; i < count; i++)
-                indices[i] = dataProvider.getItemIndex(value[i]);
+            {
+                //TODO (dsubrama) What exactly should we do if an 
+                //invalid item is in the selectedItems array? 
+                var index:Number = dataProvider.getItemIndex(value[i]);
+                if (index != -1)
+                { 
+                    indices[i] = index;  
+                }
+                if (index == -1)
+                {
+                    indices = [];
+                    break;  
+                }
+            }
         }
         
         selectedIndices = indices;

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

    {
        var i:int; 
        var curr:Number; 
        var newInterval:Array = [];
        
        if (!selectedIndices || (_proposedSelectedIndices != null))
            validateNow(); 
        
        if (selectedIndex == NO_SELECTION || doingWholesaleChanges)
            return;
