     {
         // Clear the flag so that we don't commit the selection again.
         multipleSelectionChanged = false;
-
+        
         var oldSelectedIndex:Number = _selectedIndex;
         var oldCaretIndex:Number = _caretIndex;  
         
         _proposedSelectedIndices = _proposedSelectedIndices.filter(isValidIndex);
-               
+        
         // Ensure that multiple selection is allowed and that proposed 
         // selected indices honors it. For example, in the single 
         // selection case, proposedSelectedIndices should only be a 

            dispatchEvent(dragEvent);

            // Finally, remove the mouse handlers
            removeMouseHandlersForDragStart();
        }
    }
    
    private var mouseDownCancelledFromScroll:Boolean = false;
    
    private function removeMouseHandlersForDragStart():void
    {
        // If dragging failed, but we had a pending selection, commit it here
        if (pendingSelectionOnMouseUp && !DragManager.isDragging && !mouseDownCancelledFromScroll)
        {
            if (allowMultipleSelection)
            {
                setSelectedIndices(calculateSelectedIndices(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey), true);
            }
            else if (getStyle("interactionMode") == InteractionMode.TOUCH)
            {
                setSelectedIndex(mouseDownIndex, true);
            }
            else
            {
                // Must be deselecting the current selected item.
                setSelectedIndex(NO_SELECTION, true);
            }
        }


        pendingSelectionOnMouseUp = false;
        
        mouseDownPoint = null;
        mouseDownObject = null;
        mouseDownIndex = -1;
        
        systemManager.getSandboxRoot().removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler, false);
