Index: trunk/src/org/openstreetmap/josm/io/OsmServerLocationReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmServerLocationReader.java	(revision 14215)
+++ trunk/src/org/openstreetmap/josm/io/OsmServerLocationReader.java	(revision 14216)
@@ -200,5 +200,11 @@
                 return null;
             progressMonitor.subTask(tr("Downloading OSM data..."));
-            return OsmReader.parseDataSet(compression.getUncompressedInputStream(in), progressMonitor.createSubTaskMonitor(1, false));
+            InputStream uncompressedInputStream = compression.getUncompressedInputStream(in);
+            ProgressMonitor subTaskMonitor = progressMonitor.createSubTaskMonitor(1, false);
+            if ("application/json".equals(contentType)) {
+                return OsmJsonReader.parseDataSet(uncompressedInputStream, subTaskMonitor);
+            } else {
+                return OsmReader.parseDataSet(uncompressedInputStream, subTaskMonitor);
+            }
         }
     }
Index: trunk/src/org/openstreetmap/josm/io/OsmServerReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 14215)
+++ trunk/src/org/openstreetmap/josm/io/OsmServerReader.java	(revision 14216)
@@ -43,4 +43,5 @@
     private boolean doAuthenticate;
     protected boolean gpxParsedProperly;
+    protected String contentType;
 
     /**
@@ -190,4 +191,5 @@
             try {
                 response = client.connect(progressMonitor);
+                contentType = response.getContentType();
             } catch (IOException e) {
                 Logging.error(e);
@@ -210,5 +212,5 @@
                     String errorBody = fetchResponseText(response);
                     throw new OsmApiException(response.getResponseCode(), errorHeader, errorBody, url.toString(), null,
-                            response.getContentType());
+                            contentType);
                 }
 
