Index: applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java
===================================================================
--- applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java	(revision 28054)
+++ applications/editors/josm/plugins/opendata/modules/fr.datagouvfr/src/org/openstreetmap/josm/plugins/opendata/modules/fr/datagouvfr/datasets/hydrologie/EauxDeSurfaceHandler.java	(revision 28055)
@@ -16,4 +16,9 @@
 package org.openstreetmap.josm.plugins.opendata.modules.fr.datagouvfr.datasets.hydrologie;
 
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -29,15 +34,32 @@
 public class EauxDeSurfaceHandler extends DataGouvDataSetHandler {
 
-	private static final String ZIP_PATTERN = "FR(I|J|K|L)_SW";
-	private static final String SHP_PATTERN = "FR_(I|J|K|L)_SWB_.W_20......";
+	private static final String ZIP_PATTERN = "FR(.*)_SW";
+	private static final String SHP_PATTERN = "FR_(.*)_SWB_.W_20......";
 	
-	private static final String[] letters = new String[]{"I","J","K","L"}; 
-	private static final String[] names   = new String[]{"Guadeloupe","Martinique","Guyane","La Réunion"}; 
-	private static final String[] urls    = new String[]{
-		"Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---Guadeloupe-30381899",
-		"Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---Martinique-30381935",
-		"Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---Guyane-30381988",
-		"Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---Réunion-30381991"
-	}; 
+	private static final class WaterAgency {
+		public final String code;
+		public final String name;
+		public final String suffix;
+		public WaterAgency(String code, String name, String suffix) {
+			this.code = code;
+			this.name = name;
+			this.suffix = suffix;
+		}
+	}
+	
+	private static final WaterAgency[] waterAgencies = new WaterAgency[]{
+		new WaterAgency("A",  "Escaut Somme", "Escaut-Somme-30381967"),
+		new WaterAgency("B1", "Meuse", "Meuse-30381855"),
+		new WaterAgency("B2", "Sambre", "Sambre-30381857"),
+		new WaterAgency("C", "Rhin", "Rhin-30381951"),
+		new WaterAgency("D",  "Rhône Méditerranée", "Rhône-Méditerranée-30382014"),
+		new WaterAgency("E",  "Corse", "Corse-30381905"),
+		new WaterAgency("F",  "Adour Garonne", "Adour-Garonne-30381839"),
+		new WaterAgency("G",  "Loire Bretagne", "Loire-Bretagne-30381904"),
+		new WaterAgency("I",  "Guadeloupe", "Guadeloupe-30381899"),
+		new WaterAgency("J",  "Martinique", "Martinique-30381935"),
+		new WaterAgency("K",  "Guyane", "Guyane-30381988"),
+		new WaterAgency("L",  "La Réunion", "Réunion-30381991"),
+	};
 	
 	public EauxDeSurfaceHandler() {
@@ -67,7 +89,7 @@
 			Matcher m = Pattern.compile(".*"+pattern+"\\....").matcher(filename);
 			if (m.matches()) {
-				for (int i =0; i<letters.length; i++) {
-					if (letters[i].equals(m.group(1))) {
-						return urls[i];
+				for (int i =0; i<waterAgencies.length; i++) {
+					if (waterAgencies[i].code.equals(m.group(1))) {
+						return "Couche-SIG-des-caractéristiques-des-bassins-2010-%3A-eaux-de-surface---"+waterAgencies[i].suffix;
 					}
 				}
@@ -89,6 +111,6 @@
 		List<Pair<String, URL>> result = new ArrayList<Pair<String,URL>>();
 		try {
-			for (int i =0; i<letters.length; i++) {
-				result.add(getDownloadURL(i));
+			for (int i =0; i<waterAgencies.length; i++) {
+				result.add(getDownloadURL(waterAgencies[i]));
 			}
 		} catch (MalformedURLException e) {
@@ -98,6 +120,30 @@
 	}
 
-	private Pair<String, URL> getDownloadURL(int i) throws MalformedURLException {
-		return new Pair<String, URL>(names[i], new URL("http://www.rapportage.eaufrance.fr/sites/default/files/SIG/FR"+letters[i]+"_SW.zip"));
+	private Pair<String, URL> getDownloadURL(WaterAgency a) throws MalformedURLException {
+		return new Pair<String, URL>(a.name, new URL("http://www.rapportage.eaufrance.fr/sites/default/files/SIG/FR"+a.code+"_SW.zip"));
+	}
+
+	/* (non-Javadoc)
+	 * @see org.openstreetmap.josm.plugins.opendata.core.datasets.AbstractDataSetHandler#notifyTempFileWritten(java.io.File)
+	 */
+	@Override
+	public void notifyTempFileWritten(File file) {
+		if (file.getName().matches(SHP_PATTERN.replace("(.*)", "F")+"\\.prj")) { // Adour-Garonne .prj files cannot be parsed because they do not contain quotes... 
+			try {
+				BufferedReader reader = new BufferedReader(new FileReader(file));
+				String line = reader.readLine();
+				reader.close();
+				if (!line.contains("\"")) {
+					for (String term : new String[]{"GCS_ETRS_1989", "D_ETRS_1989", "GRS_1980", "Greenwich", "Degree"}) {
+						line = line.replace(term, "\""+term+"\"");
+					}
+					BufferedWriter writer = new BufferedWriter(new FileWriter(file));
+					writer.write(line);
+					writer.close();
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
 	}
 }
