diff --git a/src/interfaces/libpq/fe-connect.c b/src/interfaces/libpq/fe-connect.c
index 0dda180..408ce87 100644
--- a/src/interfaces/libpq/fe-connect.c
+++ b/src/interfaces/libpq/fe-connect.c
@@ -2988,15 +2988,23 @@ keep_going:						/* We will come back to here until there is
 						/* No more addresses to try. So we fail. */
 						goto error_return;
 					}
+
 					PQclear(res);
-					termPQExpBuffer(&savedMessage);
+					/*
+					 * Call PQgetResult() again to consume NULL result.
+					 * Anything else is an error and will be dealt with below.
+					 */
+					if ((res = PQgetResult(conn)) == NULL)
+					{
+						termPQExpBuffer(&savedMessage);
 
-					/* We can release the address lists now. */
-					release_all_addrinfo(conn);
+						/* We can release the address lists now. */
+						release_all_addrinfo(conn);
 
-					/* We are open for business! */
-					conn->status = CONNECTION_OK;
-					return PGRES_POLLING_OK;
+						/* We are open for business! */
+						conn->status = CONNECTION_OK;
+						return PGRES_POLLING_OK;
+					}
 				}
 
 				/*
