diff --git a/http-monad.cabal b/http-monad.cabal
--- a/http-monad.cabal
+++ b/http-monad.cabal
@@ -1,5 +1,5 @@
 Name:               http-monad
-Version:            0.1.1.1
+Version:            0.1.1.2
 Cabal-Version:      >= 1.6
 Build-type:         Simple
 License:            BSD3
@@ -29,7 +29,7 @@
 Source-Repository this
   type:     darcs
   location: http://code.haskell.org/~thielema/http-monad/
-  tag:      0.1.1.1
+  tag:      0.1.1.2
 
 Flag splitBase
   description: Old, monolithic base
@@ -62,6 +62,7 @@
   Build-depends: bytestring >=0.9 && <0.11
   Build-depends: transformers >=0.2 && <0.6
   Build-depends: explicit-exception >=0.1.4 && <0.2
+  Build-depends: semigroups >=0.1 && <1.0
   Build-depends: utility-ht >=0.0.4 && <0.1
   Build-depends: lazyio >=0.1 && <0.2
 
diff --git a/src/Network/Monad/HTTP.hs b/src/Network/Monad/HTTP.hs
--- a/src/Network/Monad/HTTP.hs
+++ b/src/Network/Monad/HTTP.hs
@@ -39,6 +39,7 @@
 import Data.Maybe.HT (toMaybe, )
 import Data.Char (isDigit, intToDigit, digitToInt, toLower, )
 import Data.Monoid (Monoid, mappend, mempty, )
+import Data.Semigroup (Semigroup, (<>), )
 import Control.Monad (liftM, liftM2, mplus, )
 import Numeric (readHex, )
 
@@ -352,6 +353,10 @@
 data ChunkedResponse body =
    ChunkedResponse [Header.T] [Int] body
       deriving Show
+
+instance Semigroup body => Semigroup (ChunkedResponse body) where
+   ChunkedResponse hx lx sx <> ChunkedResponse hy ly sy =
+       ChunkedResponse (hx <> hy) (lx <> ly) (sx <> sy)
 
 instance Monoid body => Monoid (ChunkedResponse body) where
    mempty = ChunkedResponse mempty mempty mempty
