diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 13b2a39c3b8914408dc26b9fdf6adb8765633b57..d2982afe44eb1df1812e82a79eab25de87f0b31e 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -1454,13 +1454,13 @@ static void HWR_ProcessSeg(void) // Sort of like GLWall::Process in GZDoom
 				case 221:
 				case 253:
 				case 256:
-					if (gl_linedef->blendmode != AST_FOG)
+					if (gl_linedef->blendmode && gl_linedef->blendmode != AST_FOG)
 						blendmode = HWR_SurfaceBlend(gl_linedef->blendmode, R_GetLinedefTransTable(gl_linedef->alpha), &Surf);
 					else
 						blendmode = PF_Translucent;
 					break;
 				default:
-					if (gl_linedef->blendmode != AST_FOG)
+					if (gl_linedef->blendmode && gl_linedef->blendmode != AST_FOG)
 					{
 						if (gl_linedef->alpha >= 0 && gl_linedef->alpha < FRACUNIT)
 							blendmode = HWR_SurfaceBlend(gl_linedef->blendmode, R_GetLinedefTransTable(gl_linedef->alpha), &Surf);