Index: trunk/build.xml
===================================================================
--- trunk/build.xml	(revision 2357)
+++ trunk/build.xml	(revision 2358)
@@ -10,6 +10,31 @@
 		</fileset>
 	</path>
+	
+	<!--
+	  ** Creates the REVISION file to be included in the distribution
+	  --> 	  
+	<target name="create-revision">
+		<exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
+				<env key="LANG" value="C"/>
+				<arg value="info"/>
+				<arg value="--xml"/>
+				<arg value="."/>
+		</exec>		
+		<xmlproperty file="REVISION" prefix="version" keepRoot="false" collapseAttributes="true"/>
+		<delete file="REVISION"/>
+		<tstamp>
+		      <format property="build.tstamp" pattern="yyyy-MM-dd HH:mm:ss"/>
+		  </tstamp>
 
-	<target name="dist" depends="compile">
+		<echo file="${build.dir}/REVISION">
+# automatically generated JOSM build.xml - do not edit 			
+Revision: ${version.entry.commit.revision}
+Is-Local-Build: true
+Build-Date: ${build.tstamp}		
+</echo>						
+	</target>
+		
+
+	<target name="dist" depends="compile,create-revision">
 
 		<exec append="false" output="REVISION" executable="svn" failifexecutionfails="false">
@@ -28,5 +53,5 @@
 		<copy file="LICENSE" todir="build"/>
 
-                <!-- styles -->
+        <!-- styles -->
 		<copy file="styles/standard/elemstyles.xml" todir="build/styles/standard"/>
 
Index: trunk/src/org/openstreetmap/josm/actions/AboutAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/actions/AboutAction.java	(revision 2358)
@@ -9,13 +9,4 @@
 import java.awt.event.ActionEvent;
 import java.awt.event.KeyEvent;
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.util.Properties;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import javax.swing.BorderFactory;
@@ -28,8 +19,8 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.plugins.PluginHandler;
 import org.openstreetmap.josm.tools.GBC;
 import org.openstreetmap.josm.tools.ImageProvider;
-import org.openstreetmap.josm.tools.LanguageInfo;
 import org.openstreetmap.josm.tools.Shortcut;
 import org.openstreetmap.josm.tools.UrlLabel;
@@ -43,80 +34,6 @@
  * @author imi
  */
-/**
- * @author Stephan
- *
- */
 public class AboutAction extends JosmAction {
-
-    private static final String version;
-
-    private final static JTextArea revision;
-    private static String time;
-
-    static {
-        boolean manifest = false;
-        URL u = Main.class.getResource("/REVISION");
-        if(u == null) {
-            try {
-                manifest = true;
-                u = new URL("jar:" + Main.class.getProtectionDomain().getCodeSource().getLocation().toString()
-                        + "!/META-INF/MANIFEST.MF");
-            } catch (MalformedURLException e) {
-                e.printStackTrace();
-            }
-        }
-        revision = loadFile(u, manifest);
-        System.out.println("Revision: " + revision.getText());
-
-        Pattern versionPattern = Pattern.compile(".*?(?:Revision|Main-Version): ([0-9]*(?: SVN)?).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
-        Matcher match = versionPattern.matcher(revision.getText());
-        version = match.matches() ? match.group(1) : tr("UNKNOWN");
-
-        Pattern timePattern = Pattern.compile(".*?(?:Last Changed Date|Main-Date): ([^\n]*).*", Pattern.CASE_INSENSITIVE|Pattern.DOTALL);
-        match = timePattern.matcher(revision.getText());
-        time = match.matches() ? match.group(1) : tr("UNKNOWN");
-    }
-
-    /**
-     * Return string describing version.
-     * Note that the strinc contains the version number plus an optional suffix of " SVN" to indicate an unofficial development build.
-     * @return version string
-     */
-    static public String getVersionString() {
-        return version;
-    }
-
-    static public String getTextBlock() {
-        return revision.getText();
-    }
-
-    static public void setUserAgent() {
-        Properties sysProp = System.getProperties();
-        sysProp.put("http.agent", "JOSM/1.5 ("+(version.equals(tr("UNKNOWN"))?"UNKNOWN":version)+" "+LanguageInfo.getJOSMLocaleCode()+")");
-        System.setProperties(sysProp);
-    }
-
-    /**
-     * Return the number part of the version string.
-     * @return integer part of version number or Integer.MAX_VALUE if not available
-     */
-    public static int getVersionNumber() {
-        int myVersion=Integer.MAX_VALUE;
-        try {
-            myVersion = Integer.parseInt(version.split(" ")[0]);
-        } catch (NumberFormatException e) {
-            // e.printStackTrace();
-        }
-        return myVersion;
-    }
-
-    /**
-     * check whether the version is a development build out of SVN.
-     * @return true if it is a SVN unofficial build
-     */
-    public static boolean isDevelopmentVersion() {
-        return version.endsWith(" SVN") || version.equals(tr("UNKNOWN"));
-    }
-
+  
     public AboutAction() {
         super(tr("About"), "about", tr("Display the about screen."), Shortcut.registerShortcut("system:about", tr("About"), KeyEvent.VK_F1, Shortcut.GROUP_DIRECT, Shortcut.SHIFT_DEFAULT), true);
@@ -125,8 +42,18 @@
     public void actionPerformed(ActionEvent e) {
         JTabbedPane about = new JTabbedPane();
+        
+        JTextArea readme = new JTextArea();
+        readme.setEditable(false);
+        readme.setText(Version.loadResourceFile(Main.class.getResource("/README")));
 
-        JTextArea readme = loadFile(Main.class.getResource("/README"), false);
-        JTextArea contribution = loadFile(Main.class.getResource("/CONTRIBUTION"), false);
-        JTextArea license = loadFile(Main.class.getResource("/LICENSE"), false);
+        JTextArea contribution = new JTextArea();
+        contribution.setEditable(false);
+        contribution.setText(Version.loadResourceFile(Main.class.getResource("/CONTRIBUTION")));
+
+        JTextArea license = new JTextArea();
+        license.setEditable(false);
+        license.setText(Version.loadResourceFile(Main.class.getResource("/LICENSE")));
+        
+        Version version = Version.getInstance();
 
         JPanel info = new JPanel(new GridBagLayout());
@@ -135,7 +62,7 @@
         info.add(caption, GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
         info.add(GBC.glue(0,10), GBC.eol());
-        info.add(new JLabel(tr("Version {0}",version)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
+        info.add(new JLabel(tr("Version {0}", version.getVersionString())), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
         info.add(GBC.glue(0,5), GBC.eol());
-        info.add(new JLabel(tr("Last change at {0}",time)), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
+        info.add(new JLabel(tr("Last change at {0}",version.getTime())), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
         info.add(GBC.glue(0,5), GBC.eol());
         info.add(new JLabel(tr("Java Version {0}",System.getProperty("java.version"))), GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
@@ -146,4 +73,7 @@
         info.add(new UrlLabel("http://josm.openstreetmap.de/newticket"), GBC.eol().fill(GBC.HORIZONTAL));
 
+        JTextArea revision = new JTextArea();
+        revision.setEditable(false);
+        revision.setText(version.getRevision());
         about.addTab(tr("Info"), info);
         about.addTab(tr("Readme"), createScrollPane(readme));
@@ -167,56 +97,3 @@
         return sp;
     }
-
-    /**
-     * Retrieve the latest JOSM version from the JOSM homepage.
-     * @return An string with the latest version or "UNKNOWN" in case
-     *      of problems (e.g. no internet connection).
-     */
-    public static String checkLatestVersion() {
-        String latest;
-        try {
-            InputStream s = new URL("http://josm.openstreetmap.de/current").openStream();
-            latest = new BufferedReader(new InputStreamReader(s)).readLine();
-            s.close();
-        } catch (IOException x) {
-            x.printStackTrace();
-            return tr("UNKNOWN");
-        }
-        return latest;
-    }
-
-    /**
-     * Load the specified resource into an TextArea and return it.
-     * @param resource The resource url to load
-     * @return  An read-only text area with the content of "resource"
-     */
-    private static JTextArea loadFile(URL resource, boolean manifest) {
-        JTextArea area = new JTextArea(tr("File could not be found."));
-        area.setEditable(false);
-        Font font = Font.getFont("monospaced");
-        if (font != null) {
-            area.setFont(font);
-        }
-        if (resource == null)
-            return area;
-        BufferedReader in;
-        try {
-            in = new BufferedReader(new InputStreamReader(resource.openStream()));
-            String s = "";
-            for (String line = in.readLine(); line != null; line = in.readLine()) {
-                s += line + "\n";
-            }
-            if (manifest) {
-                s = Pattern.compile("\n ", Pattern.DOTALL).matcher(s).replaceAll("");
-                s = Pattern.compile("^(SHA1-Digest|Name): .*?$", Pattern.DOTALL|Pattern.MULTILINE).matcher(s).replaceAll("");
-                s = Pattern.compile("\n+$", Pattern.DOTALL).matcher(s).replaceAll("");
-            }
-            area.setText(s);
-            area.setCaretPosition(0);
-        } catch (IOException e) {
-            System.err.println("Cannot load resource " + resource + ": " + e.getMessage());
-            //e.printStackTrace();
-        }
-        return area;
-    }
 }
Index: trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java
===================================================================
--- trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/actions/ShowStatusReportAction.java	(revision 2358)
@@ -21,4 +21,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.plugins.PluginHandler;
@@ -46,5 +47,5 @@
     {
         StringBuilder text = new StringBuilder();
-        text.append(AboutAction.getTextBlock());
+        text.append(Version.getInstance().getRevision());
         text.append("\n");
         text.append("Memory Usage: ");
Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 2358)
@@ -30,7 +30,7 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.AboutAction;
 import org.openstreetmap.josm.gui.preferences.ProxyPreferences;
 import org.openstreetmap.josm.tools.ColorHelper;
+import org.openstreetmap.josm.tools.LanguageInfo;
 
 /**
@@ -324,7 +324,7 @@
     public void save() throws IOException {
         /* currently unused, but may help to fix configuration issues in future */
-        properties.put("josm.version", AboutAction.getVersionString());
-
-        setSystemProperties();
+        properties.put("josm.version", Version.getInstance().getVersionString());
+
+        updateSystemProperties();
         File prefFile = new File(getPreferencesDirFile(), "preferences");
 
@@ -394,5 +394,5 @@
         if (!errLines.isEmpty())
             throw new IOException(tr("Malformed config file at lines {0}", errLines));
-        setSystemProperties();
+        updateSystemProperties();
     }
 
@@ -679,11 +679,14 @@
             }
         }
-
         return put(key, s);
     }
-
-    private void setSystemProperties() {
+    
+    /**
+     * Updates system properties with the current values in the preferences.
+     * 
+     */
+    public void updateSystemProperties() {
+        Properties sysProp = System.getProperties();
         if (getBoolean(ProxyPreferences.PROXY_ENABLE)) {
-            Properties sysProp = System.getProperties();
             sysProp.put("proxySet", "true");
             sysProp.put("http.proxyHost", get(ProxyPreferences.PROXY_HOST));
@@ -693,7 +696,10 @@
                 sysProp.put("proxyPassword", get(ProxyPreferences.PROXY_PASS));
             }
-            System.setProperties(sysProp);
-        }
-        AboutAction.setUserAgent();
+         
+        }
+        int v = Version.getInstance().getVersion();
+        String s = ( v == Version.JOSM_UNKNOWN_VERSION) ? "UNKNOWN" : Integer.toString(v);        
+        sysProp.put("http.agent", "JOSM/1.5 ("+ s+" "+LanguageInfo.getJOSMLocaleCode()+")");
+        System.setProperties(sysProp);
     }
 }
Index: trunk/src/org/openstreetmap/josm/data/Version.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Version.java	(revision 2358)
+++ trunk/src/org/openstreetmap/josm/data/Version.java	(revision 2358)
@@ -0,0 +1,162 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data;
+
+import static org.openstreetmap.josm.tools.I18n.tr;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.HashMap;
+import java.util.Map.Entry;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.openstreetmap.josm.Main;
+
+/**
+ * Provides basic information about JOSM build currently used.
+ * 
+ */
+public class Version {
+    /** constant to indicate that the currnt build isn't assigned a JOSM version number */
+    static public final int JOSM_UNKNOWN_VERSION = 0;
+
+    /** the unique instance */ 
+    private static Version instance;
+    
+    /**
+     * Load the specified resource as string.
+     * 
+     * @param resource the resource url to load
+     * @return  the content of the resource file; null, if an error occurred 
+     */
+    static public String loadResourceFile(URL resource) {
+        BufferedReader in;
+        String s = null;
+        try {
+            in = new BufferedReader(new InputStreamReader(resource.openStream()));
+            StringBuffer sb = new StringBuffer();
+            for (String line = in.readLine(); line != null; line = in.readLine()) {
+                sb.append(line).append("\n");
+            }
+            s = sb.toString();
+        } catch (IOException e) {
+            System.err.println(tr("Failed to load load resource ''{0}''. Error is {1}", resource.toString(), e.toString()));
+            e.printStackTrace();
+        }
+        return s;
+    }
+    
+    /**
+     * Replies the unique instance of the version information 
+     * 
+     * @return the unique instance of the version information
+     */
+    
+    static public Version getInstance() {
+        if (instance == null) {
+            instance = new Version();
+            instance.init();
+        }
+        return instance;            
+    }
+    
+    private int version;
+    private String revision;
+    private String time;
+    
+    
+    protected HashMap<String, String> parseManifestStyleFormattedString(String content) {
+        HashMap<String, String> properties = new HashMap<String, String>();
+        if (content == null) return properties;
+        Pattern p = Pattern.compile("^([^:]+):(.*)$");
+        for (String line: content.split("\n")) {
+            if (line == null || line.trim().equals("")) continue;
+            if (line.matches("^\\s*#.*$")) continue;
+            Matcher m = p.matcher(line);
+            if (m.matches()) {
+                properties.put(m.group(1), m.group(2));
+            }
+        }
+        return properties;
+    }
+    
+    /**
+     * Initializes the version infos from the revision resource file 
+     * 
+     * @param revisionInfo the revision info loaded from a revision resource file 
+     */
+    protected void initFromRevisionInfo(String revisionInfo) {
+        if (revisionInfo == null) {
+            this.revision = tr("UNKNOWN");
+            this.version = JOSM_UNKNOWN_VERSION;
+            this.time = null;
+            return;        
+        }
+        
+        HashMap<String, String> properties = parseManifestStyleFormattedString(revisionInfo);
+        String value = properties.get("Revision");
+        if (value != null) {
+            value = value.trim();
+            try {
+                version = Integer.parseInt(value);
+            } catch(NumberFormatException e) {
+                version = 0;
+                System.err.println(tr("Warning: unexpected JOSM version number in revison file, value is ''{0}''", value));
+            }
+        } else {
+            version = JOSM_UNKNOWN_VERSION;
+        }
+                
+        // the last changed data 
+        //
+        time = properties.get("Last Changed Date");
+        if (time == null) {
+            time = properties.get("Build-Date");
+        }
+        
+        // the revision info
+        //
+        StringBuffer sb = new StringBuffer();
+        for(Entry<String,String> property: properties.entrySet()) {
+            sb.append(property.getKey()).append(":").append(property.getValue()).append("\n");
+        }
+        revision = sb.toString();
+    }    
+       
+    public void init() {    
+        URL u = Main.class.getResource("/REVISION");
+        if (u == null) {
+            System.err.println(tr("Warning: the revision file ''/REVISION'' is missing."));
+            version = 0;
+            revision = "";
+            return;
+        }
+        initFromRevisionInfo(loadResourceFile(u));
+        System.out.println(revision);
+    }
+   
+    /**
+     * Replies the version string. Either the SVN revision "1234" (as string) or the 
+     * the I18n equivalent of "UNKNOWN".
+     * 
+     * @return the JOSM version 
+     */
+    public String getVersionString() {
+        return  version == 0 ? tr("UNKNOWN") : Integer.toString(version);
+    }
+    
+    public String getRevision() {
+        return revision;
+    }
+
+    public String getTime() {
+        return time;
+    }
+    
+    public int getVersion() {
+        return version;
+    }
+}
Index: trunk/src/org/openstreetmap/josm/gui/GettingStarted.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/gui/GettingStarted.java	(revision 2358)
@@ -16,5 +16,5 @@
 
 import org.openstreetmap.josm.Main;
-import org.openstreetmap.josm.actions.AboutAction;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.io.CacheCustomContent;
 import org.openstreetmap.josm.tools.LanguageInfo;
@@ -51,5 +51,5 @@
         }
 
-        final private int myVersion = AboutAction.getVersionNumber();
+        final private int myVersion = Version.getInstance().getVersion();
         final private String myLang = LanguageInfo.getWikiLanguagePrefix();
 
Index: trunk/src/org/openstreetmap/josm/gui/MainApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplication.java	(revision 2358)
@@ -96,4 +96,5 @@
             I18n.set(Main.pref.get("language", null));
         }
+        Main.pref.updateSystemProperties();
 
         if (argList.contains("--help") || argList.contains("-?") || argList.contains("-h")) {
Index: trunk/src/org/openstreetmap/josm/gui/SplashScreen.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/gui/SplashScreen.java	(revision 2358)
@@ -26,4 +26,5 @@
 
 import org.openstreetmap.josm.actions.AboutAction;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.tools.ImageProvider;
 
@@ -73,5 +74,5 @@
 
         // Add the version number
-        JLabel version = new JLabel(tr("Version {0}", AboutAction.getVersionString()));
+        JLabel version = new JLabel(tr("Version {0}", Version.getInstance().getVersionString()));
         gbc.gridy = 1;
         gbc.insets = new Insets(0, 0, 0, 0);
Index: trunk/src/org/openstreetmap/josm/gui/help/HelpApplication.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/help/HelpApplication.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/gui/help/HelpApplication.java	(revision 2358)
@@ -92,5 +92,4 @@
             I18n.set(Main.pref.get("language", null));
         }
-
         MainApplication.preConstructorInit(args);
         Thread.setDefaultUncaughtExceptionHandler(
Index: trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/gui/io/UploadDialog.java	(revision 2358)
@@ -119,5 +119,5 @@
         pnlLists = new JPanel();
         pnlLists.setLayout(new GridBagLayout());
-        // we don't add the lists yet, see setUploadPrimivies()
+        // we don't add the lists yet, see setUploadPrimitives()
         //
         return pnlLists;
@@ -278,5 +278,5 @@
             y++;
             gcLabel.gridy = y;
-            lblUpdate.setText(trn("{0} object to modifiy:", "{0} objects to modify:", update.size(),update.size()));
+            lblUpdate.setText(trn("{0} object to modify:", "{0} objects to modify:", update.size(),update.size()));
             pnlLists.add(lblUpdate, gcLabel);
             y++;
Index: trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginDownloader.java	(revision 2358)
@@ -27,4 +27,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.AboutAction;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.PleaseWaitRunnable;
@@ -120,5 +121,5 @@
 
     private static boolean download(PluginInformation pd, File file) {
-        if(pd.mainversion > AboutAction.getVersionNumber())
+        if(pd.mainversion > Version.getInstance().getVersion())
         {
             ExtendedDialog dialog = new ExtendedDialog(
Index: trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginHandler.java	(revision 2358)
@@ -34,4 +34,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.AboutAction;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.gui.ExtendedDialog;
 import org.openstreetmap.josm.gui.MapFrame;
@@ -101,5 +102,6 @@
                     continue;
                 }
-                if (info.mainversion > AboutAction.getVersionNumber()) {
+                int josmVersion = Version.getInstance().getVersion();
+                if (info.mainversion > josmVersion && josmVersion != Version.JOSM_UNKNOWN_VERSION) {
                     JOptionPane.showMessageDialog(
                             Main.parent,
Index: trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java
===================================================================
--- trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/plugins/PluginInformation.java	(revision 2358)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.actions.AboutAction;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.tools.LanguageInfo;
 
@@ -121,7 +122,7 @@
         catch(NumberFormatException e) {}
         author = attr.getValue("Author");
-        if(oldcheck && mainversion > AboutAction.getVersionNumber())
+        if(oldcheck && mainversion > Version.getInstance().getVersion())
         {
-            int myv = AboutAction.getVersionNumber();
+            int myv = Version.getInstance().getVersion();
             for(Map.Entry entry : attr.entrySet())
             {
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 2357)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 2358)
@@ -132,6 +132,14 @@
     }
 
-    public static void set(String localeName)
-    {
+    /**
+     * Sets the default locale (see {@see Locale#setDefault(Locale)} to the local
+     * given by <code>localName</code>.
+     * 
+     * Ignored if localName is null. If the locale with name <code>localName</code>
+     * isn't found the default local is set to <tt>en</tt> (english).
+     * 
+     * @param localeName the locale name. Ignored if null.
+     */
+    public static void set(String localeName){
         if (localeName != null) {
             Locale l;
