Index: /trunk/src/org/openstreetmap/josm/tools/HttpClient.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 15741)
+++ /trunk/src/org/openstreetmap/josm/tools/HttpClient.java	(revision 15742)
@@ -23,4 +23,5 @@
 import java.util.regex.Pattern;
 import java.util.zip.GZIPInputStream;
+import java.util.zip.InflaterInputStream;
 
 import org.openstreetmap.josm.data.validation.routines.DomainValidator;
@@ -112,5 +113,5 @@
         }
         this.requestMethod = requestMethod;
-        this.headers.put("Accept-Encoding", "gzip");
+        this.headers.put("Accept-Encoding", "gzip, deflate");
     }
 
@@ -376,5 +377,9 @@
             InputStream in = getInputStream();
             in = new ProgressInputStream(in, getContentLength(), monitor);
-            in = "gzip".equalsIgnoreCase(getContentEncoding()) ? new GZIPInputStream(in) : in;
+            in = "gzip".equalsIgnoreCase(getContentEncoding())
+                    ? new GZIPInputStream(in)
+                    : "deflate".equalsIgnoreCase(getContentEncoding())
+                    ? new InflaterInputStream(in)
+                    : in;
             Compression compression = Compression.NONE;
             if (uncompress) {
Index: /trunk/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java
===================================================================
--- /trunk/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java	(revision 15741)
+++ /trunk/test/functional/org/openstreetmap/josm/tools/HttpClientTest.java	(revision 15742)
@@ -316,4 +316,32 @@
     public void testTakesTooLong() throws IOException {
         HttpClient.create(new URL("https://httpbin.org/delay/1")).setReadTimeout(500).connect(progress);
+    }
+
+    /**
+     * Test reading Deflate-encoded data.
+     * @throws IOException if any I/O error occurs
+     */
+    @Test
+    public void testDeflate() throws IOException {
+        final HttpClient.Response response = HttpClient.create(new URL("https://httpbin.org/deflate")).connect(progress);
+        assertThat(response.getResponseCode(), is(200));
+        try (InputStream in = response.getContent();
+             JsonReader json = JsonProvider.provider().createReader(in)) {
+            assertThat(json.readObject().getBoolean("deflated"), is(true));
+        }
+    }
+
+    /**
+     * Test reading Gzip-encoded data.
+     * @throws IOException if any I/O error occurs
+     */
+    @Test
+    public void testGzip() throws IOException {
+        final HttpClient.Response response = HttpClient.create(new URL("https://httpbin.org/gzip")).connect(progress);
+        assertThat(response.getResponseCode(), is(200));
+        try (InputStream in = response.getContent();
+             JsonReader json = JsonProvider.provider().createReader(in)) {
+            assertThat(json.readObject().getBoolean("gzipped"), is(true));
+        }
     }
 
