Index: trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java	(revision 9484)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/server/OsmApiUrlInputPanel.java	(revision 9485)
@@ -16,4 +16,5 @@
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Arrays;
 
 import javax.swing.AbstractAction;
@@ -28,8 +29,9 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.preferences.CollectionProperty;
 import org.openstreetmap.josm.gui.SideButton;
 import org.openstreetmap.josm.gui.help.HelpUtil;
 import org.openstreetmap.josm.gui.widgets.AbstractTextComponentValidator;
-import org.openstreetmap.josm.gui.widgets.JosmTextField;
+import org.openstreetmap.josm.gui.widgets.HistoryComboBox;
 import org.openstreetmap.josm.gui.widgets.SelectAllOnFocusGainedDecorator;
 import org.openstreetmap.josm.io.OsmApi;
@@ -49,9 +51,11 @@
     private JLabel lblValid;
     private JLabel lblApiUrl;
-    private JosmTextField tfOsmServerUrl;
+    private HistoryComboBox tfOsmServerUrl;
     private transient ApiUrlValidator valOsmServerUrl;
     private SideButton btnTest;
     /** indicates whether to use the default OSM URL or not */
     private JCheckBox cbUseDefaultServerUrl;
+    private final CollectionProperty SERVER_URL_HISTORY = new CollectionProperty("osm-server.url-history", Arrays.asList(
+            "http://api06.dev.openstreetmap.org/api", "http://master.apis.dev.openstreetmap.org/api"));
 
     private transient ApiUrlPropagator propagator;
@@ -87,8 +91,8 @@
         gc.gridx = 1;
         gc.weightx = 1.0;
-        add(tfOsmServerUrl = new JosmTextField(), gc);
+        add(tfOsmServerUrl = new HistoryComboBox(), gc);
         lblApiUrl.setLabelFor(tfOsmServerUrl);
-        SelectAllOnFocusGainedDecorator.decorate(tfOsmServerUrl);
-        valOsmServerUrl = new ApiUrlValidator(tfOsmServerUrl);
+        SelectAllOnFocusGainedDecorator.decorate(tfOsmServerUrl.getEditorComponent());
+        valOsmServerUrl = new ApiUrlValidator(tfOsmServerUrl.getEditorComponent());
         valOsmServerUrl.validate();
         propagator = new ApiUrlPropagator();
@@ -103,5 +107,5 @@
         gc.weightx = 0.0;
         ValidateApiUrlAction actTest = new ValidateApiUrlAction();
-        tfOsmServerUrl.getDocument().addDocumentListener(actTest);
+        tfOsmServerUrl.getEditorComponent().getDocument().addDocumentListener(actTest);
         add(btnTest = new SideButton(actTest), gc);
     }
@@ -128,4 +132,5 @@
             propagator.propagate(url);
         }
+        tfOsmServerUrl.setPossibleItems(SERVER_URL_HISTORY.get());
     }
 
@@ -142,4 +147,6 @@
         } else {
             Main.pref.put("osm-server.url", hmiUrl);
+            tfOsmServerUrl.addCurrentItemToHistory();
+            SERVER_URL_HISTORY.put(tfOsmServerUrl.getHistory());
         }
         String newUrl = OsmApi.getOsmApi().getServerUrl();
