Index: /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
===================================================================
--- /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 4480)
+++ /trunk/src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 4481)
@@ -74,4 +74,5 @@
         boolean isTram1 = "tram".equals(railway1);
         boolean isBuilding = (w.get("building") != null);
+        String waterway1 = w.get("waterway");
 
         if (w.get("highway") == null && w.get("waterway") == null
@@ -86,5 +87,5 @@
         for (int i = 0; i < nodesSize - 1; i++) {
             WaySegment ws = new WaySegment(w, i);
-            ExtendedSegment es1 = new ExtendedSegment(ws, layer1, railway1, isCoastline1);
+            ExtendedSegment es1 = new ExtendedSegment(ws, layer1, railway1, isCoastline1, waterway1);
             List<List<ExtendedSegment>> cellSegments = getSegments(es1.n1, es1.n2);
             for (List<ExtendedSegment> segments : cellSegments) {
@@ -107,4 +108,6 @@
 
                     if (isCoastline1 != isCoastline2) continue;
+                    if (("river".equals(waterway1) && "riverbank".equals(es2.waterway))
+                            || ("riverbank".equals(waterway1) && "river".equals(es2.waterway))) continue;
 
                     if ((es1.railway != null && es1.railway.equals("abandoned"))
@@ -170,4 +173,7 @@
         public String railway;
 
+        /** The waterway type */
+        public String waterway;
+
         /** The coastline type */
         public boolean coastline;
@@ -179,6 +185,7 @@
          * @param railway The railway type of the way this segment is in
          * @param coastline The coastline flag of the way the segment is in
+         * @param waterway The waterway type of the way this segment is in
          */
-        public ExtendedSegment(WaySegment ws, String layer, String railway, boolean coastline) {
+        public ExtendedSegment(WaySegment ws, String layer, String railway, boolean coastline, String waterway) {
             this.ws = ws;
             this.n1 = ws.way.getNodes().get(ws.lowerIndex);
@@ -187,4 +194,5 @@
             this.railway = railway;
             this.coastline = coastline;
+            this.waterway = waterway;
         }
 
