diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,13 @@
+0.7.0.5
+-------
+
+Fix throwError bug ignoring ServantError headers
+
+0.7.0.4
+-------
+
+Fix throwError bug ignoring ServantError body
+
 0.7.0.3
 -------
 
diff --git a/servant-snap.cabal b/servant-snap.cabal
--- a/servant-snap.cabal
+++ b/servant-snap.cabal
@@ -1,5 +1,5 @@
 name:                servant-snap
-version:             0.7.0.4
+version:             0.7.0.5
 synopsis:            A family of combinators for defining webservices APIs and serving them
 description:
   Interpret a Servant API as a Snap server, using any Snaplets you like.
diff --git a/src/Servant/Server/Internal/ServantErr.hs b/src/Servant/Server/Internal/ServantErr.hs
--- a/src/Servant/Server/Internal/ServantErr.hs
+++ b/src/Servant/Server/Internal/ServantErr.hs
@@ -28,7 +28,7 @@
 throwError :: MonadSnap m => ServantErr -> m a
 throwError ServantErr{..} = do
   modifyResponse $ setResponseStatus errHTTPCode (BS.pack errReasonPhrase)
-  modifyResponse $ setHeader "Content-Type" "application/json"
+  modifyResponse $ \r -> L.foldr (uncurry setHeader) r errHeaders
   writeBS $ LBS.toStrict errBody
   getResponse >>= finishWith
 
