Index: trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 14410)
+++ trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 14411)
@@ -461,27 +461,19 @@
                 if (tagEquals(QN_NAME, reader.getName())) {
                     ret.setName(reader.getElementText());
-                }
-                if (tagEquals(QN_ABSTRACT, reader.getName())) {
+                } else if (tagEquals(QN_ABSTRACT, reader.getName())) {
                     ret.setAbstract(GetCapabilitiesParseHelper.getElementTextWithSubtags(reader));
-                }
-                if (tagEquals(QN_TITLE, reader.getName())) {
+                } else if (tagEquals(QN_TITLE, reader.getName())) {
                     ret.setTitle(reader.getElementText());
-                }
-                if (tagEquals(QN_CRS, reader.getName())) {
+                } else if (tagEquals(QN_CRS, reader.getName())) {
                     ret.addCrs(reader.getElementText());
-                }
-                if (tagEquals(QN_SRS, reader.getName()) && belowWMS130()) {
+                } else if (tagEquals(QN_SRS, reader.getName()) && belowWMS130()) {
                     ret.addCrs(reader.getElementText());
-                }
-                if (tagEquals(QN_STYLE, reader.getName())) {
+                } else if (tagEquals(QN_STYLE, reader.getName())) {
                     parseAndAddStyle(reader, ret);
-                }
-                if (tagEquals(QN_LAYER, reader.getName())) {
+                } else if (tagEquals(QN_LAYER, reader.getName())) {
                     parseLayer(reader, ret);
-                }
-                if (tagEquals(QN_EX_GEOGRAPHIC_BBOX, reader.getName()) && ret.getBounds() == null) {
+                } else if (tagEquals(QN_EX_GEOGRAPHIC_BBOX, reader.getName()) && ret.getBounds() == null) {
                     ret.setBounds(parseExGeographic(reader));
-                }
-                if (tagEquals(QN_BOUNDINGBOX, reader.getName())) {
+                } else if (tagEquals(QN_BOUNDINGBOX, reader.getName())) {
                     Projection conv;
                     if (belowWMS130()) {
@@ -493,7 +485,9 @@
                         ret.setBounds(parseBoundingBox(reader, conv));
                     }
-                }
-                if (tagEquals(QN_LATLONBOUNDINGBOX, reader.getName()) && belowWMS130() && ret.getBounds() == null) {
+                } else if (tagEquals(QN_LATLONBOUNDINGBOX, reader.getName()) && belowWMS130() && ret.getBounds() == null) {
                     ret.setBounds(parseBoundingBox(reader, null));
+                } else {
+                    // unknown tag, move to its end as it may have child elements
+                    GetCapabilitiesParseHelper.moveReaderToEndCurrentTag(reader);
                 }
             }
