Index: trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 14217)
+++ trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java	(revision 14219)
@@ -471,4 +471,8 @@
                     rememberErrorMessage(tr("No data found in this area."));
                 }
+                String remark = dataSet.getRemark();
+                if (remark != null && !remark.isEmpty()) {
+                    rememberErrorMessage(remark);
+                }
                 // need to synthesize a download bounds lest the visual indication of downloaded area doesn't work
                 dataSet.addDataSource(new DataSource(currentBounds != null ? currentBounds :
Index: trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 14217)
+++ trunk/src/org/openstreetmap/josm/data/osm/DataSet.java	(revision 14219)
@@ -169,4 +169,5 @@
 
     private short mappaintCacheIdx = 1;
+    private String remark;
 
     /**
@@ -1231,3 +1232,21 @@
         }
     }
+
+    /**
+     * Returns an optional remark about this data set (used by Overpass API).
+     * @return a remark about this data set, or {@code null}
+     * @since 14219
+     */
+    public String getRemark() {
+        return remark;
+    }
+
+    /**
+     * Sets an optional remark about this data set (used by Overpass API).
+     * @param remark a remark about this data set, or {@code null}
+     * @since 14219
+     */
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
 }
Index: trunk/src/org/openstreetmap/josm/io/OsmJsonReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmJsonReader.java	(revision 14217)
+++ trunk/src/org/openstreetmap/josm/io/OsmJsonReader.java	(revision 14219)
@@ -67,4 +67,9 @@
         parseLocked(object.getString("locked", null));
         parseElements(object.getJsonArray("elements"));
+        parseRemark(object.getString("remark", null));
+    }
+
+    private void parseRemark(String remark) {
+        ds.setRemark(remark);
     }
 
Index: trunk/src/org/openstreetmap/josm/io/OsmReader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 14217)
+++ trunk/src/org/openstreetmap/josm/io/OsmReader.java	(revision 14219)
@@ -103,5 +103,5 @@
             uploadChangesetId = getLong("upload-changeset");
         }
-        while (true) {
+        while (parser.hasNext()) {
             int event = parser.next();
 
@@ -127,4 +127,7 @@
                 case "changeset":
                     parseChangeset(uploadChangesetId);
+                    break;
+                case "remark": // Used by Overpass API
+                    parseRemark();
                     break;
                 default:
@@ -143,4 +146,15 @@
         } else {
             throwException(e);
+        }
+    }
+
+    private void parseRemark() throws XMLStreamException {
+        while (parser.hasNext()) {
+            int event = parser.next();
+            if (event == XMLStreamConstants.CHARACTERS) {
+                ds.setRemark(parser.getText());
+            } else if (event == XMLStreamConstants.END_ELEMENT) {
+                return;
+            }
         }
     }
