--- PATCHES.orig	2026-08-08 00:00:00 UTC
+++ PATCHES
@@ -0,0 +1 @@
+patch-1.5.6.cb.reverse_reply.2
--- init.h.orig	2026-08-08 00:00:00 UTC
+++ init.h
@@ -3437,6 +3437,13 @@
   ** In either case, a missing real name will be filled in afterwards
   ** using the value of $$realname.
   */
+  { "reverse_reply",    DT_BOOL, R_NONE, {.l=OPTREVREPLY}, {.l=0} },
+  /*
+  ** .pp
+  ** When set, this variable uses the name from your aliases in the To and Cc
+  ** headers of reply mails you send, like $reverse_alias does in the index.
+  ** When unset, the headers taken from the original mail are left unchanged.
+  */
   { "rfc2047_parameters", DT_BOOL, R_NONE, {.l=OPTRFC2047PARAMS}, {.l=1} },
   /*
   ** .pp
--- mutt.h.orig	2026-08-08 00:00:00 UTC
+++ mutt.h
@@ -534,6 +534,7 @@
   OPTREVALIAS,
   OPTREVNAME,
   OPTREVREAL,
+  OPTREVREPLY,
   OPTRFC2047PARAMS,
   OPTSAVEADDRESS,
   OPTSAVEEMPTY,
--- protos.h.orig	2026-08-08 00:00:00 UTC
+++ protos.h
@@ -86,6 +86,7 @@
 ADDRESS *mutt_get_address(ENVELOPE *, char **);
 ADDRESS *mutt_lookup_alias(const char *s);
 ADDRESS *mutt_remove_duplicates(ADDRESS *);
+ADDRESS *mutt_reverse_address(ADDRESS *);
 ADDRESS *mutt_remove_adrlist_group_delimiters(ADDRESS *);
 ADDRESS *mutt_expand_aliases(ADDRESS *);
 ADDRESS *mutt_parse_adrlist(ADDRESS *, const char *);
--- send.c.orig	2026-08-08 00:00:00 UTC
+++ send.c
@@ -743,6 +743,11 @@
   /* the CC field can get cluttered, especially with lists */
   env->to = mutt_remove_duplicates(env->to);
   env->cc = mutt_remove_duplicates(env->cc);
+  if (option(OPTREVREPLY))
+  {
+    env->to = mutt_reverse_address(env->to);
+    env->cc = mutt_reverse_address(env->cc);
+  }
   env->cc = mutt_remove_xrefs(env->to, env->cc);
 
   if (env->cc && !env->to)
--- sendlib.c.orig	2026-08-08 00:00:00 UTC
+++ sendlib.c
@@ -3142,8 +3142,40 @@
         mutt_set_parameter("x-mutt-noconv", "yes", &b->parameter);
       else
         mutt_delete_parameter("x-mutt-noconv", &b->parameter);
+    }
+  }
+}
+
+/* given a list of addresses, return a list of reverse_alias'ed addresses */
+ADDRESS *mutt_reverse_address(ADDRESS *addr)
+{
+  ADDRESS *top, *tmp, *alias;
+
+  if (addr == NULL)
+    return NULL;
+
+  if ((alias = alias_reverse_lookup(addr)) && alias->personal)
+  {
+    tmp = rfc822_cpy_adr_real(alias);
+    tmp->next = addr->next;
+    addr->next = NULL;
+    rfc822_free_address(&addr);
+    addr = tmp;
+  }
+
+  for (top = addr; top->next != NULL; top = tmp)
+  {
+    tmp = top->next;
+    if ((alias = alias_reverse_lookup(tmp)) && alias->personal)
+    {
+      top->next = rfc822_cpy_adr_real(alias);
+      top->next->next = tmp->next;
+      tmp->next = NULL;
+      rfc822_free_address(&tmp);
+      tmp = top->next;
     }
   }
+  return addr;
 }
 
 int mutt_write_fcc(const char *path, SEND_CONTEXT *sctx, const char *msgid, int post, const char *fcc)
