Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 3992)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 3993)
@@ -216,10 +216,8 @@
         // capabilities are already known to the editor instance. However
         // if it goes wrong that's not critical at this stage.
-        if (Main.pref.getBoolean("get-capabilities-at-start", false)) {
-            try {
-                OsmApi.getOsmApi().initialize(null);
-            } catch (Exception x) {
-                // ignore any exception here.
-            }
+        try {
+            OsmApi.getOsmApi().initialize(null, true);
+        } catch (Exception x) {
+            // ignore any exception here.
         }
 
Index: trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 3992)
+++ trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 3993)
@@ -149,15 +149,20 @@
     }
 
+    public void initialize(ProgressMonitor monitor) throws OsmApiInitializationException, OsmTransferCancelledException {
+        initialize(monitor, false);
+    }
     /**
      * Initializes this component by negotiating a protocol version with the server.
      *
+     * @param monitor
+     * @param fastFail true to request quick initialisation with a small timeout (more likely to throw exception)
      * @exception OsmApiInitializationException thrown, if an exception occurs
      */
-    public void initialize(ProgressMonitor monitor) throws OsmApiInitializationException, OsmTransferCancelledException {
+    public void initialize(ProgressMonitor monitor, boolean fastFail) throws OsmApiInitializationException, OsmTransferCancelledException {
         if (initialized)
             return;
         cancel = false;
         try {
-            String s = sendRequest("GET", "capabilities", null, monitor, false);
+            String s = sendRequest("GET", "capabilities", null, monitor, false, fastFail);
             InputSource inputSource = new InputSource(new StringReader(s));
             SAXParserFactory.newInstance().newSAXParser().parse(inputSource, new CapabilitiesParser());
@@ -506,5 +511,9 @@
 
     private String sendRequest(String requestMethod, String urlSuffix,String requestBody, ProgressMonitor monitor) throws OsmTransferException {
-        return sendRequest(requestMethod, urlSuffix, requestBody, monitor, true);
+        return sendRequest(requestMethod, urlSuffix, requestBody, monitor, true, false);
+    }
+
+    private String sendRequest(String requestMethod, String urlSuffix,String requestBody, ProgressMonitor monitor, boolean doAuth) throws OsmTransferException {
+        return sendRequest(requestMethod, urlSuffix, requestBody, monitor, doAuth, false);
     }
 
@@ -522,4 +531,5 @@
      * @param doAuthenticate  set to true, if the request sent to the server shall include authentication
      * credentials;
+     * @param fastFail true to request a short timeout
      *
      * @return the body of the HTTP response, if and only if the response code was "200 OK".
@@ -527,5 +537,5 @@
      *    been exhausted), or rewrapping a Java exception.
      */
-    private String sendRequest(String requestMethod, String urlSuffix,String requestBody, ProgressMonitor monitor, boolean doAuthenticate) throws OsmTransferException {
+    private String sendRequest(String requestMethod, String urlSuffix,String requestBody, ProgressMonitor monitor, boolean doAuthenticate, boolean fastFail) throws OsmTransferException {
         StringBuffer responseBody = new StringBuffer();
         int retries = getMaxRetries();
@@ -536,5 +546,5 @@
                 System.out.print(requestMethod + " " + url + "... ");
                 activeConnection = (HttpURLConnection)url.openConnection();
-                activeConnection.setConnectTimeout(15000);
+                activeConnection.setConnectTimeout(fastFail ? 1000 : 15000);
                 activeConnection.setRequestMethod(requestMethod);
                 if (doAuthenticate) {
