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