@@ -169,7 +169,7 @@ sendResponse conn ii restore req reqidxhdr response = restore $ do
169169 rspidxhdr = indexResponseHeader hs0
170170 th = threadHandle ii
171171 dc = dateCacher ii
172− addServerAndDate = addDate dc . addServer rspidxhdr
172+ addServerAndDate = addDate dc rspidxhdr . addServer rspidxhdr
173173 mRange = reqidxhdr ! idxRange
174174 reqinfo@(isPersist,_) = infoFromRequest req reqidxhdr
175175 (isKeepAlive, needsChunked) = infoFromResponse rspidxhdr reqinfo
@@ -347,10 +347,12 @@ addContentRange beg end total hdrs = (hContentRange, range) : hdrs
347347 ( '/'
348348 : showInt total ""))
349349
350−addDate :: D.DateCache -> H.ResponseHeaders -> IO H.ResponseHeaders
351−addDate dc hdrs = do
352− gmtdate <- D.getDate dc
353− return $ (H.hDate, gmtdate) : hdrs
350+addDate :: D.DateCache -> IndexedHeader -> H.ResponseHeaders -> IO H.ResponseHeaders
351+addDate dc rspidxhdr hdrs = case rspidxhdr ! idxDate of
352+ Nothing -> do
353+ gmtdate <- D.getDate dc
354+ return $ (H.hDate, gmtdate) : hdrs
355+ Just _ -> return hdrs
354356
355357----------------------------------------------------------------
356358