Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 4863)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/ChangesetCacheManager.java	(revision 4864)
@@ -366,8 +366,12 @@
                 return;
 
-            ChangesetQuery query = dialog.getChangesetQuery();
-            if (query == null) return;
-            ChangesetQueryTask task = new ChangesetQueryTask(ChangesetCacheManager.this, query);
-            ChangesetCacheManager.getInstance().runDownloadTask(task);
+            try {
+                ChangesetQuery query = dialog.getChangesetQuery();
+                if (query == null) return;
+                ChangesetQueryTask task = new ChangesetQueryTask(ChangesetCacheManager.this, query);
+                ChangesetCacheManager.getInstance().runDownloadTask(task);
+            } catch (IllegalStateException e) {
+                JOptionPane.showMessageDialog(ChangesetCacheManager.this, e.getMessage(), tr("Error"), JOptionPane.ERROR_MESSAGE);
+            }
         }
     }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java	(revision 4863)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/BasicChangesetQueryPanel.java	(revision 4864)
@@ -233,5 +233,5 @@
                 query = query.forUser(im.getUserId()).beingOpen(true);
             } else
-                // anonymous -- should not happen. Message doesn't have to be translated.
+                // anonymous -- can happen with a fresh config. FIXME: Message have to be translated.
                 throw new IllegalStateException("Cannot create changeset query for open changesets of anonymous user");
         }
Index: trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java	(revision 4863)
+++ trunk/src/org/openstreetmap/josm/gui/dialogs/changeset/query/ChangesetQueryDialog.java	(revision 4864)
@@ -177,26 +177,30 @@
 
         public void actionPerformed(ActionEvent arg0) {
-            switch(tpQueryPanels.getSelectedIndex()) {
-            case 0:
-                // currently, query specifications can't be invalid in the basic query panel.
-                // We select from a couple of predefined queries and there is always a query
-                // selected
-                break;
-            case 1:
-                if (getChangesetQuery() == null) {
-                    alertInvalidChangesetQuery();
-                    pnlUrlBasedQueries.startUserInput();
-                    return;
+            try {
+                switch(tpQueryPanels.getSelectedIndex()) {
+                case 0:
+                    // currently, query specifications can't be invalid in the basic query panel.
+                    // We select from a couple of predefined queries and there is always a query
+                    // selected
+                    break;
+                case 1:
+                    if (getChangesetQuery() == null) {
+                        alertInvalidChangesetQuery();
+                        pnlUrlBasedQueries.startUserInput();
+                        return;
+                    }
+                    break;
+    
+                case 2:
+                    if (getChangesetQuery() == null) {
+                        pnlAdvancedQueries.displayMessageIfInvalid();
+                        return;
+                    }
                 }
-                break;
-
-            case 2:
-                if (getChangesetQuery() == null) {
-                    pnlAdvancedQueries.displayMessageIfInvalid();
-                    return;
-                }
+                setCanceled(false);
+                setVisible(false);
+            } catch (IllegalStateException e) {
+                JOptionPane.showMessageDialog(ChangesetQueryDialog.this, e.getMessage(), tr("Error"), JOptionPane.ERROR_MESSAGE);
             }
-            setCanceled(false);
-            setVisible(false);
         }
     }
