             mouseDownCancelledFromScroll = true;
             
             // remove visual selection indicator
-            mouseDownSelectTimer.stop();
+            if (mouseDownSelectTimer)
+                mouseDownSelectTimer.stop();
             mouseDownSelectTimer = null;
+            
+            // unselect what we thought was selected
             itemSelected(mouseDownIndex, false);
+            
+            // reselect what actually is selected
+            if (selectedIndex != NO_SELECTION)
+            {
+                itemSelected(selectedIndex, true);
+            }
+            
             mouseDownIndex = -1;
             mouseDownPoint = null;
             pendingSelectionOnMouseUp = false;

    {
        if (getStyle("inputMode") == "touch")
        {
            if (pendingSelectionOnMouseUp && mouseDownIndex == index && mouseDownSelectTimer && !mouseDownSelectTimer.running)
                return true;
        }
        
        return isItemIndexSelected(index);

     *  If <code>true</code> multiple selection is enabled. 
     *  When switched at run time, the current selection
     *  is cleared. 
     * 
     *  This should not be turned on when <code>inputMode</code> 
     *  is <code>touch</code>.
     *
     *  @default false
     *  
