Index: trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java	(revision 3100)
+++ trunk/src/org/openstreetmap/josm/gui/ExceptionDialogUtil.java	(revision 3101)
@@ -282,4 +282,36 @@
 
     /**
+     * Explains a {@see OsmApiException} which was thrown because of a
+     * client timeout (HTTP 408)
+     *
+     * @param e the exception
+     */
+    public static void explainClientTimeout(OsmApiException e) {
+        HelpAwareOptionPane.showOptionDialog(
+                Main.parent,
+                ExceptionUtil.explainClientTimeout(e),
+                tr("Client Time Out"),
+                JOptionPane.ERROR_MESSAGE,
+                ht("/ErrorMessages#ClientTimeOut")
+        );
+    }
+
+    /**
+     * Explains a {@see OsmApiException} with a generic error
+     * message.
+     *
+     * @param e the exception
+     */
+    public static void explainGenericHttpException(OsmApiException e) {
+        HelpAwareOptionPane.showOptionDialog(
+                Main.parent,
+                ExceptionUtil.explainClientTimeout(e),
+                tr("Communication with OSM server failed"),
+                JOptionPane.ERROR_MESSAGE,
+                ht("/ErrorMessages#GenericCommunicationError")
+        );
+    }
+
+    /**
      * Explains a {@see OsmApiException} which was thrown because accessing a protected
      * resource was forbidden.
@@ -405,4 +437,10 @@
                 explainAuthorizationFailed(oae);
                 return;
+            case HttpURLConnection.HTTP_CLIENT_TIMEOUT:
+                explainClientTimeout(oae);
+                return;
+            default:
+                explainGenericHttpException(oae);
+                return;
             }
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 3100)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/SelectionListDialog.java	(revision 3101)
@@ -118,12 +118,4 @@
 
         JPanel buttonPanel = getButtonPanel(2);
-        //
-        //        selectButton = new SideButton(marktr("Select"), "select", "SelectionList",
-        //                tr("Set the selected elements on the map to the selected items in the list above."),
-        //                new ActionListener() {
-        //            public void actionPerformed(ActionEvent e) {
-        //                updateMap();
-        //            }
-        //        });
         selectButton = new SideButton(actSelect = new SelectAction());
         buttonPanel.add(selectButton);
Index: trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java	(revision 3100)
+++ trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java	(revision 3101)
@@ -141,4 +141,47 @@
         );
     }
+
+    /**
+     * Explains an OSM API exception because of a client timeout (HTTP 408).
+     * 
+     * @param e the exception
+     * @return the message
+     */
+    public static String explainClientTimeout(OsmApiException e) {
+        e.printStackTrace();
+        return tr("<html>"
+                + "Communication with the OSM server ''{0}'' timed out. Please retry later."
+                + "</html>",
+                OsmApi.getOsmApi().getBaseUrl()
+        );
+    }
+
+    /**
+     * Replies a generic error message for an OSM API exception
+     * 
+     * @param e the exception
+     * @return the message
+     */
+    public static String explainGenericOsmApiException(OsmApiException e) {
+        e.printStackTrace();
+        String errMsg = e.getErrorHeader();
+        if (errMsg == null) {
+            errMsg = e.getErrorBody();
+        }
+        if (errMsg == null) {
+            errMsg = tr("no error message available");
+        }
+        return tr("<html>"
+                + "Communication with the OSM server ''{0}''failed. The server replied<br>"
+                + "the following error code and the following error message:<br>"
+                + "<strong>Error code:<strong> {1}<br>"
+                + "<strong>Error message (untranslated)</strong>: {2}"
+                + "</html>",
+                OsmApi.getOsmApi().getBaseUrl(),
+                e.getResponseCode(),
+                errMsg
+        );
+    }
+
     /**
      * Explains an error due to a 409 conflict
