diff --git a/src/hardware/hw_cache.c b/src/hardware/hw_cache.c
index 58e16d62361a9ca3f87479ea273343c7c36065bc..55a32114a87203b5b5bd4ef451f0b8bd3e08c6fa 100644
--- a/src/hardware/hw_cache.c
+++ b/src/hardware/hw_cache.c
@@ -823,18 +823,13 @@ void HWR_GetRawFlat(lumpnum_t flatlumpnum)
 
 void HWR_GetLevelFlat(levelflat_t *levelflat)
 {
-	if (levelflat->type == LEVELFLAT_NONE)
+	if (levelflat->type == LEVELFLAT_NONE || levelflat->texture_id < 0)
 	{
 		HWR_SetCurrentTexture(NULL);
 		return;
 	}
 
 	INT32 texturenum = texturetranslation[levelflat->texture_id];
-	if (texturenum <= 0)
-	{
-		HWR_SetCurrentTexture(NULL);
-		return;
-	}
 
 	GLMapTexture_t *grtex = &gl_flats[texturenum];
 	GLMipmap_t *grMipmap = &grtex->mipmap;
diff --git a/src/p_setup.c b/src/p_setup.c
index 1d985beb4f07399a40607f1ec8f32f480df0e65c..a39750003bbe0769e116f69cee8552d3d6c91670 100644
--- a/src/p_setup.c
+++ b/src/p_setup.c
@@ -585,17 +585,17 @@ Ploadflat (levelflat_t *levelflat, const char *flatname, boolean resize)
 
 	// Look for a flat
 	int texturenum = R_CheckFlatNumForName(levelflat->name);
-	if (texturenum <= 0)
+	if (texturenum < 0)
 	{
 		// If we can't find a flat, try looking for a texture!
 		texturenum = R_CheckTextureNumForName(levelflat->name);
-		if (texturenum <= 0)
+		if (texturenum < 0)
 		{
 			// Use "not found" texture
 			texturenum = R_CheckTextureNumForName("REDWALL");
 
 			// Give up?
-			if (texturenum <= 0)
+			if (texturenum < 0)
 			{
 				levelflat->type = LEVELFLAT_NONE;
 				texturenum = -1;