=== modified file 'copybump.py' (properties changed: +x to -x)
=== modified file 'cron/crontab.in.in' (properties changed: +x to -x)
=== modified file 'src/mailman/runners/lmtp.py'
--- src/mailman/runners/lmtp.py	2015-01-05 01:22:39 +0000
+++ src/mailman/runners/lmtp.py	2015-03-05 11:20:26 +0000
@@ -53,6 +53,7 @@
 from mailman.utilities.datetime import now
 from mailman.utilities.email import add_message_hash
 from zope.component import getUtility
+from mailman.interfaces.messages import IMessageStore
 
 
 elog = logging.getLogger('mailman.error')
@@ -93,6 +94,7 @@
 ERR_502 = '502 Error: command HELO not implemented'
 ERR_550 = '550 Requested action not taken: mailbox unavailable'
 ERR_550_MID = '550 No Message-ID header provided'
+ERR_550_DID = '550 Duplicate Message ID'
 
 # XXX Blech
 smtpd.__version__ = 'Python LMTP runner 1.0'
@@ -185,6 +187,11 @@
         # Do basic post-processing of the message, checking it for defects or
         # other missing information.
         message_id = msg.get('message-id')
+        msg_obj = getUtility(IMessageStore)
+            try:
+                msg_obj.add(msg)
+            except ValueError as e:
+                return ERR_550_DID
         if message_id is None:
             return ERR_550_MID
         if msg.defects:

