Dear list members, I think I found a bug or at least undocumented behaviour in the notmuch library. I would like to report this here. Originally I found the bug in the python library but I attached a c program that shows the same behaviour. I am running notmuch version 0.22.1 from the Arch Linux repositories. The setup: 1. chose a query string, e.g. "is:inbox or is:spam" 2. chose a tag to exclude that is matched by the query, e.g. "spam" 3. open the database 4. create a query 5. check the message or thread count any number of times 6. exclude the tag from the query 7. check the message or thread count any number of times The result: - In step 5 the result stays the same if I repeatedly call notmuch_query_count_messages_st or query.count_messages. - In step 7 the count is different between the first call and all subsequent calls. But neither seems correct to me. I always get the same number as in step 5 for the first call and 0 afterwards. Expected result: - subsequent calls to notmuch_query_count_messages_st or query.count_messages should yield the same result - the exclusion should change the count to the actual amount (for "is:inbox or is:spam" I get 891 and for a plain "is:inbox" I get 58, which never shows up in step 7) Attached you can find a python and a c program that exhibit this behaviour. Please compile the c program with cc -DDB_PATH=\"/path/to/your/mail\" -lnotmuch test.c My question: Is this documented somewhere? Is it actually a bug or is it already fixed in a newer version? Thank you for developing notmuch! Lucas