Found the bug: mh_whom.c:65: warning: passing argument 4 of 'mu_argcv_get' from incompatible pointer type
Specifically, this warning refers to the call: mu_argcv_get (str, ",", NULL, &argc, &argv); in mh_alias_expand(), where argc is declared thus: size_t argc; but mu_argcv_get() expects it to be an int: extern int mu_argcv_get (const char *command, const char *delim, const char* cmnt, int *argc, char ***argv); That explains why I only saw the bug on a 64-bit system. I guess the other addresses I tried just were just luckier in terms of what ended up in the top 32 bits. The obvious patch seems to fix it: ===== --- mh/mh_whom.c +++ mh/mh_whom.c @@ -54,9 +54,9 @@ int mh_alias_expand (char *str, mu_address_t *paddr, int *incl) { - size_t argc; + int argc; char **argv; - size_t i; + int i; char *buf; mu_address_t exaddr = NULL; ===== -- Tim Bagot, BlueArc Engineering