diff --git a/src/Network/XmlPush/HttpPull/Client.hs b/src/Network/XmlPush/HttpPull/Client.hs
--- a/src/Network/XmlPush/HttpPull/Client.hs
+++ b/src/Network/XmlPush/HttpPull/Client.hs
@@ -30,6 +30,5 @@
 	One h -> HttpPullClArgs h -> HandleMonad h (HttpPullCl h)
 makeHttpPull (One h) (HttpPullClArgs hn pn fp gp pl ip d gdr) = do
 	dr <- liftBase . atomically $ newTVar d
-	pll <- pl
-	(inc, otc) <- talkC h hn pn fp gp pll ip dr gdr
+	(inc, otc) <- talkC h hn pn fp gp pl ip dr gdr
 	return $ HttpPullCl (fromTChan inc) (toTChan otc)
diff --git a/src/Network/XmlPush/HttpPull/Client/Common.hs b/src/Network/XmlPush/HttpPull/Client/Common.hs
--- a/src/Network/XmlPush/HttpPull/Client/Common.hs
+++ b/src/Network/XmlPush/HttpPull/Client/Common.hs
@@ -35,7 +35,7 @@
 
 talkC :: (HandleLike h, MonadBaseControl IO (HandleMonad h)) =>
 	h -> String -> Int -> FilePath -> (XmlNode -> FilePath) ->
-	XmlNode -> (XmlNode -> Bool) ->
+	HandleMonad h XmlNode -> (XmlNode -> Bool) ->
 	TVar (Maybe Int) -> (XmlNode -> Maybe Int) ->
 	HandleMonad h (TChan XmlNode, TChan XmlNode)
 talkC h addr pn pth gp pl ip dr gdr = do
@@ -58,7 +58,8 @@
 				Just d -> return d
 				_ -> retry
 		liftBase $ threadDelay d
-		liftBase $ polling pl ip inc' inc otc'
+		p <- pl
+		liftBase $ polling p ip inc' inc otc'
 	return (inc, otc)
 
 conversation :: (HandleLike h, MonadBase IO (HandleMonad h)) =>
diff --git a/src/Network/XmlPush/HttpPull/Tls/Client.hs b/src/Network/XmlPush/HttpPull/Tls/Client.hs
--- a/src/Network/XmlPush/HttpPull/Tls/Client.hs
+++ b/src/Network/XmlPush/HttpPull/Tls/Client.hs
@@ -28,7 +28,7 @@
 	(Pipe () XmlNode (HandleMonad h) ())
 	(Pipe XmlNode () (HandleMonad h) ())
 
-data HttpPullTlsClArgs h = HttpPullTlsClArgs (HttpPullClArgs h) TlsArgs
+data HttpPullTlsClArgs h = HttpPullTlsClArgs (HttpPullClArgs TChanHandle) TlsArgs
 
 instance XmlPusher HttpPullTlsCl where
 	type NumOfHandle HttpPullTlsCl = One
@@ -82,6 +82,5 @@
 	(inc, otc) <- do
 		(g :: SystemRNG) <- liftBase $ cprgCreate <$> createEntropyPool
 		(ic, oc) <- open' h dn cs kcs ca g
-		pll <- pl
-		liftBase $ talkC (TChanHandle ic oc) hn pn fp gp pll ip dr gd
+		liftBase $ talkC (TChanHandle ic oc) hn pn fp gp pl ip dr gd
 	return $ HttpPullTlsCl (fromTChan inc) (toTChan otc)
diff --git a/xml-push.cabal b/xml-push.cabal
--- a/xml-push.cabal
+++ b/xml-push.cabal
@@ -2,7 +2,7 @@
 cabal-version:	>= 1.8
 
 name:		xml-push
-version:	0.0.0.3
+version:	0.0.0.4
 stability:	Experimenmtal
 author:		Yoshikuni Jujo <PAF01143@nifty.ne.jp>
 maintainer:	Yoshikuni Jujo <PAF01143@nifty.ne.jp>
@@ -100,7 +100,7 @@
 source-repository	this
     type:	git
     location:	git://github.com/YoshikuniJujo/xml-push.git
-    tag:	xml-push-0.0.0.3
+    tag:	xml-push-0.0.0.4
 
 library
     hs-source-dirs:	src
