diff --git a/CHANGES.txt b/CHANGES.txt
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 Changelog for Shake
 
+0.11.3
+    #97, fix a serialisation bug when > 254 arguments to need
 0.11.2
     #96, fix a bug in addPath that caused $PATH to be added twice
 0.11.1
diff --git a/General/Binary.hs b/General/Binary.hs
--- a/General/Binary.hs
+++ b/General/Binary.hs
@@ -37,7 +37,7 @@
 instance Binary a => Binary (BinList a) where
     put (BinList xs) = case splitAt 254 xs of
         (a, []) -> putWord8 (genericLength xs) >> mapM_ put xs
-        (a, b) -> putWord8 255 >> mapM_ put xs >> put (BinList b)
+        (a, b) -> putWord8 255 >> mapM_ put a >> put (BinList b)
     get = do
         x <- getWord8
         case x of
diff --git a/shake.cabal b/shake.cabal
--- a/shake.cabal
+++ b/shake.cabal
@@ -1,7 +1,7 @@
 cabal-version:      >= 1.10
 build-type:         Simple
 name:               shake
-version:            0.11.2
+version:            0.11.3
 license:            BSD3
 license-file:       LICENSE
 category:           Development
