Index: trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 18804)
+++ trunk/src/org/openstreetmap/josm/gui/download/PlaceSelection.java	(revision 18805)
@@ -83,8 +83,8 @@
 
     private static class Server {
-        public final String name;
-        public final BiFunction<String, Collection<SearchResult>, URL> urlFunction;
-        public final String thirdcol;
-        public final String fourthcol;
+        final String name;
+        final BiFunction<String, Collection<SearchResult>, URL> urlFunction;
+        final String thirdcol;
+        final String fourthcol;
 
         Server(String n, BiFunction<String, Collection<SearchResult>, URL> u, String t, String f) {
@@ -133,5 +133,5 @@
     /**
      * Adds a new tab to the download dialog in JOSM.
-     *
+     * <p>
      * This method is, for all intents and purposes, the constructor for this class.
      */
@@ -192,5 +192,5 @@
         public void actionPerformed(ActionEvent e) {
             String searchExpression = cbSearchExpression.getText();
-            if (!isEnabled() || searchExpression.trim().isEmpty())
+            if (!isEnabled() || searchExpression.trim().isEmpty() || serverComboBox.getSelectedItem() == null)
                 return;
             cbSearchExpression.addCurrentItemToHistory();
@@ -298,11 +298,21 @@
                             JOptionPane.WARNING_MESSAGE, null
                     ));
+                    generateLastException(e);
                 }
             } catch (IOException | ParserConfigurationException e) {
-                if (!canceled) {
-                    OsmTransferException ex = new OsmTransferException(e);
-                    ex.setUrl(url.toString());
-                    lastException = ex;
-                }
+                generateLastException(e);
+            }
+        }
+
+        /**
+         * Generate an {@link OsmTransferException} that will be stored in {@link #lastException} if the operation is
+         * not cancelled.
+         * @param throwable The throwable to store as an {@link OsmTransferException}
+         */
+        private void generateLastException(Throwable throwable) {
+            if (!canceled) {
+                OsmTransferException ex = new OsmTransferException(throwable);
+                ex.setUrl(url.toString());
+                lastException = ex;
             }
         }
@@ -337,4 +347,8 @@
         }
 
+        /**
+         * Add data to the table
+         * @param data The data to add
+         */
         public void addData(List<SearchResult> data) {
             this.data.addAll(data);
@@ -403,4 +417,9 @@
         }
 
+        /**
+         * Set the header column values for the third and fourth columns
+         * @param third The new header for the third column
+         * @param fourth The new header for the fourth column
+         */
         public void setHeadlines(String third, String fourth) {
             col3.setHeaderValue(third);
