diff --git a/Data/Conduit/Network/TLS.hs b/Data/Conduit/Network/TLS.hs
--- a/Data/Conduit/Network/TLS.hs
+++ b/Data/Conduit/Network/TLS.hs
@@ -36,7 +36,11 @@
 import Control.Concurrent (forkIO)
 import Control.Monad.Trans.Class (lift)
 import qualified Network.TLS.Extra as TLSExtra
+#if MIN_VERSION_tls(1, 1, 0)
+import Crypto.Random.API (getSystemRandomGen, SystemRandom)
+#else
 import Crypto.Random (newGenIO, SystemRandom)
+#endif
 
 tlsConfig :: HostPreference
           -> Int -- ^ port
@@ -63,7 +67,12 @@
         return ()
       where
         handle socket addr mlocal = do
+#if MIN_VERSION_tls(1, 1, 0)
+            gen <- getSystemRandomGen
+#else
             gen <- newGenIO
+#endif
+
 #if MIN_VERSION_tls(1, 0, 0)
             ctx <- TLS.contextNew
                 TLS.Backend
diff --git a/network-conduit-tls.cabal b/network-conduit-tls.cabal
--- a/network-conduit-tls.cabal
+++ b/network-conduit-tls.cabal
@@ -1,5 +1,5 @@
 name:                network-conduit-tls
-version:             0.6.0.3
+version:             0.6.0.4
 synopsis:            Create TLS-aware network code with conduits
 description:         Uses the tls package for a pure-Haskell implementation.
 homepage:            https://github.com/snoyberg/conduit
@@ -28,3 +28,4 @@
                     , transformers
                     , tls-extra       >= 0.4
                     , crypto-api      >= 0.10
+                    , crypto-random-api >= 0.2
