diff --git a/src/modules/Odbc/odbc.c b/src/modules/Odbc/odbc.c
index fa2bc566264d554d9922736e3c41c456e9d59a3d..23775a2adbbb95ccf1e8e9b481390b687f44fe3e 100644
--- a/src/modules/Odbc/odbc.c
+++ b/src/modules/Odbc/odbc.c
@@ -1,5 +1,5 @@
 /*
- * $Id: odbc.c,v 1.2 1997/03/22 14:08:51 grubba Exp $
+ * $Id: odbc.c,v 1.3 1997/06/10 03:21:41 grubba Exp $
  *
  * Pike interface to ODBC compliant databases.
  *
@@ -15,7 +15,7 @@
 #endif /* HAVE_CONFIG_H */
 
 #include "global.h"
-RCSID("$Id: odbc.c,v 1.2 1997/03/22 14:08:51 grubba Exp $");
+RCSID("$Id: odbc.c,v 1.3 1997/06/10 03:21:41 grubba Exp $");
 
 #include "interpret.h"
 #include "object.h"
@@ -26,6 +26,7 @@ RCSID("$Id: odbc.c,v 1.2 1997/03/22 14:08:51 grubba Exp $");
 #include "array.h"
 #include "multiset.h"
 #include "program.h"
+#include "module_support.h"
 
 #ifdef HAVE_ODBC
 
@@ -247,7 +248,7 @@ static void f_big_query(INT32 args)
     push_object(fp->current_object);
     fp->current_object->refs++;
 
-    push_object(clone(odbc_result_program, 1));
+    push_object(clone_object(odbc_result_program, 1));
   } else {
     odbc_check_error("odbc->big_query", "Couldn't commit query",
 		     SQLTransact(PIKE_ODBC->henv, PIKE_ODBC->hdbc,
diff --git a/src/modules/Odbc/odbc_result.c b/src/modules/Odbc/odbc_result.c
index eb79f2d6ab14075372dc2b1a3a633f2130091dc5..08b05e02b2045591bd1c81a965a542c1ac5e4fb7 100644
--- a/src/modules/Odbc/odbc_result.c
+++ b/src/modules/Odbc/odbc_result.c
@@ -1,5 +1,5 @@
 /*
- * $Id: odbc_result.c,v 1.2 1997/03/12 00:38:18 grubba Exp $
+ * $Id: odbc_result.c,v 1.3 1997/06/10 03:21:42 grubba Exp $
  *
  * Pike  interface to ODBC compliant databases
  *
@@ -17,7 +17,7 @@
 #ifdef HAVE_ODBC
 
 #include "global.h"
-RCSID("$Id: odbc_result.c,v 1.2 1997/03/12 00:38:18 grubba Exp $");
+RCSID("$Id: odbc_result.c,v 1.3 1997/06/10 03:21:42 grubba Exp $");
 
 #include "interpret.h"
 #include "object.h"
@@ -28,6 +28,10 @@ RCSID("$Id: odbc_result.c,v 1.2 1997/03/12 00:38:18 grubba Exp $");
 #include "array.h"
 #include "multiset.h"
 #include "program.h"
+#include "array.h"
+#include "builtin_functions.h"
+#include "pike_memory.h"
+#include "module_support.h"
 
 #include "precompiled_odbc.h"
 
@@ -217,7 +221,7 @@ static void odbc_fix_fields(void)
 
     membuf_size += odbc_fields[i].size;
   }
-  f_aggregate_array(PIKE_ODBC_RES->num_fields);
+  f_aggregate(PIKE_ODBC_RES->num_fields);
 
   sp[-1].u.array->refs++;
   PIKE_ODBC_RES->fields = sp[-1].u.array;
diff --git a/src/modules/Odbc/precompiled_odbc.h b/src/modules/Odbc/precompiled_odbc.h
index 4dda0ed30dd9b4390531830f266b1acdda70d4ec..2d2485bf81d3f71ee5440b7e946ce3869831c9be 100644
--- a/src/modules/Odbc/precompiled_odbc.h
+++ b/src/modules/Odbc/precompiled_odbc.h
@@ -1,5 +1,5 @@
 /*
- * $Id: precompiled_odbc.h,v 1.1 1997/03/10 19:01:54 grubba Exp $
+ * $Id: precompiled_odbc.h,v 1.2 1997/06/10 03:21:43 grubba Exp $
  *
  * Pike interface to ODBC compliant databases.
  *
@@ -47,8 +47,8 @@ struct precompiled_odbc {
   HENV henv;
   HDBC hdbc;
   HSTMT hstmt;
-  SDWORD num_fields;
-  SWORD affected_rows;
+  SWORD num_fields;
+  SDWORD affected_rows;
   struct pike_string *last_error;
 };
 
@@ -76,4 +76,7 @@ volatile void odbc_error(const char *fun, const char *msg,
 			 struct precompiled_odbc *odbc, HSTMT hstmt,
 			 RETCODE code, void (*clean)(void));
 
+void init_odbc_res_programs(void);
+void exit_odbc_res(void);
+
 #endif /* PIKE_PRECOMPILED_ODBC_H */