                     //Quick check to see if selectedIndices had only one selected item
                     //and that item was de-selected
                     if (selectedIndices.length == 1 && (selectedIndices[0] == index))
-                        return [NO_SELECTION];  
+                    {
+                        //we need to respect requiresSelection 
+                        if (!requiresSelection)
+                            return [NO_SELECTION];
+                        else return [selectedIndices[0]]; 
+                    }
                     else
                     {
                         // Go through and see if the index passed in was in the 

                            if (_selectedIndices[i] == index)
                                found = true; 
                            else if (_selectedIndices[i] != index)
                                interval.push(_selectedIndices[i]); 
                        }
                        if (!found)
                        {

        //Going from multiple to single, clear out selection  
        if (!_allowMultipleSelection)
        {
            if (!requiresSelection)
                _proposedSelectedIndices = [NO_SELECTION];
            else 
                _proposedSelectedIndices = [0];
            commitMultipleSelection(); 
        } 
    }
