Index: src/org/openstreetmap/josm/data/osm/OsmPrimitive.java
===================================================================
--- src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(revision 19277)
+++ src/org/openstreetmap/josm/data/osm/OsmPrimitive.java	(working copy)
@@ -71,7 +71,7 @@
                 "(aerialway=t-bar & -oneway=no) | "+
                 "(aerialway=j-bar & -oneway=no) | "+
                 "(aerialway=platter & -oneway=no) | "+
-                "waterway=stream | waterway=river | waterway=ditch | waterway=drain | waterway=tidal_channel | "+
+                "waterway=stream | waterway=river | waterway=ditch | waterway=drain | waterway=tidal_channel | waterway=fish_pass | "+
                 "(\"piste:type\"=downhill & -area=yes) | (\"piste:type\"=sled & -area=yes) | (man_made=\"piste:halfpipe\" & -area=yes) | "+
                 "(junction=circular & -oneway=no) | junction=roundabout | (highway=motorway & -oneway=no & -oneway=reversible) | "+
                 "(highway=motorway_link & -oneway=no & -oneway=reversible)";
Index: src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java
===================================================================
--- src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(revision 19277)
+++ src/org/openstreetmap/josm/data/validation/tests/CrossingWays.java	(working copy)
@@ -133,8 +133,8 @@
             if (w1.hasKey(RAILWAY) && w2.hasKey(RAILWAY) && (w1.hasTag(RAILWAY, "yard") != w2.hasTag(RAILWAY, "yard")
                     || w1.hasTag(RAILWAY, "halt") != w2.hasTag(RAILWAY, "halt")))
                 return true;  // see #20089, #21541
-            return (w1.hasTag(WATERWAY, "river", "stream", "canal", "drain", "ditch") && isWaterArea(w2))
-                    || (w2.hasTag(WATERWAY, "river", "stream", "canal", "drain", "ditch") && isWaterArea(w1));
+            return (w1.hasTag(WATERWAY, "river", "stream", "canal", "drain", "ditch", "fish_pass") && isWaterArea(w2))
+                    || (w2.hasTag(WATERWAY, "river", "stream", "canal", "drain", "ditch", "fish_pass") && isWaterArea(w1));
         }
 
         @Override
Index: resources/data/validator/geometry.mapcss
===================================================================
--- resources/data/validator/geometry.mapcss	(revision 19277)
+++ resources/data/validator/geometry.mapcss	(working copy)
@@ -34,6 +34,7 @@
 node[waterway=river],
 node[waterway=canal],
 node[waterway=stream],
+node[waterway=fish_pass],
 node[waterway=ditch],
 node[waterway=drain],
 node[natural=coastline],
@@ -375,7 +376,7 @@
 }
 
 /* #12646, #12992, #16334 */
-way[waterway=~/^(stream|river|drain)$/]!:closed >[index=-1] node[natural!=sinkhole][natural!=cave_entrance][waterway!=stream_end]!:connection:in-downloaded-area { 
+way[waterway=~/^(stream|river|drain|fish_pass)$/]!:closed >[index=-1] node[natural!=sinkhole][natural!=cave_entrance][waterway!=stream_end]!:connection:in-downloaded-area { 
   throwWarning: tr("Waterway ends without a connection to another waterway or the direction of the waterway is wrong.");
 }
 
@@ -397,6 +398,7 @@
 area:closed[waterway = drain][area!=no],
 area:closed[waterway = ditch][area!=no],
 area:closed[waterway = stream][area!=no],
+area:closed[waterway = fish_pass][area!=no],
 area:closed[waterway = river][area!=no] {
   throwWarning: tr("{0} is the tag for the linear waterway. To tag the water area use {1} + {2} instead.", "{1.tag}", "natural=water", "water=*");
 }
Index: resources/styles/standard/elemstyles.mapcss
===================================================================
--- resources/styles/standard/elemstyles.mapcss	(revision 19277)
+++ resources/styles/standard/elemstyles.mapcss	(working copy)
@@ -5339,10 +5339,15 @@
     casing-width: 1;
     casing-color: pipeline#660000;
 }
-way[waterway=stream] {
+way[waterway=stream] { 
     width: 1;
     color: stream#6600cc;
 }
+way[waterway=fish_pass] { 
+    width: 1;
+    color: water#0000ff;
+    dashes: 10,10;
+}
 way[waterway=ditch],
 way[waterway=drain] {
     width: 1;
@@ -5356,6 +5361,7 @@
 area[waterway=riverbank][intermittent=yes],
 way[waterway=canal][intermittent=yes],
 way[waterway=stream][intermittent=yes],
+way[waterway=fish_pass][intermittent=yes],
 way[waterway=ditch][intermittent=yes],
 way[waterway=drain][intermittent=yes],
 way[waterway=tidal_channel][intermittent=yes] {
@@ -5434,7 +5440,7 @@
 }
 node[waterway=river], node[waterway=riverbank],
 node[waterway=canal], node[waterway=wadi],
-node[waterway=stream],
+node[waterway=stream], node[waterway=fish_pass], 
 node[waterway=ditch], node[waterway=drain] {
     icon-image: "presets/misc/deprecated.svg";
     set icon_z17;
