Index: mailman-2.1.9/cron/gate_news =================================================================== --- mailman-2.1.9.orig/cron/gate_news 2009-04-17 02:41:00.000000000 +0200 +++ mailman-2.1.9/cron/gate_news 2009-04-17 02:41:11.000000000 +0200 @@ -171,6 +171,7 @@ msg['X-Originally-To'] = msg['To'] del msg['To'] msg['To'] = mlist.GetListEmail() + del msg['Newsgroups'] # Post the message to the locked list inq = get_switchboard(mm_cfg.INQUEUE_DIR) inq.enqueue(msg, Index: mailman-2.1.9/Mailman/Queue/NewsRunner.py =================================================================== --- mailman-2.1.9.orig/Mailman/Queue/NewsRunner.py 2009-04-17 02:39:54.000000000 +0200 +++ mailman-2.1.9/Mailman/Queue/NewsRunner.py 2009-04-17 02:41:11.000000000 +0200 @@ -59,6 +59,8 @@ def _dispose(self, mlist, msg, msgdata): # Make sure we have the most up-to-date state mlist.Load() + if msg['X-Mailman-ID']: + return False if not msgdata.get('prepped'): prepare_message(mlist, msg, msgdata) try: @@ -143,8 +145,7 @@ if lname == mlist.internal_name() and hname == mlist.host_name: hackmsgid = False if hackmsgid: - del msg['message-id'] - msg['Message-ID'] = Utils.unique_message_id(mlist) + msg['X-Mailman-ID'] = Utils.unique_message_id(mlist) # Lines: is useful if msg['Lines'] is None: # BAW: is there a better way?