diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index e860ba0cdafd92e454d3d5ae68bc91486d81b8b3..49dc9100ac3b19047466c0730a066dde9fbbda1c 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -1162,10 +1162,8 @@ private void procmessage() {
     if(err==MAGICTERMINATE) {	// Announce connection termination to server
       ci->start()->add("X\0\0\0\4")->sendcmd(SENDOUT);
       terminating=1;
-      if(!sizeof(ci))
-        break;
-    }
-    if(stringp(err)) {
+      err=0;
+    } else if(stringp(err)) {
       .pgsql_util.sql_result or;
       if(!objectp(or=portal))
         or=this;