Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 5863)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 5865)
@@ -315,5 +315,5 @@
             cacheDirFile = new File(path).getAbsoluteFile();
         } else {
-            path = Main.pref.get("cache.folder", null);
+            path = get("cache.folder", null);
             if (path != null) {
                 cacheDirFile = new File(path);
@@ -339,5 +339,5 @@
     public Collection<String> getAllPossiblePreferenceDirs() {
         LinkedList<String> locations = new LinkedList<String>();
-        locations.add(Main.pref.getPreferencesDir());
+        locations.add(getPreferencesDir());
         String s;
         if ((s = System.getenv("JOSM_RESOURCES")) != null) {
@@ -1319,5 +1319,5 @@
     public void updateSystemProperties() {
         updateSystemProperty("http.agent", Version.getInstance().getAgentString());
-        updateSystemProperty("user.language", Main.pref.get("language"));
+        updateSystemProperty("user.language", get("language"));
         // Workaround to fix a Java bug.
         // Force AWT toolkit to update its internal preferences (fix #3645).
Index: trunk/src/org/openstreetmap/josm/gui/MainApplet.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 5863)
+++ trunk/src/org/openstreetmap/josm/gui/MainApplet.java	(revision 5865)
@@ -102,4 +102,5 @@
         String lang = getParameter("language");
         I18n.set(lang != null ? lang : Main.pref.get("language", null));
+        Main.pref.updateSystemProperties();
 
         try
@@ -132,4 +133,5 @@
 
         Main.preConstructorInit(Option.fromStringMap(args));
+        Main.pref.updateSystemProperties();
         Main.parent = frame;
 
Index: trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java	(revision 5863)
+++ trunk/src/org/openstreetmap/josm/gui/io/TagSettingsPanel.java	(revision 5865)
@@ -13,4 +13,5 @@
 
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.data.Version;
 import org.openstreetmap.josm.data.osm.Changeset;
 import org.openstreetmap.josm.gui.tagging.TagEditorPanel;
@@ -44,14 +45,4 @@
         build();
         pnlTagEditor.getModel().addTableModelListener(this);
-    }
-
-    /**
-     * Replies the default value for "created_by"
-     *
-     * @return the default value for "created_by"
-     */
-    public static String getDefaultCreatedBy() {
-        Object ua = System.getProperties().get("http.agent");
-        return(ua == null) ? "JOSM" : ua.toString();
     }
 
@@ -93,9 +84,10 @@
             tags.put("comment", currentComment);
         }
+        String agent = Version.getInstance().getAgentString();
         String created_by = tags.get("created_by");
-        if (created_by == null || "".equals(created_by)) {
-            tags.put("created_by", getDefaultCreatedBy());
-        } else if (!created_by.contains(getDefaultCreatedBy())) {
-            tags.put("created_by", created_by + ";" + getDefaultCreatedBy());
+        if (created_by == null || created_by.isEmpty()) {
+            tags.put("created_by", agent);
+        } else if (!created_by.contains(agent)) {
+            tags.put("created_by", created_by + ";" + agent);
         }
         pnlTagEditor.getModel().initFromTags(tags);
