Index: /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 12902)
+++ /trunk/src/org/openstreetmap/josm/gui/download/DownloadDialog.java	(revision 12903)
@@ -365,4 +365,5 @@
     public void rememberSettings() {
         DOWNLOAD_TAB.put(tpDownloadAreaSelectors.getSelectedIndex());
+        downloadSourcesTab.getAllPanels().forEach(AbstractDownloadSourcePanel::rememberSettings);
         downloadSourcesTab.getSelectedPanel().ifPresent(panel -> DOWNLOAD_SOURCE_TAB.put(panel.getSimpleName()));
         DOWNLOAD_NEWLAYER.put(cbNewLayer.isSelected());
Index: /trunk/src/org/openstreetmap/josm/gui/download/OverpassDownloadSource.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/OverpassDownloadSource.java	(revision 12902)
+++ /trunk/src/org/openstreetmap/josm/gui/download/OverpassDownloadSource.java	(revision 12903)
@@ -8,6 +8,6 @@
 import java.awt.GridBagLayout;
 import java.awt.event.ActionEvent;
+import java.awt.event.FocusAdapter;
 import java.awt.event.FocusEvent;
-import java.awt.event.FocusListener;
 import java.util.Collection;
 import java.util.concurrent.Future;
@@ -15,5 +15,4 @@
 
 import javax.swing.AbstractAction;
-import javax.swing.Action;
 import javax.swing.Icon;
 import javax.swing.JButton;
@@ -32,4 +31,5 @@
 import org.openstreetmap.josm.data.preferences.BooleanProperty;
 import org.openstreetmap.josm.data.preferences.IntegerProperty;
+import org.openstreetmap.josm.data.preferences.StringProperty;
 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -90,4 +90,7 @@
         private static final String ACTION_IMG_SUBDIR = "dialogs";
 
+        private static final StringProperty DOWNLOAD_QUERY = new StringProperty("download.overpass.query",
+                "/*\n" + tr("Place your Overpass query below or generate one using the Overpass Turbo Query Wizard") + "\n*/");
+
         private final JosmTextArea overpassQuery;
         private final UserQueryList overpassQueryList;
@@ -102,35 +105,22 @@
 
             String tooltip = tr("Build an Overpass query using the Overpass Turbo Query Wizard tool");
-            Action queryWizardAction = new AbstractAction() {
+
+            JButton openQueryWizard = new JButton(tr("Query Wizard"));
+            openQueryWizard.setToolTipText(tooltip);
+            openQueryWizard.addActionListener(new AbstractAction() {
                 @Override
                 public void actionPerformed(ActionEvent e) {
                     new OverpassQueryWizardDialog(OverpassDownloadSourcePanel.this).showDialog();
                 }
-            };
-
-            JButton openQueryWizard = new JButton(tr("Query Wizard"));
-            openQueryWizard.setToolTipText(tooltip);
-            openQueryWizard.addActionListener(queryWizardAction);
-
-            // CHECKSTYLE.OFF: LineLength
-            this.overpassQuery = new JosmTextArea(
-                    "/*\n" +
-                            tr("Place your Overpass query below or generate one using the Overpass Turbo Query Wizard")
-                            + "\n*/",
-                    8, 80);
-            // CHECKSTYLE.ON: LineLength
+            });
+
+            this.overpassQuery = new JosmTextArea(DOWNLOAD_QUERY.get(), 8, 80);
             this.overpassQuery.setFont(GuiHelper.getMonospacedFont(overpassQuery));
-            this.overpassQuery.addFocusListener(new FocusListener() {
+            this.overpassQuery.addFocusListener(new FocusAdapter() {
                 @Override
                 public void focusGained(FocusEvent e) {
                     overpassQuery.selectAll();
                 }
-
-                @Override
-                public void focusLost(FocusEvent e) {
-                    // ignored
-                }
             });
-
 
             this.overpassQueryList = new UserQueryList(this, this.overpassQuery, "download.overpass.query");
@@ -207,10 +197,10 @@
         @Override
         public void rememberSettings() {
-            // nothing
+            DOWNLOAD_QUERY.put(overpassQuery.getText());
         }
 
         @Override
         public void restoreSettings() {
-            // nothing
+            overpassQuery.setText(DOWNLOAD_QUERY.get());
         }
 
Index: /trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java	(revision 12902)
+++ /trunk/src/org/openstreetmap/josm/gui/download/OverpassQueryWizardDialog.java	(revision 12903)
@@ -9,4 +9,5 @@
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.List;
 import java.util.Optional;
 
@@ -89,5 +90,10 @@
         panel.add(scroll, GBC.eol().fill(GBC.BOTH).anchor(GBC.CENTER));
 
-        queryWizard.setPossibleItems(OVERPASS_WIZARD_HISTORY.get());
+        List<String> items = OVERPASS_WIZARD_HISTORY.get();
+        Collections.reverse(items);
+        queryWizard.setPossibleItems(items);
+        if (!items.isEmpty()) {
+            queryWizard.setText(items.get(0));
+        }
 
         setCancelButton(CANCEL + 1);
