diff --git a/Network/Wai/Application/Classic/Field.hs b/Network/Wai/Application/Classic/Field.hs
--- a/Network/Wai/Application/Classic/Field.hs
+++ b/Network/Wai/Application/Classic/Field.hs
@@ -58,7 +58,6 @@
 addVia cspec req hdr = (hVia, val) : hdr
   where
     ver = httpVersion req
-    showBS = BS.pack . show
     val = BS.concat [
         showBS (httpMajor ver)
       , "."
@@ -106,3 +105,18 @@
 addDate zdater hdr = do
     date <- zdater
     return $ (hDate,date) : hdr
+
+addContentRange :: Integer -> Integer -> Integer -> ResponseHeaders -> ResponseHeaders
+addContentRange off len size hdr = (hContentRange, val) : hdr
+  where
+    val = BS.concat [
+        "bytes "
+      , showBS off
+      , "-"
+      , showBS (off + len - 1)
+      , "/"
+      , showBS size
+      ]
+
+showBS :: Show a => a -> ByteString
+showBS = BS.pack . show
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
@@ -134,7 +134,7 @@
         Full st
           | st == ok200  -> return $ RspSpec ok200 (BodyFile hdr sfile (Entire size))
           | otherwise    -> return $ RspSpec st (BodyFileNoBody hdr)
-        Partial skip len -> return $ RspSpec partialContent206 (BodyFile hdr sfile (Part skip len))
+        Partial skip len -> return $ RspSpec partialContent206 (BodyFile (addContentRange skip len size hdr) sfile (Part skip len))
 
 ----------------------------------------------------------------
 
diff --git a/Network/Wai/Application/Classic/FileInfo.hs b/Network/Wai/Application/Classic/FileInfo.hs
--- a/Network/Wai/Application/Classic/FileInfo.hs
+++ b/Network/Wai/Application/Classic/FileInfo.hs
@@ -33,8 +33,8 @@
     date <- ifRange req
     rng  <- lookupRequestField hRange req
     if date == mtime
-       then Just (Full ok200)
-       else range size rng
+       then range size rng
+       else Just (Full ok200)
 
 unconditional :: Request -> Integer -> HTTPDate -> Maybe StatusAux
 unconditional req size _ =
diff --git a/Network/Wai/Application/Classic/Header.hs b/Network/Wai/Application/Classic/Header.hs
--- a/Network/Wai/Application/Classic/Header.hs
+++ b/Network/Wai/Application/Classic/Header.hs
@@ -25,6 +25,10 @@
 hVia :: HeaderName
 hVia = "via"
 
+-- | Look-up key for Content-Range.
+hContentRange :: HeaderName
+hContentRange = "content-range"
+
 ----------------------------------------------------------------
 
 {-|
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,5 +1,5 @@
 Name:                   wai-app-file-cgi
-Version:                0.8.5
+Version:                0.8.6
 Author:                 Kazu Yamamoto <kazu@iij.ad.jp>
 Maintainer:             Kazu Yamamoto <kazu@iij.ad.jp>
 License:                BSD3
