diff -rdu lua-5.1.3.orig/src/lbaselib.c lua-5.1.3/src/lbaselib.c --- lua-5.1.3.orig/src/lbaselib.c 2008-02-12 16:43:49.000000000 +0000 +++ lua-5.1.3/src/lbaselib.c 2008-02-12 16:47:32.000000000 +0000 @@ -526,7 +526,7 @@ status = lua_resume(co, narg); if (status == 0 || status == LUA_YIELD) { int nres = lua_gettop(co); - if (!lua_checkstack(L, nres)) + if (!lua_checkstack(L, nres + 1)) luaL_error(L, "too many results to resume"); lua_xmove(co, L, nres); /* move yielded values */ return nres;