diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 01b765d1f106e26ae9dbb86e95504393786b9140..5bb5dde30d6dbe1153d04508399b77bdcebf0097 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -979,7 +979,8 @@ final int _decodemsg(void|state waitforstate)
 	}
 	else
 	{ array(string) msg=lastmessage;
-          phasedreconnect();msg+=lastmessage;
+	  if(_mstate!=unauthenticated)
+            phasedreconnect(),msg+=lastmessage;
 	  string s=sizeof(msg)?a2nls(msg):"";
 	  ERROR("%sConnection lost to database %s@%s:%d/%s %d\n",
 	   s,user,host,port,database,backendpid);