Index: src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 14545)
+++ src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(working copy)
@@ -64,6 +64,7 @@
 import org.openstreetmap.josm.io.ChangesetQuery;
 import org.openstreetmap.josm.io.NetworkManager;
 import org.openstreetmap.josm.io.OnlineResource;
+import org.openstreetmap.josm.tools.Destroyable;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.InputMapUtils;
 import org.openstreetmap.josm.tools.Logging;
@@ -103,6 +104,11 @@
         if (instance != null) {
             instance.setVisible(true);
             instance.dispose();
+            for (Component c : instance.pnlChangesetDetailTabs.getComponents()) {
+                if (c instanceof Destroyable) {
+                    ((Destroyable) c).destroy();
+                }
+            }
             instance = null;
         }
     }
Index: src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java
===================================================================
--- src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java	(revision 14545)
+++ src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetDetailPanel.java	(working copy)
@@ -45,6 +45,7 @@
 import org.openstreetmap.josm.gui.widgets.JosmTextField;
 import org.openstreetmap.josm.io.NetworkManager;
 import org.openstreetmap.josm.io.OnlineResource;
+import org.openstreetmap.josm.tools.Destroyable;
 import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.tools.Utils;
 import org.openstreetmap.josm.tools.date.DateUtils;
@@ -54,7 +55,7 @@
  * {@link ChangesetCacheManager}.
  * @since 2689
  */
-public class ChangesetDetailPanel extends JPanel implements PropertyChangeListener, ChangesetAware {
+public class ChangesetDetailPanel extends JPanel implements PropertyChangeListener, ChangesetAware, Destroyable {
 
     // CHECKSTYLE.OFF: SingleSpaceSeparator
     private final JosmTextField tfID        = new JosmTextField(10);
@@ -476,4 +477,10 @@
     public Changeset getCurrentChangeset() {
         return currentChangeset;
     }
+
+    @Override
+    public void destroy() {
+        MainApplication.getLayerManager().removeActiveLayerChangeListener(actSelectInCurrentLayer);
+        MainApplication.getLayerManager().removeActiveLayerChangeListener(actZoomInCurrentLayerAction);
+    }
 }
