Index: /trunk/src/org/openstreetmap/josm/data/validation/Test.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 5292)
+++ /trunk/src/org/openstreetmap/josm/data/validation/Test.java	(revision 5293)
@@ -245,3 +245,13 @@
         }
     }
+
+    /**
+     * Determines if the specified primitive denotes a building.
+     * @param p The primitive to be tested
+     * @return True if building key is set and different from no,entrance
+     */
+    protected static final boolean isBuilding(OsmPrimitive p) {
+        String v = p.get("building");
+        return v != null && !v.equals("no") && !v.equals("entrance");
+    }
 }
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/BuildingInBuilding.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/BuildingInBuilding.java	(revision 5292)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/BuildingInBuilding.java	(revision 5293)
@@ -121,7 +121,3 @@
         return false;
     }
-
-    private static boolean isBuilding(OsmPrimitive p) {
-        return "yes".equals(p.get("building"));
-    }
 }
Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 5292)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 5293)
@@ -73,5 +73,5 @@
         boolean isSubway1 = "subway".equals(railway1);
         boolean isTram1 = "tram".equals(railway1);
-        boolean isBuilding = (w.get("building") != null);
+        boolean isBuilding = isBuilding(w);
         String waterway1 = w.get("waterway");
 
