diff --git a/src/docode.c b/src/docode.c
index a10e99d57888733a7dae06dc675f719176374f6e..bb188a8f9ed48831162d35e6958adc17e8dd26fd 100644
--- a/src/docode.c
+++ b/src/docode.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: docode.c,v 1.4 1996/11/14 01:24:08 hubbe Exp $");
+RCSID("$Id: docode.c,v 1.5 1996/12/01 13:03:54 hubbe Exp $");
 #include "las.h"
 #include "program.h"
 #include "language.h"
@@ -570,6 +570,7 @@ static int do_docode2(node *n,int flags)
     current_switch_jumptable = prev_switch_jumptable;
     current_break=break_save;
     current_continue=continue_save;
+    do_pop(4);
     return 0;
   }
 
@@ -599,6 +600,7 @@ static int do_docode2(node *n,int flags)
     current_switch_jumptable = prev_switch_jumptable;
     current_break=break_save;
     current_continue=continue_save;
+    do_pop(3);
     return 0;
   }
 
diff --git a/src/interpret.c b/src/interpret.c
index 00e0f90f61a4fbfc0d0c1fcedaac384325541be1..2901c77bcc622234f99e38a483fb7e4f5fed13ac 100644
--- a/src/interpret.c
+++ b/src/interpret.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: interpret.c,v 1.13 1996/11/28 03:04:44 hubbe Exp $");
+RCSID("$Id: interpret.c,v 1.14 1996/12/01 13:03:55 hubbe Exp $");
 #include "interpret.h"
 #include "object.h"
 #include "program.h"
@@ -379,7 +379,6 @@ CASE(ID) \
     check_threads_etc(); \
   }else{ \
     pc+=sizeof(INT32); \
-    pop_n_elems(3); \
   } \
   break; \
 }
@@ -874,7 +873,6 @@ static void eval_instruction(unsigned char *pc)
 	  sp[-1].u.integer++;
 	}else{
 	  pc+=sizeof(INT32);
-	  pop_n_elems(4);
 	}
 	break;
       }