--- /dev/null
+--- libgda-1.9.100/providers/bdb/gda-bdb-recordset.c.orig 2005-09-16 11:55:02.000000000 +0200
++++ libgda-1.9.100/providers/bdb/gda-bdb-recordset.c 2006-02-21 20:46:12.736816500 +0100
+@@ -113,7 +113,7 @@
+ return NULL;
+ }
+
+- row = (GdaRow *) gda_data_model_hash_get_row (model, row_num);
++ row = (GdaRow *) GDA_DATA_MODEL_BASE_CLASS (parent_class)->get_row (model, row_num);
+ if (row != NULL)
+ return (const GdaRow *) row;
+
+--- libgda-1.9.100/providers/freetds/gda-freetds-recordset.c.orig 2006-02-21 20:16:38.205915000 +0100
++++ libgda-1.9.100/providers/freetds/gda-freetds-recordset.c 2006-02-21 21:14:25.066580500 +0100
+@@ -155,7 +155,7 @@
+ while (recset->priv->rows->len > 0) {
+ GdaRow *row = (GdaRow *) g_ptr_array_index (recset->priv->rows, 0);
+ if (row != NULL) {
+- gda_row_free (row);
++ g_object_unref (row);
+ row = NULL;
+ }
+ g_ptr_array_remove_index (recset->priv->rows, 0);
+--- libgda-1.9.100/providers/firebird/gda-firebird-recordset.c.orig 2005-09-26 11:16:01.000000000 +0200
++++ libgda-1.9.100/providers/firebird/gda-firebird-recordset.c 2006-02-21 21:12:32.007514750 +0100
+@@ -775,7 +775,7 @@
+
+ /* if it exists then free it */
+ if (row != NULL)
+- gda_row_free (row);
++ g_object_unref (row);
+
+ /* Move down all existing rows */
+ g_ptr_array_remove_index (recset->priv->rows, 0);
+--- libgda-1.9.100/providers/ldap/gda-ldap-recordset.c.orig 2005-09-22 12:24:01.000000000 +0200
++++ libgda-1.9.100/providers/ldap/gda-ldap-recordset.c 2006-02-21 21:14:58.776687250 +0100
+@@ -399,7 +399,7 @@
+ GdaRow * row = (GdaRow *) g_ptr_array_index (recset->rows, 0);
+
+ if (row != NULL)
+- gda_row_free (row);
++ g_object_unref (row);
+ g_ptr_array_remove_index (recset->rows, 0);
+ }
+ g_ptr_array_free (recset->rows, TRUE);