diff --git a/Yesod/Goodies/PNotify.hs b/Yesod/Goodies/PNotify.hs
--- a/Yesod/Goodies/PNotify.hs
+++ b/Yesod/Goodies/PNotify.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, TypeFamilies #-}
+{-# LANGUAGE OverloadedStrings, QuasiQuotes, TemplateHaskell, MultiParamTypeClasses, TypeFamilies, FlexibleContexts #-}
 module Yesod.Goodies.PNotify 
        ( PNotify(..)
        , NotifyType(..)
@@ -17,6 +17,7 @@
 import Data.Monoid ((<>), mempty)
 import qualified Data.Text as T
 import qualified Data.Text.Lazy as TL
+import Control.Monad.Trans.Resource
 import Control.Monad.Trans.Maybe
 import Data.Char (toLower)
 import Text.Julius (RawJS(..))
@@ -46,21 +47,39 @@
 notifyKey :: Text
 notifyKey = "_PNotify"
 
-_setPNotify :: [PNotify] -> HandlerT site IO ()
+_setPNotify :: (MonadThrow m, 
+                MonadUnsafeIO m,
+                MonadBaseControl IO m,
+                MonadIO m) => 
+               [PNotify] -> HandlerT site m ()
 _setPNotify = setSession notifyKey . T.concat . TL.toChunks . TL.pack . show
 
-getPNotify :: HandlerT site IO (Maybe [PNotify])
+getPNotify :: (MonadThrow m, 
+               MonadUnsafeIO m,
+               MonadBaseControl IO m,
+               MonadIO m) => 
+              HandlerT site m (Maybe [PNotify])
 getPNotify = runMaybeT $ do
   ns <- MaybeT $ lookupSession notifyKey
   lift $ deleteSession notifyKey
   return $ read $ T.unpack ns
 
-setPNotify :: PNotify -> HandlerT site IO ()
+setPNotify :: (Monad m,
+               MonadThrow m,
+               MonadUnsafeIO m,
+               MonadBaseControl IO m,
+               MonadIO m) =>
+              PNotify -> HandlerT site m ()
 setPNotify n = do
   mns <- getPNotify
   _setPNotify (n:maybe [] id mns)
 
-pnotify :: YesodJqueryPnotify site => site -> WidgetT site IO ()
+pnotify :: (YesodJqueryPnotify site, 
+            MonadThrow m, 
+            MonadUnsafeIO m, 
+            MonadBaseControl IO m,
+            MonadIO m) => 
+           site -> WidgetT site m ()
 pnotify y = do
   mnotify <- handlerToWidget getPNotify
   case mnotify of
diff --git a/yesod-pnotify.cabal b/yesod-pnotify.cabal
--- a/yesod-pnotify.cabal
+++ b/yesod-pnotify.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                yesod-pnotify
-version:             0.4.0.1
+version:             0.4.1.0
 synopsis:            Yet another getMessage/setMessage using pnotify jquery plugins
 description:         Yet another getMessage/setMessage using pnotify jquery plugins
 homepage:            https://github.com/cutsea110/yesod-pnotify
@@ -24,3 +24,5 @@
                        , text >= 0.11 && < 0.12
                        , transformers >= 0.3 && < 0.4
                        , shakespeare-js >= 1.1 && < 1.2
+                       , resourcet >= 0.4 && < 0.5
+
