diff --git a/src/r_data.c b/src/r_data.c
index 0e15c468990f52fdbed7e8fee788dd019ee17d95..f3e717d30a485da697fe49080307ca2d628e0bd8 100644
--- a/src/r_data.c
+++ b/src/r_data.c
@@ -1160,6 +1160,15 @@ void R_ReInitColormaps(UINT16 num)
 	lump = W_GetNumForName(colormap);
 	if (lump == LUMPERROR)
 		lump = W_GetNumForName("COLORMAP");
+	else
+	{
+		if (W_LumpLength(lump) > W_LumpLength(W_GetNumForName("COLORMAP")))
+		{
+			CONS_Alert(CONS_WARNING, "%s lump size is too big, using COLORMAP.\n", colormap);
+			lump = W_GetNumForName("COLORMAP");
+		}
+	}
+
 	W_ReadLump(lump, colormaps);
 
 	// Init Boom colormaps.