diff --git a/Network/Wai/Session/Map.hs b/Network/Wai/Session/Map.hs
--- a/Network/Wai/Session/Map.hs
+++ b/Network/Wai/Session/Map.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Network.Wai.Session.Map (mapStore, mapStore_) where
 
 import Control.Monad
@@ -47,8 +48,13 @@
 		(atomicModifyIORef ref (\x -> (x,x)))
 		(\x -> atomicModifyIORef ref (const (x,())))
 
+#if MIN_VERSION_StateVar(1,1,0)
+sessionFromMapStateVar :: (Ord k, MonadIO m) =>
+	StateVar (Map k v) ->
+#else
 sessionFromMapStateVar :: (HasGetter sv, HasSetter sv, Ord k, MonadIO m) =>
 	sv (Map k v) ->
+#endif
 	Session m k v
 sessionFromMapStateVar sv = (
 		(\k -> liftIO (Map.lookup k `liftM` get sv)),
diff --git a/wai-session.cabal b/wai-session.cabal
--- a/wai-session.cabal
+++ b/wai-session.cabal
@@ -1,5 +1,5 @@
 name:            wai-session
-version:         0.3
+version:         0.3.1
 cabal-version:   >= 1.8
 license:         OtherLicense
 license-file:    COPYING
