diff --git a/Wuss.hs b/Wuss.hs
--- a/Wuss.hs
+++ b/Wuss.hs
@@ -47,6 +47,7 @@
     ) where
 
 import qualified Control.Applicative as Applicative
+import qualified Control.Exception as Exception
 import qualified Data.Bool as Bool
 import qualified Data.ByteString as StrictBytes
 import qualified Data.ByteString.Lazy as LazyBytes
@@ -57,6 +58,7 @@
 import qualified Network.WebSockets as WebSockets
 import qualified Network.WebSockets.Stream as Stream
 import qualified System.IO as IO
+import qualified System.IO.Error as IO.Error
 
 
 {- |
@@ -158,9 +160,13 @@
     -> IO.IO a
 runSecureClientWithConfig host port path config options headers app = do
     context <- Connection.initConnectionContext
-    connection <- Connection.connectTo context (connectionParams host port)
-    stream <- Stream.makeStream (reader config connection) (writer connection)
-    WebSockets.runClientWithStream stream host path options headers app
+    Exception.bracket
+        (Connection.connectTo context (connectionParams host port))
+        Connection.connectionClose
+        (\connection -> do
+            stream <-
+                Stream.makeStream (reader config connection) (writer connection)
+            WebSockets.runClientWithStream stream host path options headers app)
 
 
 connectionParams
@@ -190,9 +196,14 @@
     :: Config
     -> Connection.Connection
     -> IO.IO (Maybe.Maybe StrictBytes.ByteString)
-reader config connection = do
-    chunk <- (connectionGet config) connection
-    Applicative.pure (Maybe.Just chunk)
+reader config connection =
+    IO.Error.catchIOError (do
+        chunk <- (connectionGet config) connection
+        Applicative.pure (Maybe.Just chunk))
+    (\e ->
+        if IO.Error.isEOFError e
+            then Applicative.pure Maybe.Nothing
+            else Exception.throwIO e)
 
 
 writer
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -25,4 +25,4 @@
 maintainer: Taylor Fausak
 name: wuss
 synopsis: Secure WebSocket (WSS) clients
-version: '1.1.0'
+version: '1.1.1'
diff --git a/wuss.cabal b/wuss.cabal
--- a/wuss.cabal
+++ b/wuss.cabal
@@ -3,7 +3,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           wuss
-version:        1.1.0
+version:        1.1.1
 synopsis:       Secure WebSocket (WSS) clients
 description:    Wuss is a library that lets you easily create secure WebSocket clients over the WSS protocol. It is a small addition to <https://hackage.haskell.org/package/websockets the websockets package> and is adapted from existing solutions by <https://gist.github.com/jaspervdj/7198388 @jaspervdj>, <https://gist.github.com/mpickering/f1b7ba3190a4bb5884f3 @mpickering>, and <https://gist.github.com/elfenlaid/7b5c28065e67e4cf0767 @elfenlaid>.
 category:       Network
