diff --git a/src/r_patch.c b/src/r_patch.c
index 9b65a54be59af26c38deb09a8f023d6122161941..639f682fd07b1c839ebd585bc7398072480d17b3 100644
--- a/src/r_patch.c
+++ b/src/r_patch.c
@@ -1066,16 +1066,15 @@ void R_ParseSPRTINFOLump(UINT16 wadNum, UINT16 lumpNum)
 	sprinfoToken = M_GetToken(sprinfoText);
 	while (sprinfoToken != NULL)
 	{
-		if (!stricmp(sprinfoToken, "SPRITE") || !stricmp(sprinfoToken, "SPRITE2"))
-		{
-			Z_Free(sprinfoToken);
-			R_ParseSpriteInfo(!stricmp(sprinfoToken, "SPRITE2"));
-		}
+		if (!stricmp(sprinfoToken, "SPRITE"))
+			R_ParseSpriteInfo(false);
+		else if (!stricmp(sprinfoToken, "SPRITE2"))
+			R_ParseSpriteInfo(true);
 		else
 			I_Error("Error parsing SPRTINFO lump: Unknown keyword \"%s\"", sprinfoToken);
+		Z_Free(sprinfoToken);
 		sprinfoToken = M_GetToken(NULL);
 	}
-	Z_Free(sprinfoToken);
 	Z_Free((void *)sprinfoText);
 }