diff --git a/HaskellNet-SSL.cabal b/HaskellNet-SSL.cabal
--- a/HaskellNet-SSL.cabal
+++ b/HaskellNet-SSL.cabal
@@ -1,6 +1,6 @@
 name:                HaskellNet-SSL
 synopsis:            Helpers to connect to SSL/TLS mail servers with HaskellNet
-version:             0.2.5.2
+version:             0.3.0.0
 description:         This package ties together the HaskellNet and connection
                      packages to make it easy to open IMAP and SMTP connections
                      over SSL.
diff --git a/src/Network/HaskellNet/IMAP/SSL.hs b/src/Network/HaskellNet/IMAP/SSL.hs
--- a/src/Network/HaskellNet/IMAP/SSL.hs
+++ b/src/Network/HaskellNet/IMAP/SSL.hs
@@ -3,7 +3,10 @@
       connectIMAPSSL
     , connectIMAPSSLWithSettings
       -- * Settings
+    , Settings(..)
     , defaultSettingsIMAPSSL
+      -- * Network.HaskellNet.IMAP re-exports
+    , module Network.HaskellNet.IMAP
     ) where
 
 import Network.HaskellNet.IMAP.Connection
diff --git a/src/Network/HaskellNet/POP3/SSL.hs b/src/Network/HaskellNet/POP3/SSL.hs
--- a/src/Network/HaskellNet/POP3/SSL.hs
+++ b/src/Network/HaskellNet/POP3/SSL.hs
@@ -3,7 +3,10 @@
       connectPop3SSL
     , connectPop3SSLWithSettings
       -- * Settings
+    , Settings(..)
     , defaultSettingsPop3SSL
+      -- * Network.HaskellNet.POP3 re-exports
+    , module Network.HaskellNet.POP3
     ) where
 
 import Network.HaskellNet.POP3.Connection
diff --git a/src/Network/HaskellNet/SMTP/SSL.hs b/src/Network/HaskellNet/SMTP/SSL.hs
--- a/src/Network/HaskellNet/SMTP/SSL.hs
+++ b/src/Network/HaskellNet/SMTP/SSL.hs
@@ -10,8 +10,11 @@
     , doSMTPSTARTTLS
     , doSMTPSTARTTLSWithSettings
       -- * Settings
+    , Settings(..)
     , defaultSettingsSMTPSSL
     , defaultSettingsSMTPSTARTTLS
+      -- * Network.HaskellNet.SMTP re-exports
+    , module Network.HaskellNet.SMTP
     ) where
 
 import Network.HaskellNet.SMTP
diff --git a/src/Network/HaskellNet/SSL.hs b/src/Network/HaskellNet/SSL.hs
--- a/src/Network/HaskellNet/SSL.hs
+++ b/src/Network/HaskellNet/SSL.hs
@@ -6,9 +6,10 @@
 import Network.Socket.Internal (PortNumber)
 
 data Settings = Settings
-              { sslPort          :: PortNumber
-              , sslMaxLineLength :: Int
-              , sslLogToConsole  :: Bool
+              { sslPort                        :: PortNumber
+              , sslMaxLineLength               :: Int
+              , sslLogToConsole                :: Bool
+              , sslDisableCertificateValidation :: Bool
               }
 
 defaultSettingsWithPort :: PortNumber -> Settings
@@ -16,4 +17,5 @@
   { sslPort = p
   , sslMaxLineLength = 10000
   , sslLogToConsole = False
+  , sslDisableCertificateValidation = False
   }
diff --git a/src/Network/HaskellNet/SSL/Internal.hs b/src/Network/HaskellNet/SSL/Internal.hs
--- a/src/Network/HaskellNet/SSL/Internal.hs
+++ b/src/Network/HaskellNet/SSL/Internal.hs
@@ -41,13 +41,15 @@
 connectSSL hostname cfg = do
     c <- initConnectionContext >>= flip connectTo params
     return $ connectionToStream c cfg
-  where params = ConnectionParams hostname port (Just def) Nothing
+  where params = ConnectionParams hostname port (Just tlsCfg) Nothing
         port = sslPort cfg
+        tlsCfg = def { settingDisableCertificateValidation = sslDisableCertificateValidation cfg }
 
 connectPlain :: String -> Settings -> IO (BSStream, STARTTLS)
 connectPlain hostname cfg = do
     ctx <- initConnectionContext
     c <- connectTo ctx params
-    return (connectionToStream c cfg, connectionSetSecure ctx c def)
+    return (connectionToStream c cfg, connectionSetSecure ctx c tlsCfg)
   where params = ConnectionParams hostname port Nothing Nothing
         port = sslPort cfg
+        tlsCfg = def { settingDisableCertificateValidation = sslDisableCertificateValidation cfg }
