Index: applications/editors/josm/plugins/opendata/build.xml
===================================================================
--- applications/editors/josm/plugins/opendata/build.xml	(revision 28374)
+++ applications/editors/josm/plugins/opendata/build.xml	(revision 28384)
@@ -28,5 +28,5 @@
     <property name="commit.message" value="Commit message"/>
     <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
-    <property name="plugin.main.version" value="5132"/>
+    <property name="plugin.main.version" value="5236"/>
     <!-- should not be necessary to change the following properties -->
     <property name="josm" location="../../core/dist/josm-custom.jar"/>
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java	(revision 28374)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java	(revision 28384)
@@ -20,5 +20,4 @@
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.Arrays;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -42,14 +41,13 @@
 
 	protected static final Projection lambert93 = PRJ_LAMBERT_93.getProjection(); // France metropolitaine
-	protected static final UTM utm20 = new UTM(20, Hemisphere.North, false); // Guadeloupe, Martinique
-	protected static final UTM utm22 = new UTM(22, Hemisphere.North, false); // Guyane
-	protected static final UTM utm38 = new UTM(38, Hemisphere.South, false); // Mayotte
-	protected static final UTM utm40 = new UTM(40, Hemisphere.South, false); // Reunion
+	protected static final UTM utm20 = new UTM(20, Hemisphere.North); // Guadeloupe, Martinique
+	protected static final UTM utm22 = new UTM(22, Hemisphere.North); // Guyane
+	protected static final UTM utm38 = new UTM(38, Hemisphere.South); // Mayotte
+	protected static final UTM utm40 = new UTM(40, Hemisphere.South); // Reunion
 	
 	protected static final Lambert[] lambert4Zones = new Lambert[4];
 	static {
 		for (int i=0; i<lambert4Zones.length; i++) {
-			lambert4Zones[i] = new Lambert();
-			lambert4Zones[i].setPreferences(Arrays.asList(Integer.toString(i+1)));
+			lambert4Zones[i] = new Lambert(i);
 		}
 	}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java	(revision 28374)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/ProjectionChooser.java	(revision 28384)
@@ -27,6 +27,7 @@
 
 import org.openstreetmap.josm.data.projection.Projection;
-import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.ExtendedDialog;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionChoice;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.tools.GBC;
 
@@ -42,5 +43,5 @@
      * Combobox with all projections available
      */
-    private final JComboBox projectionCombo = new JComboBox(Projections.getProjections().toArray());
+    private final JComboBox projectionCombo = new JComboBox(ProjectionPreference.getProjectionChoices().toArray());
 
 	public ProjectionChooser(Component parent) {
@@ -64,5 +65,6 @@
 	
 	public Projection getProjection() {
-		return (Projection) projectionCombo.getSelectedItem();
+		ProjectionChoice choice = (ProjectionChoice) projectionCombo.getSelectedItem();
+		return choice != null ? choice.getProjection() : null;
 	}
 }
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 28374)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/DefaultShpHandler.java	(revision 28384)
@@ -40,9 +40,10 @@
 import org.openstreetmap.josm.data.projection.Ellipsoid;
 import org.openstreetmap.josm.data.projection.Projection;
-import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.data.projection.proj.LambertConformalConic;
 import org.openstreetmap.josm.data.projection.proj.LambertConformalConic.Parameters;
 import org.openstreetmap.josm.data.projection.proj.LambertConformalConic.Parameters1SP;
 import org.openstreetmap.josm.data.projection.proj.LambertConformalConic.Parameters2SP;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionChoice;
+import org.openstreetmap.josm.gui.preferences.projection.ProjectionPreference;
 import org.openstreetmap.josm.plugins.opendata.core.OdConstants;
 import org.openstreetmap.josm.tools.Pair;
@@ -83,5 +84,6 @@
 				LambertConformal lambert = (LambertConformal) transform;
 				GeodeticDatum geo = (GeodeticDatum) crs.getDatum();
-				for (Projection p : Projections.getProjections()) {
+				for (ProjectionChoice choice : ProjectionPreference.getProjectionChoices()) {
+					Projection p = choice.getProjection();
 					if (p instanceof AbstractProjection) {
 						AbstractProjection ap = (AbstractProjection) p;
