diff --git a/src/p_sight.cpp b/src/p_sight.cpp
index d53343594..9716ad50e 100644
--- a/src/p_sight.cpp
+++ b/src/p_sight.cpp
@@ -587,7 +587,7 @@ bool SightCheck::P_SightTraverseIntercepts ()
 
 		for (auto rover : lastsector->e->XFloor.ffloors)
 		{
-			if ((rover->flags & FF_SOLID) == myseethrough || !(rover->flags & FF_EXISTS)) continue;
+			if ((rover->flags & FF_SEETHROUGH) == myseethrough || !(rover->flags & FF_EXISTS)) continue;
 			if ((Flags & SF_IGNOREWATERBOUNDARY) && (rover->flags & FF_SOLID) == 0) continue;
 
 			double ff_bottom = rover->bottom.plane->ZatPoint(seeingthing);
@@ -637,7 +637,8 @@ bool SightCheck::P_SightPathTraverse ()
 	for(auto rover : lastsector->e->XFloor.ffloors)
 	{
 		if(!(rover->flags & FF_EXISTS)) continue;
-		
+		if ((Flags & SF_IGNOREWATERBOUNDARY) && (rover->flags & FF_SOLID) == 0) continue;
+
 		double ff_bottom=rover->bottom.plane->ZatPoint(sightstart);
 		double ff_top=rover->top.plane->ZatPoint(sightstart);