                 pendingSelectionOnMouseUp = true;
                 pendingSelectionCtrlKey = event.ctrlKey;
                 pendingSelectionShiftKey = event.shiftKey;
-                
-                if (getStyle("interactionMode") == InteractionMode.TOUCH)
-                {
-                    if (selectedIndex != newIndex)
-                    {
-                        // FIXME (rfrishbe): hack for now.  will fix this later when we revisit the 
-                        // "down state" issue for an item renderer.  We need this to fix the case 
-                        // where touchDelay == 0 and calling startSelectButtonAfterDelay() assumes 
-                        // that mouseDownIndex is already set
-                        oldMouseDownIndex = mouseDownIndex;
-                        mouseDownIndex = newIndex;
-                        
-                        // visually select the item here
-                        startSelectButtonAfterDelayTimer();
-                        
-                        mouseDownIndex = oldMouseDownIndex;
-                    }
-                }
             }
             else
                 setSelectedIndex(newIndex, true);

     */
    protected function mouseUpHandler(event:Event):void
    {
        removeMouseHandlersForDragStart();
    }
    
    //--------------------------------------------------------------------------

            dispatchEvent(dragEvent);

            // Finally, remove the mouse handlers
            removeMouseHandlersForDragStart(event);
        }
    }
    
    private function removeMouseHandlersForDragStart(event:Event):void
    {
        // If dragging failed, but we had a pending selection, commit it here
        if (pendingSelectionOnMouseUp && !DragManager.isDragging)
        {
            if (getStyle("interactionMode") == InteractionMode.TOUCH)
            {
                // if in touch mode, and we didn't start scrolling, let's check to see
                // whether we moused up on the same item we mouse downed on. 
                // we don't do this check for mouse mode because technically selection happens 
                // on mousedown there.
                
                // this selectionChange check is basically a "click" check to make sure we moused downed on 
                // the same item that we moused up on.
                // We could just put it in click handler, but this is a little easier in mouseup
                // since we've combined some dragging logic and some touch interaction 
                // logic around pendingSelectionOnMouseUp.
                var selectionChange:Boolean = (event.target == mouseDownObject || 
                    (mouseDownObject is DisplayObjectContainer && 
                        DisplayObjectContainer(mouseDownObject).contains(event.target as DisplayObject)));
                
                // check to make sure they clciked on an item and selection should change
                if (selectionChange)
                {
                    // now handle the cases where the item is being selected or de-selected
                    // based on allowMultipleSelection
                    if (allowMultipleSelection)
                    {
                        setSelectedIndices(calculateSelectedIndices(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey), true);
                    }
                    else
                    {
                        setSelectedIndex(mouseDownIndex, true);
                    }
                }
            }
            else
            {
                // if in mouse interactionMode, we must have finished an attempted drag, so let's
                // select the item if in multi-select mode or de-select the item 
                // if in single select mode.  See item_mouseDownHandler for how this was setup
                if (allowMultipleSelection)
                {
                    setSelectedIndices(calculateSelectedIndices(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey), true);
                }
                else
                {
                    // Must be deselecting the current selected item since the only
                    // reason we are here could be dragging
                    setSelectedIndex(NO_SELECTION, true);
                }
            }
        }

