diff --git a/pontarius-xmpp.cabal b/pontarius-xmpp.cabal
--- a/pontarius-xmpp.cabal
+++ b/pontarius-xmpp.cabal
@@ -1,5 +1,5 @@
 Name:          pontarius-xmpp
-Version:       0.4.0.1
+Version:       0.4.0.2
 Cabal-Version: >= 1.9.2
 Build-Type:    Custom
 License:       BSD3
@@ -11,7 +11,7 @@
 Stability:     alpha
 Homepage:      https://github.com/pontarius/pontarius-xmpp/
 Bug-Reports:   https://github.com/pontarius/pontarius-xmpp/issues/
-Package-URL:   http://www.jonkri.com/releases/pontarius-xmpp-0.4.0.1.tar.gz
+Package-URL:   http://www.jonkri.com/releases/pontarius-xmpp-0.4.0.2.tar.gz
 Synopsis:      An XMPP client library
 Description:   Pontarius XMPP is a work in progress implementation of RFC 6120
                ("XMPP CORE"), RFC 6121 ("XMPP IM"), and RFC 6122 ("XMPP ADDR").
@@ -45,7 +45,7 @@
                , base                 >4 && <5
                , base64-bytestring    >=0.1.0.0
                , binary               >=0.4.1
-               , conduit              >=1.0.1
+               , conduit              >=1.0.1 && < 1.2
                , containers           >=0.4.0.0
                , crypto-api           >=0.9
                , crypto-random        >=0.0.5
@@ -65,8 +65,7 @@
                , stm                  >=2.1.2.1
                , stringprep           >=1.0.0
                , text                 >=0.11.1.5
-               , tls                  >=1.1.3
-               , tls-extra            >=0.6.0
+               , tls                  >=1.2
                , transformers         >=0.2.2.0
                , unbounded-delays     >=0.1
                , void                 >=0.5.5
@@ -184,4 +183,4 @@
 Source-Repository this
   Type: git
   Location: git://github.com/pontarius/pontarius-xmpp.git
-  Tag: 0.4.0.1
+  Tag: 0.4.0.2
diff --git a/source/Network/Xmpp/Lens.hs b/source/Network/Xmpp/Lens.hs
--- a/source/Network/Xmpp/Lens.hs
+++ b/source/Network/Xmpp/Lens.hs
@@ -105,7 +105,7 @@
 import           Data.Text(Text)
 import           Data.XML.Types(Element)
 import           Network.DNS(ResolvConf)
-import           Network.TLS (TLSParams)
+import           Network.TLS (ClientParams)
 import           Network.Xmpp.Concurrent.Types
 import           Network.Xmpp.IM.Roster.Types
 import           Network.Xmpp.IM.Message
@@ -390,7 +390,7 @@
 tlsBehaviourL inj sc@StreamConfiguration{tlsBehaviour = x}
     = (\x' -> sc{tlsBehaviour = x'}) <$> inj x
 
-tlsParamsL :: Lens StreamConfiguration TLSParams
+tlsParamsL :: Lens StreamConfiguration ClientParams
 tlsParamsL inj sc@StreamConfiguration{tlsParams = x}
     = (\x' -> sc{tlsParams = x'}) <$> inj x
 
diff --git a/source/Network/Xmpp/Tls.hs b/source/Network/Xmpp/Tls.hs
--- a/source/Network/Xmpp/Tls.hs
+++ b/source/Network/Xmpp/Tls.hs
@@ -107,12 +107,12 @@
         modify (\s -> s{streamConnectionState = Secured})
         return ()
 
-client :: (MonadIO m, CPRG rng) => Params -> rng -> Backend -> m Context
+client :: (MonadIO m, CPRG rng) => ClientParams -> rng -> Backend -> m Context
 client params gen backend  = do
     contextNew backend params gen
 
 tlsinit :: (MonadIO m, MonadIO m1) =>
-        TLSParams
+        ClientParams
      -> Backend
      -> m ( Source m1 BS.ByteString
           , Sink BS.ByteString m1 ()
@@ -164,7 +164,7 @@
 -- seem to use it.
 connectTls :: ResolvConf -- ^ Resolv conf to use (try 'defaultResolvConf' as a
                          -- default)
-           -> TLSParams  -- ^ TLS parameters to use when securing the connection
+           -> ClientParams  -- ^ TLS parameters to use when securing the connection
            -> String     -- ^ Host to use when connecting (will be resolved
                          -- using SRV records)
            -> ErrorT XmppFailure IO StreamHandle
diff --git a/source/Network/Xmpp/Types.hs b/source/Network/Xmpp/Types.hs
--- a/source/Network/Xmpp/Types.hs
+++ b/source/Network/Xmpp/Types.hs
@@ -532,9 +532,9 @@
     } deriving (Show, Eq)
 
 data XmppTlsError = XmppTlsError TLSError
-                  | XmppTlsConnectionNotEstablished ConnectionNotEstablished
-                  | XmppTlsTerminated Terminated
-                  | XmppTlsHandshakeFailed HandshakeFailed
+                  | XmppTlsConnectionNotEstablished TLSException
+                  | XmppTlsTerminated TLSException
+                  | XmppTlsHandshakeFailed TLSException
                     deriving (Show, Eq, Typeable)
 
 -- | Signals an XMPP stream error or another unpredicted stream-related
@@ -1179,16 +1179,19 @@
                           -- | How the client should behave in regards to TLS.
                         , tlsBehaviour :: TlsBehaviour
                           -- | Settings to be used for TLS negotitation
-                        , tlsParams :: TLSParams
+                        , tlsParams :: ClientParams
                         }
 
 -- | Default parameters for TLS. Those are the default client parameters from the tls package with the ciphers set to ciphersuite_strong
-xmppDefaultParams :: Params
-xmppDefaultParams = defaultParamsClient{ pCiphers = ciphersuite_strong
-                                                    ++ [ cipher_AES256_SHA1
-                                                       , cipher_AES128_SHA1
-                                                       ]
-                                       }
+xmppDefaultParams :: ClientParams
+xmppDefaultParams = (defaultParamsClient "" BS.empty)
+                        { clientSupported = def
+                            { supportedCiphers = ciphersuite_strong
+                                                 ++ [ cipher_AES256_SHA1
+                                                    , cipher_AES128_SHA1
+                                                    ]
+                            }
+                        }
 
 instance Default StreamConfiguration where
     def = StreamConfiguration { preferredLang     = Nothing
