Index: trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 13198)
+++ trunk/src/org/openstreetmap/josm/io/imagery/WMSImagery.java	(revision 13199)
@@ -340,4 +340,5 @@
         String name = getChildContent(element, "Title", null, null);
         String ident = getChildContent(element, "Name", null, null);
+        String abstr = getChildContent(element, "Abstract", null, null);
 
         // The set of supported CRS/SRS for this layer
@@ -385,5 +386,5 @@
         List<LayerDetails> childLayers = parseLayers(layerChildren, crsList);
 
-        return new LayerDetails(name, ident, crsList, josmSupportsThisLayer, bounds, childLayers);
+        return new LayerDetails(name, ident, abstr, crsList, josmSupportsThisLayer, bounds, childLayers);
     }
 
@@ -448,14 +449,22 @@
 
     /**
-     * The details of a layer of this wms server.
+     * The details of a layer of this WMS server.
      */
     public static class LayerDetails {
 
         /**
-         * The layer name
+         * The layer name (WMS {@code Title})
          */
         public final String name;
+        /**
+         * The layer ident (WMS {@code Name})
+         */
         public final String ident;
         /**
+         * The layer abstract (WMS {@code Abstract})
+         * @since xxx
+         */
+        public final String abstr;
+        /**
          * The child layers of this layer
          */
@@ -465,11 +474,29 @@
          */
         public final Bounds bounds;
+        /**
+         * the CRS/SRS pulled out of this layer's XML element
+         */
         public final Set<String> crsList;
+        /**
+         * {@code true} if any of the specified projections are supported by JOSM
+         */
         public final boolean supported;
 
-        public LayerDetails(String name, String ident, Set<String> crsList, boolean supportedLayer, Bounds bounds,
+        /**
+         * Constructs a new {@code LayerDetails}.
+         * @param name The layer name (WMS {@code Title})
+         * @param ident The layer ident (WMS {@code Name})
+         * @param abstr The layer abstract (WMS {@code Abstract})
+         * @param crsList The CRS/SRS pulled out of this layer's XML element
+         * @param supportedLayer {@code true} if any of the specified projections are supported by JOSM
+         * @param bounds The bounds this layer can be used for
+         * @param childLayers The child layers of this layer
+         * @since xxx
+         */
+        public LayerDetails(String name, String ident, String abstr, Set<String> crsList, boolean supportedLayer, Bounds bounds,
                 List<LayerDetails> childLayers) {
             this.name = name;
             this.ident = ident;
+            this.abstr = abstr;
             this.supported = supportedLayer;
             this.children = childLayers;
@@ -478,8 +505,16 @@
         }
 
+        /**
+         * Determines if any of the specified projections are supported by JOSM.
+         * @return {@code true} if any of the specified projections are supported by JOSM
+         */
         public boolean isSupported() {
             return this.supported;
         }
 
+        /**
+         * Returns the CRS/SRS pulled out of this layer's XML element.
+         * @return the CRS/SRS pulled out of this layer's XML element
+         */
         public Set<String> getProjections() {
             return crsList;
@@ -488,8 +523,6 @@
         @Override
         public String toString() {
-            if (this.name == null || this.name.isEmpty())
-                return this.ident;
-            else
-                return this.name;
+            String baseName = (name == null || name.isEmpty()) ? ident : name;
+            return abstr == null || abstr.equalsIgnoreCase(baseName) ? baseName : baseName + " (" + abstr + ')';
         }
     }
