diff --git a/src/lua_mobjlib.c b/src/lua_mobjlib.c
index 2cb9dc32943e510f91e7ccf8a2583372cc1e40a0..30026da49bdf2c4d8d4e5ad9b045e00615d10b2d 100644
--- a/src/lua_mobjlib.c
+++ b/src/lua_mobjlib.c
@@ -160,11 +160,12 @@ static const char *const mobj_opt[] = {
 
 static int mobj_get(lua_State *L)
 {
-	INLEVEL
 	mobj_t *mo = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ));
 	enum mobj_e field = Lua_optoption(L, 2, NULL, mobj_opt);
 	lua_settop(L, 2);
 
+	INLEVEL
+
 	if (!mo) {
 		if (field == mobj_valid) {
 			lua_pushboolean(L, 0);
@@ -406,11 +407,12 @@ static int mobj_get(lua_State *L)
 #define NOSETPOS luaL_error(L, LUA_QL("mobj_t") " field " LUA_QS " should not be set directly. Use " LUA_QL("P_Move") ", " LUA_QL("P_TryMove") ", or " LUA_QL("P_TeleportMove") " instead.", mobj_opt[field])
 static int mobj_set(lua_State *L)
 {
-	INLEVEL
 	mobj_t *mo = *((mobj_t **)luaL_checkudata(L, 1, META_MOBJ));
 	enum mobj_e field = Lua_optoption(L, 2, mobj_opt[0], mobj_opt);
 	lua_settop(L, 3);
 
+	INLEVEL
+
 	if (!mo)
 		return LUA_ErrInvalid(L, "mobj_t");