diff --git a/Network/HTTP2/TLS/Client.hs b/Network/HTTP2/TLS/Client.hs
--- a/Network/HTTP2/TLS/Client.hs
+++ b/Network/HTTP2/TLS/Client.hs
@@ -40,7 +40,7 @@
 import Data.Default.Class (def)
 import Data.Maybe (fromMaybe)
 import Data.X509.Validation (validateDefault)
-import Network.HTTP2.Client (Client, ClientConfig, Authority)
+import Network.HTTP2.Client (Authority, Client, ClientConfig)
 import qualified Network.HTTP2.Client as H2Client
 import Network.Socket
 import Network.TLS hiding (HostName)
@@ -242,6 +242,7 @@
         def
             { sharedValidationCache = validateCache
             , sharedCAStore = settingsCAStore
+            , sharedSessionManager = settingsSessionManager
             }
     supported = strongSupported
     hooks =
diff --git a/Network/HTTP2/TLS/Client/Settings.hs b/Network/HTTP2/TLS/Client/Settings.hs
--- a/Network/HTTP2/TLS/Client/Settings.hs
+++ b/Network/HTTP2/TLS/Client/Settings.hs
@@ -8,6 +8,7 @@
     cacheLimit,
     defaultClientConfig,
  )
+import Network.TLS (SessionManager, noSessionManager)
 
 -- Client settings type.
 data Settings = Settings
@@ -56,6 +57,8 @@
     --
     -- >>> settingsConnectionWindowSize defaultSettings
     -- 1048575
+    , settingsSessionManager :: SessionManager
+    -- ^ TLS session manager (H2 and TLS)
     }
 
 -- | Default settings.
@@ -71,4 +74,5 @@
         , settingsConcurrentStreams = defaultMaxStreams
         , settingsStreamWindowSize = defaultMaxStreamData
         , settingsConnectionWindowSize = defaultMaxData
+        , settingsSessionManager = noSessionManager
         }
diff --git a/Network/HTTP2/TLS/Server.hs b/Network/HTTP2/TLS/Server.hs
--- a/Network/HTTP2/TLS/Server.hs
+++ b/Network/HTTP2/TLS/Server.hs
@@ -23,6 +23,7 @@
     settingsConcurrentStreams,
     settingsConnectionWindowSize,
     settingsStreamWindowSize,
+    settingsSessionManager,
 
     -- * IO backend
     IOBackend,
@@ -79,15 +80,15 @@
     -- ^ ALPN
     -> (T.Manager -> IOBackend -> IO a)
     -> IO a
-runTLS settings@Settings{..} creds host port alpn action =
-    runTCPServer settingsTimeout (Just host) (show port) $ \mgr th sock -> do
+runTLS settings creds host port alpn action =
+    runTCPServer (settingsTimeout settings) (Just host) (show port) $ \mgr th sock -> do
         backend <- mkBackend settings sock
         E.bracket (contextNew backend params) bye $ \ctx -> do
             handshake ctx
             iobackend <- timeoutIOBackend th settings <$> tlsIOBackend ctx sock
             action mgr iobackend
   where
-    params = getServerParams creds alpn settingsKeyLogger
+    params = getServerParams settings creds alpn
 
 -- | Running an HTTP\/2 client over TLS (over TCP).
 --   ALPN is "h2".
@@ -162,11 +163,11 @@
 ----------------------------------------------------------------
 
 getServerParams
-    :: Credentials
+    :: Settings
+    -> Credentials
     -> ByteString
-    -> (String -> IO ())
     -> ServerParams
-getServerParams creds alpn keyLogger =
+getServerParams Settings{..} creds alpn =
     def
         { serverSupported = supported
         , serverShared = shared
@@ -177,7 +178,7 @@
     shared =
         def
             { sharedCredentials = creds
-            --            , sharedSessionManager = undefined
+            , sharedSessionManager = settingsSessionManager
             }
     supported = strongSupported
     hooks =
@@ -186,7 +187,7 @@
             }
     debug =
         def
-            { debugKeyLogger = keyLogger
+            { debugKeyLogger = settingsKeyLogger
             }
 
 selectALPN :: ByteString -> [ByteString] -> IO ByteString
diff --git a/Network/HTTP2/TLS/Server/Settings.hs b/Network/HTTP2/TLS/Server/Settings.hs
--- a/Network/HTTP2/TLS/Server/Settings.hs
+++ b/Network/HTTP2/TLS/Server/Settings.hs
@@ -5,6 +5,7 @@
     defaultServerConfig,
     numberOfWorkers,
  )
+import Network.TLS (SessionManager, noSessionManager)
 
 -- Server settings type.
 data Settings = Settings
@@ -59,6 +60,8 @@
     --
     -- >>> settingsConnectionWindowSize defaultSettings
     -- 1048575
+    , settingsSessionManager :: SessionManager
+    -- ^ TLS session manager (H2 and TLS)
     }
 
 -- | Default settings.
@@ -75,4 +78,5 @@
         , settingsConcurrentStreams = defaultMaxStreams
         , settingsStreamWindowSize = defaultMaxStreamData
         , settingsConnectionWindowSize = defaultMaxData
+        , settingsSessionManager = noSessionManager
         }
diff --git a/http2-tls.cabal b/http2-tls.cabal
--- a/http2-tls.cabal
+++ b/http2-tls.cabal
@@ -1,6 +1,6 @@
 cabal-version: >=1.10
 name:          http2-tls
-version:       0.2.4
+version:       0.2.5
 license:       BSD3
 license-file:  LICENSE
 maintainer:    Kazu Yamamoto <kazu@iij.ad.jp>
