diff --git a/pipes-concurrency.cabal b/pipes-concurrency.cabal
--- a/pipes-concurrency.cabal
+++ b/pipes-concurrency.cabal
@@ -1,5 +1,5 @@
 Name: pipes-concurrency
-Version: 2.0.11
+Version: 2.0.12
 Cabal-Version: >=1.8.0.2
 Build-Type: Simple
 License: BSD3
@@ -36,7 +36,7 @@
         contravariant >= 1.3.3   && < 1.6 ,
         pipes         >= 4.0     && < 4.4 ,
         semigroups                  < 0.19,
-        stm           >= 2.4.3   && < 2.5 ,
+        stm           >= 2.4.3   && < 2.6 ,
         void          >= 0.6     && < 1
     Exposed-Modules:
         Pipes.Concurrent,
@@ -51,5 +51,5 @@
         base              >= 4     && < 5  ,
         pipes             >= 4.0.0 && < 4.4,
         pipes-concurrency                  ,
-        stm               >= 2.4.3 && < 2.5,
+        stm               >= 2.4.3 && < 2.6,
         async             >= 2.0   && < 2.3
diff --git a/src/Pipes/Concurrent.hs b/src/Pipes/Concurrent.hs
--- a/src/Pipes/Concurrent.hs
+++ b/src/Pipes/Concurrent.hs
@@ -196,7 +196,7 @@
 spawn' buffer = do
     (write, read) <- case buffer of
         Bounded n -> do
-            q <- S.newTBQueueIO n
+            q <- S.newTBQueueIO (fromIntegral n)
             return (S.writeTBQueue q, S.readTBQueue q)
         Unbounded -> do
             q <- S.newTQueueIO
@@ -211,7 +211,7 @@
             m <- S.newEmptyTMVarIO
             return (\x -> S.tryTakeTMVar m *> S.putTMVar m x, S.takeTMVar m)
         Newest n  -> do
-            q <- S.newTBQueueIO n
+            q <- S.newTBQueueIO (fromIntegral n)
             let write x = S.writeTBQueue q x <|> (S.tryReadTBQueue q *> write x)
             return (write, S.readTBQueue q)
 
