Index: /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 16143)
+++ /trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 16144)
@@ -189,5 +189,5 @@
         if (newLayerName == null || newLayerName.isEmpty()) {
             Matcher matcher = Pattern.compile(pattern).matcher(url);
-            newLayerName = matcher.matches() && matcher.groupCount() > 0 ? matcher.group(1) : null;
+            newLayerName = matcher.matches() && matcher.groupCount() > 0 ? Utils.decodeUrl(matcher.group(1)) : null;
         }
     }
Index: /trunk/src/org/openstreetmap/josm/io/UrlPatterns.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/io/UrlPatterns.java	(revision 16143)
+++ /trunk/src/org/openstreetmap/josm/io/UrlPatterns.java	(revision 16144)
@@ -139,5 +139,5 @@
         OVERPASS_API_URL        (".*/interpreter\\?data=.*"),
         /** URL of Overpass API (XAPI compatibility) */
-        OVERPASS_API_XAPI_URL   (".*/xapi(\\?.*\\[@meta\\]|_meta\\?).*"),
+        OVERPASS_API_XAPI_URL   (".*/xapi(?:\\?.*\\[@meta\\]|_meta\\?)(.*)"),
         /** URL of remote .osm file */
         EXTERNAL_OSM_FILE       (".*/(.*\\.osm)"),
