diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,7 @@
+## 1.1.2
+
+* Added 'runGeneralTCPServerTLS' function [#208](https://github.com/snoyberg/conduit/pull/208)
+
 ## 1.1.1.1
 
 * Fill in `appRawSocket` for streaming-commons 0.1.12 and later
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
@@ -18,6 +18,7 @@
     , tlsNeedLocalAddr
     , tlsAppData
     , runTCPServerTLS
+    , runGeneralTCPServerTLS
     , runTCPServerStartTLS
       -- * Client
     , TLSClientConfig
@@ -34,7 +35,7 @@
 
 import Prelude hiding (FilePath, readFile)
 import Control.Applicative ((<$>), (<*>))
-import Control.Monad (forever)
+import Control.Monad (forever, void)
 import Filesystem.Path.CurrentOS (FilePath)
 import Filesystem (readFile)
 import qualified Data.ByteString.Lazy as L
@@ -161,6 +162,18 @@
 
 type ApplicationStartTLS = (AppData, (AppData -> IO ()) -> IO ()) -> IO ()
 
+-- | Like 'runTCPServerTLS', but monad can be any instance of 'MonadBaseControl' 'IO'.
+--
+-- Note that any changes to the monadic state performed by individual
+-- client handlers will be discarded. If you have mutable state you want
+-- to share among multiple handlers, you need to use some kind of mutable
+-- variables.
+--
+-- Since 1.1.2
+runGeneralTCPServerTLS :: MonadBaseControl IO m => TLSConfig -> (AppData -> m ()) -> m ()
+runGeneralTCPServerTLS config app = liftBaseWith $ \run ->
+  runTCPServerTLS config $ void . run . app
+
 -- | run a server un-crypted but also pass a call-back to trigger a StartTLS handshake
 -- on the underlying connection
 --
@@ -373,6 +386,9 @@
             , appLocalAddr' = Nothing
 #if MIN_VERSION_streaming_commons(0,1,6)
             , appCloseConnection' = NC.connectionClose conn
+#endif
+#if MIN_VERSION_streaming_commons(0,1,12)
+            , appRawSocket' = Nothing
 #endif
             }
             , \app' -> do
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:             1.1.1.1
+version:             1.1.2
 synopsis:            Create TLS-aware network code with conduits
 description:         Uses the tls package for a pure-Haskell implementation.
 homepage:            https://github.com/snoyberg/conduit
