diff --git a/src/lua_script.c b/src/lua_script.c
index ee60a41c6fd0d91eab17bcee66d77d4182695e1a..bc88928f3f2e0e786d12c9e941e87dc875d3ce48 100644
--- a/src/lua_script.c
+++ b/src/lua_script.c
@@ -846,6 +846,7 @@ void LUA_InvalidateLevel(void)
 	{
 		LUA_InvalidateUserdata(&sectors[i]);
 		LUA_InvalidateUserdata(&sectors[i].lines);
+		LUA_InvalidateUserdata(&sectors[i].tags);
 		if (sectors[i].ffloors)
 		{
 			for (rover = sectors[i].ffloors; rover; rover = rover->next)
@@ -855,6 +856,7 @@ void LUA_InvalidateLevel(void)
 	for (i = 0; i < numlines; i++)
 	{
 		LUA_InvalidateUserdata(&lines[i]);
+		LUA_InvalidateUserdata(&lines[i].tags);
 		LUA_InvalidateUserdata(lines[i].sidenum);
 	}
 	for (i = 0; i < numsides; i++)
@@ -886,7 +888,10 @@ void LUA_InvalidateMapthings(void)
 		return;
 
 	for (i = 0; i < nummapthings; i++)
+	{
 		LUA_InvalidateUserdata(&mapthings[i]);
+		LUA_InvalidateUserdata(&mapthings[i].tags);
+	}
 }
 
 void LUA_InvalidatePlayer(player_t *player)
diff --git a/src/lua_taglib.c b/src/lua_taglib.c
index cfaf8487236daba5a31a3e867568b8a596b23dbf..284b171a3cd6692f457776292a03d1940df4766c 100644
--- a/src/lua_taglib.c
+++ b/src/lua_taglib.c
@@ -182,7 +182,7 @@ static taglist_t * valid_taglist(lua_State *L, int idx, boolean getting)
 		if (getting && has_valid_field(L))
 			lua_pushboolean(L, 0);
 		else
-			LUA_ErrInvalid(L, "taglist_t");/* doesn't actually return */
+			LUA_ErrInvalid(L, "taglist");/* doesn't actually return */
 		return NULL;
 	}
 	else