Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 15514)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 15515)
@@ -27,5 +27,5 @@
 
 /**
- * Tests if there are segments that crosses in the same layer
+ * Tests if there are segments that crosses in the same layer/level
  *
  * @author frsantos
@@ -107,5 +107,5 @@
             if (w1 == w2)
                 return false;
-            if (!Objects.equals(OsmUtils.getLayer(w1), OsmUtils.getLayer(w2))) {
+            if (areLayerOrLevelDifferent(w1, w2)) {
                 return true;
             }
@@ -252,7 +252,6 @@
         @Override
         boolean ignoreWaySegmentCombination(Way w1, Way w2) {
-            return !Objects.equals(OsmUtils.getLayer(w1), OsmUtils.getLayer(w2));
-        }
-
+            return areLayerOrLevelDifferent(w1, w2);
+        }
     }
 
@@ -393,4 +392,9 @@
     }
 
+    private static boolean areLayerOrLevelDifferent(Way w1, Way w2) {
+        return !Objects.equals(OsmUtils.getLayer(w1), OsmUtils.getLayer(w2))
+            || !Objects.equals(w1.get("level"), w2.get("level"));
+    }
+
     /**
      * Returns all the cells this segment crosses.  Each cell contains the list
