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