diff --git a/src/object.c b/src/object.c
index 8bd8654231d7c2f74bfbe8d0980151824dc62136..71e33cfdc34c688fd57c2eb025b6c6d81e6d3593 100644
--- a/src/object.c
+++ b/src/object.c
@@ -4,7 +4,7 @@
 ||| See the files COPYING and DISCLAIMER for more information.
 \*/
 #include "global.h"
-RCSID("$Id: object.c,v 1.40 1998/02/19 03:22:30 hubbe Exp $");
+RCSID("$Id: object.c,v 1.41 1998/02/19 21:38:45 hubbe Exp $");
 #include "object.h"
 #include "dynamic_buffer.h"
 #include "interpret.h"
@@ -922,9 +922,6 @@ void gc_mark_object_as_referenced(struct object *o)
       if(frame.context.prog->gc_marked)
 	frame.context.prog->gc_marked(o);
 
-      if(frame.context.parent)
-	gc_mark_object_as_referenced(frame.context.parent);
-
       for(d=0;d<(int)frame.context.prog->num_identifiers;d++)
       {
 	if(!IDENTIFIER_IS_VARIABLE(frame.context.prog->identifiers[d].identifier_flags)) 
@@ -959,7 +956,7 @@ void gc_check_all_objects(void)
   {
 #ifdef DEBUG
     if(o->parent)
-      if(gc_check(o->parent)==-2)
+      if(debug_gc_check(o->parent,T_OBJECT,o)==-2)
 	fprintf(stderr,"(in object at %lx -> parent)\n",(long)o);
 #else
     if(o->parent)
@@ -974,9 +971,6 @@ void gc_check_all_objects(void)
 	struct inherit in=o->prog->inherits[e];
 	char *base=o->storage + in.storage_offset;
 
-	if(in.parent)
-	  gc_check(in.parent);
-
 	for(d=0;d<in.prog->num_identifiers;d++)
 	{
 	  struct identifier *i=in.prog->identifiers+d;