@@ -173,7 +173,7 @@ sendResponse conn ii restore req reqidxhdr leftover' response = do
173173 rspidxhdr = indexResponseHeader hs0
174174 th = threadHandle ii
175175 dc = dateCacher ii
176− addServerAndDate = addDate dc . addServer rspidxhdr
176+ addServerAndDate = addDate dc rspidxhdr . addServer rspidxhdr
177177 mRange = reqidxhdr ! idxRange
178178 reqinfo@(isPersist,_) = infoFromRequest req reqidxhdr
179179 (isKeepAlive, needsChunked) = infoFromResponse rspidxhdr reqinfo
@@ -378,10 +378,12 @@ addContentRange beg end total hdrs = (hContentRange, range) : hdrs
378378 ( '/'
379379 : showInt total ""))
380380
381−addDate :: D.DateCache -> H.ResponseHeaders -> IO H.ResponseHeaders
382−addDate dc hdrs = do
383− gmtdate <- D.getDate dc
384− return $ (H.hDate, gmtdate) : hdrs
381+addDate :: D.DateCache -> IndexedHeader -> H.ResponseHeaders -> IO H.ResponseHeaders
382+addDate dc rspidxhdr hdrs = case rspidxhdr ! idxDate of
383+ Nothing -> do
384+ gmtdate <- D.getDate dc
385+ return $ (H.hDate, gmtdate) : hdrs
386+ Just _ -> return hdrs
385387
386388----------------------------------------------------------------
387389