diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index cb66cde0a659c3c74de47a834e83daed3de0e81c..97164200f8602d7bbafe7e4f3a8f97f27a5f586c 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -1453,7 +1453,8 @@ class sql_result {
   }
 
   private void replenishrows() {
-   if (_fetchlimit && datarows->size() <= _fetchlimit >> 1) {
+   if (_fetchlimit && datarows->size() <= _fetchlimit >> 1
+    && _state >= COMMITTED) {
       Thread.MutexKey lock = closemux->lock();
       if (_fetchlimit) {
         _fetchlimit = pgsqlsess._fetchlimit;