diff --git a/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java b/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java
index <HASH>..<HASH> 100755
--- a/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java
+++ b/transport/src/main/java/io/netty/channel/DefaultChannelPipeline.java
@@ -626,6 +626,7 @@ final class DefaultChannelPipeline implements ChannelPipeline {
 
     private void freeHandlerBuffers(ChannelHandler handler, ChannelHandlerContext ctx) {
         if (handler instanceof ChannelInboundHandler) {
+            inboundBufferFreed = true;
             try {
                 ((ChannelInboundHandler) handler).freeInboundBuffer(ctx);
             } catch (Exception e) {
@@ -633,6 +634,7 @@ final class DefaultChannelPipeline implements ChannelPipeline {
             }
         }
         if (handler instanceof ChannelOutboundHandler) {
+            outboundBufferFreed = true;
             try {
                 ((ChannelOutboundHandler) handler).freeOutboundBuffer(ctx);
             } catch (Exception e) {
[#<I>] Correctly mark the ChannelPipeline once a ChannelHandler was removed and because of this a buffer was freed