diff --git a/src/r_plane.c b/src/r_plane.c
index d854c23428c4f9096b82e9eff35eb1697e587fa8..1f5c0192e701f496d55cd36bed0e23e419ad0bbe 100644
--- a/src/r_plane.c
+++ b/src/r_plane.c
@@ -862,7 +862,7 @@ void R_DrawSinglePlane(visplane_t *pl)
 						return; // Don't even draw it
 					if (pl->ffloor->blend) // additive, (reverse) subtractive, modulative
 						ds_transmap = R_GetBlendTable(pl->ffloor->blend, trans);
-					else if (!(ds_transmap = R_GetTranslucencyTable(trans)))
+					else if (!(ds_transmap = R_GetTranslucencyTable(trans)) || trans == 0)
 						spanfunctype = SPANDRAWFUNC_SPLAT; // Opaque, but allow transparent flat pixels
 				}
 
diff --git a/src/r_segs.c b/src/r_segs.c
index 2459436b5d10bdf42fcdb5278b054790352a8211..157cf466e6f05385ef324f5fdf87ce57e76245c0 100644
--- a/src/r_segs.c
+++ b/src/r_segs.c
@@ -614,7 +614,7 @@ void R_RenderThickSideRange(drawseg_t *ds, INT32 x1, INT32 x2, ffloor_t *pfloor)
 				return; // Don't even draw it
 			if (pfloor->blend) // additive, (reverse) subtractive, modulative
 				dc_transmap = R_GetBlendTable(pfloor->blend, trans);
-			else if (!(dc_transmap = R_GetTranslucencyTable(trans)))
+			else if (!(dc_transmap = R_GetTranslucencyTable(trans)) || trans == 0)
 				fuzzy = false; // Opaque
 		}