Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 5797)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 5798)
@@ -590,8 +590,8 @@
         boolean changed;
         synchronized (selectionLock) {
-            boolean wasEmpty = selectedPrimitives.isEmpty();
+            LinkedHashSet<OsmPrimitive> oldSelection = new LinkedHashSet<OsmPrimitive>(selectedPrimitives);
             selectedPrimitives = new LinkedHashSet<OsmPrimitive>();
-            changed = addSelected(selection, false)
-                    || (!wasEmpty && selectedPrimitives.isEmpty());
+            addSelected(selection, false);
+            changed = !oldSelection.equals(selectedPrimitives);
             if (changed) {
                 selectionSnapshot = null;
