The fix should be implemented in the function imap_sync_mailbox() in imap.c. Instead of deleting all mail at once the list of UIDs should be limited to a certain size. Cyrus 2.1 doesn't like it to be larger than 8k for example, for Cyrus 2.2 the limit seems to be at 16k I've heard.
Implementing a loop in this function will probably require the function imap_make_msg_set() to take another argument so that it can stop after a certain size is reached. The IMAP commands for removing mails are UID STORE <list of uids> EXPUNGE Regards, Joey -- Never trust an operating system you don't have source for! Please always Cc to me when replying to me on the lists. -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]