diff -ruN klic-3.003-2002-03-05e/include/klic/g_methtab.h klic-3.003-2002-03-05f/include/klic/g_methtab.h
--- klic-3.003-2002-03-05e/include/klic/g_methtab.h	Tue Mar  5 15:02:42 2002
+++ klic-3.003-2002-03-05f/include/klic/g_methtab.h	Tue Mar  5 21:28:43 2002
@@ -30,7 +30,7 @@
 		    FILE *out_stream,
 		    unsigned long depth,
 		    unsigned long length */ );
-  q* (*gc)( /* struct data_object* obj, q* allocp */ );
+  q* (*gc)( /* struct data_object* obj */ );
   void (*deallocate)( /* struct data_object* obj */ );
   q *(*body_generic)( /* struct data_object *obj,
 				      q method_functor,
@@ -66,7 +66,7 @@
 		  FILE *out_stream,
 		  unsigned long max_depth,
 		  unsigned long max_length */);
-  q* (*gc)(/* struct consumer_object* obj, q* allocp */);
+  q* (*gc)(/* struct consumer_object* obj */);
   void (*deallocate)( /* struct consumer_object* obj */ );
   q (*encode)(/* struct consumer_object *obj, long node */);
 };
@@ -90,7 +90,7 @@
 		  FILE* out_stream,
 		  unsigned long max_depth,
 		  unsigned long max_length */);
-  q* (*gc)(/* struct generator_object* self, q* allocp */);
+  q* (*gc)(/* struct generator_object* self */);
   void (*deallocate)(/* struct generator_object* self */);
   q (*encode)(/* struct generator_object* self, long node */);
 };
diff -ruN klic-3.003-2002-03-05e/include/klic/gc_macro.h klic-3.003-2002-03-05f/include/klic/gc_macro.h
--- klic-3.003-2002-03-05e/include/klic/gc_macro.h	Tue Mar  5 14:59:48 2002
+++ klic-3.003-2002-03-05f/include/klic/gc_macro.h	Tue Mar  5 21:27:43 2002
@@ -221,11 +221,7 @@
 /******************************************************************/
 
 #define GCDEF_GC() \
- static \
-  q * \
-GC_rappend(gc) (GC_SELF, g_allocp) \
-    GC_OBJ_TYPE *GC_SELF; \
-    q* g_allocp;
+static q* GC_rappend(gc) (GC_OBJ_TYPE* GC_SELF)
 
 #define GCSET_NEWOBJ_IN_NEWGEN(newobj) \
 do{ \
@@ -238,7 +234,6 @@
 
 #define GC_RETURN_FROM_GC(newgobj) \
 do{ \
-  assert(g_allocp == heapp()); \
   return (q *) (newgobj); \
 }while(0)
 
diff -ruN klic-3.003-2002-03-05e/include/klic/gd_macro.h klic-3.003-2002-03-05f/include/klic/gd_macro.h
--- klic-3.003-2002-03-05e/include/klic/gd_macro.h	Tue Mar  5 14:59:08 2002
+++ klic-3.003-2002-03-05f/include/klic/gd_macro.h	Tue Mar  5 21:30:11 2002
@@ -371,14 +371,10 @@
     long GD_LEVEL;
 
 #define GDDEF_GC() \
- static q * \
-GD_rappend(gc) (GD_SELF, g_allocp) \
-    GD_OBJ_TYPE * GD_SELF; \
-    q* g_allocp;
+static q* GD_rappend(gc) (GD_OBJ_TYPE* GD_SELF)
 
 #define GD_RETURN_FROM_GC(newgobj) \
 do{ \
-  assert(g_allocp == heapp()); \
   return(((q *)(newgobj))); \
 }while(0)
 
diff -ruN klic-3.003-2002-03-05e/include/klic/gd_methtab.h klic-3.003-2002-03-05f/include/klic/gd_methtab.h
--- klic-3.003-2002-03-05e/include/klic/gd_methtab.h	Sun Feb 24 14:51:59 2002
+++ klic-3.003-2002-03-05f/include/klic/gd_methtab.h	Tue Mar  5 21:30:51 2002
@@ -21,7 +21,7 @@
   struct data_object* GD_SELF, FILE* g_fp,
   unsigned long g_depth, unsigned long g_length );
 
-extern q* GD_STD_GC(struct data_object* GD_SELF, q* g_allocp, q** g_sp);
+extern q* GD_STD_GC(struct data_object* GD_SELF);
 extern void GD_STD_DEALLOCATE(struct data_object* GD_SELF);
 
 extern q* GD_STD_GENERIC(
diff -ruN klic-3.003-2002-03-05e/include/klic/gg_macro.h klic-3.003-2002-03-05f/include/klic/gg_macro.h
--- klic-3.003-2002-03-05e/include/klic/gg_macro.h	Tue Mar  5 14:58:02 2002
+++ klic-3.003-2002-03-05f/include/klic/gg_macro.h	Tue Mar  5 21:31:39 2002
@@ -209,10 +209,7 @@
 
 
 #define GGDEF_GC() \
-static \
-q* GG_rappend(gc) (GG_SELF, g_allocp) \
-  GG_OBJ_TYPE *GG_SELF; \
-  q* g_allocp;
+static q* GG_rappend(gc) (GG_OBJ_TYPE* GG_SELF)
 
 #define GGSET_NEWOBJ_IN_NEWGEN(newobj) \
 do{ \
@@ -225,7 +222,6 @@
 
 #define GG_RETURN_FROM_GC(newgobj) \
 do{ \
-  assert(g_allocp == heapp()); \
   return(((q *)(newgobj))); \
 }while(0)
 
diff -ruN klic-3.003-2002-03-05e/runtime/gc.c klic-3.003-2002-03-05f/runtime/gc.c
--- klic-3.003-2002-03-05e/runtime/gc.c	Tue Mar  5 17:03:08 2002
+++ klic-3.003-2002-03-05f/runtime/gc.c	Tue Mar  5 21:33:33 2002
@@ -23,7 +23,7 @@
 #include "shm.h"
 #endif  /* SHM */
 
-#define generic_gc(obj)  (method_table_of(obj)->gc((obj), heapp()))
+#define generic_gc(obj)  (method_table_of(obj)->gc(obj))
 
 extern const struct predicate queue_empty_pred;
 
diff -ruN klic-3.003-2002-03-05e/runtime/gcode.c klic-3.003-2002-03-05f/runtime/gcode.c
--- klic-3.003-2002-03-05e/runtime/gcode.c	Sun Feb 24 17:00:52 2002
+++ klic-3.003-2002-03-05f/runtime/gcode.c	Tue Mar  5 21:34:12 2002
@@ -57,6 +57,7 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE* newself;
+  q* g_allocp = heapp();
 
   GDSET_NEWOBJ_IN_NEWGEN(newself);
   newself->pdesc = GD_SELF->pdesc;
diff -ruN klic-3.003-2002-03-05e/runtime/ge_exref.c klic-3.003-2002-03-05f/runtime/ge_exref.c
--- klic-3.003-2002-03-05e/runtime/ge_exref.c	Tue Feb 26 14:11:34 2002
+++ klic-3.003-2002-03-05f/runtime/ge_exref.c	Tue Mar  5 21:34:58 2002
@@ -134,6 +134,7 @@
 {
   G_STD_DECL;
   GG_OBJ_TYPE* newself;
+  q* g_allocp = heapp();
 
   INT_CL_DEBUG_X(klic_fprintf(stdout, "exref GC invoked\n"));
 
diff -ruN klic-3.003-2002-03-05e/runtime/ge_readhook.c klic-3.003-2002-03-05f/runtime/ge_readhook.c
--- klic-3.003-2002-03-05e/runtime/ge_readhook.c	Sun Feb 24 14:25:21 2002
+++ klic-3.003-2002-03-05f/runtime/ge_readhook.c	Tue Mar  5 21:35:20 2002
@@ -66,6 +66,7 @@
 {
   G_STD_DECL;
   GC_OBJ_TYPE* newself;
+  q* g_allocp = heapp();
 
   INT_CL_DEBUG_X(klic_fprintf(stdout, "readhook GC invoked\n"));
 
diff -ruN klic-3.003-2002-03-05e/runtime/ge_replyhook.c klic-3.003-2002-03-05f/runtime/ge_replyhook.c
--- klic-3.003-2002-03-05e/runtime/ge_replyhook.c	Sun Feb 24 14:25:13 2002
+++ klic-3.003-2002-03-05f/runtime/ge_replyhook.c	Tue Mar  5 21:35:34 2002
@@ -46,6 +46,7 @@
 {
   G_STD_DECL;
   GC_OBJ_TYPE* newself;
+  q* g_allocp = heapp();
 
   GCSET_NEWOBJ_IN_NEWGEN(newself);
   newself->node = GC_SELF->node;
diff -ruN klic-3.003-2002-03-05e/runtime/generic.c klic-3.003-2002-03-05f/runtime/generic.c
--- klic-3.003-2002-03-05e/runtime/generic.c	Tue Mar  5 15:03:40 2002
+++ klic-3.003-2002-03-05f/runtime/generic.c	Tue Mar  5 21:36:01 2002
@@ -181,11 +181,10 @@
 }
 
 extern q*
-GD_STD_GC(GD_SELF, g_allocp)
+GD_STD_GC(GD_SELF)
   struct data_object* GD_SELF;
-  q* g_allocp;
 {
-  return g_allocp;
+  return heapp();
 }
 
 extern void
diff -ruN klic-3.003-2002-03-05e/runtime/gfloat.c klic-3.003-2002-03-05f/runtime/gfloat.c
--- klic-3.003-2002-03-05e/runtime/gfloat.c	Sun Feb 24 17:01:13 2002
+++ klic-3.003-2002-03-05f/runtime/gfloat.c	Tue Mar  5 21:36:19 2002
@@ -110,6 +110,7 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE* newself;
+  q* g_allocp = heapp();
 
   ALIGN();
   GDSET_NEWOBJ_IN_NEWGEN(newself);
diff -ruN klic-3.003-2002-03-05e/runtime/ggoal.c klic-3.003-2002-03-05f/runtime/ggoal.c
--- klic-3.003-2002-03-05e/runtime/ggoal.c	Sun Feb 24 17:09:11 2002
+++ klic-3.003-2002-03-05f/runtime/ggoal.c	Tue Mar  5 21:37:12 2002
@@ -120,6 +120,7 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
   struct goalrec *goal = GD_SELF->goal;
   struct goalrec *newgoal = (struct goalrec *)g_allocp;
   long arity, k;
diff -ruN klic-3.003-2002-03-05e/runtime/gio.c klic-3.003-2002-03-05f/runtime/gio.c
--- klic-3.003-2002-03-05e/runtime/gio.c	Mon Feb 25 14:49:08 2002
+++ klic-3.003-2002-03-05f/runtime/gio.c	Tue Mar  5 21:37:30 2002
@@ -428,6 +428,7 @@
 {
   G_STD_DECL;
   GC_OBJ_TYPE* newself;
+  q* g_allocp = heapp();
 
   GCSET_NEWOBJ_IN_NEWGEN(newself);
   *newself = *GC_SELF;
diff -ruN klic-3.003-2002-03-05e/runtime/gmerge.c klic-3.003-2002-03-05f/runtime/gmerge.c
--- klic-3.003-2002-03-05e/runtime/gmerge.c	Sun Feb 24 14:31:55 2002
+++ klic-3.003-2002-03-05f/runtime/gmerge.c	Tue Mar  5 21:37:49 2002
@@ -134,6 +134,7 @@
 {
   G_STD_DECL;
   GC_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
 
   GCSET_NEWOBJ_IN_NEWGEN(newself);
   newself->count = GC_SELF->count;
diff -ruN klic-3.003-2002-03-05e/runtime/gmodule.c klic-3.003-2002-03-05f/runtime/gmodule.c
--- klic-3.003-2002-03-05e/runtime/gmodule.c	Sun Feb 24 17:01:47 2002
+++ klic-3.003-2002-03-05f/runtime/gmodule.c	Tue Mar  5 21:38:12 2002
@@ -59,6 +59,7 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
 
   GDSET_NEWOBJ_IN_NEWGEN(newself);
   newself->name = GD_SELF->name;
diff -ruN klic-3.003-2002-03-05e/runtime/gmvv.c klic-3.003-2002-03-05f/runtime/gmvv.c
--- klic-3.003-2002-03-05e/runtime/gmvv.c	Tue Mar  5 16:16:37 2002
+++ klic-3.003-2002-03-05f/runtime/gmvv.c	Tue Mar  5 21:38:27 2002
@@ -138,6 +138,7 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
 
   if (GD_SELF->iscnst) {
     fatal("GC method for constant vector unexpected");
diff -ruN klic-3.003-2002-03-05e/runtime/gpointer.c klic-3.003-2002-03-05f/runtime/gpointer.c
--- klic-3.003-2002-03-05e/runtime/gpointer.c	Sun Feb 24 17:02:14 2002
+++ klic-3.003-2002-03-05f/runtime/gpointer.c	Tue Mar  5 21:38:47 2002
@@ -37,6 +37,8 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
+
   GDSET_NEWOBJ_IN_NEWGEN(newself);
   newself->pointer = GD_SELF->pointer;
   set_heapp(g_allocp);
diff -ruN klic-3.003-2002-03-05e/runtime/gstring.c klic-3.003-2002-03-05f/runtime/gstring.c
--- klic-3.003-2002-03-05e/runtime/gstring.c	Mon Feb 25 14:50:02 2002
+++ klic-3.003-2002-03-05f/runtime/gstring.c	Tue Mar  5 21:39:07 2002
@@ -128,6 +128,7 @@
 {
   G_STD_DECL;
   GD_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
 
   GDSET_NEWOBJ_IN_NEWGEN(newself);
   if (GD_SELF->iscnst) {
diff -ruN klic-3.003-2002-03-05e/runtime/gtermarray.c klic-3.003-2002-03-05f/runtime/gtermarray.c
--- klic-3.003-2002-03-05e/runtime/gtermarray.c	Sun Feb 24 17:02:48 2002
+++ klic-3.003-2002-03-05f/runtime/gtermarray.c	Tue Mar  5 21:39:34 2002
@@ -39,6 +39,7 @@
   G_STD_DECL;
   unsigned long size = GD_SELF->nterm;
   GD_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
   unsigned long i;
 
   GDSET_NEWOBJ_IN_NEWGEN(newself);
diff -ruN klic-3.003-2002-03-05e/runtime/random.c klic-3.003-2002-03-05f/runtime/random.c
--- klic-3.003-2002-03-05e/runtime/random.c	Tue Mar  5 15:05:34 2002
+++ klic-3.003-2002-03-05f/runtime/random.c	Tue Mar  5 21:40:13 2002
@@ -74,6 +74,7 @@
 GGDEF_GC()
 {
   G_STD_DECL;
+  q* g_allocp = heapp();
   q* newself = g_allocp;
 
   BCOPY(GG_SELF, g_allocp, sizeof(GG_OBJ_TYPE));
diff -ruN klic-3.003-2002-03-05e/runtime/wakeup.c klic-3.003-2002-03-05f/runtime/wakeup.c
--- klic-3.003-2002-03-05e/runtime/wakeup.c	Sun Feb 24 14:32:07 2002
+++ klic-3.003-2002-03-05f/runtime/wakeup.c	Tue Mar  5 21:40:51 2002
@@ -36,6 +36,7 @@
 {
   G_STD_DECL;
   GC_OBJ_TYPE *newself;
+  q* g_allocp = heapp();
 
   GCSET_NEWOBJ_IN_NEWGEN(newself);
   G_COPY_KL1_TERM_TO_NEWGEN(GC_SELF->x,newself->x);
