             // or should we preserve selectedIndex
             if (selectedIndex >= 0 && dataProvider && selectedIndex < dataProvider.length)
                itemSelected(selectedIndex, true);
+            else if (requiresSelection)
+               _proposedSelectedIndex = 0;
             else
                selectedIndex = -1;
         }

            _proposedSelectedIndex = maxIndex;
        if (requiresSelection && _proposedSelectedIndex == NO_SELECTION && 
            dataProvider && dataProvider.length > 0)
            return false;
        
        // Step 2: dispatch the "selectionChanging" event. If preventDefault() is called
        // on this event, the selection change will be cancelled.

        doingWholesaleChanges = true;
        
        super.dataProvider = value;
        invalidateProperties();
        
        if (dataProvider)
            dataProvider.addEventListener(CollectionEvent.COLLECTION_CHANGE, collectionChangeHandler);
