diff --git a/src/modules/Mysql/precompiled_mysql.h b/src/modules/Mysql/precompiled_mysql.h
index e56e403586bcb34b21b31b234768f263ac19c84b..28085880e866de818ce7813cf15f551a2f5b2a50 100644
--- a/src/modules/Mysql/precompiled_mysql.h
+++ b/src/modules/Mysql/precompiled_mysql.h
@@ -1,5 +1,5 @@
 /*
- * $Id: precompiled_mysql.h,v 1.1 1997/02/11 08:36:35 hubbe Exp $
+ * $Id: precompiled_mysql.h,v 1.2 1997/04/20 03:55:48 grubba Exp $
  *
  * SQL database connectivity for Pike
  *
@@ -48,6 +48,7 @@ struct precompiled_mysql {
 };
 
 struct precompiled_mysql_result {
+  struct object *connection;
   MYSQL_RES	*result;
 };
 
diff --git a/src/modules/Mysql/result.c b/src/modules/Mysql/result.c
index 2cf09eec399baaf9f6c83e3998a61bc43d42d5be..2cd7001faeef52a7ad943a38aa51d284b2fef59a 100644
--- a/src/modules/Mysql/result.c
+++ b/src/modules/Mysql/result.c
@@ -1,5 +1,5 @@
 /*
- * $Id: result.c,v 1.4 1997/03/28 18:30:57 grubba Exp $
+ * $Id: result.c,v 1.5 1997/04/20 03:55:46 grubba Exp $
  *
  * mysql query result
  *
@@ -74,7 +74,7 @@ typedef struct dynamic_buffer_s dynamic_buffer;
  * Globals
  */
 
-RCSID("$Id: result.c,v 1.4 1997/03/28 18:30:57 grubba Exp $");
+RCSID("$Id: result.c,v 1.5 1997/04/20 03:55:46 grubba Exp $");
 
 struct program *mysql_result_program = NULL;
 
@@ -97,6 +97,10 @@ static void exit_res_struct(struct object *o)
     mysql_free_result(PIKE_MYSQL_RES->result);
     PIKE_MYSQL_RES->result = NULL;
   }
+  if (PIKE_MYSQL_RES->connection) {
+    free_object(PIKE_MYSQL_RES->connection);
+    PIKE_MYSQL_RES->connection = NULL;
+  }
 }
 
 /*
@@ -222,6 +226,8 @@ static void f_create(INT32 args)
     error("Bad argument 1 to mysql_result()\n");
   }
 
+  PIKE_MYSQL_RES->connection = sp[-args].u.object;
+  PIKE_MYSQL_RES->connection->refs++;
   PIKE_MYSQL_RES->result = mysql->last_result;
   mysql->last_result = NULL;