     
     private function removeMouseHandlersForDragStart():void
     {
+        // If dragging failed, but we had a pending selection, commit it here
+        if (pendingSelectionOnMouseUp && !DragManager.isDragging)
+        {
+            selectedIndices = calculateSelectedIndicesInterval(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey);
+            pendingSelectionOnMouseUp = false;
+        }
+        
         mouseDownPoint = null;
         mouseDownIndex = -1;
         

     *  Taking into account which modifier keys were clicked, the new
     *  selectedIndices interval is calculated. 
     */
    private function calculateSelectedIndicesInterval(renderer:IVisualElement, shiftKey:Boolean, ctrlKey:Boolean):Vector.<int>
    {
        var i:int; 
        var interval:Vector.<int> = new Vector.<int>();  
        var index:Number = dataGroup.getElementIndex(renderer); 
        
        if (!shiftKey)
        {

     */
    private var mouseDownIndex:int = -1;
    
    /**
     *  @private
     *  When dragging is enabled with multiple selection, the selection is not
     *  comitted immediately on mouse down, but we wait to see whether the user
     *  intended to start a drag gesture instead. In that case we postpone
     *  comitting the selection until mouse up.
     */
    private var pendingSelectionOnMouseUp:Boolean = false;
    private var pendingSelectionShiftKey:Boolean;
    private var pendingSelectionCtrlKey:Boolean;
    
    //--------------------------------------------------------------------------
    //
    //  Skin Parts
