diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,8 +1,12 @@
 # Revision history for http-client-websockets
 
+## 0.1.1.2 -- 2021-05-29
+
+* Remove dependency on utf8-string.
+
 ## 0.1.1.1 -- 2021-01-08
 
-* Documentation updates
+* Documentation updates.
 
 ## 0.1.1.0 -- 2020-10-24
 
diff --git a/http-client-websockets.cabal b/http-client-websockets.cabal
--- a/http-client-websockets.cabal
+++ b/http-client-websockets.cabal
@@ -1,6 +1,6 @@
 cabal-version: 2.4
 name: http-client-websockets
-version: 0.1.1.1
+version: 0.1.1.2
 
 synopsis: Glue code for http-client and websockets
 description:
@@ -38,8 +38,8 @@
     Network.HTTP.Client.WebSockets
   build-depends:
       base >= 4.11 && < 5
-    , utf8-string
     , bytestring
+    , text
     , network-uri >= 2.6
     , http-client >= 0.6
     , websockets >= 0.12
diff --git a/src/Network/HTTP/Client/WebSockets.hs b/src/Network/HTTP/Client/WebSockets.hs
--- a/src/Network/HTTP/Client/WebSockets.hs
+++ b/src/Network/HTTP/Client/WebSockets.hs
@@ -40,9 +40,11 @@
   )
 where
 
-import qualified Codec.Binary.UTF8.Generic as UTF8
+import Control.Exception (throwIO)
 import qualified Data.ByteString as B
 import qualified Data.ByteString.Lazy as LB
+import qualified Data.Text as T
+import qualified Data.Text.Encoding as T
 import qualified Network.HTTP.Client as HTTP
 import qualified Network.HTTP.Client.Internal as HTTP
 import Network.URI (URI (..))
@@ -91,6 +93,8 @@
   IO a
 runClientWithRequest mgr req connOpts app = do
   HTTP.withConnection req mgr $ \conn -> do
+    host <- toStringUtf8 $ HTTP.host req
+    path <- toStringUtf8 $ HTTP.path req <> HTTP.queryString req
     let read = do
           bs <- HTTP.connectionRead conn
           pure $ if B.null bs then Nothing else Just bs
@@ -98,10 +102,6 @@
           Nothing -> HTTP.connectionClose conn
           Just bs -> HTTP.connectionWrite conn $ LB.toStrict bs
     stream <- WS.makeStream read write
-    WS.runClientWithStream
-      stream
-      (UTF8.toString $ HTTP.host req)
-      (UTF8.toString $ HTTP.path req <> HTTP.queryString req)
-      connOpts
-      (HTTP.requestHeaders req)
-      app
+    WS.runClientWithStream stream host path connOpts (HTTP.requestHeaders req) app
+  where
+    toStringUtf8 = fmap T.unpack . either throwIO pure . T.decodeUtf8'
