diff --git a/src/interpreter.h b/src/interpreter.h
index 2bae98baaaaba4022ae322b6ebe7569347e49815..e46612dec4dbeffc9f91dc4c9c1f663a4c482fb2 100644
--- a/src/interpreter.h
+++ b/src/interpreter.h
@@ -136,12 +136,17 @@ static int eval_instruction(unsigned char *pc)
 #define OPCODE1(OP,DESC) CASE(OP); { \
   INT32 arg1=GET_ARG();
 
+#define OPCODE1ACK(OP,DESC) CASE(OP); { \
+  INT32 arg1=GET_ARG(); \
+  INT32 ack=accumulator;
+
 #define OPCODE2(OP,DESC) CASE(OP); { \
   INT32 arg1=GET_ARG(); \
-  INT32 arg2=accumulator;
+  INT32 arg2=GET_ARG2();
 
 #define OPCODE0_TAIL(OP,DESC) CASE(OP);
 #define OPCODE1_TAIL(OP,DESC) CASE(OP);
+#define OPCODE1ACK_TAIL(OP,DESC) CASE(OP);
 #define OPCODE2_TAIL(OP,DESC) CASE(OP);