diff --git a/src/interfaces/libpq/fe-exec.c b/src/interfaces/libpq/fe-exec.c
index c82d8381061e0c1b12b8e7d9f09678a6487c4c4b..4297abcfd9961b2ffae4136e0aed11b6b7aaf905 100644
--- a/src/interfaces/libpq/fe-exec.c
+++ b/src/interfaces/libpq/fe-exec.c
@@ -7,7 +7,7 @@
  *
  *
  * IDENTIFICATION
- *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.48 1998/03/15 08:11:11 scrappy Exp $
+ *	  $Header: /cvsroot/pgsql/src/interfaces/libpq/fe-exec.c,v 1.49 1998/04/29 02:04:01 scrappy Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -1545,13 +1545,27 @@ PQfn(PGconn *conn,
 	}
 	pqFlush(pfout, pfdebug);
 
-	id = pqGetc(pfin, pfdebug);
-	if (id != 'V')
+	while ((id = pqGetc(pfin, pfdebug)) != 'V')
 	{
 		if (id == 'E')
 		{
 			pqGets(conn->errorMessage, ERROR_MSG_LENGTH, pfin, pfdebug);
 		}
+		else if (id == 'N')
+	        {
+	               /* print notice and go back to processing return 
+			   values */
+	               if (pqGets(conn->errorMessage, ERROR_MSG_LENGTH, 
+				pfin, pfdebug) == 1)
+			{
+				sprintf(conn->errorMessage,
+				"Notice return detected from backend, but "
+				"message cannot be read");
+			}
+			else
+				fprintf(stderr, "%s\n", conn->errorMessage);
+			continue;
+		}
 		else
 			sprintf(conn->errorMessage,
 			   "PQfn: expected a 'V' from the backend. Got '%c' instead",