diff --git a/snaplet-amqp.cabal b/snaplet-amqp.cabal
--- a/snaplet-amqp.cabal
+++ b/snaplet-amqp.cabal
@@ -1,5 +1,5 @@
 Name:                snaplet-amqp
-Version:             1.0.1.0
+Version:             1.0.1.1
 Synopsis:            Snap framework snaplet for the AMQP library
 Homepage:            https://github.com/ixmatus/snaplet-amqp
 License:             BSD3
@@ -47,6 +47,7 @@
     base                >= 4.4     && < 5,
     snap                >= 0.13    && < 0.14,
     resource-pool       >= 0.2     && < 0.3,
+    monad-control       >= 0.3     && < 0.4,
     amqp                >= 0.10    && < 0.11,
     bytestring          >= 0.9     && < 11,
     lens                >= 4       && < 5,
diff --git a/src/Snap/Snaplet/AMQP.hs b/src/Snap/Snaplet/AMQP.hs
--- a/src/Snap/Snaplet/AMQP.hs
+++ b/src/Snap/Snaplet/AMQP.hs
@@ -1,9 +1,10 @@
-{-# LANGUAGE ConstraintKinds     #-}
-{-# LANGUAGE FlexibleContexts    #-}
-{-# LANGUAGE FlexibleInstances   #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE TypeFamilies        #-}
+{-# LANGUAGE ConstraintKinds       #-}
+{-# LANGUAGE FlexibleContexts      #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedStrings     #-}
+{-# LANGUAGE ScopedTypeVariables   #-}
+{-# LANGUAGE TypeFamilies          #-}
 
 module Snap.Snaplet.AMQP
   ( initAMQP
@@ -18,11 +19,7 @@
 import           Data.Configurator
 import           Data.Configurator.Types
 import           Data.Pool
-import           Network.AMQP               (Channel, Connection,
-                                             ConnectionOpts (..),
-                                             closeConnection,
-                                             defaultConnectionOpts, openChannel,
-                                             openConnection'', plain)
+import           Network.AMQP
 import           Paths_snaplet_amqp
 import           Snap.Snaplet
 
@@ -80,9 +77,9 @@
 
 -------------------------------------------------------------------------------
 -- | Runs an AMQP action in any monad with a HasAmqpPoolonn instance.
-runAmqp :: (HasAmqpPool m) => ((Connection, Channel) -> b) -> m b
+runAmqp :: (HasAmqpPool m) => (Connection -> Channel -> IO ()) -> m ()
 runAmqp action = do
     pool <- getAmqpPool
-    return =<< liftIO $ withResource pool $ \conn -> do
-        chan <- openChannel conn
-        return $ action (conn, chan)
+    liftIO $ withResource pool $! \conn -> do
+        chan <- liftIO $ openChannel conn
+        liftIO $! action conn chan
