diff --git a/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java
index 8324c6a..49fe961 100644
--- a/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java
+++ b/mina-core/src/main/java/org/apache/mina/core/write/DefaultWriteRequest.java
@@ -221,7 +221,7 @@
         }
 
         this.message = message;
-        originalMessage = message;
+        this.originalMessage = message;
         
         if (message instanceof IoBuffer) {
             // duplicate it, so that any modification made on it
diff --git a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
index 628e4f2..a460b3d 100644
--- a/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
+++ b/mina-core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
@@ -333,13 +333,18 @@
                     break;
                 }
 
-                // Flush only when the buffer has remaining.
-                if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) {
-                    writeRequest.setMessage(encodedMessage);
-
-                    nextFilter.filterWrite(session, writeRequest);
-                }
-            }
+		// Flush only when the buffer has remaining.
+		if (!(encodedMessage instanceof IoBuffer) || ((IoBuffer) encodedMessage).hasRemaining()) {
+		    if (bufferQueue.isEmpty()) {
+			writeRequest.setMessage(encodedMessage);
+			nextFilter.filterWrite(session, writeRequest);
+		    } else {
+			SocketAddress destination = writeRequest.getDestination();
+			WriteRequest encodedWriteRequest = new EncodedWriteRequest(encodedMessage, null, destination);
+			nextFilter.filterWrite(session, encodedWriteRequest);
+		    }
+		}
+	    }
         } catch (Exception e) {
             ProtocolEncoderException pee;
 
