Index: src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGenerator.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGenerator.java	(revision 4604)
+++ src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberGenerator.java	(working copy)
@@ -891,17 +891,14 @@
 				MapRoad[] uncheckedRoads = new MapRoad[houses.length];
 				for (int i = 0 ; i < houses.length; i++)
 					uncheckedRoads[i] = houses[i].getRoad();
-				isOK = info.checkRoads();
+				info.checkRoads();
 				// check if houses are assigned to different roads now
 				houses = info.getHouseNodes();
 				for (int i = 0 ; i < houses.length; i++) {
 					if (houses[i].getRoad() != uncheckedRoads[i]) {
 						initialHousesForRoads.removeMapping(uncheckedRoads[i], houses[i]);
-						if (!houses[i].isIgnored())
+						if (!houses[i].isIgnored()) {
 							initialHousesForRoads.add(houses[i].getRoad(), houses[i]);
-						else {
-							if (!isOK)
-								log.info("housenumber is assigned to different road after checking addr:interpolation way which turned out to be invalid",houses[i],info );
 						}
 					}
 				}
@@ -1157,8 +1154,7 @@
 				if (dupCount > 0) {
 					log.warn("addr:interpolation way",streetName,hivl,"is ignored, it produces",dupCount,"duplicate number(s) too far from existing nodes");
 					badIvls.add(hivl);
-				}
-				else {
+				} else {
 					housesToAdd.put(hivl, interpolatedHouses);
 					for (HousenumberMatch hnm : interpolatedHouses)
 						interpolatedNumbers.put(hnm.getHousenumber(), hnm);
Index: src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberIvl.java
===================================================================
--- src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberIvl.java	(revision 4602)
+++ src/uk/me/parabola/mkgmap/osmstyle/housenumber/HousenumberIvl.java	(working copy)
@@ -17,6 +17,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+
 import uk.me.parabola.imgfmt.Utils;
 import uk.me.parabola.imgfmt.app.Coord;
 import uk.me.parabola.log.Logger;
@@ -271,6 +272,13 @@
 			hasMultipleRoads = true;
 			return true;
 		}
+		for (int i = 0; i < 2; i++){
+			if (test[i].getSegmentFrac() < 0 || test[i].getSegmentFrac() > 1){
+				hasMultipleRoads = true;
+				return true;
+			}
+		}
+
 		// we found the road that should be used for interpolation
 		roadForInterpolatedHouses = test[0].getRoad();
 
@@ -280,9 +288,6 @@
 				copyRoadData(test[i], knownHouses[i]);
 				knownHouses[i].forgetAlternativeRoads();
 			}
-			if (knownHouses[i].getSegmentFrac() < 0 || knownHouses[i].getSegmentFrac() > 1){
-				hasMultipleRoads = true;
-			}
 		}
 		if (knownHouses[0].isLeft() != knownHouses[1].isLeft()){
 			log.warn("addr:interpolation way crosses road",streetName,this);
