diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 8144db29fdfd99755140cc8052b55457483819c8..62bb09f3a79c9581fc32df3885d5249a5b3f057c 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -1185,7 +1185,7 @@ private void procmessage() {
 #endif
       portal->_purgeportal();
     }
-  while (portal = qportals->read());
+  while (objectp(portal = qportals->read()));
   if(!terminating && _options.reconnect)
     _connectfail();
   else