Apologies for the formatting, I’m writing this reply from my phone. > And sure enough, the modification of the string is the point -- it's a > cache! From gnus-sum.el: > > ; Since this is called not only to sort the top-level threads, but > ; also in recursive sorts to order the articles within a thread, each > ; article will be processed many times. Thus it speeds things up > ; quite a bit to use gnus-date-get-time, which caches the time value. > (defun gnus-thread-latest-date (thread) > "Return the highest article date in THREAD." > (apply #'max > (mapcar (lambda (header) (float-time > (gnus-date-get-time > (mail-header-date header)))) > (flatten-tree thread)))) > > Can we strip properties around the call, maybe? I don’t think there’s need to do that. The change that I proposed in the patch should remove the unintended side effect (and thus fix the bug pointed by Alex) while keeping the caching behaviour intact (‘gnus-thread-latest-date’ code above will work as expected).