diff --git a/src/v_video.c b/src/v_video.c
index 176fd28883afc52aee65657241348779456f68ec..9e63789cb442aa4027fd15e4f0c1e63cec105b55 100644
--- a/src/v_video.c
+++ b/src/v_video.c
@@ -1192,13 +1192,15 @@ void V_DrawIntoPatch(patch_t *dest_patch, patch_t *src_patch, fixed_t x, fixed_t
 					continue;
 
 				size_t position = (dest_x * dest_patch->height) + dest_y;
+				UINT8 *dest = &dest_patch->pixels[position];
+
 				if (!in_bit_array(dpatch->pixels_opaque, position))
 				{
 					set_bit_array(dpatch->pixels_opaque, position);
 					dpatch->update_columns = true;
+					*dest = 0;
 				}
 
-				UINT8 *dest = &dest_patch->pixels[position];
 				*dest = patchdrawfunc(dest, source, ofs);
 
 				dpatch->is_dirty = true;