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.2
+version:	0.1.6.3
 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.2
+    tag:	peyotls-0.1.6.3
 
 library
     hs-source-dirs:	src
diff --git a/src/Network/PeyoTLS/Run/Handle.hs b/src/Network/PeyoTLS/Run/Handle.hs
--- a/src/Network/PeyoTLS/Run/Handle.hs
+++ b/src/Network/PeyoTLS/Run/Handle.hs
@@ -154,8 +154,14 @@
 	then snd `liftM` getCont h
 	else M.setRBuf (pid h) (M.CTNull, BS.empty) >> return bp
 
-adPut :: (HandleLike h, CPRG g) => HandleBase h g -> BS.ByteString -> M.TlsM h g ()
-adPut = flip tWrite M.CTAppData
+adPut, adPut_ :: (HandleLike h, CPRG g) =>
+	HandleBase h g -> BS.ByteString -> M.TlsM h g ()
+adPut_ = flip tWrite M.CTAppData
+adPut h = mapM_ (adPut_ h) . divide (2 ^ (14 :: Int))
+
+divide :: Int -> BS.ByteString -> [BS.ByteString]
+divide _ "" = []
+divide n s = BS.take n s : divide n (BS.drop n s)
 
 adDebug :: HandleLike h =>
 	HandleBase h g -> DebugLevel h -> BS.ByteString -> M.TlsM h g ()
