diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index 43d1ec91bedd9e4b661d6afd7f5da61127076bef..cb03aa8afb4f30f4643cfa12a8dc90e2e97efa65 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -1374,10 +1374,12 @@ class sql_result {
     }
     if (arrayp(datarow[-1]))
       return datarow;
+    do datarow = datarow[..<1];			// Swallow EOF mark(s)
+    while (sizeof(datarow) && !arrayp(datarow[-1]));
     trydelayederror();
     eoffound = 1;
     datarows->write(1);				// Signal EOF for other threads
-    return (datarow = datarow[..<1]);
+    return datarow;
   }
 
   //! @param copydata