diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 7ab0929da3c2b2b4e53b48bb02f6e065b4304dd7..d4682fc9d4f6f51515416ee7cd074ba3fc2a89ee 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -5695,7 +5695,7 @@ static void HWR_ProjectSprite(mobj_t *thing)
 	if ((thing->flags2 & MF2_LINKDRAW) && thing->tracer)
 	{
 		// bodge support - not nearly as comprehensive as r_things.c, but better than nothing
-		if (thing->tracer->sprite == SPR_NULL || thing->tracer->flags2 & MF2_DONTDRAW)
+		if (! R_ThingVisible(thing->tracer))
 			return;
 	}
 
diff --git a/src/r_things.c b/src/r_things.c
index 2a2872a3431c55ec3dab48311c417893772af178..cba080448fa6719cf88f1084975f8c89016bfd4c 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -1413,7 +1413,7 @@ static void R_ProjectSprite(mobj_t *thing)
 
 		thing = thing->tracer;
 
-		if (thing->sprite == SPR_NULL || thing->flags2 & MF2_DONTDRAW)
+		if (! R_ThingVisible(thing))
 			return;
 
 		tr_x = thing->x - viewx;