diff -up mutt/pop.c.pophash mutt/pop.c --- mutt/pop.c.pophash 2009-12-14 19:24:59.000000000 +0100 +++ mutt/pop.c 2011-10-04 16:51:23.307236908 +0200 @@ -618,8 +618,15 @@ int pop_fetch_message (MESSAGE* msg, CON } rewind (msg->fp); uidl = h->data; + + /* we replace envelop, key in subj_hash has to be updated as well */ + if (ctx->subj_hash && h->env->real_subj) + hash_delete (ctx->subj_hash, h->env->real_subj, h, NULL); mutt_free_envelope (&h->env); h->env = mutt_read_rfc822_header (msg->fp, h, 0, 0); + if (ctx->subj_hash && h->env->real_subj) + hash_insert (ctx->subj_hash, h->env->real_subj, h, 1); + h->data = uidl; h->lines = 0; fgets (buf, sizeof (buf), msg->fp);