diff --git a/src/r_plane.c b/src/r_plane.c
index c284057267cb6c50c482d849cb741d67474f37a9..a5b167015bc9e81c1eb10b5b7ad7cadfaf124b44 100644
--- a/src/r_plane.c
+++ b/src/r_plane.c
@@ -1010,6 +1010,8 @@ void R_DrawSinglePlane(visplane_t *pl)
 
 		if (ds_powersoftwo)
 		{
+			// Okay, look, don't ask me why this works, but without this setup there's a disgusting-looking misalignment with the textures. -Red
+			fudge = ((1<<nflatshiftup)+1.0f)/(1<<nflatshiftup);
 			if (hack)
 			{
 				/*