diff --git a/happstack-state.cabal b/happstack-state.cabal
--- a/happstack-state.cabal
+++ b/happstack-state.cabal
@@ -1,5 +1,5 @@
 Name:                happstack-state
-Version:             6.0.0
+Version:             6.1.0
 Synopsis:            Event-based distributed state.
 Description:         Unplug your machine and restart and have your app recover to exactly where it left off. Happstack-State spares you the need to deal with all the marshalling, consistency, and configuration headache that you would have if you used an external DBMS for this purpose. Its component model makes it easy to compose big applications from smaller reliable parts. Use event subscription to trigger IO actions and support comet-style or irc-bot applications. 
 License:             BSD3
@@ -66,7 +66,7 @@
                        mtl >= 1.1 && < 2.1,
                        old-time,
                        random,
-                       stm,
+                       stm >= 2.1.2.2,
                        template-haskell
 
   if flag(replication)
diff --git a/src/Happstack/State/Monad.hs b/src/Happstack/State/Monad.hs
--- a/src/Happstack/State/Monad.hs
+++ b/src/Happstack/State/Monad.hs
@@ -76,7 +76,7 @@
 #if __GLASGOW_HASKELL__ < 610
     catchEv :: Ev m a -> (Exception -> a) -> Ev m a
 #else
-    catchEv :: Ev m a -> (SomeException -> a) -> Ev m a
+    catchEv :: Exception e => Ev m a -> (e -> a) -> Ev m a
 #endif
 instance CatchEv (ReaderT st STM) where
     catchEv (Ev cmd) fun = Ev $ \s -> ReaderT $ \r -> runReaderT (cmd s) r `catchSTM` (\a -> return (fun a))
