diff --git a/src/vm.c b/src/vm.c index 951c63b21..32d2a6a24 100644 --- a/src/vm.c +++ b/src/vm.c @@ -178,7 +178,7 @@ ecall(mrb_state *mrb, int i) mrb->stack = mrb->stack + ci[-1].nregs; exc = mrb->exc; mrb->exc = 0; mrb_run(mrb, p, *self); - mrb->exc = exc; + if (!mrb->exc) mrb->exc = exc; } mrb_value