diff --git a/src/r_plane.c b/src/r_plane.c
index a3075c9d845ba4c3ddd74b3f1d9101cc74920d13..f21f49101266d1bd044d2eceedbfb31f19bcdf61 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)