Index: trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 12606)
+++ trunk/src/org/openstreetmap/josm/actions/OverpassDownloadAction.java	(revision 12608)
@@ -32,4 +32,5 @@
 import org.openstreetmap.josm.data.Bounds;
 import org.openstreetmap.josm.data.preferences.BooleanProperty;
+import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
 import org.openstreetmap.josm.gui.download.DownloadDialog;
 import org.openstreetmap.josm.gui.download.OverpassQueryList;
@@ -72,5 +73,5 @@
         dialog.rememberSettings();
         Optional<Bounds> selectedArea = dialog.getSelectedDownloadArea();
-        String overpassQuery = dialog.getOverpassQuery();
+        String overpassQuery = dialog.getRepairedOverpassQuery();
 
         /*
@@ -99,5 +100,5 @@
 
             if (errors.isEmpty() || onlyNoDataError) {
-                dialog.saveHistoricItemOnSuccess();
+                dialog.saveHistoricItemOnSuccess(overpassQuery);
             }
         };
@@ -111,5 +112,5 @@
         task.setZoomAfterDownload(dialog.isZoomToDownloadedDataRequired());
         Future<?> future = task.download(
-                new OverpassDownloadReader(area, OverpassServerPreference.getOverpassServer(), dialog.getOverpassQuery()),
+                new OverpassDownloadReader(area, OverpassServerPreference.getOverpassServer(), overpassQuery),
                 dialog.isNewLayerRequired(), area, null);
         Main.worker.submit(new PostDownloadHandler(task, future, errorReporter));
@@ -253,4 +254,31 @@
         }
 
+        String getRepairedOverpassQuery() {
+            String query = getOverpassQuery();
+            if (query.matches("(/\\*(\\*[^/]|[^\\*/])*\\*/|\\s)*")) {
+                // Empty query. User might want to download everything
+                boolean doFix = ConditionalOptionPaneUtil.showConfirmationDialog(
+                        "download.overpass.fix.emptytoall",
+                        this,
+                        tr("You entered an empty query. Do you want to download all data in this area instead?"),
+                        tr("Download all data?"),
+                        JOptionPane.YES_NO_OPTION,
+                        JOptionPane.QUESTION_MESSAGE,
+                        JOptionPane.YES_OPTION);
+                if (doFix) {
+                    return "[out:xml]; \n"
+                            + query + "\n"
+                            + "(\n"
+                            + "    node({{bbox}});\n"
+                            + "<;\n"
+                            + ");\n"
+                            + "(._;>;);"
+                            + "out meta;";
+                }
+            }
+            // Note: We can add more repairs here. We might e.g. want to intercept missing 'out meta'.
+            return query;
+        }
+
         /**
          * Sets the query that is displayed
@@ -264,7 +292,8 @@
         /**
          * Adds the current query to {@link OverpassQueryList}.
-         */
-        void saveHistoricItemOnSuccess() {
-            overpassQueryList.saveHistoricItem(overpassQuery.getText());
+         * @param overpassQueryToSave The query to save
+         */
+        void saveHistoricItemOnSuccess(String overpassQueryToSave) {
+            overpassQueryList.saveHistoricItem(overpassQueryToSave);
         }
 
