Hi! I'm playing around with one-time iterators Threads in the python bindings in combination with changes to the database. Particularly, I'd like to iterate over a list of threads partially, change the tags of a single thread and afterwards continue iterating. Of course I get "Xapian DB-changed" exceptions. As I see it, there are two possible solutions: First, I iterate over all the threads and cache all the info i'd like to extract from each one (or just the id and re-query the info on demand). The problem here is, that this list of thread-ids might be huge and caching it will block my code. Secondly, I could replace the iterator i'm using with a fresh one after db-changes. But then I'd need some magic that discards an initial portion of the (fresh) iteration and/or updates the pre-db-change partial iteration. Wow. This reads really complicated. All I want to say is: if I change tags in my search-results view, I get Xapian errors :) The question: How do you solve this in the emacs code? do you store all tids of a query? Thanks, /p