diff --git a/src/interpret_functions.h b/src/interpret_functions.h
index 94b74a0c4059f7a7dd1ac1ad0b50156f90da8244..e39a9ea707bf4d509064d407f69165ce3a6cd897 100644
--- a/src/interpret_functions.h
+++ b/src/interpret_functions.h
@@ -550,6 +550,25 @@ OPCODE2(F_ADD_LOCAL_INT_AND_POP, "local += number", 0,{
   }
 });
 
+OPCODE2(F_ADD_LOCAL_INT, "local += number local", 0,{
+  struct svalue *dst = Pike_fp->locals+arg1;
+  if( dst->type == PIKE_T_INT
+      DO_IF_BIGNUM(
+        &&(!INT_TYPE_ADD_OVERFLOW(dst->u.integer,arg2))))
+  {
+    SET_SVAL_SUBTYPE(*dst,NUMBER_NUMBER);
+    dst->u.integer += arg2;
+    push_int( dst->u.integer );
+  }
+  else
+  {
+    push_svalue( dst );
+    push_int( arg2 );
+    f_add(2);
+    assign_svalue( Pike_fp->locals+arg1,Pike_sp-1);
+  }
+});
+
 OPCODE1(F_INC_LOCAL, "++local", I_UPDATE_SP, {
   if( (TYPEOF(Pike_fp->locals[arg1]) == PIKE_T_INT)
       DO_IF_BIGNUM(
diff --git a/src/peep.in b/src/peep.in
index 496aaadd1183f24bb46fa6355bfd1e615b845ba9..756c01ae3e649ae678836deada7ace97128bd6f8 100644
--- a/src/peep.in
+++ b/src/peep.in
@@ -80,6 +80,9 @@ LOCAL_LVALUE CONST_1 ADD_TO_AND_POP: ADD_LOCAL_INT_AND_POP($1a,-1)
 LOCAL_LVALUE CONST1 ADD_TO_AND_POP: ADD_LOCAL_INT_AND_POP($1a,1)
 LOCAL_LVALUE CONST0 ADD_TO_AND_POP:
 
+LOCAL_LVALUE LTOSVAL ADD_INT ASSIGN: ADD_LOCAL_INT($1a,$3a)
+LOCAL_LVALUE LTOSVAL ADD_NEG_INT ASSIGN: ADD_LOCAL_INT($1a,-$3a)
+
 NUMBER  ASSIGN_LOCAL_AND_POP : ASSIGN_LOCAL_NUMBER_AND_POP($2a,$1a)
 CONST0  ASSIGN_LOCAL_AND_POP : CLEAR_LOCAL($2a)
 CONST1  ASSIGN_LOCAL_AND_POP : ASSIGN_LOCAL_NUMBER_AND_POP($2a,1)
@@ -402,6 +405,7 @@ LE BRANCH_WHEN_NON_ZERO : LE QUICK_BRANCH_WHEN_NON_ZERO($2a)
 //
 // These are functions returning a constant, and doing nothing else.
 MARK_AT(0) POP_TO_MARK INIT_FRAME RETURN_0 : RETURN_0
+MARK_AT(0) POP_TO_MARK INIT_FRAME UNDEFINED RETURN : UNDEFINED RETURN
 MARK_AT(0) POP_TO_MARK INIT_FRAME RETURN_1 : RETURN_1
 MARK_AT(0) POP_TO_MARK INIT_FRAME NUMBER RETURN : NUMBER($4a) RETURN
 MARK_AT(0) POP_TO_MARK INIT_FRAME STRING RETURN : STRING($4a) RETURN