diff --git a/src/lua_hudlib.c b/src/lua_hudlib.c
index f451944e3d95f6c6b40c990f6c120e6ee196c965..b58a82299004428db50d9b657a7dc9a7a681eb6c 100644
--- a/src/lua_hudlib.c
+++ b/src/lua_hudlib.c
@@ -270,8 +270,13 @@ static int patch_get(lua_State *L)
 
 	// patches are CURRENTLY always valid, expected to be cached with PU_STATIC
 	// this may change in the future, so patch.valid still exists
-	if (!patch)
+	if (!patch) {
+		if (field == patch_valid) {
+			lua_pushboolean(L, 0);
+			return 1;
+		}
 		return LUA_ErrInvalid(L, "patch_t");
+	}
 
 	switch (field)
 	{