Index: trunk/src/org/openstreetmap/josm/data/projection/ProjectionInfo.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/ProjectionInfo.java	(revision 5553)
+++ 	(revision )
@@ -1,34 +1,0 @@
-// License: GPL. For details, see LICENSE file.
-package org.openstreetmap.josm.data.projection;
-
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.openstreetmap.josm.gui.preferences.projection.ProjectionChoice;
-import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
-
-public class ProjectionInfo {
-    private static Map<String, ProjectionChoice> allCodesPC = new HashMap<String, ProjectionChoice>();
-    private static Map<String, Projection> allCodes = new HashMap<String, Projection>();
-
-    static {
-        for (ProjectionChoice pc : ProjectionPreference.getProjectionChoices()) {
-            for (String code : pc.allCodes()) {
-                allCodesPC.put(code, pc);
-            }
-        }
-    }
-
-    public static Projection getProjectionByCode(String code) {
-        Projection p = allCodes.get(code);
-        if (p != null) return p;
-        ProjectionChoice pc = allCodesPC.get(code);
-        if (pc == null) return null;
-        Collection<String> pref = pc.getPreferencesFromCode(code);
-        pc.setPreferences(pref);
-        p = pc.getProjection();
-        allCodes.put(code, p);
-        return p;
-    }
-}
Index: trunk/src/org/openstreetmap/josm/data/projection/Projections.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/projection/Projections.java	(revision 5553)
+++ trunk/src/org/openstreetmap/josm/data/projection/Projections.java	(revision 5554)
@@ -6,4 +6,5 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
@@ -24,4 +25,6 @@
 import org.openstreetmap.josm.data.projection.proj.SwissObliqueMercator;
 import org.openstreetmap.josm.data.projection.proj.TransverseMercator;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionChoice;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.io.MirroredInputStream;
 import org.openstreetmap.josm.tools.Pair;
@@ -140,3 +143,29 @@
         }
     }
+
+    private final static Map<String, ProjectionChoice> allCodesPC = new HashMap<String, ProjectionChoice>();
+    private final static Map<String, Projection> allCodes = new HashMap<String, Projection>();
+
+    static {
+        // FIXME: use {@link #inits}, because it may contain more codes in future
+        // than exposed by the ProjectionChoices
+        for (ProjectionChoice pc : ProjectionPreference.getProjectionChoices()) {
+            for (String code : pc.allCodes()) {
+                allCodesPC.put(code, pc);
+            }
+        }
+    }
+
+    public static Projection getProjectionByCode(String code) {
+        Projection p = allCodes.get(code);
+        if (p != null) return p;
+        ProjectionChoice pc = allCodesPC.get(code);
+        if (pc == null) return null;
+        Collection<String> pref = pc.getPreferencesFromCode(code);
+        pc.setPreferences(pref);
+        p = pc.getProjection();
+        allCodes.put(code, p);
+        return p;
+    }
+
 }
