Index: trunk/src/org/openstreetmap/josm/Main.java
===================================================================
--- trunk/src/org/openstreetmap/josm/Main.java	(revision 4287)
+++ trunk/src/org/openstreetmap/josm/Main.java	(revision 4288)
@@ -85,4 +85,5 @@
 import org.openstreetmap.josm.tools.PlatformHookWindows;
 import org.openstreetmap.josm.tools.Shortcut;
+import org.openstreetmap.josm.tools.Utils;
 
 abstract public class Main {
@@ -823,5 +824,5 @@
     private static void fireProjectionChanged(Projection oldValue, Projection newValue) {
         if (newValue == null ^ oldValue == null
-                || (newValue != null && oldValue != null && !newValue.getClass().getName().equals(oldValue.getClass().getName()))) {
+                || (newValue != null && oldValue != null && !Utils.equal(newValue.toCode(), oldValue.toCode()))) {
 
             synchronized(Main.class) {
Index: trunk/src/org/openstreetmap/josm/data/projection/Lambert.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/Lambert.java	(revision 4287)
+++ trunk/src/org/openstreetmap/josm/data/projection/Lambert.java	(revision 4288)
@@ -86,5 +86,5 @@
                 InputStream is = Main.class.getResourceAsStream("/data/"+gridFileName);
                 if (is == null) {
-                    throw new RuntimeException(tr("Warning: failed to open input stream for resource ''/data/{0}''. Cannot load NTF<->RGF93 grid", gridFileName));
+                    throw new RuntimeException(tr("Error: failed to open input stream for resource ''/data/{0}''. Cannot load NTF<->RGF93 grid", gridFileName));
                 }
                 ntf_rgf93Grid = new NTV2GridShiftFile();
Index: trunk/src/org/openstreetmap/josm/data/projection/LambertCC9Zones.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/LambertCC9Zones.java	(revision 4287)
+++ trunk/src/org/openstreetmap/josm/data/projection/LambertCC9Zones.java	(revision 4288)
@@ -145,6 +145,5 @@
 
     @Override
-    public void setPreferences(Collection<String> args)
-    {
+    public void setPreferences(Collection<String> args) {
         int layoutZone = DEFAULT_ZONE;
         if (args != null) {
Index: trunk/src/org/openstreetmap/josm/data/projection/Projection.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/Projection.java	(revision 4287)
+++ trunk/src/org/openstreetmap/josm/data/projection/Projection.java	(revision 4288)
@@ -38,5 +38,9 @@
 
     /**
-     * Return projection code.
+     * Return projection code. This should be a unique identifier.
+     * If projection supports parameters, return a different code
+     * for each set of parameters.
+     * 
+     * The EPSG code can be used (if defined for the projection).
      */
     String toCode();
