diff --git a/src/r_plane.c b/src/r_plane.c
index 53b58c274386a242f095e777347163072af9f146..89a76aed2767ac59982d6a14d524dec5c16336a6 100644
--- a/src/r_plane.c
+++ b/src/r_plane.c
@@ -1007,6 +1007,8 @@ void R_DrawSinglePlane(visplane_t *pl)
 			R_CheckFlatLength(W_LumpLength(levelflat->u.flat.lumpnum));
 			// Raw flats always have dimensions that are powers-of-two numbers.
 			ds_powersoftwo = true;
+			if (spanfunc == basespanfunc)
+				spanfunc = mmxspanfunc;
 			break;
 		default:
 			switch (type)