         
         // Destroy the dropIndicator instance
         destroyDropIndicator();
+    }
+    
+    /**
+     *  @private
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    // FIXME (rfrishbe): this should really be on start, not starting...
+    private function touchScrollStartingHandler(event:TouchScrollEvent):void
+    {
+        if (event.scrollingObject == this.scroller)
+        {
+            // cancel actual selection
+            mouseDownCancelledFromScroll = true;
+            
+            // remove visual selection indicator
+            mouseDownSelectTimer.stop();
+            mouseDownSelectTimer = null;
+            itemSelected(mouseDownIndex, false);
+            mouseDownIndex = -1;
+            mouseDownPoint = null;
+            pendingSelectionOnMouseUp = false;
+        }
     }
     
     /**

        else
            newIndex = dataGroup.getElementIndex(event.currentTarget as IVisualElement);

        if (!allowMultipleSelection)
        {
            // Single selection case, set the selectedIndex 

            }
            
            // Check to see if we're deselecting the currently selected item 
            if ((event.ctrlKey && selectedIndex == newIndex) || (getStyle("inputMode") == "touch" && scroller.viewport.clipAndEnableScrolling))
            {
                pendingSelectionOnMouseUp = true;
                pendingSelectionCtrlKey = event.ctrlKey;
                pendingSelectionShiftKey = event.shiftKey;
                
                if (getStyle("inputMode") == "touch" && scroller.viewport.clipAndEnableScrolling)
                {
                    if (selectedIndex != newIndex)
                    {
                        // visually select the item here
                        selectMouseDownItemAfterDelay(150);
                    }
                }
            }
            else
                setSelectedIndex(newIndex, true);
