On Sun, 24 Oct 2010 11:55:28 +0200 Tassilo Horn wrote: TH> Tassilo Horn writes: >> (setq gnus-spam-newsgroup-contents >> ;; My spam groups all have spam or Junk in their name >> '(("\\.\\(spam\\|Junk\\)" gnus-group-spam-classification-spam)) >> >> ;; Move SPAM in normal groups to spam training or spam group. >> gnus-spam-process-destinations >> '(("nnimap\\+Fastmail:" >> "nnimap+Fastmail:INBOX.training.spam") >> ("nnimap\\+Uni:" >> "nnimap+Uni:Junk")) >> >> ;; Move ham in spam groups to inbox and training.ham. >> gnus-ham-process-destinations >> '(("nnimap\\+Fastmail:INBOX\\.Junk Mail" >> "nnimap+Fastmail:INBOX" >> "nnimap+Fastmail:INBOX.training.ham"))) >> >> I think the processing basically works fine except one really annoying >> issue: as soon as I leave some spam group like >> >> nnimap+Fastmail:INBOX.Junk Mail >> nnimap+Fastmail:INBOX.training.spam >> nnimap+Uni:Junk >> >> which all contain only messages marked as spam ($), all messages in the >> summary buffer are moved from that group into the exact same group. TH> No, that was not true. All spam-marked messages are moved to TH> nnimap+Fastmail:INBOX.training.spam. TH> Anyway, the question is still: how do I tell Gnus to run only the ham TH> processor and not the spam processor in spam groups? You're classifying "nnimap+Fastmail:INBOX.training.spam" as a spam group and also telling spam.el to move spam messages there. So yes, it will always respool messages on exit. I think the proper fix is to make the spam exit processor check if the destination group is the same. Can you try the attached patch? Ted