Index: /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/Address.java
===================================================================
--- /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/Address.java	(revision 29800)
+++ /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/Address.java	(revision 29801)
@@ -113,5 +113,12 @@
             Main.map.mapView.removeMouseListener(this);
         }
-        dialog.setVisible(false);
+//        dialog.setVisible(false);
+        // kill the window completely to fix an issue on some linux distro and
+        // full screen mode.
+        if(dialog != null)
+        {
+            dialog.dispose();
+            dialog = null;
+        }
     }
 
@@ -132,9 +139,9 @@
             setNewSelection(currentMouseNode);
             String num = currentMouseNode.get(tagHouseNumber);
-            if (num != null //
-                    && currentMouseNode.get(tagHouseStreet) == null //
-                    && findWayInRelationAddr(currentMouseNode) == null //
+            if (num != null
+                    && currentMouseNode.get(tagHouseStreet) == null
+                    && findWayInRelationAddr(currentMouseNode) == null
                     && !inputStreet.getText().equals("")) {
-                // address already present but not linked to a street
+                // house number already present but not linked to a street
                 Collection<Command> cmds = new LinkedList<Command>();
                 addStreetNameOrRelation(currentMouseNode, cmds);
@@ -154,12 +161,14 @@
                 }
                 if (currentMouseNode.get(tagHouseStreet) != null) {
-                    inputStreet.setText(currentMouseNode.get(tagHouseStreet));
-                    if (ctrl) {
-                        Collection<Command> cmds = new LinkedList<Command>();
-                        addAddrToPrimitive(currentMouseNode, cmds);
-                        if (num == null)
-                            applyInputNumberChange();
+                    if(Main.pref.getBoolean("cadastrewms.addr.dontUseRelation", false)) {
+                        inputStreet.setText(currentMouseNode.get(tagHouseStreet));
+                        if (ctrl) {
+                            Collection<Command> cmds = new LinkedList<Command>();
+                            addAddrToPrimitive(currentMouseNode, cmds);
+                            if (num == null)
+                                applyInputNumberChange();
+                        }
+                        setSelectedWay((Way)null);
                     }
-                    setSelectedWay((Way)null);
                 } else {
                     // check if the node belongs to an associatedStreet relation
@@ -528,4 +537,5 @@
         } else
             link.setEnabled(true);
+        link.repaint();
     }
     
Index: /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java
===================================================================
--- /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java	(revision 29800)
+++ /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/CadastreInterface.java	(revision 29801)
@@ -508,36 +508,38 @@
 
     private void parseGeoreferences(WMSLayer wmsLayer, String input) {
-        if (input.lastIndexOf(cBBoxCommunStart) != -1) {
-            input = input.substring(input.lastIndexOf(cBBoxCommunStart));
-            input = input.substring(input.indexOf(cBBoxCommunEnd)+cBBoxCommunEnd.length());
-            int i = input.indexOf(",");
-            int j = input.indexOf(",", i+1);
-            String str = input.substring(i+1, j);
-            double unknown_yet = tryParseDouble(str);
-            int j_ = input.indexOf(",", j+1);
-            double angle = Double.parseDouble(input.substring(j+1, j_));
-            int k = input.indexOf(",", j_+1);
-            double scale_origin = Double.parseDouble(input.substring(j_+1, k));
-            int l = input.indexOf(",", k+1);
-            double dpi = Double.parseDouble(input.substring(k+1, l));
-            int m = input.indexOf(",", l+1);
-            double fX = Double.parseDouble(input.substring(l+1, m));
-            int n = input.indexOf(",", m+1);
-            double fY = Double.parseDouble(input.substring(m+1, n));
-            int o = input.indexOf(",", n+1);
-            double X0 = Double.parseDouble(input.substring(n+1, o));
-            int p = input.indexOf(",", o+1);
-            double Y0 = Double.parseDouble(input.substring(o+1, p));
-            if (X0 != 0.0 && Y0 != 0) {
-                wmsLayer.setAlreadyGeoreferenced(true);
-                wmsLayer.fX = fX;
-                wmsLayer.fY = fY;
-                wmsLayer.angle = angle;
-                wmsLayer.X0 = X0;
-                wmsLayer.Y0 = Y0;
-            }
-            System.out.println("parse georef:"+unknown_yet+","+angle+","+scale_origin+","+dpi+","+fX+","+
-                    fY+","+X0+","+Y0);
-        }
+        /* commented since cadastre WMS changes mid july 2013 
+         * until new GeoBox coordinates parsing is solved */
+//        if (input.lastIndexOf(cBBoxCommunStart) != -1) {
+//            input = input.substring(input.lastIndexOf(cBBoxCommunStart));
+//            input = input.substring(input.indexOf(cBBoxCommunEnd)+cBBoxCommunEnd.length());
+//            int i = input.indexOf(",");
+//            int j = input.indexOf(",", i+1);
+//            String str = input.substring(i+1, j);
+//            double unknown_yet = tryParseDouble(str);
+//            int j_ = input.indexOf(",", j+1);
+//            double angle = Double.parseDouble(input.substring(j+1, j_));
+//            int k = input.indexOf(",", j_+1);
+//            double scale_origin = Double.parseDouble(input.substring(j_+1, k));
+//            int l = input.indexOf(",", k+1);
+//            double dpi = Double.parseDouble(input.substring(k+1, l));
+//            int m = input.indexOf(",", l+1);
+//            double fX = Double.parseDouble(input.substring(l+1, m));
+//            int n = input.indexOf(",", m+1);
+//            double fY = Double.parseDouble(input.substring(m+1, n));
+//            int o = input.indexOf(",", n+1);
+//            double X0 = Double.parseDouble(input.substring(n+1, o));
+//            int p = input.indexOf(",", o+1);
+//            double Y0 = Double.parseDouble(input.substring(o+1, p));
+//            if (X0 != 0.0 && Y0 != 0) {
+//                wmsLayer.setAlreadyGeoreferenced(true);
+//                wmsLayer.fX = fX;
+//                wmsLayer.fY = fY;
+//                wmsLayer.angle = angle;
+//                wmsLayer.X0 = X0;
+//                wmsLayer.Y0 = Y0;
+//            }
+//            System.out.println("parse georef:"+unknown_yet+","+angle+","+scale_origin+","+dpi+","+fX+","+
+//                    fY+","+X0+","+Y0);
+//        }
     }
 
Index: /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/RasterImageModifier.java
===================================================================
--- /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/RasterImageModifier.java	(revision 29800)
+++ /applications/editors/josm/plugins/cadastre-fr/src/cadastre_fr/RasterImageModifier.java	(revision 29801)
@@ -5,4 +5,5 @@
 import java.awt.image.BufferedImage;
 import java.awt.image.ComponentColorModel;
+import java.awt.image.IndexColorModel;
 
 import org.openstreetmap.josm.Main;
@@ -60,5 +61,6 @@
 
     private void makeTransparent() {
-        if (bufferedImage.getColorModel() instanceof ComponentColorModel) {
+        if (bufferedImage.getColorModel() instanceof ComponentColorModel ||
+            bufferedImage.getColorModel() instanceof IndexColorModel) {
             int width = bufferedImage.getWidth();
             int height = bufferedImage.getHeight();
