diff --git a/acid-state.cabal b/acid-state.cabal
--- a/acid-state.cabal
+++ b/acid-state.cabal
@@ -7,7 +7,7 @@
 -- The package version. See the Haskell package versioning policy
 -- (http://www.haskell.org/haskellwiki/Package_versioning_policy) for
 -- standards guiding when and how versions should be incremented.
-Version:             0.4.2
+Version:             0.4.3
 
 -- A short (one-line) description of the package.
 Synopsis:            Add ACID guarantees to any serializable Haskell data structure.
diff --git a/src/Data/Acid/Local.hs b/src/Data/Acid/Local.hs
--- a/src/Data/Acid/Local.hs
+++ b/src/Data/Acid/Local.hs
@@ -1,5 +1,5 @@
 {-# LANGUAGE GADTs, OverloadedStrings, DeriveDataTypeable, TypeFamilies,
-             GeneralizedNewtypeDeriving, BangPatterns #-}
+             GeneralizedNewtypeDeriving, BangPatterns, CPP #-}
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Data.Acid.Local
@@ -108,11 +108,19 @@
 
 -- | Context monad for Update events.
 newtype Update st a = Update { unUpdate :: State st a }
+#if MIN_VERSION_mtl(2,0,0)
     deriving (Monad, Functor, Applicative, MonadState st)
+#else
+    deriving (Monad, Functor, MonadState st)
+#endif
 
 -- | Context monad for Query events.
 newtype Query st a  = Query { unQuery :: Reader st a }
+#if MIN_VERSION_mtl(2,0,0)
     deriving (Monad, Functor, Applicative, MonadReader st)
+#else
+    deriving (Monad, Functor, MonadReader st)
+#endif
 
 -- | Run a query in the Update Monad.
 runQuery :: Query st a -> Update st a
