diff --git a/lib/modules/Sql.pmod/pgsql.pike b/lib/modules/Sql.pmod/pgsql.pike
index 44d55d4e99f07aa3cfa05a14721928f74ea5dc8a..4984407c5effcf73363c2cc8c3de4c3295f48914 100644
--- a/lib/modules/Sql.pmod/pgsql.pike
+++ b/lib/modules/Sql.pmod/pgsql.pike
@@ -617,9 +617,10 @@ final void _processloop(.pgsql_util.conxion ci) {
         _connectfail();
       else
         destruct(waitforauthready);
-    } else	      // Do not flush at this point, PostgreSQL 9.4 disapproves
-      procmessage();
-  }
+      return;
+    }
+  }		      // Do not flush at this point, PostgreSQL 9.4 disapproves
+  procmessage();
 }
 
 private void procmessage() {
diff --git a/lib/modules/Sql.pmod/pgsql_util.pmod b/lib/modules/Sql.pmod/pgsql_util.pmod
index cd4aeef354733431f59745f0b5d02b7500313c91..1bb6250feeadb5342f1f377113a2f8f20e539fa1 100644
--- a/lib/modules/Sql.pmod/pgsql_util.pmod
+++ b/lib/modules/Sql.pmod/pgsql_util.pmod
@@ -392,10 +392,10 @@ outer:
       }
       if(!socket->is_open())
         error(strerror(socket->errno()));
+      connectfail=pgsqlsess->_connectfail;
       socket->set_backend(local_backend);
       socket->set_buffer_mode(i,0);
       socket->set_nonblocking(i->read_cb,write_cb,close);
-      connectfail=pgsqlsess->_connectfail;
       Thread.Thread(pgsqlsess->_processloop,this);
       return;
     };