Index: trunk/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java	(revision 14495)
+++ trunk/src/org/openstreetmap/josm/data/validation/routines/DomainValidator.java	(revision 14496)
@@ -2011,5 +2011,5 @@
      */
     // Needed by UrlValidator
-    static String unicodeToASCII(String input) {
+    public static String unicodeToASCII(String input) {
         if (isOnlyASCII(input)) { // skip possibly expensive processing
             return input;
Index: trunk/src/org/openstreetmap/josm/tools/HttpClient.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 14495)
+++ trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 14496)
@@ -13,4 +13,5 @@
 import java.net.CookieManager;
 import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
@@ -30,4 +31,5 @@
 
 import org.openstreetmap.josm.data.Version;
+import org.openstreetmap.josm.data.validation.routines.DomainValidator;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -78,5 +80,11 @@
 
     private HttpClient(URL url, String requestMethod) {
-        this.url = url;
+        try {
+            String host = url.getHost();
+            String asciiHost = DomainValidator.unicodeToASCII(host);
+            this.url = asciiHost.equals(host) ? url : new URL(url.getProtocol(), asciiHost, url.getPort(), url.getFile());
+        } catch (MalformedURLException e) {
+            throw new JosmRuntimeException(e);
+        }
         this.requestMethod = requestMethod;
         this.headers.put("Accept-Encoding", "gzip");
