Index: trunk/src/org/openstreetmap/josm/data/projection/UTM.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/UTM.java	(revision 2495)
+++ trunk/src/org/openstreetmap/josm/data/projection/UTM.java	(revision 2496)
@@ -430,5 +430,5 @@
                 String zonestring = code.substring(9);
                 int zoneval = Integer.parseInt(zonestring);
-                if(zoneval > 0 && zone <= 60)
+                if(zoneval > 0 && zoneval <= 60)
                 {
                     return Collections.singleton(zonestring);
Index: trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java
===================================================================
--- trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java	(revision 2495)
+++ trunk/src/org/openstreetmap/josm/gui/preferences/ProjectionPreference.java	(revision 2496)
@@ -91,12 +91,17 @@
         projPanel.add(bounds, GBC.eop().fill(GBC.HORIZONTAL).insets(0,5,5,5));
         projPanel.add(projSubPrefPanel, projSubPrefPanelGBC);
+
         JScrollPane scrollpane = new JScrollPane(projPanel);
         gui.mapcontent.addTab(tr("Map Projection"), scrollpane);
 
-        projectionCode.setText(Main.proj.toCode());
-        Bounds b = Main.proj.getWorldBoundsLatLon();
+        updateMeta(Main.proj);
+    }
+
+    private void updateMeta(Projection proj)
+    {
+        projectionCode.setText(proj.toCode());
+        Bounds b = proj.getWorldBoundsLatLon();
         CoordinateFormat cf = CoordinateFormat.getDefaultFormat();
         bounds.setText(b.getMin().latToString(cf)+"; "+b.getMin().lonToString(cf)+" : "+b.getMax().latToString(cf)+"; "+b.getMax().lonToString(cf));
-        /* TODO: Fix bugs, refresh code line and world bounds, fix design (e.g. add border around sub-prefs-stuff */
     }
 
@@ -109,7 +114,6 @@
             prefs = ((ProjectionSubPrefs) proj).getPreferences();
 
-        if(Main.pref.put("projection", projname)) {
-            setProjection(projname, prefs);
-        }
+        Main.pref.put("projection", projname);
+        setProjection(projname, prefs);
 
         if(Main.pref.put("coordinates",
@@ -200,4 +204,6 @@
         projPanel.add(projSubPrefPanel, projSubPrefPanelGBC);
         projPanel.revalidate();
+        projSubPrefPanel.repaint();
+        updateMeta(proj);
     }
 
