Okay, I've just committed a proper fix into CVS for the Conditional GET checking. The problem occurred when neither the "If-Modified-Since" nor the "If-None-Match" headers occurred. The logic says that you return a "304 Not Modified" return if *either* of those headers sent by the client matches what the server expects. But if *both* headers are sent by the client, then *both* must match. I tried to short circuit the logic, but I failed to take into account what happens when neither header is sent by the client. My faulty logic was returning a 304 in that case, which was bad. Because if the client didn't send those headers, it didn't have the information in the first place. So, telling it that it hasn't been modified didn't do much good, did it?
Anyhow, all fixed up now :)