Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 2514)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 2515)
@@ -248,5 +248,6 @@
      * dataset. (However, the selection does only change in the active layer)
      */
-    public static Collection<SelectionChangedListener> selListeners = new LinkedList<SelectionChangedListener>();
+    public static Collection<SelectionChangedListener> selListeners = 
+        Collections.synchronizedList(new LinkedList<SelectionChangedListener>());
 
     /**
@@ -257,6 +258,8 @@
      */
     private static void notifySelectionChangeListeners(Collection<? extends OsmPrimitive> sel) {
-        for (SelectionChangedListener l : selListeners) {
-            l.selectionChanged(sel);
+        synchronized (selListeners) {
+            for (SelectionChangedListener l : selListeners) {
+                l.selectionChanged(sel);
+            }
         }
     }
