diff --git a/src/hardware/hw_main.c b/src/hardware/hw_main.c
index 0d7404c7740760c81793912f58d5b2781c2e01bf..127756a00d1b9a06b418b080a70ee767d79ed50c 100644
--- a/src/hardware/hw_main.c
+++ b/src/hardware/hw_main.c
@@ -214,6 +214,9 @@ void HWR_Lighting(FSurfaceInfo *Surface, INT32 light_level, extracolormap_t *col
 		poly_color.s.blue = (UINT8)blue;
 	}
 
+	// Clamp the light level, since it can sometimes go out of the 0-255 range from animations
+	light_level = min(max(light_level, 0), 255);
+
 	Surface->PolyColor.rgba = poly_color.rgba;
 	Surface->TintColor.rgba = tint_color.rgba;
 	Surface->FadeColor.rgba = fade_color.rgba;