         {
             //A contiguous selection action has occurred. Figure out which new 
             //indices to add to the selection interval and return that. 
-            var start:Number = (!isEmpty(selectedIndices)) ? selectedIndices[0] : -1; 
+            var start:Number = (!isEmpty(selectedIndices)) ? selectedIndices[0] : 0; 
             var end:Number = index; 
             if (start < end)
             {

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

     */
    override public function get selectedIndex():int
    {   
        if (!allowMultipleSelection)
            return super.selectedIndex;
        
        //The case that selection has been set as a result of 
        //requiresSelection, we want to make sure the multiple selection
        //properties stay in sync. 
        if (!_selectedIndices && _selectedIndex >= 0)
        {
            _selectedIndices = [_selectedIndex]; 
            return _selectedIndex; 
        }
            
        if (_selectedIndices && _selectedIndices.length > 0)
            return _selectedIndices[_selectedIndices.length - 1];
            
        return NO_SELECTION;
    }
