Index: trunk/src/org/openstreetmap/josm/data/Preferences.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 5357)
+++ trunk/src/org/openstreetmap/josm/data/Preferences.java	(revision 5358)
@@ -5,4 +5,5 @@
 
 import java.awt.Color;
+import java.awt.Toolkit;
 import java.io.BufferedReader;
 import java.io.File;
@@ -28,5 +29,5 @@
 import java.util.Map;
 import java.util.Map.Entry;
-import java.util.Properties;
+import java.util.ResourceBundle;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -52,5 +53,4 @@
 import org.openstreetmap.josm.tools.ColorHelper;
 import org.openstreetmap.josm.tools.Utils;
-import org.openstreetmap.josm.tools.XmlObjectParser;
 
 /**
@@ -1439,7 +1439,22 @@
      */
     public void updateSystemProperties() {
-        Properties sysProp = System.getProperties();
-        sysProp.put("http.agent", Version.getInstance().getAgentString());
-        System.setProperties(sysProp);
+        updateSystemProperty("http.agent", Version.getInstance().getAgentString());
+        updateSystemProperty("user.language", Main.pref.get("language"));
+        // Workaround to fix a Java bug.
+        // Force AWT toolkit to update its internal preferences (fix #3645).
+        // This ugly hack comes from Sun bug database: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6292739
+        try {
+            Field field = Toolkit.class.getDeclaredField("resources");
+            field.setAccessible(true);
+            field.set(null, ResourceBundle.getBundle("sun.awt.resources.awt"));
+        } catch (Exception e) {
+            // Ignore all exceptions
+        }
+    }
+    
+    private void updateSystemProperty(String key, String value) {
+        if (value != null) {
+            System.setProperty(key, value);
+        }
     }
 
