Index: trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 12351)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictDialog.java	(revision 12352)
@@ -41,8 +41,8 @@
 import org.openstreetmap.josm.command.Command;
 import org.openstreetmap.josm.command.SequenceCommand;
-import org.openstreetmap.josm.data.SelectionChangedListener;
 import org.openstreetmap.josm.data.conflict.Conflict;
 import org.openstreetmap.josm.data.conflict.ConflictCollection;
 import org.openstreetmap.josm.data.conflict.IConflictListener;
+import org.openstreetmap.josm.data.osm.DataSelectionListener;
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
@@ -75,5 +75,5 @@
  * @since 86
  */
-public final class ConflictDialog extends ToggleDialog implements ActiveLayerChangeListener, IConflictListener, SelectionChangedListener {
+public final class ConflictDialog extends ToggleDialog implements ActiveLayerChangeListener, IConflictListener, DataSelectionListener {
 
     private static final ColorProperty CONFLICT_COLOR = new ColorProperty(marktr("conflict"), Color.GRAY);
@@ -151,5 +151,4 @@
     @Override
     public void showNotify() {
-        DataSet.addSelectionListener(this);
         Main.getLayerManager().addAndFireActiveLayerChangeListener(this);
         refreshView();
@@ -159,5 +158,6 @@
     public void hideNotify() {
         Main.getLayerManager().removeActiveLayerChangeListener(this);
-        DataSet.removeSelectionListener(this);
+        OsmDataLayer editLayer = Main.getLayerManager().getEditLayer();
+        removeEditLayerListeners(editLayer);
     }
 
@@ -259,13 +259,21 @@
     @Override
     public void activeOrEditLayerChanged(ActiveLayerChangeEvent e) {
-        OsmDataLayer oldLayer = e.getPreviousEditLayer();
+        removeEditLayerListeners(e.getPreviousEditLayer());
+        addEditLayerListeners(e.getSource().getEditLayer());
+        refreshView();
+    }
+
+    private void addEditLayerListeners(OsmDataLayer newLayer) {
+        if (newLayer != null) {
+            newLayer.getConflicts().addConflictListener(this);
+            newLayer.data.addSelectionListener(this);
+        }
+    }
+
+    private void removeEditLayerListeners(OsmDataLayer oldLayer) {
         if (oldLayer != null) {
             oldLayer.getConflicts().removeConflictListener(this);
-        }
-        OsmDataLayer newLayer = e.getSource().getEditLayer();
-        if (newLayer != null) {
-            newLayer.getConflicts().addConflictListener(this);
-        }
-        refreshView();
+            oldLayer.data.removeSelectionListener(this);
+        }
     }
 
@@ -310,8 +318,8 @@
 
     @Override
-    public void selectionChanged(Collection<? extends OsmPrimitive> newSelection) {
+    public void selectionChanged(SelectionChangeEvent event) {
         lstConflicts.setValueIsAdjusting(true);
         lstConflicts.clearSelection();
-        for (OsmPrimitive osm : newSelection) {
+        for (OsmPrimitive osm : event.getSelection()) {
             if (conflicts != null && conflicts.hasConflictForMy(osm)) {
                 int pos = model.indexOf(osm);
