diff --git a/src/program.c b/src/program.c
index a197286c3b773a716292ece42245d3c94246dbc9..9f4deaf841941feee61013b4db879a67a79daaf6 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.266 2000/08/24 13:58:24 grubba Exp $");
+RCSID("$Id: program.c,v 1.267 2000/08/28 19:35:04 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -1728,13 +1728,12 @@ static int find_depth(struct program_state *state,
 /*
  * make this program inherit another program
  */
-static void really_low_inherit(struct program *p,
-			       struct object *parent,
-			       int parent_identifier,
-			       int parent_offset,
-			       INT32 flags,
-			       struct pike_string *name,
-			       int parent_identifier_offset)
+void low_inherit(struct program *p,
+		 struct object *parent,
+		 int parent_identifier,
+		 int parent_offset,
+		 INT32 flags,
+		 struct pike_string *name)
 {
   int e;
   ptrdiff_t inherit_offset, storage_offset;
@@ -1931,29 +1930,17 @@ static void really_low_inherit(struct program *p,
   }
 }
 
-void low_inherit(struct program *p,
-		 struct object *parent,
-		 int parent_identifier,
-		 int parent_offset,
-		 INT32 flags,
-		 struct pike_string *name)
-{
-  really_low_inherit(p,parent,parent_identifier,parent_offset,flags,name,0);
-}
-
-
 PMOD_EXPORT void do_inherit(struct svalue *s,
 		INT32 flags,
 		struct pike_string *name)
 {
   struct program *p=program_from_svalue(s);
-  really_low_inherit(p,
-		     s->type == T_FUNCTION ? s->u.object : 0,
-		     s->type == T_FUNCTION ? s->subtype : -1,
-		     0,
-		     flags,
-		     name,
-		     Pike_compiler->new_program->num_identifiers );
+  low_inherit(p,
+	      s->type == T_FUNCTION ? s->u.object : 0,
+	      s->type == T_FUNCTION ? s->subtype : -1,
+	      0,
+	      flags,
+	      name);
 }
 
 void compiler_do_inherit(node *n,
@@ -1962,7 +1949,7 @@ void compiler_do_inherit(node *n,
 {
   struct program *p;
   struct identifier *i;
-  INT32 numid=-1, offset=0,parentoff=0;;
+  INT32 numid=-1, offset=0;
 
   if(!n)
   {
@@ -1975,14 +1962,13 @@ void compiler_do_inherit(node *n,
       p=Pike_compiler->new_program;
       offset=0;
       numid=n->u.id.number;
-      parentoff=Pike_compiler->new_program->num_identifiers;
       goto continue_inherit;
 
     case F_EXTERNAL:
       {
 	struct program_state *state = Pike_compiler;
 
-	offset = 0;	/* FIXME: Should this be zero or 1? */
+	offset = 0;
 	while (state && (state->new_program->id != n->u.integer.a)) {
 	  state = state->previous;
 	  offset++;
@@ -1993,12 +1979,6 @@ void compiler_do_inherit(node *n,
 	}
 	p = state->new_program;
 	numid = n->u.integer.b;
-	if(offset==-1)
-	{
-	  parentoff=Pike_compiler->new_program->num_identifiers;
-	}else{
-	  parentoff=~INHERIT_FROM_INT(p,numid)->identifier_level;
-	}
       }
 
   continue_inherit:
@@ -2021,13 +2001,12 @@ void compiler_do_inherit(node *n,
 	return;
       }
 
-      really_low_inherit(p,
-			 0,
-			 numid,
-			 offset+42,
-			 flags,
-			 name,
-			 parentoff);
+      low_inherit(p,
+		  0,
+		  numid,
+		  offset+42,
+		  flags,
+		  name);
       break;
 
     default: