diff --git a/docs/rh-log.txt b/docs/rh-log.txt
index fc63ac305..32861a6fb 100644
--- a/docs/rh-log.txt
+++ b/docs/rh-log.txt
@@ -1,4 +1,7 @@
-April 23, 2009  (Changes by Graf Zahl)
+April 25, 2009  (Changes by Graf Zahl)
+- Fixed handling of embedded WADs.
+
+April 23, 2009  (Changes by Graf Zahl)
 - Added Gez's A_CheckCeiling submission.
 - Fixed: AM_NewResolution crashed when called from outside a level.
 - Added support for Quake PAK files.
diff --git a/src/resourcefiles/resourcefile.cpp b/src/resourcefiles/resourcefile.cpp
index 94fc8260b..5f36bc68e 100644
--- a/src/resourcefiles/resourcefile.cpp
+++ b/src/resourcefiles/resourcefile.cpp
@@ -78,7 +78,7 @@ FResourceLump::~FResourceLump()
 		delete [] FullName;
 		FullName = NULL;
 	}
-	if (Cache != NULL)
+	if (Cache != NULL && RefCount >= 0)
 	{
 		delete [] Cache;
 		Cache = NULL;
@@ -150,7 +150,7 @@ void FResourceLump::LumpNameSetup(char *iname)
 void FResourceLump::CheckEmbedded()
 {
 	// Checks for embedded archives
-	const char *c = strstr(Name, ".wad");
+	const char *c = strstr(FullName, ".wad");
 	if (c && strlen(c) == 4 && !strchr(Name, '/'))
 	{
 		// Mark all embedded WADs
diff --git a/src/resourcefiles/resourcefile.h b/src/resourcefiles/resourcefile.h
index 8ac3264af..a74d53226 100644
--- a/src/resourcefiles/resourcefile.h
+++ b/src/resourcefiles/resourcefile.h
@@ -15,7 +15,7 @@ struct FResourceLump
 	char *			FullName;		// only valid for files loaded from a .zip file
 	char			Name[9];
 	BYTE			Flags;
-	BYTE			RefCount;
+	SBYTE			RefCount;
 	char *			Cache;
 	FResourceFile *	Owner;
 	int				Namespace;