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
@@ -1,5 +1,6 @@
 {-# LANGUAGE OverloadedStrings #-}
 {-# LANGUAGE RecordWildCards #-}
+{-# LANGUAGE CPP #-}
 module Data.Conduit.Network.TLS
     ( TLSConfig
     , tlsConfig
@@ -30,7 +31,7 @@
 import qualified Data.Conduit.List as CL
 import Data.Either (rights)
 import Network.Socket (sClose, getSocketName)
-import Network.Socket.ByteString (recv)
+import Network.Socket.ByteString (recv, sendAll)
 import Control.Exception (bracket, finally)
 import Control.Concurrent (forkIO)
 import Control.Monad.Trans.Class (lift)
@@ -63,6 +64,22 @@
       where
         handle socket addr mlocal = do
             gen <- newGenIO
+#if MIN_VERSION_tls(1, 0, 0)
+            ctx <- TLS.contextNew
+                TLS.Backend
+                    { TLS.backendFlush = return ()
+                    , TLS.backendClose = return ()
+                    , TLS.backendSend = \bs -> do
+                        print bs
+                        sendAll socket bs
+                    , TLS.backendRecv = \i -> do
+                        bs <- recv socket i
+                        print bs
+                        return bs
+                    }
+                params
+                (gen :: SystemRandom)
+#else
             ctx <- TLS.serverWith
                 params
                 (gen :: SystemRandom)
@@ -70,6 +87,7 @@
                 (return ()) -- flush
                 (\bs -> yield bs $$ sinkSocket socket)
                 (recv socket)
+#endif
 
             TLS.handshake ctx
 
@@ -85,12 +103,23 @@
 
             app ad `finally` sClose socket
 
-        params = TLS.defaultParams
+        params =
+#if MIN_VERSION_tls(1, 0, 0)
+          TLS.updateServerParams
+                (\sp -> sp { TLS.serverWantClientCert = False }) $
+          TLS.defaultParamsServer
+            { TLS.pAllowedVersions = [TLS.SSL3,TLS.TLS10,TLS.TLS11,TLS.TLS12]
+            , TLS.pCiphers         = ciphers
+            , TLS.pCertificates    = zip certs $ Just key : repeat Nothing
+            }
+#else
+          TLS.defaultParams
             { TLS.pWantClientCert = False
             , TLS.pAllowedVersions = [TLS.SSL3,TLS.TLS10,TLS.TLS11,TLS.TLS12]
             , TLS.pCiphers         = ciphers
             , TLS.pCertificates    = zip certs $ Just key : repeat Nothing
             }
+#endif
 
 -- taken from stunnel example in tls-extra
 ciphers :: [TLS.Cipher]
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
+version:             0.6.0.1
 synopsis:            Create TLS-aware network code with conduits
 description:         Uses the tls package for a pure-Haskell implementation.
 homepage:            https://github.com/snoyberg/conduit
