Index: src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- src/org/openstreetmap/josm/tools/I18n.java	(revision 111)
+++ src/org/openstreetmap/josm/tools/I18n.java	(revision 112)
@@ -1,3 +1,7 @@
 package org.openstreetmap.josm.tools;
+
+import java.text.MessageFormat;
+import java.util.Locale;
+import java.util.MissingResourceException;
 
 import org.openstreetmap.josm.Main;
@@ -10,19 +14,35 @@
  */
 public class I18n {
-	private static org.xnap.commons.i18n.I18n i18n = I18nFactory.getI18n(Main.class);
+	private static org.xnap.commons.i18n.I18n i18n;
+	
+	static {
+		try {
+	        i18n = I18nFactory.getI18n(Main.class);
+        } catch (MissingResourceException e) {
+        	System.out.println("Locale '"+Locale.getDefault().getLanguage()+"' not found. Using default.");
+        }
+	}
 	
 	public static String tr(String text, Object... objects) {
+		if (i18n == null)
+			return MessageFormat.format(text, objects);
 		return i18n.tr(text, objects);
 	}
 
 	public static String tr(String text) {
+		if (i18n == null)
+			return text;
 		return i18n.tr(text);
 	}
 
 	public static String trn(String text, String pluralText, long n, Object... objects) {
+		if (i18n == null)
+			return n == 1 ? tr(text, objects) : tr(pluralText, objects);
 		return i18n.trn(text, pluralText, n, objects);
 	}
 
 	public static String trn(String text, String pluralText, long n) {
+		if (i18n == null)
+			return n == 1 ? tr(text) : tr(pluralText);
 		return i18n.trn(text, pluralText, n);
 	}
