diff --git a/src/docode.c b/src/docode.c
index 133a5fc419b689f334378ad720f4167a4ff016f8..2ac098cb8ba8e05902a56f1e7dcdb86da38116b9 100644
--- a/src/docode.c
+++ b/src/docode.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: docode.c,v 1.121 2001/06/23 10:33:11 hubbe Exp $");
+RCSID("$Id: docode.c,v 1.122 2001/06/23 21:52:09 hubbe Exp $");
 #include "las.h"
 #include "program.h"
 #include "pike_types.h"
@@ -1754,7 +1754,8 @@ static int do_docode2(node *n, INT16 flags)
 	    x++;
 #endif
 	  emit2(F_EXTERNAL, n->u.sval.subtype, x);
-	  Pike_compiler->new_program->flags |= PROGRAM_USES_PARENT;
+	  Pike_compiler->new_program->flags |=
+	    PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
 	  return 1;
 	}
       }
diff --git a/src/las.c b/src/las.c
index 5283060d4c2d747f4e67edcd2621a2e2eeeada9a..a840f0c022692d55efdb571ad98ded697ef8d322 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.253 2001/06/07 21:47:11 hubbe Exp $");
+RCSID("$Id: las.c,v 1.254 2001/06/23 21:52:09 hubbe Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -953,7 +953,7 @@ node *debug_mknode(short token, node *a, node *b)
     res->node_info |= OPT_EXTERNAL_DEPEND;
     for(e=0;e<b->u.sval.u.integer;e++)
     {
-      state->new_program->flags |= PROGRAM_USES_PARENT;
+      state->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
       state=state->previous;
     }
       
@@ -1310,7 +1310,7 @@ node *debug_mkexternalnode(struct program *parent_prog, int i)
   state = Pike_compiler;
   while(parent_prog != state->new_program)
   {
-    state->new_program->flags |= PROGRAM_USES_PARENT;
+    state->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
     state=state->previous;
   }
 
@@ -1900,7 +1900,7 @@ node *debug_mksvaluenode(struct svalue *s)
       struct program_state *state=Pike_compiler;;
       for(;state->fake_object!=s->u.object;state=state->previous)
       {
-	state->new_program->flags |= PROGRAM_USES_PARENT;
+	state->new_program->flags |= PROGRAM_USES_PARENT | PROGRAM_NEEDS_PARENT;
 	n=mkefuncallnode("function_object",
 			 mkefuncallnode("object_program",n));
       }
diff --git a/src/object.c b/src/object.c
index 78e8a878ed600c50f34ee5ab7e56b2cb6cf4cc8f..68db4d7c5991fdc132cca4d2ad1f05ca91712b1f 100644
--- a/src/object.c
+++ b/src/object.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: object.c,v 1.170 2001/06/11 19:58:29 mast Exp $");
+RCSID("$Id: object.c,v 1.171 2001/06/23 21:52:10 hubbe Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
@@ -268,7 +268,7 @@ PMOD_EXPORT struct object *debug_clone_object(struct program *p, int args)
 {
   ONERROR tmp;
   struct object *o;
-  if(p->flags & PROGRAM_USES_PARENT)
+  if(p->flags & PROGRAM_NEEDS_PARENT)
     Pike_error("Parent lost, cannot clone program.\n");
 
   o=low_clone(p);
diff --git a/src/program.c b/src/program.c
index 6768d0bfb5773523d7b183c07b2aa5b172252a36..c0a908d68194b9c154b2797fe26c01bd2dbf4adf 100644
--- a/src/program.c
+++ b/src/program.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: program.c,v 1.332 2001/06/14 16:12:13 grubba Exp $");
+RCSID("$Id: program.c,v 1.333 2001/06/23 21:52:10 hubbe Exp $");
 #include "program.h"
 #include "object.h"
 #include "dynamic_buffer.h"
@@ -2358,7 +2358,7 @@ void low_inherit(struct program *p,
     return;
   }
 
-  if(p->flags & PROGRAM_USES_PARENT)
+  if(p->flags & PROGRAM_NEEDS_PARENT)
   {
     struct program_state *state=Pike_compiler;
 
diff --git a/src/program.h b/src/program.h
index da6a6ca8e21f00da42821a83c1269ede258f70d7..2f32dc736008bedaf987f279846e60fef199a3d5 100644
--- a/src/program.h
+++ b/src/program.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: program.h,v 1.129 2001/06/08 19:32:46 grubba Exp $
+ * $Id: program.h,v 1.130 2001/06/23 21:52:10 hubbe Exp $
  */
 #ifndef PROGRAM_H
 #define PROGRAM_H
@@ -259,6 +259,9 @@ struct pike_trampoline
 /* Program has not yet been used for compilation */
 #define PROGRAM_VIRGIN 0x800
 
+/* */
+#define PROGRAM_NEEDS_PARENT 0x1000
+
 enum pike_program_event
 {
   PROG_EVENT_INIT =0,