Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 28696)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/OdConstants.java	(revision 28891)
@@ -22,8 +22,5 @@
 
 import org.openstreetmap.josm.actions.ExtensionFileFilter;
-import org.openstreetmap.josm.data.projection.BelgianLambert1972;
-import org.openstreetmap.josm.data.projection.BelgianLambert2008;
-import org.openstreetmap.josm.data.projection.Epsg4326;
-import org.openstreetmap.josm.data.projection.Lambert93;
+import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.plugins.opendata.core.io.LambertCC9ZonesProjectionPatterns;
 import org.openstreetmap.josm.plugins.opendata.core.io.ProjectionPatterns;
@@ -136,10 +133,10 @@
     
     public static final ProjectionPatterns PRJ_UNKNOWN = new ProjectionPatterns("");
-    public static final ProjectionPatterns PRJ_WGS84 = new ProjectionPatterns("GPS|WGS84|°décimaux", new Epsg4326());
-    public static final ProjectionPatterns PRJ_LAMBERT_93 = new ProjectionPatterns("LAMB93|L93", new Lambert93());
+    public static final ProjectionPatterns PRJ_WGS84 = new ProjectionPatterns("GPS|WGS84|°décimaux", Projections.getProjectionByCode("EPSG:4326"));
+    public static final ProjectionPatterns PRJ_LAMBERT_93 = new ProjectionPatterns("LAMB93|L93", Projections.getProjectionByCode("EPSG:2154"));
     public static final ProjectionPatterns PRJ_LAMBERT_CC_9_ZONES = new LambertCC9ZonesProjectionPatterns("LAMBZ|CC(42|43|44|45|46|47|48|49|50)");
 
-    public static final ProjectionPatterns PRJ_LAMBERT_1972 = new ProjectionPatterns("LAMB72|LAMB1972", new BelgianLambert1972());
-    public static final ProjectionPatterns PRJ_LAMBERT_2008 = new ProjectionPatterns("LAMB08|LAMB2008", new BelgianLambert2008());
+    public static final ProjectionPatterns PRJ_LAMBERT_1972 = new ProjectionPatterns("LAMB72|LAMB1972", Projections.getProjectionByCode("EPSG:31370"));
+    public static final ProjectionPatterns PRJ_LAMBERT_2008 = new ProjectionPatterns("LAMB08|LAMB2008", Projections.getProjectionByCode("EPSG:3812"));
 
     /**
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 28696)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/datasets/fr/FrenchDataSetHandler.java	(revision 28891)
@@ -27,8 +27,6 @@
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
 import org.openstreetmap.josm.data.osm.Tag;
-import org.openstreetmap.josm.data.projection.Lambert;
 import org.openstreetmap.josm.data.projection.Projection;
-import org.openstreetmap.josm.data.projection.UTM;
-import org.openstreetmap.josm.data.projection.UTM.Hemisphere;
+import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.SimpleDataSetHandler;
 import org.openstreetmap.josm.plugins.opendata.core.io.tabular.DefaultCsvHandler;
@@ -41,13 +39,13 @@
 
 	protected static final Projection lambert93 = PRJ_LAMBERT_93.getProjection(); // France metropolitaine
-	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];
+	protected static final Projection utm20 = Projections.getProjectionByCode("EPSG:32620"); // UTM 20 N - Guadeloupe, Martinique
+	protected static final Projection utm22 = Projections.getProjectionByCode("EPSG:32622"); // UTM 22 N - Guyane
+	protected static final Projection utm38 = Projections.getProjectionByCode("EPSG:32738"); // UTM 38 S - Mayotte
+	protected static final Projection utm40 = Projections.getProjectionByCode("EPSG:32740"); // UTM 40 S - Reunion
+	
+	protected static final Projection[] lambert4Zones = new Projection[4];
 	static {
 		for (int i=0; i<lambert4Zones.length; i++) {
-			lambert4Zones[i] = new Lambert(i);
+			lambert4Zones[i] = Projections.getProjectionByCode("EPSG:"+Integer.toString(27561+i));
 		}
 	}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/LambertCC9ZonesProjectionPatterns.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/LambertCC9ZonesProjectionPatterns.java	(revision 28696)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/LambertCC9ZonesProjectionPatterns.java	(revision 28891)
@@ -5,13 +5,13 @@
 import java.util.regex.Matcher;
 
-import org.openstreetmap.josm.data.projection.LambertCC9Zones;
 import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.data.projection.Projections;
 
 public class LambertCC9ZonesProjectionPatterns extends ProjectionPatterns {
 	
-	public static final LambertCC9Zones[] lambertCC9Zones = new LambertCC9Zones[9];
+	public static final Projection[] lambertCC9Zones = new Projection[9];
 	static {
 		for (int i=0; i<lambertCC9Zones.length; i++) {
-			lambertCC9Zones[i] = new LambertCC9Zones(i);
+			lambertCC9Zones[i] = Projections.getProjectionByCode("EPSG:"+Integer.toString(3942+i));
 		}
 	}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java	(revision 28696)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/geographic/MifReader.java	(revision 28891)
@@ -36,8 +36,6 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.projection.Epsg4326;
-import org.openstreetmap.josm.data.projection.Lambert93;
-import org.openstreetmap.josm.data.projection.LambertCC9Zones;
 import org.openstreetmap.josm.data.projection.Projection;
+import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
 import org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler;
@@ -123,5 +121,5 @@
 
 			if (proj == Longitude_Latitude) {
-				josmProj = new Epsg4326();
+				josmProj = Projections.getProjectionByCode("EPSG:4326"); // WGS 84
 				return;
 			}
@@ -238,9 +236,9 @@
 					// This sounds good for Lambert 93 or Lambert CC 9
 					if (equals(originLat, 46.5) && equals(stdP1, 44.0) && equals(stdP2, 49.0) && equals(falseEasting, 700000.0) && equals(falseNorthing, 6600000.0)) {
-						josmProj = new Lambert93();
+						josmProj = Projections.getProjectionByCode("EPSG:2154"); // Lambert 93
 					} else if (equals(falseEasting, 1700000.0)) {
 						for (int i=0; josmProj == null && i<9; i++) {
 							if (equals(originLat, 42.0+i) && equals(stdP1, 41.25+i) && equals(stdP2, 42.75+i) && equals(falseNorthing, (i+1)*1000000.0 + 200000.0)) {
-								josmProj = new LambertCC9Zones(i);
+								josmProj = Projections.getProjectionByCode("EPSG:"+Integer.toString(3942 + i)); // LambertCC9Zones
 							}
 						}
Index: applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java
===================================================================
--- applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 28696)
+++ applications/editors/josm/plugins/opendata/src/org/openstreetmap/josm/plugins/opendata/core/io/tabular/SpreadSheetReader.java	(revision 28891)
@@ -32,5 +32,4 @@
 import org.openstreetmap.josm.data.osm.DataSet;
 import org.openstreetmap.josm.data.osm.Node;
-import org.openstreetmap.josm.data.projection.LambertCC9Zones;
 import org.openstreetmap.josm.data.projection.Projection;
 import org.openstreetmap.josm.gui.progress.ProgressMonitor;
@@ -45,11 +44,4 @@
 	private static final NumberFormat formatUK = NumberFormat.getInstance(Locale.UK);
 	
-	protected static final LambertCC9Zones[] projLambCC9Zones = new LambertCC9Zones[9];
-	static {
-		for (int i=0; i<projLambCC9Zones.length; i++) {
-			projLambCC9Zones[i] = new LambertCC9Zones(i);
-		}
-	}
-
 	protected final SpreadSheetHandler handler;
 
