Hi Eli and Stefan, Here is a new version for my patch to add some user control on the image cache. This time, I have done some tests and benchmarks. Instead of trying to have a completely different cache, I'm using the current one but I had a condition to flush (or not) an image based on a user defined time to live (TTL) for an image. This TTL is a number of seconds since the image was last displayed. I have also tested it in image-mode with the second patch. I tested by browsing a directory with some rather large pictures in it (4000x3000 pixels, ≈6MB for each file). I opened the first image in a 1640x1000 window (so each image is scaled) and did the following: - M-: (dotimes (i 10) (image-next-file 1)) ;; for cache warming - M-: (dotimes (i 10) (image-next-file -1)) ;; return to first image - M-: (benchmark-run 10 (dotimes (i 10) (image-next-file 1)) (dotimes (i 10) (image-next-file -1))) Here is the timings I get: - with master (ea685170063): (109.208767158 15 1.0938777159999997) - with this patch: (6.934307561 15 1.095243891) WDYT?