diff --git a/lib/modules/Sql.pmod/sql.pike b/lib/modules/Sql.pmod/sql.pike
index 10d6d156e2fc071a84599c34773d61c3824c07a7..2486c52e5c76499063121366bef88fea6a943306 100644
--- a/lib/modules/Sql.pmod/sql.pike
+++ b/lib/modules/Sql.pmod/sql.pike
@@ -1,5 +1,5 @@
 /*
- * $Id: sql.pike,v 1.30 1999/06/14 22:14:42 grubba Exp $
+ * $Id: sql.pike,v 1.31 1999/06/27 21:36:39 grubba Exp $
  *
  * Implements the generic parts of the SQL-interface
  *
@@ -8,7 +8,7 @@
 
 //.
 //. File:	sql.pike
-//. RCSID:	$Id: sql.pike,v 1.30 1999/06/14 22:14:42 grubba Exp $
+//. RCSID:	$Id: sql.pike,v 1.31 1999/06/27 21:36:39 grubba Exp $
 //. Author:	Henrik Grubbstr�m (grubba@idonex.se)
 //.
 //. Synopsis:	Implements the generic parts of the SQL-interface.
@@ -276,19 +276,23 @@ static private array(mapping(string:mixed)) res_obj_to_array(object res_obj)
     array(mapping(string:mixed)) res = ({});
     array(string) fieldnames;
     array(mixed) row;
-      
+
+    array(mapping) fields = res_obj->fetch_fields();
+
     fieldnames = Array.map(res_obj->fetch_fields(),
 			   lambda (mapping(string:mixed) m) {
-      if (case_convert) {
-	return(lower_case(m->name));	/* Hope this is even more unique */
-      } else {
-	return(m->name);		/* Hope this is unique */
-      }
-    } );
+			     return((m->table||"") + "." + m->name);
+			   } ) +
+      fields->name;
+
+    if (case_convert) {
+      fieldnames = Array.map(fieldnames, lower_case);
+    }
 
     while (row = res_obj->fetch_row()) {
-      res += ({ mkmapping(fieldnames, row) });
+      res += ({ mkmapping(fieldnames, row + row) });
     }
+
     return(res);
   } else {
     return(0);