Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java	(revision 10453)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ConflictResolver.java	(revision 10454)
@@ -347,9 +347,19 @@
 
     /**
+     * Adds all registered listeners by this conflict resolver
+     * @see #unregisterListeners()
+     * @since 10454
+     */
+    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();
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java	(revision 10453)
+++ /trunk/src/org/openstreetmap/josm/gui/conflict/pair/ListMerger.java	(revision 10454)
@@ -883,8 +883,23 @@
     }
 
-    public void unlinkAsListener() {
-        myEntriesTable.unlinkAsListener();
-        mergedEntriesTable.unlinkAsListener();
-        theirEntriesTable.unlinkAsListener();
+    /**
+     * Adds all registered listeners by this merger
+     * @see #unregisterListeners()
+     * @since 10454
+     */
+    public void registerListeners() {
+        myEntriesTable.registerListeners();
+        mergedEntriesTable.registerListeners();
+        theirEntriesTable.registerListeners();
+    }
+
+    /**
+     * Removes all registered listeners by this merger
+     * @since 10454
+     */
+    public void unregisterListeners() {
+        myEntriesTable.unregisterListeners();
+        mergedEntriesTable.unregisterListeners();
+        theirEntriesTable.unregisterListeners();
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java	(revision 10453)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/ConflictResolutionDialog.java	(revision 10454)
@@ -52,4 +52,10 @@
 
     @Override
+    public void addNotify() {
+        super.addNotify();
+        registerListeners();
+    }
+
+    @Override
     public void setVisible(boolean isVisible) {
         String geom = getClass().getName() + ".geometry";
@@ -62,5 +68,4 @@
                 new WindowGeometry(this).remember(geom);
             }
-            unregisterListeners();
         }
         super.setVisible(isVisible);
@@ -99,4 +104,5 @@
     private void registerListeners() {
         resolver.addPropertyChangeListener(applyResolutionAction);
+        resolver.registerListeners();
     }
 
@@ -126,6 +132,4 @@
         resolver.addPropertyChangeListener(this);
         HelpUtil.setHelpContext(this.getRootPane(), ht("Dialog/Conflict"));
-
-        registerListeners();
     }
 
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 10453)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java	(revision 10454)
@@ -756,5 +756,5 @@
             selectionTableModel.unregister();
             memberTableModel.unregister();
-            memberTable.unlinkAsListener();
+            memberTable.unregisterListeners();
             if (windowMenuItem != null) {
                 Main.main.menu.windowMenu.remove(windowMenuItem);
Index: /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 10453)
+++ /trunk/src/org/openstreetmap/josm/gui/dialogs/relation/MemberTable.java	(revision 10454)
@@ -139,6 +139,6 @@
 
     @Override
-    public void unlinkAsListener() {
-        super.unlinkAsListener();
+    public void unregisterListeners() {
+        super.unregisterListeners();
         Main.getLayerManager().removeLayerChangeListener(zoomToGap);
         Main.getLayerManager().removeActiveLayerChangeListener(zoomToGap);
Index: /trunk/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java	(revision 10453)
+++ /trunk/src/org/openstreetmap/josm/gui/widgets/OsmPrimitivesTable.java	(revision 10454)
@@ -83,6 +83,4 @@
         JPopupMenu menu = new JPopupMenu();
         zoomToAction = buildZoomToAction();
-        Main.getLayerManager().addLayerChangeListener(zoomToAction);
-        Main.getLayerManager().addActiveLayerChangeListener(zoomToAction);
         getSelectionModel().addListSelectionListener(zoomToAction);
         menu.add(zoomToAction);
@@ -90,5 +88,19 @@
     }
 
-    public void unlinkAsListener() {
+    /**
+     * Adds all registered listeners by this table
+     * @see #unregisterListeners()
+     * @since 10454
+     */
+    public void registerListeners() {
+        Main.getLayerManager().addLayerChangeListener(zoomToAction);
+        Main.getLayerManager().addActiveLayerChangeListener(zoomToAction);
+    }
+
+    /**
+     * Removes all registered listeners by this table
+     * @since 10454
+     */
+    public void unregisterListeners() {
         Main.getLayerManager().removeLayerChangeListener(zoomToAction);
         Main.getLayerManager().removeActiveLayerChangeListener(zoomToAction);
