Index: trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java	(revision 8196)
+++ trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/ImportHandler.java	(revision 8197)
@@ -7,6 +7,9 @@
 import java.net.URL;
 import java.util.Collection;
+import java.util.LinkedHashSet;
+import java.util.Set;
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.actions.OpenLocationAction;
 import org.openstreetmap.josm.actions.downloadtasks.DownloadOsmTask;
 import org.openstreetmap.josm.actions.downloadtasks.DownloadTask;
@@ -30,7 +33,12 @@
     protected void handleRequest() throws RequestHandlerErrorException {
         try {
-            if (suitableDownloadTasks != null && !suitableDownloadTasks.isEmpty()) {
-                // TODO: handle multiple suitable download tasks ?
-                suitableDownloadTasks.iterator().next().loadUrl(isLoadInNewLayer(), url.toExternalForm(), null);
+            if (Main.pref.getBoolean("remotecontrol.import.interactive", true)) {
+                // OpenLocationAction queries the user if more than one task is suitable
+                new OpenLocationAction().openUrl(isLoadInNewLayer(), url.toExternalForm());
+            } else {
+                // Otherwise perform all tasks
+                for (DownloadTask task : suitableDownloadTasks) {
+                    task.loadUrl(isLoadInNewLayer(), url.toExternalForm(), null);
+                }
             }
         } catch (Exception ex) {
@@ -68,11 +76,12 @@
         // (Example with OSM-FR website that makes calls to the OSM-FR API)
         // For user-friendliness, let's try to decode these OSM API calls to give a better confirmation message.
-        String taskMessage = null;
+        Set<String> taskMessages = new LinkedHashSet<>();
         if (suitableDownloadTasks != null && !suitableDownloadTasks.isEmpty()) {
-            // TODO: handle multiple suitable download tasks ?
-            taskMessage = suitableDownloadTasks.iterator().next().getConfirmationMessage(url);
+            for (DownloadTask task : suitableDownloadTasks) {
+                taskMessages.add(Utils.firstNonNull(task.getConfirmationMessage(url), url.toString()));
+            }
         }
         return tr("Remote Control has been asked to import data from the following URL:")
-                + "<br>" + (taskMessage == null ? url.toString() : taskMessage);
+                + Utils.joinAsHtmlUnorderedList(taskMessages);
     }
 
