diff -ruN klic-3.003-2002-01-15/ChangeLog klic-3.003-2002-01-15a/ChangeLog
--- klic-3.003-2002-01-15/ChangeLog	Sun Jan 13 17:29:02 2002
+++ klic-3.003-2002-01-15a/ChangeLog	Tue Jan 15 18:03:40 2002
@@ -1,3 +1,10 @@
+2002-01-15 TAKAGI Yusuke <takagi@ueda.info.waseda.ac.jp>
+
+	* include/klic/{ g_methtab.h, gc_macro.h, gc_methtab.h,
+	gd_macro.h, gd_methtab.h, gg_macro.h, gg_methtab.h },
+	runtime/{ generic.c, otbl.c }:
+	pass allocp to generic deallocate methods.
+
 2002-01-12 TAKAGI Yusuke <takagi@ueda.info.waseda.ac.jp>
 
 	* include/klic/gd_macro.h: remove GD_body_no_arity.
diff -ruN klic-3.003-2002-01-15/include/klic/g_methtab.h klic-3.003-2002-01-15a/include/klic/g_methtab.h
--- klic-3.003-2002-01-15/include/klic/g_methtab.h	Tue Jan  1 14:17:47 2002
+++ klic-3.003-2002-01-15a/include/klic/g_methtab.h	Tue Jan 15 17:54:58 2002
@@ -32,7 +32,7 @@
 		    unsigned long length */ );
   q *(*gc)( /* struct data_object *obj, q *allocp , q **sp */ );
   long (*regist)( /* struct data_object *obj */ );
-  long (*deallocate)( /* struct data_object *obj */ );
+  q* (*deallocate)( /* struct data_object *obj, q* allocp */ );
   q *(*close)( /* struct data_object *obj, */ );
   q *(*body_generic)( /* struct data_object *obj,
 				      q method_functor,
@@ -70,7 +70,7 @@
 		  unsigned long max_length */);
   q *(*gc)(/* struct consumer_object *obj, q *allocp, q **sp */);
   long (*regist)(/* struct consumer_object *obj */ );
-  long (*deallocate)( /* struct consumer_object *obj */ );
+  q* (*deallocate)( /* struct consumer_object *obj, q* allocp */ );
   q *(*close)( /* struct consumer_object *obj */ );
   q (*encode)(/* struct consumer_object *obj, long node */);
 };
@@ -98,7 +98,7 @@
 	       q* allocp,
 	       q** sp */);
   long (*regist)(/* struct generator_object* self */);
-  long (*deallocate)(/* struct generator_object* self */);
+  q* (*deallocate)(/* struct generator_object* self, q* allocp */);
   q* (*close)(/* struct generator_object* self */);
   q (*encode)(/* struct generator_object* self, long node */);
 };
diff -ruN klic-3.003-2002-01-15/include/klic/gg_methtab.h klic-3.003-2002-01-15a/include/klic/gg_methtab.h
--- klic-3.003-2002-01-15/include/klic/gg_methtab.h	Tue Jan 15 10:45:35 2002
+++ klic-3.003-2002-01-15a/include/klic/gg_methtab.h	Tue Jan 15 17:56:36 2002
@@ -33,6 +33,7 @@
 #endif
 
 #ifndef GGUSE_MY_GENERATE
+#error "please GGDEF_GENERATE and GGUSE_MY_GENERATE"
   GG_STD_GENERATE ,
 #else
   GG_rappend(generate) ,
diff -ruN klic-3.003-2002-01-15/runtime/unify.c klic-3.003-2002-01-15a/runtime/unify.c
--- klic-3.003-2002-01-15/runtime/unify.c	Tue Jan  1 14:17:47 2002
+++ klic-3.003-2002-01-15a/runtime/unify.c	Tue Jan 15 17:52:57 2002
@@ -65,7 +65,7 @@
   by the unification with `y'
 */
 
-static Inline q*
+extern Inline q*
 resume_goals(allocp, x, y)
      q * allocp;
      q x;
