diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/network-messagepack-rpc-websocket.cabal b/network-messagepack-rpc-websocket.cabal
--- a/network-messagepack-rpc-websocket.cabal
+++ b/network-messagepack-rpc-websocket.cabal
@@ -1,5 +1,5 @@
 name:                network-messagepack-rpc-websocket
-version:             0.1.1.0
+version:             0.1.1.1
 synopsis:            WebSocket backend for MessagePack RPC
 description:         WebSocket backend for "network-messagepack-rpc"
 homepage:            https://github.com/iij-ii/direct-hs/tree/master/network-messagepack-rpc-websocket
@@ -39,7 +39,7 @@
     , network-messagepack-rpc-websocket
     , skews
     , text
-    , wss-client
+    , wss-client >= 0.3
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N
   default-language:    Haskell2010
 
diff --git a/src/Network/MessagePack/RPC/Client/WebSocket.hs b/src/Network/MessagePack/RPC/Client/WebSocket.hs
--- a/src/Network/MessagePack/RPC/Client/WebSocket.hs
+++ b/src/Network/MessagePack/RPC/Client/WebSocket.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE PackageImports    #-}
 
 -- | MessagePack RPC Client based on WebSocket.
 module Network.MessagePack.RPC.Client.WebSocket
@@ -24,11 +25,11 @@
     )
 where
 
-import qualified Data.Text                      as T
-import qualified Network.WebSockets.Client      as Ws
+import qualified Data.Text                              as T
+import qualified "wss-client" Network.WebSockets.Client as Ws
 
-import           Network.MessagePack.RPC.Client hiding (withClient)
-import qualified Network.MessagePack.RPC.Client as RPC (withClient)
+import           Network.MessagePack.RPC.Client         hiding (withClient)
+import qualified Network.MessagePack.RPC.Client         as RPC (withClient)
 
 -- | URL for websocket end points.
 type URL = String
@@ -39,9 +40,9 @@
     -> Config -- ^ Configuration
     -> (Client -> IO a) -- ^ Action
     -> IO a
-withClient url config action = Ws.withConnection url $ \conn -> do
-    Ws.forkPingThread conn 30
-    let backend = Backend (Ws.sendBinaryData conn)
-                          (Ws.receiveData conn)
-                          (Ws.sendClose conn ("Bye!" :: T.Text))
-    RPC.withClient config backend action
+withClient url config action = Ws.withConnection url $ \conn ->
+    Ws.withPingThread conn 30 (return ()) $ do
+        let backend = Backend (Ws.sendBinaryData conn)
+                              (Ws.receiveData conn)
+                              (Ws.sendClose conn ("Bye!" :: T.Text))
+        RPC.withClient config backend action
diff --git a/test/Network/MessagePack/RPC/Client/WebSocketSpec.hs b/test/Network/MessagePack/RPC/Client/WebSocketSpec.hs
--- a/test/Network/MessagePack/RPC/Client/WebSocketSpec.hs
+++ b/test/Network/MessagePack/RPC/Client/WebSocketSpec.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE OverloadedStrings #-}
 
 module Network.MessagePack.RPC.Client.WebSocketSpec
@@ -5,22 +6,22 @@
   , spec
   ) where
 
-import           Control.Applicative                        (empty, (<|>))
-import           Control.Concurrent                         (threadDelay)
-import           Control.Concurrent.Async                   (async,
-                                                             forConcurrently,
-                                                             wait)
-import           Data.ByteString.Char8                      ()
-import qualified Data.MessagePack                           as MsgPack
-import qualified Data.Text                                  ()
-import qualified Network.WebSockets.Skews                   as Skews
-import           System.Envy                                (FromEnv, decodeEnv,
-                                                             env, fromEnv)
+import           Control.Applicative                      (empty, (<|>))
+import           Control.Concurrent                       (threadDelay)
+import           Control.Concurrent.Async                 (async,
+                                                           forConcurrently,
+                                                           wait)
+import           Data.ByteString.Char8                    ()
+import qualified Data.MessagePack                         as MsgPack
+import qualified Data.Text                                ()
+import qualified Network.WebSockets.Skews                 as Skews
+import           System.Envy                              (FromEnv, decodeEnv,
+                                                           env, fromEnv)
 import           Test.Hspec
-import           Text.Read                                  (readMaybe)
+import           Text.Read                                (readMaybe)
 
-import qualified Data.MessagePack.RPC                       as Rpc
-import qualified Network.MessagePack.RPC.Client.WebSocket   as Rpc
+import qualified Data.MessagePack.RPC                     as Rpc
+import qualified Network.MessagePack.RPC.Client.WebSocket as Rpc
 
 
 -- `main` is here so that this module can be run from GHCi on its own.  It is
@@ -32,14 +33,18 @@
 newtype PortNumber = PortNumber Int deriving (Eq, Show)
 
 instance FromEnv PortNumber where
-    fromEnv = do
-        mpn <- (readMaybe <$> env "WSS_CLIENT_TEST_SERVER_PORT") <|> pure (Just 8614)
+#if MIN_VERSION_envy(2, 0, 0)
+  fromEnv _ = do
+#else
+  fromEnv = do
+#endif
+        mpn <- (readMaybe <$> env "MESSAGE_PACK_RPC_TEST_SERVER_PORT") <|> pure (Just 8615)
         PortNumber <$> maybe empty pure mpn
 
 
 spec :: Spec
 spec = describe "call" $ do
-    Right (PortNumber pn) <- runIO decodeEnv
+    PortNumber pn <- runIO $ either fail return =<< decodeEnv
 
     let host = "localhost"
     server <- runIO $ Skews.start $ Skews.Args host pn
