diff --git a/builtin/game/register.lua b/builtin/game/register.lua
index f286113ec8d335bd20c0ade04e78bbcd001c1790..cb084024169d33cc4cebb5ad6ae4fadb50bd3741 100644
--- a/builtin/game/register.lua
+++ b/builtin/game/register.lua
@@ -398,7 +398,9 @@ local function make_registration_wrap(reg_fn_name, clear_fn_name)
 
 	local orig_clear_fn = core[clear_fn_name]
 	core[clear_fn_name] = function()
-		list = {}
+		for k in pairs(list) do
+			list[k] = nil
+		end
 		return orig_clear_fn()
 	end