diff --git a/Network/Wai/Application/Classic/CGI.hs b/Network/Wai/Application/Classic/CGI.hs
--- a/Network/Wai/Application/Classic/CGI.hs
+++ b/Network/Wai/Application/Classic/CGI.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings, CPP, DoAndIfThenElse, ScopedTypeVariables #-}
+{-# LANGUAGE OverloadedStrings, CPP, ScopedTypeVariables #-}
 
 module Network.Wai.Application.Classic.CGI (
     cgiApp
@@ -79,8 +79,8 @@
             Just (s,h) -> (s,h,True)
         hdr' = addServer cspec hdr
     liftIO $ logger cspec req st Nothing
-    let src = if hasBody then (toSource bsrc) else CL.sourceNull
-    return $ ResponseSource st hdr' src
+    let src = if hasBody then toSource bsrc else CL.sourceNull
+    return $ ResponseSource st hdr' (Chunk <$> src)
   where
     check hs = lookup fkContentType hs >> case lookup "status" hs of
         Nothing -> Just (status200, hs)
diff --git a/Network/Wai/Application/Classic/File.hs b/Network/Wai/Application/Classic/File.hs
--- a/Network/Wai/Application/Classic/File.hs
+++ b/Network/Wai/Application/Classic/File.hs
@@ -80,7 +80,7 @@
         _      -> return notAllowed
     (response, mlen) <- case body of
             NoBody                 -> return $ noBody st
-            BodyStatus -> statusBody st <$> (liftIO $ getStatusInfo cspec spec langs st)
+            BodyStatus -> statusBody st <$> liftIO (getStatusInfo cspec spec langs st)
             BodyFileNoBody hdr     -> return $ bodyFileNoBody st hdr
             BodyFile hdr afile rng -> return $ bodyFile st hdr afile rng
     liftIO $ logger cspec req st mlen
diff --git a/Network/Wai/Application/Classic/RevProxy.hs b/Network/Wai/Application/Classic/RevProxy.hs
--- a/Network/Wai/Application/Classic/RevProxy.hs
+++ b/Network/Wai/Application/Classic/RevProxy.hs
@@ -68,7 +68,7 @@
     H.Response status hdr downbody <- H.http httpReq mgr
     let hdr' = fixHeader hdr
     liftIO $ logger cspec req status (fromIntegral <$> mlen)
-    return $ ResponseSource status hdr' (byteStringToBuilder <$> downbody)
+    return $ ResponseSource status hdr' (Chunk . byteStringToBuilder <$> downbody)
   where
     mgr = revProxyManager spec
     fixHeader = addVia cspec req . filter p
diff --git a/wai-app-file-cgi.cabal b/wai-app-file-cgi.cabal
--- a/wai-app-file-cgi.cabal
+++ b/wai-app-file-cgi.cabal
@@ -1,12 +1,12 @@
 Name:                   wai-app-file-cgi
-Version:                0.5.0
+Version:                0.5.1
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
 License-File:           LICENSE
-Synopsis:               File/CGI App of WAI
-Description:            This WAI application handles static files and
-                        executes CGI scripts.
+Synopsis:               File/CGI/Rev Proxy App of WAI
+Description:            This WAI application handles static files,
+                        executes CGI scripts, and reverse proxy.
 Homepage:               http://www.mew.org/~kazu/
 Category:               Web, Yesod
 Cabal-Version:          >= 1.6
@@ -33,7 +33,7 @@
                         network, transformers,
                         filepath, directory, unix,
                         containers, attoparsec >= 0.10.0.0,
-                        wai, conduit,
+                        wai >= 1.1, conduit >= 0.2,
                         bytestring, blaze-builder,
                         wai-app-static >= 0.3, http-types, http-date,
                         case-insensitive, static-hash,
