diff --git a/src/interpret_functions.h b/src/interpret_functions.h
index 0709b389f3f21ea89c410164aef477649a25f947..f1a602aaf983330a6b74f9ca672e99bb54598af3 100644
--- a/src/interpret_functions.h
+++ b/src/interpret_functions.h
@@ -1,5 +1,5 @@
 /*
- * $Id: interpret_functions.h,v 1.67 2001/07/02 07:02:45 hubbe Exp $
+ * $Id: interpret_functions.h,v 1.68 2001/07/06 14:07:55 grubba Exp $
  *
  * Opcode definitions for the interpreter.
  */
@@ -898,15 +898,14 @@ OPCODE1_JUMP(F_BRANCH_IF_LOCAL,"branch if local")
   }
 BREAK;
 
-      CASE(F_BRANCH_IF_NOT_LOCAL);
-      instr=GET_ARG();
-      if(!IS_ZERO(Pike_fp->locals + instr))
-      {
-	SKIPJUMP();
-      }else{
-	DOJUMP();
-      }
-      break;
+OPCODE1_JUMP(F_BRANCH_IF_NOT_LOCAL, "branch if !local")
+  if(!IS_ZERO(Pike_fp->locals + arg1))
+  {
+    SKIPJUMP();
+  }else{
+    DOJUMP();
+  }
+BREAK;
 
       CJUMP(F_BRANCH_WHEN_EQ, is_eq);
       CJUMP(F_BRANCH_WHEN_NE,!is_eq);
@@ -915,82 +914,82 @@ BREAK;
       CJUMP(F_BRANCH_WHEN_GT, is_gt);
       CJUMP(F_BRANCH_WHEN_GE,!is_lt);
 
-      CASE(F_BRANCH_AND_POP_WHEN_ZERO);
-      if(!IS_ZERO(Pike_sp-1))
-      {
-	SKIPJUMP();
-      }else{
-	DOJUMP();
-	pop_stack();
-      }
-      break;
+OPCODE0_JUMP(F_BRANCH_AND_POP_WHEN_ZERO, "branch & pop if zero")
+  if(!IS_ZERO(Pike_sp-1))
+  {
+    SKIPJUMP();
+  }else{
+    DOJUMP();
+    pop_stack();
+  }
+BREAK;
 
-      CASE(F_BRANCH_AND_POP_WHEN_NON_ZERO);
-      if(IS_ZERO(Pike_sp-1))
-      {
-	SKIPJUMP();
-      }else{
-	DOJUMP();
-	pop_stack();
-      }
-      break;
+OPCODE0_JUMP(F_BRANCH_AND_POP_WHEN_NON_ZERO, "branch & pop if !zero")
+  if(IS_ZERO(Pike_sp-1))
+  {
+    SKIPJUMP();
+  }else{
+    DOJUMP();
+    pop_stack();
+  }
+BREAK;
 
-      CASE(F_LAND);
-      if(!IS_ZERO(Pike_sp-1))
-      {
-	SKIPJUMP();
-	pop_stack();
-      }else{
-	DOJUMP();
-      }
-      break;
+OPCODE0_JUMP(F_LAND, "&&")
+  if(!IS_ZERO(Pike_sp-1))
+  {
+    SKIPJUMP();
+    pop_stack();
+  }else{
+    DOJUMP();
+  }
+BREAK;
 
-      CASE(F_LOR);
-      if(IS_ZERO(Pike_sp-1))
-      {
-	SKIPJUMP();
-	pop_stack();
-      }else{
-	DOJUMP();
-      }
-      break;
+OPCODE0_JUMP(F_LOR, "||")
+  if(IS_ZERO(Pike_sp-1))
+  {
+    SKIPJUMP();
+    pop_stack();
+  }else{
+    DOJUMP();
+  }
+BREAK;
 
-      CASE(F_EQ_OR);
-      if(!is_eq(Pike_sp-2,Pike_sp-1))
-      {
-	pop_n_elems(2);
-	SKIPJUMP();
-      }else{
-	pop_n_elems(2);
-	push_int(1);
-	DOJUMP();
-      }
-      break;
+OPCODE0_JUMP(F_EQ_OR, "==||")
+  if(!is_eq(Pike_sp-2,Pike_sp-1))
+  {
+    pop_n_elems(2);
+    SKIPJUMP();
+  }else{
+    pop_n_elems(2);
+    push_int(1);
+    DOJUMP();
+  }
+BREAK;
 
-      CASE(F_EQ_AND);
-      if(is_eq(Pike_sp-2,Pike_sp-1))
-      {
-	pop_n_elems(2);
-	SKIPJUMP();
-      }else{
-	pop_n_elems(2);
-	push_int(0);
-	DOJUMP();
-      }
-      break;
+OPCODE0_JUMP(F_EQ_AND, "==&&")
+  if(is_eq(Pike_sp-2,Pike_sp-1))
+  {
+    pop_n_elems(2);
+    SKIPJUMP();
+  }else{
+    pop_n_elems(2);
+    push_int(0);
+    DOJUMP();
+  }
+BREAK;
 
-      CASE(F_CATCH);
-      switch (o_catch(pc+sizeof(INT32))) {
-	case 1:
-          /* There was a return inside the evaluated code */
-	  goto do_dumb_return;
-	case 2:
-	  pc = Pike_fp->pc;
-	  break;
-	default:
-	  pc+=GET_JUMP();
-      }
-      break;
+OPCODE0_JUMP(F_CATCH, "catch")
+  switch (o_catch(pc+sizeof(INT32))) {
+  case 1:
+    /* There was a return inside the evaluated code */
+    goto do_dumb_return;
+  case 2:
+    pc = Pike_fp->pc;
+    break;
+  default:
+    pc+=GET_JUMP();
+  }
+BREAK;
 
 OPCODE0(F_ESCAPE_CATCH, "escape catch")
 {
diff --git a/src/lex.c b/src/lex.c
index c6620d3abc863ea6fd5ee0a3e180e61f5042622b..29a9e00b666c5504c8ced636f16a6862f7da65bd 100644
--- a/src/lex.c
+++ b/src/lex.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: lex.c,v 1.91 2001/07/02 04:09:49 hubbe Exp $");
+RCSID("$Id: lex.c,v 1.92 2001/07/06 14:07:55 grubba Exp $");
 #include "language.h"
 #include "array.h"
 #include "lex.h"
@@ -207,24 +207,16 @@ struct keyword instr_names[]=
 { "for",		F_FOR,0 },
 { "index",              F_INDEX,0 },
 
-{ "branch if !local",	F_BRANCH_IF_NOT_LOCAL, I_HASARG },	
 { "branch if <",	F_BRANCH_WHEN_LT, I_ISJUMP },
 { "branch if >",	F_BRANCH_WHEN_GT, I_ISJUMP },
 { "branch if <=",	F_BRANCH_WHEN_LE, I_ISJUMP },
 { "branch if >=",	F_BRANCH_WHEN_GE, I_ISJUMP },
 { "branch if ==",	F_BRANCH_WHEN_EQ, I_ISJUMP },
 { "branch if !=",	F_BRANCH_WHEN_NE, I_ISJUMP },
-{ "branch & pop if zero",	F_BRANCH_AND_POP_WHEN_ZERO, I_ISJUMP },
-{ "branch & pop if !zero",	F_BRANCH_AND_POP_WHEN_NON_ZERO, I_ISJUMP },
 { "++Loop",		F_INC_LOOP, I_ISJUMP },	
 { "++Loop!=",		F_INC_NEQ_LOOP, I_ISJUMP },
 { "--Loop",		F_DEC_LOOP, I_ISJUMP },	
 { "--Loop!=",		F_DEC_NEQ_LOOP, I_ISJUMP },
-{ "&&",			F_LAND, I_ISJUMP },	
-{ "||",			F_LOR, I_ISJUMP },	
-{ "==||",               F_EQ_OR, I_ISJUMP },
-{ "==&&",               F_EQ_AND, I_ISJUMP },
-{ "catch",		F_CATCH, I_ISJUMP },
 { "foreach",		F_FOREACH, I_ISJUMP },
 { "foreach++",		F_NEW_FOREACH, I_ISJUMP },
 { "pointer",		F_POINTER, I_ISPOINTER },
diff --git a/src/opcodes.h b/src/opcodes.h
index edfa42fc15b20d44484f4094302dacdf7fea5cc2..b15d6af6a47f3e70d279e4951e79c51740e361c1 100644
--- a/src/opcodes.h
+++ b/src/opcodes.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: opcodes.h,v 1.17 2001/06/23 10:33:11 hubbe Exp $
+ * $Id: opcodes.h,v 1.18 2001/07/06 14:07:55 grubba Exp $
  */
 #ifndef OPCODES_H
 #define OPCODES_H
@@ -47,15 +47,12 @@ enum Pike_opcodes
   F_PREFIX2_WORDX256,
   F_PREFIX2_24BITX256,
 
-  F_BRANCH_AND_POP_WHEN_ZERO,
-  F_BRANCH_AND_POP_WHEN_NON_ZERO,
   F_BRANCH_WHEN_LT,
   F_BRANCH_WHEN_GT,
   F_BRANCH_WHEN_LE,
   F_BRANCH_WHEN_GE,
   F_BRANCH_WHEN_EQ,
   F_BRANCH_WHEN_NE,
-  F_BRANCH_IF_NOT_LOCAL,
   F_INC_LOOP,
   F_DEC_LOOP,
   F_INC_NEQ_LOOP,
@@ -81,12 +78,7 @@ enum Pike_opcodes
   F_GE,
   F_LE,
   F_NE,
-  F_LAND,
-  F_LOR,
-  F_EQ_OR,
-  F_EQ_AND,
 
-  F_CATCH,
   F_FOREACH,
   F_NEW_FOREACH,