Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 12054)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 12055)
@@ -911,17 +911,12 @@
      */
     private boolean doSelectionChange(Function<Set<OsmPrimitive>, SelectionChangeEvent> command) {
-        lock.readLock().lock();
-        try {
-            synchronized (selectionLock) {
-                SelectionChangeEvent event = command.apply(currentSelectedPrimitives);
-                if (event.isNop()) {
-                    return false;
-                }
-                currentSelectedPrimitives = event.getSelection();
-                selectionListeners.fireEvent(l -> l.selectionChanged(event));
-                return true;
-            }
-        } finally {
-            lock.readLock().unlock();
+        synchronized (selectionLock) {
+            SelectionChangeEvent event = command.apply(currentSelectedPrimitives);
+            if (event.isNop()) {
+                return false;
+            }
+            currentSelectedPrimitives = event.getSelection();
+            selectionListeners.fireEvent(l -> l.selectionChanged(event));
+            return true;
         }
     }
