      */
     override protected function commitSelection(dispatchChangedEvents:Boolean = true):Boolean
     {
+		// Clear the flag so that we don't commit the selection again.
+		multipleSelectionChanged = false;
+
         var oldSelectedIndex:Number = _selectedIndex;
         var oldCaretIndex:Number = _caretIndex;  
         

        super.commitProperties(); 
        
        if (multipleSelectionChanged)
        {
            commitSelection(); 
            multipleSelectionChanged = false; 
        }
    }
    
    /**

            validateProperties();

        // Handle any drag gestures that may have been started
        if (!dragEnabled || !selectedIndices || this.selectedIndices.indexOf(newIndex) == -1)
            return;
        
        mouseDownPoint = event.target.localToGlobal(new Point(event.localX, event.localY));
