Index: trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 3522)
+++ trunk/src/org/openstreetmap/josm/actions/mapmode/SelectAction.java	(revision 3523)
@@ -507,9 +507,4 @@
             return; // not allowed together
 
-        // plain clicks with no modifiers clear the selection
-        if (!ctrl && !shift) {
-            ds.clearSelection();
-        }
-
         if (ctrl) {
             // Ctrl on an item toggles its selection status,
@@ -522,11 +517,13 @@
             }
         } else {
-            // This is either a plain click (which means we
-            // previously cleared the selection), or a
-            // shift-click where we are adding things to an
-            // existing selection.
-            ds.addSelected(selectionList);
-        }
-        Main.map.mapView.repaint();
+            // plain clicks with no modifiers
+            if (!shift) {
+                ds.setSelected(selectionList);
+            } else {
+                // add things to an
+                // existing selection.
+                ds.addSelected(selectionList);
+            }
+        }
     }
 
