diff --git a/lcode.c b/lcode.c
index 3e4c5b4..2432b34 100644
--- a/lcode.c
+++ b/lcode.c
@@ -110,7 +110,7 @@
 ** optimizations).
 */
 static Instruction *previousinstruction (FuncState *fs) {
-  static const Instruction invalidinstruction = -1;
+  static const Instruction invalidinstruction = ~(Instruction)0;
   if (fs->pc > fs->lasttarget)
     return &fs->f->code[fs->pc - 1];  /* previous instruction */
   else
diff --git a/lvm.c b/lvm.c
index e22a0da..5407d14 100644
--- a/lvm.c
+++ b/lvm.c
@@ -1561,12 +1561,9 @@
           luaD_poscall(L, ci, cast_int(L->top - ra));
           return;
         }
-        else {  /* Lua tail call */
-          ci->func -= delta;
-          luaD_pretailcall(L, ci, ra, b);  /* prepare call frame */
-          goto tailcall;
-        }
-        vmbreak;
+        ci->func -= delta;
+        luaD_pretailcall(L, ci, ra, b);  /* prepare call frame */
+        goto tailcall;
       }
       vmcase(OP_RETURN) {
         int n = GETARG_B(i) - 1;  /* number of results */
