diff --git a/Network/TLS/Core.hs b/Network/TLS/Core.hs
--- a/Network/TLS/Core.hs
+++ b/Network/TLS/Core.hs
@@ -337,6 +337,11 @@
 		-- on client context, receiving a hello request == renegociation
 		Right [Handshake HelloRequest] ->
 			handshakeClient ctx >> recvData ctx
-		Right [AppData x] -> return $ L.fromChunks [x]
+		Right l           -> do
+			let dat = map getAppData l
+			when (length dat < length l) $ error "error mixed type packet"
+			return $ L.fromChunks $ catMaybes dat
 		Left err          -> error ("error received: " ++ show err)
-		_                 -> error "unexpected item"
+	where
+		getAppData (AppData x) = Just x
+		getAppData _           = Nothing
diff --git a/tls.cabal b/tls.cabal
--- a/tls.cabal
+++ b/tls.cabal
@@ -1,5 +1,5 @@
 Name:                tls
-Version:             0.4.0
+Version:             0.4.1
 Description:
    native TLS protocol implementation, focusing on purity and more type-checking.
    .
