In lvm.c: #define dojump(ci,i,e) \ { int a = GETARG_A(i); \ if (a != 0) luaF_close(L, ci->u.l.base + a - 1); \ ci->u.l.savedpc += GETARG_sBx(i) + e; } Previously the test was if (a > 0). Is this to fix a bug ? Thanks and Regards Dibyendu