Index: trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java	(revision 14563)
+++ trunk/src/org/openstreetmap/josm/data/imagery/TMSCachedTileLoaderJob.java	(revision 14565)
@@ -51,4 +51,5 @@
     static final Pattern SERVICE_EXCEPTION_PATTERN = Pattern.compile("(?s).+<ServiceException[^>]*>(.+)</ServiceException>.+");
     static final Pattern CDATA_PATTERN = Pattern.compile("(?s)\\s*<!\\[CDATA\\[(.+)\\]\\]>\\s*");
+    static final Pattern JSON_PATTERN = Pattern.compile("\\{\"message\":\"(.+)\"\\}");
     protected final Tile tile;
     private volatile URL url;
@@ -321,6 +322,9 @@
     @Override
     public String detectErrorMessage(String data) {
-        Matcher m = SERVICE_EXCEPTION_PATTERN.matcher(data);
-        return m.matches() ? removeCdata(Utils.strip(m.group(1))) : super.detectErrorMessage(data);
+        Matcher xml = SERVICE_EXCEPTION_PATTERN.matcher(data);
+        Matcher json = JSON_PATTERN.matcher(data);
+        return xml.matches() ? removeCdata(Utils.strip(xml.group(1)))
+            : json.matches() ? Utils.strip(json.group(1))
+            : super.detectErrorMessage(data);
     }
 
