diff --git a/src/peep.in b/src/peep.in
index 0708a1fcb9bebb540d275e2d5feea569abcc7938..e99954af264c74beab49fa8017628195ee75305c 100644
--- a/src/peep.in
+++ b/src/peep.in
@@ -5,8 +5,8 @@
 NOP :
 POP_N_ELEMS (0) : 
 POP_N_ELEMS POP_VALUE : POP_N_ELEMS ($1a + 1)
-POP_VALUE POP_VALUE : POP_N_ELEMS (2)
 POP_VALUE POP_N_ELEMS : POP_N_ELEMS ($2a + 1)
+// POP_VALUE POP_VALUE : POP_N_ELEMS (2)
 POP_N_ELEMS POP_N_ELEMS : POP_N_ELEMS ($1a + $2a)
 POP_N_ELEMS(1) : POP_VALUE
 POP_VALUE POP_TO_MARK : POP_TO_MARK
@@ -639,16 +639,17 @@ CONST0 POP_N_ELEMS [$2a > 0]: POP_N_ELEMS($2a-1)
 CONST1 POP_N_ELEMS [$2a > 0]: POP_N_ELEMS($2a-1)
 CONST_1 POP_N_ELEMS [$2a > 0]: POP_N_ELEMS($2a-1)
 BIGNUM POP_N_ELEMS [$2a > 0]: POP_N_ELEMS($2a-1)
-MOD_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-LSH_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-RSH_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-SUBTRACT_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-ADD_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-AND_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-OR_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-XOR_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-DIVIDE_INT POP_N_ELEMS: POP_N_ELEMS($2a)
-MULTIPLY_INT POP_N_ELEMS: POP_N_ELEMS($2a)
+MOD_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+LSH_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+RSH_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+SUBTRACT_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+ADD_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+ADD_NEG_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+AND_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+OR_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+XOR_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+DIVIDE_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
+MULTIPLY_INT POP_N_ELEMS[$2a > 0]: POP_N_ELEMS($2a)
 
 RECUR RETURN [check_tailrecursion()] : TAIL_RECUR ($1a)