Hello Russ (and everyone else who reads this)! With INN 2.4.1, if an article posted to a moderated newsgroup gets mailed to the moderator's address, the header is incorrectly formatted. For all known headers, an extra space is added after the colon. The "other" headers are correct. The function "MailArticle" in "nnrpd/post.c" has that typical for-loop which goes over all known headers in the "Table" array. In opposite to other occurences of that type of loop in nnrpd/post.c, the one in "MailArticle" doesn't check for leading spaces or tabs in "hp->Value". The attached patch fixes the bug. I simply inserted the same if/else-statement as used everywhere else in nnrpd/post.c. Besides that, I'm just wondering that "Value" points to the first character after the colon (usually a space or tab) instead of the second character or the first non-whitespace character after the colon (the start of the real content - isn't it what you usually want if you use "Value"?). However, that's a different story. ;-) Keep up the good work. It's a pleasure to use INN. Greetings, Andreas -- Attached file included as plaintext by Ecartis -- *** nnrpd/post.c_orig 2004-01-08 14:53:46.000000000 +0100 --- nnrpd/post.c 2004-05-06 13:10:19.000000000 +0200 *************** *** 630,636 **** /* Write the headers, a blank line, then the article. */ for (hp = Table; hp < ARRAY_END(Table); hp++) if (hp->Value) { ! fprintf(F, "%s: %s\n", hp->Name, hp->Value); if (FLUSH_ERROR(F)) { pclose(F); return CANTSEND; --- 630,639 ---- /* Write the headers, a blank line, then the article. */ for (hp = Table; hp < ARRAY_END(Table); hp++) if (hp->Value) { ! if (*hp->Value == ' ' || *hp->Value == '\t') ! fprintf(F, "%s:%s\n", hp->Name, hp->Value); ! else ! fprintf(F, "%s: %s\n", hp->Name, hp->Value); if (FLUSH_ERROR(F)) { pclose(F); return CANTSEND;