diff --git a/src/r_segs.c b/src/r_segs.c
index 9ee3bcfec67960856f54951847bbb994826966d1..9af83f0c7ff8af10057f253a5419dca41c86638c 100644
--- a/src/r_segs.c
+++ b/src/r_segs.c
@@ -1487,6 +1487,9 @@ static void R_AllocClippingTables(size_t range)
 	openings = Z_Realloc(openings, numopenings * sizeof (*openings), PU_STATIC, NULL);
 	lastopening = openings + pos;
 
+	if (oldopenings == NULL)
+		return;
+
 	// borrowed fix from *cough* zdoom *cough*
 	// [RH] We also need to adjust the openings pointers that
 	//    were already stored in drawsegs.
@@ -1519,6 +1522,9 @@ static void R_AllocTextureColumnTables(size_t range)
 	texturecolumntable = Z_Realloc(texturecolumntable, texturecolumntablesize * sizeof (*texturecolumntable), PU_STATIC, NULL);
 	curtexturecolumntable = texturecolumntable + pos;
 
+	if (oldtable == NULL)
+		return;
+
 	for (drawseg_t *ds = drawsegs; ds < ds_p; ds++)
 	{
 		// Check if it's in range of the tables