> So is it true that lua will automatically pop off all variables passed > to a function when that function returns and clean up the stack? Yes: "Any other value in the stack below the results will be properly discarded by Lua." http://www.lua.org/manual/5.1/manual.html#lua_CFunction