diff --git a/peyotls.cabal b/peyotls.cabal
--- a/peyotls.cabal
+++ b/peyotls.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		peyotls
-version:	0.1.6.1
+version:	0.1.6.2
 stability:	Experimental
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -281,7 +281,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/peyotls.git
-    tag:	peyotls-0.1.6.1
+    tag:	peyotls-0.1.6.2
 
 library
     hs-source-dirs:	src
diff --git a/src/Network/PeyoTLS/Client/Body.hs b/src/Network/PeyoTLS/Client/Body.hs
--- a/src/Network/PeyoTLS/Client/Body.hs
+++ b/src/Network/PeyoTLS/Client/Body.hs
@@ -81,10 +81,7 @@
 	hlGetContent = adGetContent rehandshake . tlsHandleC
 	hlDebug = adDebug . tlsHandleC
 	hlClose = adClose . tlsHandleC
-	hlFlush = writeFlush
-
-writeFlush :: (HandleLike h, CPRG g) => TlsHandle h g -> TlsM h g ()
-writeFlush = wFlush . tlsHandleC
+	hlFlush = wFlush . tlsHandleC
 
 modNm :: String
 modNm = "Network.PeyoTLS.Client"
diff --git a/src/Network/PeyoTLS/Run/Crypto.hs b/src/Network/PeyoTLS/Run/Crypto.hs
--- a/src/Network/PeyoTLS/Run/Crypto.hs
+++ b/src/Network/PeyoTLS/Run/Crypto.hs
@@ -58,11 +58,12 @@
 decrypt :: (Hash, Int) -> BS.ByteString -> BS.ByteString -> Word64 ->
 	BS.ByteString -> BS.ByteString -> Either String BS.ByteString
 decrypt (hs, ml) k mk sn pre enc =
-	if rm == em then Right b else Left $ modNm ++ ".decrypt: bad MAC\n" ++
-		"\t"++ show b ++ "\n"
+	if rm == em && BS.all (== lst pln) pd
+		then Right b
+		else Left $ modNm ++ ".decrypt: bad MAC\n" ++ "\t"++ show b ++ "\n"
 	where
 	pln = uncurry (AES.decryptCBC $ AES.initAES k) $ BS.splitAt 16 enc
-	up = BS.take (BS.length pln - fromIntegral (lst pln) - 1) pln
+	(up, pd) = BS.splitAt (BS.length pln - fromIntegral (lst pln) - 1) pln
 	(b, rm) = BS.splitAt (BS.length up - ml) up
 	em = calcMac hs mk sn $ pre `BS.append` B.addLen w16 b
 	lst "" = error $ modNm ++ ".decrypt"
