[That's what I've sent to gmane.comp.apache.user today.] Hi!
I use Apache 1.3.33 (Gentoo) under Linux 2.6 together with mod_lisp 2.42. mod_lisp is a simple handler which communicates with running Lisp images.
This is what I've found today: When setting "Last-Modified" (the handler correctly calls ap_parseHTTPdate(), ap_update_mtime(), and ap_set_last_modified()) the resulting response header has an other date in the "Last-Modified" field. It is the mtime of the DocumentRoot. But only if the mtime of DocumentRoot is _newer_ than the date you want to set.
There's no "Last-Modified" in the response header when you don't set it yourself.
ap_update_mtime() only updates r->mtime when the supplied time is _newer_. So I've guessed that some other handler sets r->mtime to the DocumentRoot.
I've found mod_negotiation. After removing it from the server config the response header had the correct "Last-Modified" date.
2 possible workarounds: 1.) touch the DocumentRoot to an older date 2.) remove mod_negotiation
Regards, Stefan