diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike index 2cc5286eb602ba49e717c7cb02e2b8a9c7ca2db3..8144db29fdfd99755140cc8052b55457483819c8 100644 --- a/lib/modules/Sql.pmod/pgsql.pike +++ b/lib/modules/Sql.pmod/pgsql.pike @@ -1178,13 +1178,14 @@ private void procmessage() { } PD("Closing database processloop %O\n",err); _delayederror=err; - for(;objectp(portal);portal=qportals->read()) + do if(objectp(portal)) { #ifdef PG_DEBUG showportal(0); #endif portal->_purgeportal(); } + while (portal = qportals->read()); if(!terminating && _options.reconnect) _connectfail(); else