diff --git a/src/main/java/org/jboss/netty/handler/ssl/SslHandler.java b/src/main/java/org/jboss/netty/handler/ssl/SslHandler.java
index <HASH>..<HASH> 100644
--- a/src/main/java/org/jboss/netty/handler/ssl/SslHandler.java
+++ b/src/main/java/org/jboss/netty/handler/ssl/SslHandler.java
@@ -650,6 +650,15 @@ public class SslHandler extends FrameDecoder {
                         handshake(channel);
                         initialHandshake = false;
                     }
+
+                    if (channel.getCloseFuture().isDone()) {
+                        ChannelFuture handshakeFuture = this.handshakeFuture;
+                        if (handshakeFuture != null &&
+                            handshakeFuture.getCause() != null) {
+                            break;
+                        }
+                    }
+
                     try {
                         result = engine.unwrap(inNetBuf, outAppBuf);
                     } catch (SSLException e) {
An experimental workaround for infinite blocking SSLEngine