It seems that whenever you save a message on the IMAP server side there's a message for each save. At first glance there doesn't appear to be any problem on the client size ( except maybe a list of the same message in the drafts folder, but i was unable to get a rule for when these messages appear or not ), but after you restart the zope server the problem becomes evident. You have a message for each save ( for example if you add an attachment before each save, every mail has only the one attachment added before saving ) and there isn't a correct mail among those in the list. After some debugging it seems that when you save on the IMAP server, the method call (uid = connector.writeMessage(drafts.server_name, msg.getRawMessage()) in mailbox.py/class MailBox?/method saveEditorMessage ) returns an id for that message, and the id is always a new one ( incremented ), but the message in the editor never gets updated, and even i fix so it will get updated the problem still appears