diff --git a/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java b/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java
index 68626a7..2d3fdf4 100644
--- a/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java
+++ b/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java
@@ -346,11 +346,20 @@ public class ConflictResolver extends JPanel implements PropertyChangeListener {
     }
 
     /**
+     * Adds all registered listeners by this conflict resolver
+     * @see #unregisterListeners()
+     */
+    public void registerListeners() {
+        nodeListMerger.registerListeners();
+        relationMemberMerger.registerListeners();
+    }
+
+    /**
      * Removes all registered listeners by this conflict resolver
      */
     public void unregisterListeners() {
-        nodeListMerger.unlinkAsListener();
-        relationMemberMerger.unlinkAsListener();
+        nodeListMerger.unregisterListeners();
+        relationMemberMerger.unregisterListeners();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java b/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java
index fd0753e..152e17c 100644
--- a/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java
+++ b/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java
@@ -882,10 +882,23 @@ public abstract class ListMerger<T extends PrimitiveId> extends JPanel implement
         );
     }
 
-    public void unlinkAsListener() {
-        myEntriesTable.unlinkAsListener();
-        mergedEntriesTable.unlinkAsListener();
-        theirEntriesTable.unlinkAsListener();
+    /**
+     * Adds all registered listeners by this merger
+     * @see #unregisterListeners()
+     */
+    public void registerListeners() {
+        myEntriesTable.registerListeners();
+        mergedEntriesTable.registerListeners();
+        theirEntriesTable.registerListeners();
+    }
+
+    /**
+     * Removes all registered listeners by this merger
+     */
+    public void unregisterListeners() {
+        myEntriesTable.unregisterListeners();
+        mergedEntriesTable.unregisterListeners();
+        theirEntriesTable.unregisterListeners();
     }
 
     protected final <P extends OsmPrimitive> OsmDataLayer findLayerFor(P primitive) {
diff --git a/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java b/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
index ee637b7..fcd2344 100644
--- a/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
+++ b/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
@@ -51,6 +51,12 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
     }
 
     @Override
+    public void addNotify() {
+        super.addNotify();
+        registerListeners();
+    }
+
+    @Override
     public void setVisible(boolean isVisible) {
         String geom = getClass().getName() + ".geometry";
         if (isVisible) {
@@ -61,7 +67,6 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
             if (isShowing()) { // Avoid IllegalComponentStateException like in #8775
                 new WindowGeometry(this).remember(geom);
             }
-            unregisterListeners();
         }
         super.setVisible(isVisible);
     }
@@ -98,6 +103,7 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
 
     private void registerListeners() {
         resolver.addPropertyChangeListener(applyResolutionAction);
+        resolver.registerListeners();
     }
 
     private void unregisterListeners() {
@@ -125,8 +131,6 @@ public class ConflictResolutionDialog extends JDialog implements PropertyChangeL
 
         resolver.addPropertyChangeListener(this);
         HelpUtil.setHelpContext(this.getRootPane(), ht("Dialog/Conflict"));
-
-        registerListeners();
     }
 
     /**
diff --git a/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java b/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java
index fe872d0..cafd6aa 100644
--- a/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java
+++ b/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java
@@ -82,14 +82,24 @@ public abstract class OsmPrimitivesTable extends JosmTable {
     protected JPopupMenu buildPopupMenu() {
         JPopupMenu menu = new JPopupMenu();
         zoomToAction = buildZoomToAction();
-        Main.getLayerManager().addLayerChangeListener(zoomToAction);
-        Main.getLayerManager().addActiveLayerChangeListener(zoomToAction);
         getSelectionModel().addListSelectionListener(zoomToAction);
         menu.add(zoomToAction);
         return menu;
     }
 
-    public void unlinkAsListener() {
+    /**
+     * Adds all registered listeners by this table
+     * @see #unregisterListeners()
+     */
+    public void registerListeners() {
+        Main.getLayerManager().addLayerChangeListener(zoomToAction);
+        Main.getLayerManager().addActiveLayerChangeListener(zoomToAction);
+    }
+
+    /**
+     * Removes all registered listeners by this table
+     */
+    public void unregisterListeners() {
         Main.getLayerManager().removeLayerChangeListener(zoomToAction);
         Main.getLayerManager().removeActiveLayerChangeListener(zoomToAction);
     }
