Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 11993)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 11995)
@@ -830,6 +830,7 @@
      * Handle command line instructions after GUI has been initialized.
      * @param args program arguments
-     */
-    protected static void postConstructorProcessCmdLine(ProgramArguments args) {
+     * @return the list of submitted tasks
+     */
+    protected static List<Future<?>> postConstructorProcessCmdLine(ProgramArguments args) {
         List<Future<?>> tasks = new ArrayList<>();
         List<File> fileList = new ArrayList<>();
@@ -843,15 +844,13 @@
             tasks.addAll(DownloadParamType.paramType(s).downloadGps(s));
         }
-        // Make sure all download tasks complete before handling selection arguments
-        for (Future<?> task : tasks) {
-            try {
-                task.get();
-            } catch (InterruptedException | ExecutionException e) {
-                error(e);
-            }
-        }
-        for (String s : args.get(Option.SELECTION)) {
-            SearchAction.search(s, SearchAction.SearchMode.add);
-        }
+        final Collection<String> selectionArguments = args.get(Option.SELECTION);
+        if (!selectionArguments.isEmpty()) {
+            tasks.add(Main.worker.submit(() -> {
+                for (String s : selectionArguments) {
+                    SearchAction.search(s, SearchAction.SearchMode.add);
+                }
+            }));
+        }
+        return tasks;
     }
 
