diff --git a/src/org/openstreetmap/josm/io/OsmReader.java b/src/org/openstreetmap/josm/io/OsmReader.java
index 43bd83c8b6..632e70c74a 100644
--- a/src/org/openstreetmap/josm/io/OsmReader.java
+++ b/src/org/openstreetmap/josm/io/OsmReader.java
@@ -201,6 +201,19 @@ public class OsmReader extends AbstractReader {
         }
     }
 
+    private void parseError() throws XMLStreamException {
+        while (parser.hasNext()) {
+            int event = parser.next();
+            if (event == XMLStreamConstants.CHARACTERS) {
+                throwException(parser.getText());
+            } else if (event == XMLStreamConstants.END_ELEMENT) {
+                return;
+            } else {
+                throwException("Unknown error element type");
+            }
+        }
+    }
+
     private void parseRemark() throws XMLStreamException {
         while (parser.hasNext()) {
             int event = parser.next();
@@ -393,6 +406,8 @@ public class OsmReader extends AbstractReader {
         if (printWarning && ("note".equals(element) || "meta".equals(element))) {
             // we know that Overpass API returns those elements
             Logging.debug(tr("Undefined element ''{0}'' found in input stream. Skipping.", element));
+        } else if ("error".equals(element)) {
+            parseError();
         } else if (printWarning) {
             Logging.info(tr("Undefined element ''{0}'' found in input stream. Skipping.", element));
         }
