Index: trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java
===================================================================
--- trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 5661)
+++ trunk/src/org/openstreetmap/josm/data/validation/tests/Addresses.java	(revision 5662)
@@ -41,7 +41,8 @@
     protected static final int HOUSE_NUMBER_ON_NON_BUILDING_AREA = 2606;
     
-    protected static final String ADDR_HOUSE_NUMBER = "addr:housenumber";
-    protected static final String ADDR_STREET       = "addr:street";
-    protected static final String ASSOCIATED_STREET = "associatedStreet";
+    protected static final String ADDR_HOUSE_NUMBER  = "addr:housenumber";
+    protected static final String ADDR_INTERPOLATION = "addr:interpolation";
+    protected static final String ADDR_STREET        = "addr:street";
+    protected static final String ASSOCIATED_STREET  = "associatedStreet";
     
     protected class AddressError extends TestError {
@@ -143,5 +144,5 @@
             }
             // Report duplicate house numbers
-            String description_en = marktr("House number '{0}' duplicated");
+            String description_en = marktr("House number ''{0}'' duplicated");
             for (String key : map.keySet()) {
                 List<OsmPrimitive> list = map.get(key);
@@ -159,5 +160,7 @@
             if (!street.isEmpty()) {
                 for (OsmPrimitive house : houses) {
-                    checkDistance(house, street);
+                    if (house.isUsable()) {
+                        checkDistance(house, street);
+                    }
                 }
             }
@@ -170,5 +173,14 @@
             centroid = ((Node) house).getEastNorth();
         } else if (house instanceof Way) {
-            centroid = Geometry.getCentroid(((Way)house).getNodes());
+            List<Node> nodes = ((Way)house).getNodes();
+            if (house.hasKey(ADDR_INTERPOLATION)) {
+                for (Node n : nodes) {
+                    if (n.hasKey(ADDR_HOUSE_NUMBER)) {
+                        checkDistance(n, street);
+                    }
+                }
+                return;
+            }
+            centroid = Geometry.getCentroid(nodes);
         } else {
             return; // TODO handle multipolygon houses ?
