diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 733e9bb8ce0589bdd0476469a59a913438707e31..af7ebcb1994b43afaffe793244c970df392fe368 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -1265,6 +1265,10 @@ protected void destroy() {
 
 void _connectfail(void|mixed err) {
   PD("Connect failed %O reconnectdelay %d\n",err,reconnectdelay);
+  if(waitforauthready) {
+    destruct(waitforauthready);
+    waitforauthready=0;
+  }
   if(!err || reconnectdelay) {
     int tdelay;
     switch(tdelay=reconnectdelay) {