Index: /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 18947)
+++ /trunk/src/org/openstreetmap/josm/gui/layer/markerlayer/MarkerLayer.java	(revision 18948)
@@ -101,4 +101,6 @@
 
     private final ListenerList<IGeoImageLayer.ImageChangeListener> imageChangeListenerListenerList = ListenerList.create();
+    private MarkerMouseAdapter mouseAdapter;
+    private MapView mapView;
 
     /**
@@ -193,4 +195,6 @@
         data.forEach(Marker::destroy);
         data.clear();
+        if (mouseAdapter != null && mapView != null)
+            mapView.removeMouseListener(mouseAdapter);
         super.destroy();
     }
@@ -198,5 +202,10 @@
     @Override
     public LayerPainter attachToMapView(MapViewEvent event) {
-        event.getMapView().addMouseListener(new MarkerMouseAdapter());
+        if (mapView != null) {
+            Logging.warn("MarkerLayer was already attached to a MapView");
+        }
+        mapView = event.getMapView();
+        mouseAdapter = new MarkerMouseAdapter();
+        mapView.addMouseListener(mouseAdapter);
 
         if (event.getMapView().playHeadMarker == null) {
