diff --git a/NEWS.md b/NEWS.md
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,6 +1,11 @@
 Changes
 =======
 
+0.2.1 (03 Oct 2013)
+-------------------
+
+ - update to work with cereal-0.4.0; thank you, Henry Laxen
+
 0.2.0 (15 Sep 2013)
 -------------------
 
diff --git a/daemons.cabal b/daemons.cabal
--- a/daemons.cabal
+++ b/daemons.cabal
@@ -1,5 +1,5 @@
 Name:           daemons
-Version:        0.2.0
+Version:        0.2.1
 Cabal-Version:  >= 1.8
 License:        GPL-3
 License-File:   LICENSE
@@ -37,10 +37,17 @@
 
 Library
   Hs-Source-Dirs:       src
-  Build-depends:        base >= 4 && < 5, bytestring, cereal,
-                        data-default, directory, filepath, ghc-prim, network,
+  Build-depends:        base >= 4 && < 5,
+                        bytestring,
+                        cereal >= 0.4.0,
+                        data-default,
+                        directory,
+                        filepath,
+                        ghc-prim,
+                        network,
                         pipes >= 4.0.0,
-                        transformers, unix
+                        transformers,
+                        unix
   Ghc-options:          -Wall
   Exposed-modules:      Control.Pipe.C3,
                         Control.Pipe.Serialize,
diff --git a/src/Control/Pipe/Serialize.hs b/src/Control/Pipe/Serialize.hs
--- a/src/Control/Pipe/Serialize.hs
+++ b/src/Control/Pipe/Serialize.hs
@@ -35,8 +35,10 @@
     loop mk mbin = do
         bin <- maybe await return mbin
         case (maybe (runGetPartial get) id mk) bin of
-          Fail reason -> fail reason
-          Partial k   -> loop (Just k) Nothing
+          Fail reason _leftover ->
+              fail reason
+          Partial k ->
+              loop (Just k) Nothing
           Done c bin' -> do
               yield c
               loop Nothing (Just bin')
