diff --git a/src/r_things.c b/src/r_things.c
index a4bd19627ce1878007f48b1c12b46ae67e6d3a6a..6bdb7cae8c3cb61709501f2e0658bf9044b4bb1c 100644
--- a/src/r_things.c
+++ b/src/r_things.c
@@ -1582,9 +1582,6 @@ static void R_ProjectSprite(mobj_t *thing)
 		if (max(tz, tz2) < FixedMul(MINZ, this_scale)) // non-papersprite clipping is handled earlier
 			return;
 
-		if (tx2 < -(tz2<<2) || tx > tz<<2) // too far off the side?
-			return;
-
 		// Needs partially clipped
 		if (tz < FixedMul(MINZ, this_scale))
 		{
@@ -1603,6 +1600,9 @@ static void R_ProjectSprite(mobj_t *thing)
 			xscale2 = FixedDiv(projection, tz2);
 		}
 
+		if (tx2 < -(tz2<<2) || tx > tz<<2) // too far off the side?
+			return;
+
 		// TODO: tx clamping
 
 		x1 = (centerxfrac + FixedMul(tx,xscale))>>FRACBITS;