Index: trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java	(revision 4016)
+++ trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java	(revision 4017)
@@ -435,7 +435,8 @@
             @Override
             public void run() {
-                Main.map.mapView.addMouseListener(new MouseAdapter() {
+                final MouseAdapter adapter = new MouseAdapter() {
                     @Override
                     public void mouseClicked(MouseEvent e) {
+                        if (!isVisible()) return;
                         if (e.getButton() == MouseEvent.BUTTON3) {
                             clickedTile = getTileForPixelpos(e.getX(), e.getY());
@@ -466,5 +467,6 @@
                         }
                     }
-                });
+                };
+                Main.map.mapView.addMouseListener(adapter);
 
                 MapView.addLayerChangeListener(new LayerChangeListener() {
@@ -481,5 +483,8 @@
                     @Override
                     public void layerRemoved(Layer oldLayer) {
-                        MapView.removeLayerChangeListener(this);
+                        if (oldLayer == TMSLayer.this) {
+                            Main.map.mapView.removeMouseListener(adapter);
+                            MapView.removeLayerChangeListener(this);
+                        }
                     }
                 });
