Index: /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 9446)
+++ /trunk/src/org/openstreetmap/josm/actions/AutoScaleAction.java	(revision 9447)
@@ -221,4 +221,7 @@
      */
     protected Layer getFirstSelectedLayer() {
+        if (Main.main.getActiveLayer() == null) {
+            return null;
+        }
         List<Layer> layers = LayerListDialog.getInstance().getModel().getSelectedLayers();
         if (layers.isEmpty())
@@ -246,6 +249,4 @@
             break;
         case "layer":
-            if (Main.main.getActiveLayer() == null)
-                return null;
             // try to zoom to the first selected layer
             Layer l = getFirstSelectedLayer();
@@ -290,5 +291,5 @@
                 lastZoomTime = -1;
             }
-            DataSet dataset = Main.main.getCurrentDataSet();
+            final DataSet dataset = getCurrentDataSet();
             if (dataset != null) {
                 List<DataSource> dataSources = new ArrayList<>(dataset.getDataSources());
@@ -323,13 +324,11 @@
             break;
         case "layer":
-            if (!Main.isDisplayingMapView() || Main.map.mapView.getAllLayersAsList().isEmpty()) {
-                setEnabled(false);
-            } else {
-                // FIXME: should also check for whether a layer is selected in the layer list dialog
-                setEnabled(true);
-            }
+            setEnabled(getFirstSelectedLayer() != null);
             break;
         case "conflict":
             setEnabled(Main.map != null && Main.map.conflictDialog.getSelectedConflict() != null);
+            break;
+        case "download":
+            setEnabled(getCurrentDataSet() != null && !getCurrentDataSet().getDataSources().isEmpty());
             break;
         case "problem":
@@ -414,4 +413,5 @@
                 }
             }
+            updateEnabledState();
         }
     }
