--- sort.c.orig	Tue Jul 25 10:03:53 2006
+++ sort.c	Thu Jul 27 15:21:57 2006
@@ -130,9 +130,14 @@
 		trace(TRACE_MESSAGE, "%s, %s: message id=%llu, size=%d is inserted", 
 				__FILE__, __func__, newmsgidnr, msgsize);
 		if (msgflags) {
-			trace(TRACE_MESSAGE, "%s, %s: message id=%llu, setting imap flags", 
-				__FILE__, __func__, newmsgidnr);
-			db_set_msgflag(newmsgidnr, mboxidnr, msgflags, IMAPFA_ADD);
+			int i;
+			for (i = 0; i < IMAP_NFLAGS; i++) 
+				if (msgflags[i]) {
+					trace(TRACE_MESSAGE, "%s, %s: message id=%llu, setting imap flags", 
+						__FILE__, __func__, newmsgidnr);
+					db_set_msgflag(newmsgidnr, mboxidnr, msgflags, IMAPFA_ADD);
+					break;
+				}
 		}
 		message->id = newmsgidnr;
 		return DSN_CLASS_OK;
