Index: trunk/src/org/openstreetmap/josm/data/projection/Lambert.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/Lambert.java	(revision 1582)
+++ trunk/src/org/openstreetmap/josm/data/projection/Lambert.java	(revision 1583)
@@ -109,5 +109,5 @@
                 JOptionPane.showMessageDialog(Main.parent,
                         tr("The projection \"{0}\" is designed for\n"
-                        + "latitudes between 46.1° and 57° only.\n"
+                        + "latitudes between 46.1\u00b0 and 57\u00b0 only.\n"
                         + "Use another projection system if you are not using\n"
                         + "a French WMS server.\n"
Index: trunk/src/org/openstreetmap/josm/data/projection/SwissGrid.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/SwissGrid.java	(revision 1582)
+++ trunk/src/org/openstreetmap/josm/data/projection/SwissGrid.java	(revision 1583)
@@ -44,6 +44,6 @@
         JOptionPane.showMessageDialog(Main.parent,
                 tr("The projection \"{0}\" is designed for\n"
-                + "latitudes between 45.7' and 47.9'\n"
-                + "and longitutes between 5.7' and 10.6' only.\n"
+                + "latitudes between 45.7\u00b0 and 47.9\u00b0\n"
+                + "and longitutes between 5.7\u00b0 and 10.6\u00b0 only.\n"
                 + "Use another projection system if you are not working\n"
                 + "on a data set of Switzerland or Liechtenstein.\n"
Index: trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java	(revision 1582)
+++ trunk/src/org/openstreetmap/josm/gui/mappaint/ElemStyleHandler.java	(revision 1583)
@@ -2,4 +2,6 @@
 
 import java.awt.Color;
+
+import javax.swing.ImageIcon;
 
 import org.openstreetmap.josm.tools.ColorHelper;
@@ -170,10 +172,12 @@
             else if (qName.equals("icon"))
             {
-                hadIcon = inIcon = true;
+                inIcon = true;
                 for (int count=0; count<atts.getLength(); count++)
                 {
-                    if (atts.getQName(count).equals("src"))
-                        rule.icon.icon = MapPaintStyles.getIcon(atts.getValue(count), styleName);
-                    else if (atts.getQName(count).equals("annotate"))
+                    if (atts.getQName(count).equals("src")) {
+                        ImageIcon icon = MapPaintStyles.getIcon(atts.getValue(count), styleName);
+                        hadIcon = (icon != null);
+                        rule.icon.icon = icon;
+                    } else if (atts.getQName(count).equals("annotate"))
                         rule.icon.annotate = Boolean.parseBoolean (atts.getValue(count));
                     else if(atts.getQName(count).equals("priority"))
Index: trunk/src/org/openstreetmap/josm/tools/I18n.java
===================================================================
--- trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 1582)
+++ trunk/src/org/openstreetmap/josm/tools/I18n.java	(revision 1583)
@@ -6,4 +6,5 @@
 import java.util.Comparator;
 import java.util.Locale;
+import java.util.LinkedList;
 import java.util.Vector;
 
@@ -58,13 +59,25 @@
     public static final Locale[] getAvailableTranslations() {
         Vector<Locale> v = new Vector<Locale>();
+        LinkedList<String>str = new LinkedList<String>();
         Locale[] l = Locale.getAvailableLocales();
         for (int i = 0; i < l.length; i++) {
-            String cn = TR_BASE + l[i];
+            String loc = l[i].toString();
+            String cn = TR_BASE + loc;
             try {
                 Class.forName(cn);
                 v.add(l[i]);
+                str.add(loc);
             } catch (ClassNotFoundException e) {
             }
         }
+        /* hmm, don't know why this is necessary */
+        try {
+          if(!str.contains("nb"))
+            v.add(new Locale("nb"));
+        } catch (Exception e) {}
+        try {
+          if(!str.contains("gl"))
+            v.add(new Locale("gl"));
+        } catch (Exception e) {}
         l = new Locale[v.size()];
         l = v.toArray(l);
