diff -urb postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v2/ProtocolConnectionImpl.java postgresql-jdbc-8.0-310.src/org/postgresql/core/v2/ProtocolConnectionImpl.java
--- postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v2/ProtocolConnectionImpl.java	2005-01-11 09:25:43.000000000 +0100
+++ postgresql-jdbc-8.0-310.src/org/postgresql/core/v2/ProtocolConnectionImpl.java	2005-04-11 05:07:42.000000000 +0200
@@ -58,6 +58,9 @@
 
     public synchronized PGNotification[]
     getNotifications() {
+        try {
+            executor.processNotifies();
+        } catch (SQLException e) {};
         PGNotification[] array = (PGNotification[])notifications.toArray(new PGNotification[notifications.size()]);
         notifications.clear();
         return array;
diff -urb postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v2/QueryExecutorImpl.java postgresql-jdbc-8.0-310.src/org/postgresql/core/v2/QueryExecutorImpl.java
--- postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v2/QueryExecutorImpl.java	2005-02-01 08:27:54.000000000 +0100
+++ postgresql-jdbc-8.0-310.src/org/postgresql/core/v2/QueryExecutorImpl.java	2005-04-11 05:44:34.000000000 +0200
@@ -148,6 +148,29 @@
         pgStream.flush();
     }
 
+    public synchronized void processNotifies() throws SQLException {
+        try {
+            while (protoConnection.getTransactionState() == ProtocolConnection.TRANSACTION_IDLE && pgStream.getSocket().getInputStream().available()>0) {
+                int c = pgStream.ReceiveChar();
+                switch (c) {
+                    case 'A':  // Asynchronous Notify
+                        receiveAsyncNotify();
+                        break;
+                    case 'N':  // Error Notification
+                        protoConnection.addWarning(receiveNotification());
+                        break;
+                        
+                    default:
+                        throw new PSQLException(GT.tr("Unknown Response Type {0}.", new Character((char) c)), PSQLState.CONNECTION_FAILURE);
+                }
+            }
+        }
+        catch (IOException ioe)
+        {
+            throw new PSQLException(GT.tr("An I/O error occured while sending to the backend."), PSQLState.CONNECTION_FAILURE, ioe);
+        }
+    }
+
     private byte[] receiveFastpathResult() throws IOException, SQLException {
         SQLException error = null;
         boolean endQuery = false;
diff -urb postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v3/ProtocolConnectionImpl.java postgresql-jdbc-8.0-310.src/org/postgresql/core/v3/ProtocolConnectionImpl.java
--- postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v3/ProtocolConnectionImpl.java	2005-01-11 09:25:44.000000000 +0100
+++ postgresql-jdbc-8.0-310.src/org/postgresql/core/v3/ProtocolConnectionImpl.java	2005-04-11 05:07:38.000000000 +0200
@@ -59,6 +59,9 @@
 
     public synchronized PGNotification[]
     getNotifications() {
+        try {
+            executor.processNotifies();
+        } catch (SQLException e) {};
         PGNotification[] array = (PGNotification[])notifications.toArray(new PGNotification[notifications.size()]);
         notifications.clear();
         return array;
diff -urb postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v3/QueryExecutorImpl.java postgresql-jdbc-8.0-310.src/org/postgresql/core/v3/QueryExecutorImpl.java
--- postgresql-jdbc-8.0-310.src-vanilla/org/postgresql/core/v3/QueryExecutorImpl.java	2005-02-01 08:27:54.000000000 +0100
+++ postgresql-jdbc-8.0-310.src/org/postgresql/core/v3/QueryExecutorImpl.java	2005-04-11 05:42:56.000000000 +0200
@@ -524,6 +524,27 @@
         pgStream.flush();
     }
 
+    public synchronized void processNotifies() throws SQLException {
+        try {
+            while (protoConnection.getTransactionState() == ProtocolConnection.TRANSACTION_IDLE && pgStream.getSocket().getInputStream().available()>0) {
+                int c = pgStream.ReceiveChar();
+                switch (c) {
+                    case 'A':  // Asynchronous Notify
+                        receiveAsyncNotify();
+                        break;
+                    case 'N':  // Notice Response (warnings / info)
+                        SQLWarning warning = receiveNoticeResponse();
+                        protoConnection.addWarning(warning);
+                        break;                      
+                    default:
+                        throw new PSQLException(GT.tr("Unknown Response Type {0}.", new Character((char) c)), PSQLState.CONNECTION_FAILURE);
+                }
+            }
+        } catch (IOException ioe) {
+            throw new PSQLException(GT.tr("An I/O error occured while sending to the backend."), PSQLState.CONNECTION_FAILURE, ioe);
+        }
+    }
+
     private byte[] receiveFastpathResult() throws IOException, SQLException {
         boolean endQuery = false;
         SQLException error = null;
