diff --git a/Spock.cabal b/Spock.cabal
--- a/Spock.cabal
+++ b/Spock.cabal
@@ -1,5 +1,5 @@
 name:                Spock
-version:             0.4.1.0
+version:             0.4.2.0
 synopsis:            Another Haskell web toolkit based on scotty
 description:         This toolbox provides everything you need to get a quick start into web hacking with haskell: sessions, database helper, authentication and the power of scotty
 Homepage:            https://github.com/agrafix/Spock
@@ -38,7 +38,8 @@
                        xsd ==0.4.*,
                        aeson >=0.6,
                        resource-pool ==0.2.*,
-                       random ==1.*
+                       random ==1.*,
+                       pool-conduit ==0.1.*
   ghc-options: -fwarn-unused-imports
 
 source-repository head
diff --git a/Web/Spock.hs b/Web/Spock.hs
--- a/Web/Spock.hs
+++ b/Web/Spock.hs
@@ -51,13 +51,15 @@
     do sessionMgr <- openSessionManager sessionCfg
        connectionPool <-
            case poolOrConn of
+             PCConduitPool p ->
+                 return (ConduitPool p)
              PCPool p ->
-                 return p
+                 return (DataPool p)
              PCConn cb ->
                  let pc = cb_poolConfiguration cb
-                 in createPool (cb_createConn cb) (cb_destroyConn cb)
-                        (pc_stripes pc) (pc_keepOpenTime pc)
-                        (pc_resPerStripe pc)
+                 in DataPool <$> createPool (cb_createConn cb) (cb_destroyConn cb)
+                                  (pc_stripes pc) (pc_keepOpenTime pc)
+                                   (pc_resPerStripe pc)
        let internalState =
                WebState
                { web_dbConn = connectionPool
diff --git a/Web/Spock/Monad.hs b/Web/Spock/Monad.hs
--- a/Web/Spock/Monad.hs
+++ b/Web/Spock/Monad.hs
@@ -10,6 +10,7 @@
 import Data.Pool
 import Data.Time.Clock ( UTCTime(..) )
 import Web.Scotty.Trans
+import qualified Data.Conduit.Pool as CP
 import qualified Data.ByteString.Lazy as BSL
 import qualified Data.Text.Encoding as T
 import qualified Data.Text.Lazy as TL
@@ -25,7 +26,13 @@
 runQuery query =
     webM $
     do pool <- asks web_dbConn
-       liftIO $ withResource pool query
+       let fun =
+               case pool of
+                 DataPool p ->
+                     withResource p
+                 ConduitPool p ->
+                     CP.withResource p
+       liftIO (fun query)
 
 -- | Read the application's state. If you wish to have mutable state, you could
 -- use a 'TVar' from the STM packge.
diff --git a/Web/Spock/Types.hs b/Web/Spock/Types.hs
--- a/Web/Spock/Types.hs
+++ b/Web/Spock/Types.hs
@@ -12,6 +12,7 @@
 import Control.Monad.Trans.Resource
 import Data.Pool
 import Data.Time.Clock ( UTCTime(..), NominalDiffTime(..) )
+import qualified Data.Conduit.Pool as CP
 import qualified Data.HashMap.Strict as HM
 import qualified Data.Text as T
 import Data.Text.Lazy (Text)
@@ -47,6 +48,7 @@
 -- a connection pool. See 'ConnBuilder'
 data PoolOrConn a
    = PCPool (Pool a)
+   | PCConduitPool (CP.Pool a)
    | PCConn (ConnBuilder a)
 
 -- | Configuration for the session manager
@@ -67,9 +69,13 @@
    | NoSession
    deriving (Show, Eq, Read, Enum)
 
+data ConnectionPool conn
+   = DataPool (Pool conn)
+   | ConduitPool (CP.Pool conn)
+
 data WebState conn sess st
    = WebState
-   { web_dbConn :: Pool conn
+   { web_dbConn :: ConnectionPool conn
    , web_sessionMgr :: SessionManager sess
    , web_state :: st
    }
