diff --git a/Network/TLS/SessionManager.hs b/Network/TLS/SessionManager.hs
--- a/Network/TLS/SessionManager.hs
+++ b/Network/TLS/SessionManager.hs
@@ -57,8 +57,13 @@
 
 toValue :: SessionData -> SessionDataCopy
 #if MIN_VERSION_tls(1,5,0)
+#if MIN_VERSION_tls(1,5,3)
+toValue (SessionData v cid comp msni sec mg mti malpn siz flg) =
+    SessionDataCopy v cid comp msni sec' mg mti malpn' siz flg
+#else
 toValue (SessionData v cid comp msni sec mg mti malpn siz) =
     SessionDataCopy v cid comp msni sec' mg mti malpn' siz
+#endif
   where
     !sec' = convert sec
     !malpn' = convert <$> malpn
@@ -71,14 +76,19 @@
 
 fromValue :: SessionDataCopy -> SessionData
 #if MIN_VERSION_tls(1,5,0)
+#if MIN_VERSION_tls(1,5,3)
+fromValue (SessionDataCopy v cid comp msni sec' mg mti malpn' siz flg) =
+    SessionData v cid comp msni sec mg mti malpn siz flg
+#else
 fromValue (SessionDataCopy v cid comp msni sec' mg mti malpn' siz) =
-    (SessionData v cid comp msni sec mg mti malpn siz)
+    SessionData v cid comp msni sec mg mti malpn siz
+#endif
   where
     !sec = convert sec'
     !malpn = convert <$> malpn'
 #else
 fromValue (SessionDataCopy v cid comp msni sec') =
-    (SessionData v cid comp msni sec)
+    SessionData v cid comp msni sec
   where
     !sec = convert sec'
 #endif
@@ -86,19 +96,22 @@
 ----------------------------------------------------------------
 
 type SessionIDCopy = Block Word8
-data SessionDataCopy = SessionDataCopy {
-      ssVersion     :: !Version
-    , ssCipher      :: !CipherID
-    , ssCompression :: !CompressionID
-    , ssClientSNI   :: !(Maybe HostName)
-    , ssSecret      :: Block Word8
+data SessionDataCopy = SessionDataCopy
+    {- ssVersion     -} !Version
+    {- ssCipher      -} !CipherID
+    {- ssCompression -} !CompressionID
+    {- ssClientSNI   -} !(Maybe HostName)
+    {- ssSecret      -} (Block Word8)
 #if MIN_VERSION_tls(1,5,0)
-    , ssGroup       :: !(Maybe Group)
-    , ssTicketInfo  :: !(Maybe TLS13TicketInfo)
-    , ssALPN        :: !(Maybe (Block Word8))
-    , ssMaxEarlyDataSize :: Int
+    {- ssGroup       -} !(Maybe Group)
+    {- ssTicketInfo  -} !(Maybe TLS13TicketInfo)
+    {- ssALPN        -} !(Maybe (Block Word8))
+    {- ssMaxEarlyDataSize -} Int
 #endif
-    } deriving (Show,Eq)
+#if MIN_VERSION_tls(1,5,3)
+    {- ssFlags       -} [SessionFlag]
+#endif
+    deriving (Show,Eq)
 
 type Sec = Int64
 type Value = (SessionDataCopy, IORef Availability)
@@ -161,7 +174,7 @@
           -> SessionID -> SessionData -> IO ()
 establish reaper lifetime k sd = do
     ref <- newIORef Fresh
-    !p <- ((+ lifetime) . C.sec) <$> C.getTime C.Monotonic
+    !p <- (+ lifetime) . C.sec <$> C.getTime C.Monotonic
     let !v = (sd',ref)
     reaperAdd reaper (k',p,v,Add)
   where
@@ -174,7 +187,7 @@
     db <- reaperRead reaper
     case Q.lookup k' db of
       Nothing             -> return Nothing
-      Just (p,v@(sd,ref)) -> do
+      Just (p,v@(sd,ref)) ->
            case use of
                SingleUse -> do
                    available <- atomicModifyIORef' ref check
diff --git a/tls-session-manager.cabal b/tls-session-manager.cabal
--- a/tls-session-manager.cabal
+++ b/tls-session-manager.cabal
@@ -1,5 +1,5 @@
 name:                tls-session-manager
-version:             0.0.3
+version:             0.0.4
 synopsis:            In-memory TLS session manager
 description:         TLS session manager with limitation, automatic pruning, energy saving and replay resistance
 license:             BSD3
