diff --git a/py/vm.c b/py/vm.c
index 2a8e3c990c7d99da68ce05a46aebd2acf04a0c5d..7b3a0b32418faf646efeccb3b5bb1545279baf29 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -1118,7 +1118,7 @@ unwind_return:
 
                 ENTRY(MP_BC_RAISE_VARARGS): {
                     MARK_EXC_IP_SELECTIVE();
-                    mp_uint_t unum = *ip++;
+                    mp_uint_t unum = *ip;
                     mp_obj_t obj;
                     if (unum == 2) {
                         mp_warning("exception chaining not supported");
@@ -1139,7 +1139,7 @@ unwind_return:
                             RAISE(obj);
                         }
                     } else {
-                        obj = POP();
+                        obj = TOP();
                     }
                     obj = mp_make_raise_obj(obj);
                     RAISE(obj);