Index: /applications/editors/josm/plugins/imagery-xml-bounds/build.xml
===================================================================
--- /applications/editors/josm/plugins/imagery-xml-bounds/build.xml	(revision 33271)
+++ /applications/editors/josm/plugins/imagery-xml-bounds/build.xml	(revision 33272)
@@ -4,5 +4,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="10580"/>
+    <property name="plugin.main.version" value="11570"/>
     
     <!-- Configure these properties (replace "..." accordingly).
Index: /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsConstants.java
===================================================================
--- /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsConstants.java	(revision 33271)
+++ /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsConstants.java	(revision 33272)
@@ -7,5 +7,4 @@
 
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
-import org.openstreetmap.josm.tools.ImageProvider;
 
 /**
@@ -15,9 +14,4 @@
  */
 public interface XmlBoundsConstants {
-
-    /**
-     * Plugin version.
-     */
-    public static final String PLUGIN_VERSION = "1.3";
 
     /**
@@ -42,4 +36,8 @@
     /** XML url tag */
     public static final String XML_URL = "url";
+    /** XML id tag */
+    public static final String XML_ID = "id";
+    /** XML date tag */
+    public static final String XML_DATE = "date";
     /** XML default tag */
     public static final String XML_DEFAULT = "default";
@@ -78,4 +76,6 @@
     public static final String KEY_TYPE = PREFIX + XML_TYPE;
     public static final String KEY_URL = PREFIX + XML_URL;
+    public static final String KEY_ID = PREFIX + XML_ID;
+    public static final String KEY_DATE = PREFIX + XML_DATE;
     public static final String KEY_DEFAULT = PREFIX + XML_DEFAULT;
     public static final String KEY_EULA = PREFIX + XML_EULA;
@@ -106,13 +106,3 @@
     public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
             EXTENSION, EXTENSION, tr("Imagery XML Files") + " (*."+EXTENSION+")");
-
-    /**
-     * Plugin 16x16 icon.
-     */
-    public static ImageIcon XML_ICON_16 = ImageProvider.get("xml_16.png");
-
-    /**
-     * Plugin 24x24 icon.
-     */
-    public static ImageIcon XML_ICON_24 = ImageProvider.get("xml_24.png");
 }
Index: /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsLayer.java
===================================================================
--- /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsLayer.java	(revision 33271)
+++ /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/XmlBoundsLayer.java	(revision 33272)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.gui.layer.MainLayerManager.ActiveLayerChangeListener;
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
+import org.openstreetmap.josm.tools.ImageProvider;
 import org.openstreetmap.josm.plugins.imageryxmlbounds.actions.BoundsLayerSaveAction;
 import org.openstreetmap.josm.plugins.imageryxmlbounds.actions.BoundsLayerSaveAsAction;
@@ -95,5 +96,5 @@
     @Override
     public Icon getIcon() {
-        return XML_ICON_16;
+        return ImageProvider.get("xml_24.png");
     }
 
Index: /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/ComputeBoundsAction.java
===================================================================
--- /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/ComputeBoundsAction.java	(revision 33271)
+++ /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/ComputeBoundsAction.java	(revision 33272)
@@ -5,4 +5,7 @@
 
 import java.awt.event.ActionEvent;
+import java.io.InputStream;
+import java.lang.Exception;
+import java.math.RoundingMode;
 import java.text.DecimalFormat;
 import java.text.DecimalFormatSymbols;
@@ -15,4 +18,5 @@
 import java.util.Locale;
 import java.util.Map;
+import java.util.Properties;
 import java.util.Set;
 
@@ -28,4 +32,5 @@
 import org.openstreetmap.josm.gui.layer.OsmDataLayer;
 import org.openstreetmap.josm.plugins.imageryxmlbounds.XmlBoundsConstants;
+import org.openstreetmap.josm.tools.ImageProvider;
 
 /**
@@ -36,5 +41,5 @@
 public class ComputeBoundsAction extends AbstractAction implements XmlBoundsConstants {
 
-    protected static final DecimalFormat DF = new DecimalFormat("#0.0000000", new DecimalFormatSymbols(Locale.UK));
+    protected static final DecimalFormat DF = new DecimalFormat("#0.#######", new DecimalFormatSymbols(Locale.UK));
 
     protected static final String ACTION_NAME = tr("XML Imagery Bounds");
@@ -45,4 +50,5 @@
     private final Set<Way> closedWays;
 
+    static { DF.setRoundingMode(RoundingMode.CEILING); }
     /**
      * Constructs a new {@code ComputeBoundsAction}.
@@ -62,9 +68,5 @@
         putValue(SHORT_DESCRIPTION, tr("Generate Imagery XML bounds for the selection"));
         putValue(NAME, ACTION_NAME);
-        try {
-            putValue(SMALL_ICON, XML_ICON_24);
-        } catch (Exception e) {
-            Main.error(e);
-        }
+        new ImageProvider("xml_24.png").getResource().attachImageIcon(this, true);
         setEnabled(false);
 
@@ -186,7 +188,14 @@
 
     protected static final String getImagery(String ... entries) {
+        String version = "UNKNOWN";
+        try {
+            Properties p = new Properties();
+            p.load(ComputeBoundsAction.class.getResourceAsStream("/REVISION"));
+            version = p.getProperty("Revision");
+        } catch(Exception e) {
+        }
         StringBuilder result = new StringBuilder();
         result.append("<?xml version=\"1.0\" encoding=\"").append(ENCODING).append("\" ?>\n");
-        result.append("<!-- Generated with JOSM Imagery XML Plugin version ").append(PLUGIN_VERSION).append(" -->\n");
+        result.append("<!-- Generated with JOSM Imagery XML Plugin version ").append(version).append(" -->\n");
         result.append("<imagery xmlns=\"").append(XML_NAMESPACE).append("\">\n");
         for (String entry : entries) {
@@ -200,5 +209,6 @@
         return getEntry(p.get(KEY_NAME), p.get(KEY_TYPE), p.get(KEY_DEFAULT), p.get(KEY_URL), bounds, p.get(KEY_PROJECTIONS),
                 p.get(KEY_LOGO_URL), p.get(KEY_EULA), p.get(KEY_ATTR_TEXT), p.get(KEY_ATTR_URL),  p.get(KEY_TERMS_TEXT),
-                p.get(KEY_TERMS_URL), p.get(KEY_COUNTRY_CODE), p.get(KEY_MAX_ZOOM), p.get(KEY_MIN_ZOOM));
+                p.get(KEY_TERMS_URL), p.get(KEY_COUNTRY_CODE), p.get(KEY_MAX_ZOOM), p.get(KEY_MIN_ZOOM), p.get(KEY_ID),
+                p.get(KEY_DATE));
     }
 
@@ -209,5 +219,5 @@
     protected static final String getEntry(String name, String type, String def, String url, String bounds, String projections,
             String logoURL, String eula, String attributionText, String attributionUrl, String termsText, String termsUrl,
-            String countryCode, String maxZoom, String minZoom) {
+            String countryCode, String maxZoom, String minZoom, String id, String date) {
         StringBuilder result = new StringBuilder();
         result.append("    <entry>\n"+
@@ -235,4 +245,10 @@
             result.append(EIGHT_SP + simpleTag(XML_DEFAULT, def) + "\n");
         }
+        if (isSet(id)) {
+            result.append(EIGHT_SP + simpleTag(XML_ID, id, false) + "\n");
+        }
+        if (isSet(date)) {
+            result.append(EIGHT_SP + simpleTag(XML_DATE, date, false) + "\n");
+        }
         if (isSet(eula)) {
             result.append(EIGHT_SP + mandatoryTag(XML_EULA, encodeUrl(eula), false) + "\n");
Index: /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/EditEntriesAction.java
===================================================================
--- /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/EditEntriesAction.java	(revision 33271)
+++ /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/actions/EditEntriesAction.java	(revision 33272)
@@ -20,4 +20,5 @@
 import org.openstreetmap.josm.plugins.imageryxmlbounds.XmlBoundsLayer;
 import org.openstreetmap.josm.plugins.imageryxmlbounds.data.XmlBoundsConverter;
+import org.openstreetmap.josm.tools.ImageProvider;
 
 /**
@@ -41,9 +42,5 @@
         putValue(SHORT_DESCRIPTION, tr("edit bounds for selected defaults"));
         putValue(NAME, ACTION_NAME);
-        try {
-            putValue(SMALL_ICON, XML_ICON_24);
-        } catch (Exception ex) {
-            Main.error(ex);
-        }
+        new ImageProvider("xml_24.png").getResource().attachImageIcon(this, true);
         this.defaultModel = defaultModel;
         this.defaultTable = defaultTable;
Index: /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/data/XmlBoundsConverter.java
===================================================================
--- /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/data/XmlBoundsConverter.java	(revision 33271)
+++ /applications/editors/josm/plugins/imagery-xml-bounds/src/org/openstreetmap/josm/plugins/imageryxmlbounds/data/XmlBoundsConverter.java	(revision 33272)
@@ -121,4 +121,6 @@
         safePut(osmImagery, KEY_DEFAULT, imagery.isDefaultEntry());
         safePut(osmImagery, KEY_URL, imagery.getUrl());
+        safePut(osmImagery, KEY_ID, imagery.getId());
+        safePut(osmImagery, KEY_DATE, imagery.getDate());
         safePut(osmImagery, KEY_PROJECTIONS, imagery.getServerProjections());
         safePut(osmImagery, KEY_EULA, imagery.getEulaAcceptanceRequired());
