Index: trunk/src/org/openstreetmap/josm/gui/layer/geoimage/WikimediaCommonsLoader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/layer/geoimage/WikimediaCommonsLoader.java	(revision 18942)
+++ trunk/src/org/openstreetmap/josm/gui/layer/geoimage/WikimediaCommonsLoader.java	(revision 18943)
@@ -16,4 +16,8 @@
 import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerChangeListener;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerOrderChangeEvent;
+import org.openstreetmap.josm.gui.layer.LayerManager.LayerRemoveEvent;
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.Logging;
@@ -66,10 +70,12 @@
      * @since 18021
      */
-    public static class WikimediaCommonsLoadImagesAction extends JosmAction {
+    public static class WikimediaCommonsLoadImagesAction extends JosmAction implements LayerChangeListener {
         /**
          * Constructs a new {@code WikimediaCommonsLoadImagesAction}
          */
         public WikimediaCommonsLoadImagesAction() {
-            super(tr("Load images from Wikimedia Commons"), "wikimedia_commons", null, null, false);
+            super(tr("Load images from Wikimedia Commons"), "wikimedia_commons", null, null, false, false);
+            MainApplication.getLayerManager().addLayerChangeListener(this);
+            initEnabledState();
         }
 
@@ -84,4 +90,26 @@
             setEnabled(MainApplication.isDisplayingMapView());
         }
+
+        @Override
+        public void layerAdded(LayerAddEvent e) {
+            updateEnabledState();
+        }
+
+        @Override
+        public void layerRemoving(LayerRemoveEvent e) {
+            if (e.isLastLayer())
+                setEnabled(false);
+        }
+
+        @Override
+        public void layerOrderChanged(LayerOrderChangeEvent e) {
+            // not used
+        }
+
+        @Override
+        public void destroy() {
+            MainApplication.getLayerManager().removeLayerChangeListener(this);
+            super.destroy();
+        }
     }
 }
