Index: /applications/editors/josm/plugins/mirrored_download/build.xml
===================================================================
--- /applications/editors/josm/plugins/mirrored_download/build.xml	(revision 30161)
+++ /applications/editors/josm/plugins/mirrored_download/build.xml	(revision 30162)
@@ -5,5 +5,5 @@
     <property name="commit.message" value=""/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="6162"/>
+    <property name="plugin.main.version" value="6589"/>
 
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/mirrored_download/src/mirrored_download/MirroredDownloadAction.java
===================================================================
--- /applications/editors/josm/plugins/mirrored_download/src/mirrored_download/MirroredDownloadAction.java	(revision 30161)
+++ /applications/editors/josm/plugins/mirrored_download/src/mirrored_download/MirroredDownloadAction.java	(revision 30162)
@@ -56,5 +56,33 @@
             dialog.rememberSettings();
             Bounds area = dialog.getSelectedDownloadArea();
-            DownloadOsmTask task = new DownloadOsmTask();
+            DownloadOsmTask task = new DownloadOsmTask() {
+
+                protected final String encodePartialUrl(String url, String safePart) {
+                    if (url != null && safePart != null) {
+                        int pos = url.indexOf(safePart);
+                        if (pos > -1) {
+                            pos += safePart.length();
+                            try {
+                                return url.substring(0, pos) + URLEncoder.encode(url.substring(pos), "UTF-8").replaceAll("\\+", "%20");
+                            } catch (UnsupportedEncodingException e) {
+                                e.printStackTrace();
+                            }
+                        }
+                    }
+                    return url;
+                }
+
+                @Override
+                protected String modifyUrlBeforeLoad(String url) {
+                    if (url.matches(PATTERN_OVERPASS_API_URL)) {
+                        return encodePartialUrl(url, "/interpreter?data="); // encode only the part after the = sign
+                    } else if (url.matches(PATTERN_OVERPASS_API_XAPI_URL)) {
+                        return encodePartialUrl(url, "/xapi?"); // encode only the part after the ? sign
+                    } else {
+                        return url;
+                    }
+                }
+
+            };
             Future<?> future = task.download(
                     new MirroredDownloadReader(area, dialog.getOverpassType(), dialog.getOverpassQuery()),
