diff --git a/src/v_video.c b/src/v_video.c
index 3dfea0418656050e0731ca7b2a2d5d833d07e15a..a624878c69668a941839ac4ccfb9add1e22e1d58 100644
--- a/src/v_video.c
+++ b/src/v_video.c
@@ -292,7 +292,7 @@ void VID_BlitLinearScreen(const UINT8 *srcptr, UINT8 *destptr, INT32 width, INT3
 #ifdef HAVE_VIDCOPY
     VID_BlitLinearScreen_ASM(srcptr,destptr,width,height,srcrowbytes,destrowbytes);
 #else
-	if (srcrowbytes == destrowbytes)
+	if ((srcrowbytes == destrowbytes) && (srcrowbytes == (size_t)width))
 		M_Memcpy(destptr, srcptr, srcrowbytes * height);
 	else
 	{