-
- *h = safe_calloc (1, l + 2);
-
- strfcpy (*h, s, l + 1);
-
- format_address_header (h, a);
+
+ /* angle brackets for return path are mandated by RfC5322,
+ * so leave Return-Path as-is */
+ if (rp)
+ *h = safe_strdup (s);
+ else
+ {
+ *h = safe_calloc (1, l + 2);
+ strfcpy (*h, s, l + 1);
+ format_address_header (h, a);
+ }