diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,9 @@
+0.9.4
+=====
+
+ - compatible with lts-8.13
+ - fix TH deriving for sums
+ 
 0.9.3
 =====
 
@@ -24,5 +30,3 @@
 [https://github.com/GaloisInc/cereal/commit/47d839609413e3e9d1147b99c34ae421ae36bced](https://github.com/GaloisInc/cereal/commit/47d839609413e3e9d1147b99c34ae421ae36bced)
 
 [https://github.com/GaloisInc/cereal/issues/35](https://github.com/GaloisInc/cereal/issues/35)
-
-
diff --git a/safecopy-store.cabal b/safecopy-store.cabal
--- a/safecopy-store.cabal
+++ b/safecopy-store.cabal
@@ -3,7 +3,7 @@
 -- http://www.haskell.org/cabal/release/cabal-latest/doc/users-guide/authors.html#pkg-descr.
 -- The name of the package.
 Name:                safecopy-store
-Version:             0.9.3
+Version:             0.9.4
 Synopsis:            Binary serialization with version control.
 Description:         Fork of safecopy that uses store instead of cereal.
 Homepage:            https://github.com/NCrashed/safecopy
@@ -29,7 +29,7 @@
   Hs-Source-Dirs:      src/
 
   -- Packages needed in order to build this package.
-  Build-depends:       base >=4.5 && <5,
+  Build-depends:       base >=4.8 && <5,
                        array < 0.6,
                        bytestring < 0.11,
                        containers >= 0.3 && < 0.6,
@@ -59,6 +59,7 @@
 Test-suite instances
   Type:                exitcode-stdio-1.0
   Main-is:             instances.hs
+  Other-modules:       Deriving
   Hs-Source-Dirs:      test/
   GHC-Options:         -Wall -threaded -rtsopts -with-rtsopts=-N
   Build-depends:       base, store, template-haskell, safecopy-store,
diff --git a/src/Data/SafeCopy/Store/Derive.hs b/src/Data/SafeCopy/Store/Derive.hs
--- a/src/Data/SafeCopy/Store/Derive.hs
+++ b/src/Data/SafeCopy/Store/Derive.hs
@@ -358,7 +358,7 @@
                asName <- newName "a"
                let putClause   = asP asName $ conP (conName con) (map varP putVars)
                    putCopyBody = varE 'contain `appE` doE (
-                                   [ bindS wildP $ varE 'pokeE `appE` litE (IntegerL conNumber) | manyConstructors ] ++
+                                   [ bindS wildP $ varE 'pokeE `appE` sigE (litE (IntegerL conNumber)) (conT ''Integer) | manyConstructors ] ++
                                    putFunsDecs ++
                                    [ bindS wildP $ varE (putFuns typ) `appE` varE var | (typ, var) <- zip (conTypes con) putVars ] ++
                                    [ noBindS $ varE 'return `appE` varE asName ])
@@ -373,8 +373,8 @@
               [(_, con)] | not (forceTag deriveType) -> mkGetBody con
               _ -> do
                 tagVar <- newName "tag"
-                doE [ bindS (varP tagVar) (varE 'poke)
-                    , noBindS $ caseE (varE tagVar) (
+                doE [ bindS (varP tagVar) (varE 'peek)
+                    , noBindS $ caseE (sigE (varE tagVar) (conT ''Integer)) (
                         [ match (litP $ IntegerL i) (normalB $ mkGetBody con) [] | (i, con) <- cons ] ++
                         [ match wildP (normalB $ varE 'fail `appE` errorMsg tagVar) [] ]) ]
       mkGetBody con
diff --git a/test/Deriving.hs b/test/Deriving.hs
new file mode 100644
--- /dev/null
+++ b/test/Deriving.hs
@@ -0,0 +1,29 @@
+{-# LANGUAGE TemplateHaskell #-}
+-- | Test for TH deriving
+module Deriving where
+
+import Data.SafeCopy.Store
+import Test.QuickCheck.Arbitrary
+import Test.QuickCheck.Gen
+
+data A = A1 | A2 | A3
+  deriving (Bounded, Enum, Show, Eq)
+
+instance Arbitrary A where
+  arbitrary = arbitraryBoundedEnum
+
+deriveSafeCopy 1 'base ''A
+
+data B = B1 | B2 Bool | B3 A A
+  deriving (Show, Eq)
+
+instance Arbitrary B where
+  arbitrary = do
+    n <- choose (0, 2 :: Int)
+    case n of
+      0 -> pure B1
+      1 -> B2 <$> arbitrary
+      2 -> B3 <$> arbitrary <*> arbitrary
+      _ -> pure B1
+
+deriveSafeCopy 1 'base ''B
diff --git a/test/instances.hs b/test/instances.hs
--- a/test/instances.hs
+++ b/test/instances.hs
@@ -10,6 +10,8 @@
 #define MIN_VERSION_template_haskell(x,y,z) 1
 #endif
 
+import Deriving
+
 import Control.Lens
 import Control.Lens.Action
 import Data.Array (Array)
