Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CacheControl.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CacheControl.java	(revision 21188)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CacheControl.java	(revision 21191)
@@ -73,20 +73,22 @@
 
     private void checkDirSize(File path) {
-        long size = 0;
-        long oldestFileDate = Long.MAX_VALUE;
-        int oldestFile = 0;
-        File[] files = path.listFiles();
-        for (int i = 0; i < files.length; i++) {
-            size += files[i].length();
-            if (files[i].lastModified() <  oldestFileDate) {
-                oldestFile = i;
-                oldestFileDate = files[i].lastModified();
-            }
-        }
-        if (size > cacheSize*1024*1024) {
-            System.out.println("Delete oldest file  \""+ files[oldestFile].getName()
-                    + "\" in cache dir to stay under the limit of " + cacheSize + " MB.");
-            files[oldestFile].delete();
-            checkDirSize(path);
+        if (cacheSize != 0) {
+            long size = 0;
+            long oldestFileDate = Long.MAX_VALUE;
+            int oldestFile = 0;
+            File[] files = path.listFiles();
+            for (int i = 0; i < files.length; i++) {
+                size += files[i].length();
+                if (files[i].lastModified() <  oldestFileDate) {
+                    oldestFile = i;
+                    oldestFileDate = files[i].lastModified();
+                }
+            }
+            if (size > (long)cacheSize*1024*1024) {
+                System.out.println("Delete oldest file  \""+ files[oldestFile].getName()
+                        + "\" in cache dir to stay under the limit of " + cacheSize + " MB.");
+                files[oldestFile].delete();
+                checkDirSize(path);
+            }
         }
     }
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java	(revision 21188)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java	(revision 21191)
@@ -258,4 +258,5 @@
             }
             content += "&codeDepartement=";
+            content += wmsLayer.getDepartement();
             content += "&nbResultatParPage=10";
             content += "&x=0&y=0";
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePlugin.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePlugin.java	(revision 21188)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePlugin.java	(revision 21191)
@@ -113,4 +113,6 @@
  *                 - last deployment for Java1.5 compatibility
  * 2.0 xx-xxx-xxxx - update projection for "La Reunion" departement to RGR92, UTM40S. 
+ *                 - add 'departement' as option in the municipality selection
+ *                 - fixed bug in cache directory size control (and disabled by default)
  */
 public class CadastrePlugin extends Plugin {
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePreferenceSetting.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePreferenceSetting.java	(revision 21188)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastrePreferenceSetting.java	(revision 21191)
@@ -57,5 +57,5 @@
     private JRadioButton crosspiece4 = new JRadioButton("100m");
 
-    private JCheckBox autoFirstLayer = new JCheckBox(tr("Automaticly select first WMS layer when grabing if multiple layers exist."));
+    private JCheckBox autoFirstLayer = new JCheckBox(tr("Select first WMS layer in list."));
     
     private JRadioButton grabRes1 = new JRadioButton("high");
@@ -80,5 +80,5 @@
     private JCheckBox enableCache = new JCheckBox(tr("Enable automatic caching."));
 
-    static final int DEFAULT_CACHE_SIZE = 500;
+    static final int DEFAULT_CACHE_SIZE = 0; // disabled by default
     JLabel jLabelCacheSize = new JLabel(tr("Max. cache size (in MB)"));
     private JTextField cacheSize = new JTextField(20);
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/MenuActionNewLocation.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/MenuActionNewLocation.java	(revision 21188)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/MenuActionNewLocation.java	(revision 21191)
@@ -8,4 +8,5 @@
 import java.util.ArrayList;
 
+import javax.swing.JComboBox;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
@@ -24,4 +25,29 @@
 
     private static final long serialVersionUID = 1L;
+    
+    private static final String departements[] = {
+        "", tr("(optional)"),
+        "001", "01 - Ain",                 "002", "02 - Aisne",              "003", "03 - Allier",                "004", "04 - Alpes de Haute-Provence", "005", "05 - Hautes-Alpes",
+        "006", "06 - Alpes-Maritimes",     "007", "07 - Ard\u00eache",       "008", "08 - Ardennes",              "009", "09 - Ari\u00e8ge",             "010", "10 - Aube",
+        "011", "11 - Aude",                "012", "12 - Aveyron",            "013", "13 - Bouches-du-Rh\u00f4ne", "014", "14 - Calvados",                "015", "15 - Cantal", 
+        "016", "16 - Charente",            "017", "17 - Charente-Maritime",  "018", "18 - Cher",                  "019", "19 - Corr\u00e8ze", 
+        "02A", "2A - Corse-du-Sud",        "02B", "2B - Haute-Corse", 
+        "021", "21 - C\u00f4te-d'Or",      "022", "22 - C\u00f4tes d'Armor", "023", "23 - Creuse",                "024", "24 - Dordogne",                "025", "25 - Doubs", 
+        "026", "26 - Dr\u00f4me",          "027", "27 - Eure",               "028", "28 - Eure-et-Loir",          "029", "29 - Finist\u00e8re",          "030", "30 - Gard",
+        "031", "31 - Haute-Garonne",       "032", "32 - Gers",               "033", "33 - Gironde",               "034", "34 - H\u00e9rault",            "035", "35 - Ille-et-Vilaine", 
+        "036", "36 - Indre",               "037", "37 - Indre-et-Loire",     "038", "38 - Is\u00e8re",            "039", "39 - Jura",                    "040", "40 - Landes",
+        "041", "41 - Loir-et-Cher",        "042", "42 - Loire",              "043", "43 - Haute-Loire",           "044", "44 - Loire-Atlantique",        "045", "45 - Loiret", 
+        "046", "46 - Lot",                 "047", "47 - Lot-et-Garonne",     "048", "48 - Loz\u00e8re",           "049", "49 - Maine-et-Loire",          "050", "50 - Manche",
+        "051", "51 - Marne",               "052", "52 - Haute-Marne",        "053", "53 - Mayenne",               "054", "54 - Meurthe-et-Moselle",      "055", "55 - Meuse", 
+        "056", "56 - Morbihan",            "057", "57 - Moselle",            "058", "58 - Ni\u00e8vre",           "059", "59 - Nord",                    "060", "60 - Oise",
+        "061", "61 - Orne",                "062", "62 - Pas-de-Calais",      "063", "63 - Puy-de-D\u00f4me",      "064", "64 - Pyr\u00e9n\u00e9es-Atlantiques", "065", "65 - Hautes-Pyr\u00e9n\u00e9es", 
+        "066", "66 - Pyr\u00e9n\u00e9es-Orientales", "067", "67 - Bas-Rhin", "068", "68 - Haut-Rhin",             "069", "69 - Rh\u00f4ne",              "070", "70 - Haute-Sa\u00f4ne",
+        "071", "71 - Sa\u00f4ne-et-Loire", "072", "72 - Sarthe",             "073", "73 - Savoie",                "074", "74 - Haute-Savoie",            "075", "75 - Paris", 
+        "076", "76 - Seine-Maritime",      "077", "77 - Seine-et-Marne",     "078", "78 - Yvelines",              "079", "79 - Deux-S\u00e8vres",        "080", "80 - Somme",
+        "081", "81 - Tarn",                "082", "82 - Tarn-et-Garonne",    "083", "83 - Var",                   "084", "84 - Vaucluse",                "085", "85 - Vend\u00e9e", 
+        "086", "86 - Vienne",              "087", "87 - Haute-Vienne",       "088", "88 - Vosges",                "089", "89 - Yonne",                   "090", "90 - Territoire de Belfort",
+        "091", "91 - Essonne",             "092", "92 - Hauts-de-Seine",     "093", "93 - Seine-Saint-Denis",     "094", "94 - Val-de-Marne",            "095", "95 - Val-d'Oise", 
+        "971", "971 - Guadeloupe",         "972", "972 - Martinique",        "973", "973 - Guyane",               "974", "974 - R\u00e9union"
+    };
 
     public MenuActionNewLocation() {
@@ -46,8 +72,16 @@
         inputTown.setToolTipText(tr("<html>Enter the town,village or city name.<br>"
                 + "Use the syntax and punctuation known by www.cadastre.gouv.fr .</html>"));
+        JLabel labelDepartement =  new JLabel(tr("Departement"));
+        final JComboBox inputDepartement = new JComboBox();
+        for (int i=1; i<departements.length; i+=2) {
+            inputDepartement.addItem(departements[i]);
+        }
+        inputDepartement.setToolTipText(tr("<html>Departement number (optional)</html>"));
 
         p.add(labelSectionNewLocation, GBC.eol());
         p.add(labelLocation, GBC.std().insets(10, 0, 0, 0));
         p.add(inputTown, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
+        p.add(labelDepartement, GBC.std().insets(10, 0, 0, 0));
+        p.add(inputDepartement, GBC.eol().fill(GBC.HORIZONTAL).insets(5, 0, 0, 5));
         JOptionPane pane = new JOptionPane(p, JOptionPane.INFORMATION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, null) {
             private static final long serialVersionUID = 1L;
@@ -66,4 +100,5 @@
         if (!inputTown.getText().equals("")) {
             location = inputTown.getText().toUpperCase();
+            codeDepartement = departements[inputDepartement.getSelectedIndex()*2];
             changeInterface = true;
             Main.pref.put("cadastrewms.location", location);
@@ -71,5 +106,5 @@
             if (Main.map != null) {
                 for (Layer l : Main.map.mapView.getAllLayers()) {
-                    if (l instanceof WMSLayer && l.getName().equalsIgnoreCase(location + codeDepartement)) {
+                    if (l instanceof WMSLayer && l.getName().equalsIgnoreCase(location)) {
                         return null;
                     }
@@ -85,4 +120,5 @@
                 zone = ((UTM_France_DOM)Main.proj).getCurrentGeodesic();
             wmsLayer = new WMSLayer(location, codeCommune, zone);
+            wmsLayer.setDepartement(codeDepartement);
             CadastrePlugin.addWMSLayer(wmsLayer);
             System.out.println("Add new layer with Location:" + inputTown.getText());
Index: applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/WMSLayer.java
===================================================================
--- applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/WMSLayer.java	(revision 21188)
+++ applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/WMSLayer.java	(revision 21191)
@@ -69,4 +69,6 @@
 
     private String location = "";
+    
+    private String departement = "";
 
     private String codeCommune = "";
@@ -377,4 +379,12 @@
         this.location = location;
         setName(rebuildName());
+    }
+
+    public String getDepartement() {
+        return departement;
+    }
+
+    public void setDepartement(String departement) {
+        this.departement = departement;
     }
 
