I've been investigating this bug for about 3 hours now. It appears that sometime the header cache stores the "pair" value in the HEADER struct. So when the cache is reloaded, it fills it in and trusts it, even if that's not the colour its supposed to be.
I don't know what's causing the records to be written out like that, but it's not right. I've attached a trivial patch that prevents the problem from occuring, but it doesn't get at the root of the issue. I don't know mutt well enough to figure that out, so it'll have to go upstream or something. Note, this patch isn't well tested, but it compiles and doesn't break anything obvious. As a workaround, you can delete the header cache for the mailbox in question (if you're using header cache folders). Cheers, -- Eric Gerlach, Network Administrator Federation of Students University of Waterloo p: (519) 888-4567 x36329 e: egerl...@feds.uwaterloo.ca
--- hcache.c.old 2010-01-26 20:53:40.000000000 -0500 +++ hcache.c 2010-01-26 20:54:13.000000000 -0500 @@ -676,6 +676,8 @@ mutt_free_header(oh); } + h->pair = 0; + return h; }