@@ -14,7 +14,7 @@ import Data.Array ((!))
1414import qualified Data.ByteString as B hiding (pack)
1515import qualified Data.ByteString.Char8 as B (pack, readInteger)
1616import Data.ByteString (ByteString)
17−import Data.Maybe (fromMaybe)
17+import Data.Maybe (fromMaybe, isJust)
1818import Network.HTTP.Date
1919import qualified Network.HTTP.Types as H
2020import qualified Network.HTTP.Types.Header as H
@@ -44,8 +44,9 @@ conditionalRequest :: I.FileInfo
4444 -> RspFileInfo
4545conditionalRequest finfo hs0 reqidx = case condition of
4646 nobody@(WithoutBody _) -> nobody
47− WithBody s _ off len -> let !hs = (H.hLastModified,date) :
48− addContentHeaders hs0 off len size
47+ WithBody s _ off len -> let !hs = if isJust (lookup H.hLastModified hs0)
48+ then addContentHeaders hs0 off len size
49+ else (H.hLastModified,date) : addContentHeaders hs0 off len size
4950 in WithBody s hs off len
5051 where
5152 !mtime = I.fileInfoTime finfo