hm. valgrind showed me that we're loosing 'W' so I grepped for it...
grep "'W'" *
internet_addressing.c: if (msg->cm_fields['W'] != NULL) {
internet_addressing.c: free(msg->cm_fields['W']);
internet_addressing.c: msg->cm_fields['W'] = strndup(value, valuelen);
internet_addressing.c: if (msg->cm_fields['W'] == NULL) { /* References: supersedes In-reply-to: */
internet_addressing.c: msg->cm_fields['W'] = strndup(value, valuelen);
internet_addressing.c: if (msg->cm_fields['W'] != NULL) {
internet_addressing.c: convert_references_to_wefewences(msg->cm_fields['W']);
msgbase.c: else if (i == 'W') {
msgbase.c: msg->cm_fields['W'] = strdup(recipient);
msgbase.c: imsg->cm_fields['W'] = strdup(recipient);
msgbase.c: msg->cm_fields['W'] = strdup(references);
are we double using that field?