diff --git a/lib/modules/Sql.pmod/sql_array_result.pike b/lib/modules/Sql.pmod/sql_array_result.pike
index d83a7669d1f5b039c36fb073f98b61484b531e1b..c597eead9070f0aa006b50d2536876166512a2e8 100644
--- a/lib/modules/Sql.pmod/sql_array_result.pike
+++ b/lib/modules/Sql.pmod/sql_array_result.pike
@@ -49,3 +49,8 @@ int|array(string|int) fetch_row() {
   index++;
   return res;
 }
+
+this_program next_result()
+{
+  return 0;
+}
diff --git a/lib/modules/Sql.pmod/sql_object_result.pike b/lib/modules/Sql.pmod/sql_object_result.pike
index 9cd83c7dbdddb81641750202c9b45d5bbb1793d3..f27f6d5c0bcf3b30fe7722eeadc72c3938721d0b 100644
--- a/lib/modules/Sql.pmod/sql_object_result.pike
+++ b/lib/modules/Sql.pmod/sql_object_result.pike
@@ -15,6 +15,11 @@ int num_rows() {
   return master_res->num_rows();
 }
 
+int num_fields()
+{
+  return master_res->num_fields();
+}
+
 int eof() {
   return master_res->eof();
 }
@@ -38,3 +43,9 @@ int|array(string|int) fetch_row() {
   index++;
   return master_res->fetch_row();
 }
+
+this_program next_result()
+{
+  if (master_res->next_result) return master_res->next_result();
+  return 0;
+}
diff --git a/lib/modules/Sql.pmod/sql_result.pike b/lib/modules/Sql.pmod/sql_result.pike
index aacd24b624a9b6d06b7415a2d9df1abb561c7729..6cde8c26a379b9de5ed303f3b443d883e3199262 100644
--- a/lib/modules/Sql.pmod/sql_result.pike
+++ b/lib/modules/Sql.pmod/sql_result.pike
@@ -6,8 +6,12 @@
 
 #pike __REAL_VERSION__
 
-//! Implements the generic result of the SQL-interface.
+//! Implements the generic result base class of the SQL-interface.
 //! Used for return results from SQL.sql->big_query().
+//!
+//! You typically don't get a direct clone of this class,
+//! but of a class that inherits it, like @[sql_array_result]
+//! or @[sql_object_result].
 
 //! The actual result.
 mixed master_res;
@@ -38,10 +42,7 @@ protected string _sprintf(int type, mapping|void flags)
 int num_rows();
 
 //! Returns the number of fields in the result.
-int num_fields()
-{
-  return master_res->num_fields();
-}
+int num_fields();
 
 //! Returns non-zero if there are no more rows.
 int eof();
@@ -83,11 +84,7 @@ int|array(string|int|float) fetch_row();
 //!
 //! @throws
 //!   May throw the same errors as @[Sql.Sql()->big_query()] et al.
-this_program next_result()
-{
-  if (master_res->next_result) return master_res->next_result();
-  return 0;
-}
+this_program next_result();
 
 // --- Iterator API