diff -ru -I Id: -x CVS -N dbmail/imaputil.c dbmail.working/imaputil.c
--- dbmail/imaputil.c	2002-12-05 09:55:29.000000000 +1300
+++ dbmail.working/imaputil.c	2002-12-05 09:08:59.000000000 +1300
@@ -2228,19 +2228,20 @@
 {
   int i,cnt;
 
-  cnt = fprintf(outstream, "\"");
-
-  for (i=0; s[i]; i++)
-    {
-      if (iscntrl(s[i]) || s[i] == (char)0xFF)
-	cnt += fprintf(outstream,"%%%02X",s[i]);
-      else if (s[i] == '"' || s[i] == '\\')
-	cnt += fprintf(outstream, "\\%c",s[i]);
-      else
-	cnt += fprintf(outstream, "%c", s[i]);
+  for (i = 0; i < strlen(s); i++) { // check if must use literal
+    if (!(s[i] & 0xe0) || (s[i] & 0x80) || (s[i] == '"') || (s[i] == '\\')) {
+      cnt = fprintf(outstream, "{");
+      cnt += fprintf(outstream, "%i", strlen(s));
+      cnt += fprintf(outstream, "}\015\012");
+      cnt += fprintf(outstream, "%s", s);
+      return cnt;
     }
+  }
 
+  cnt = fprintf(outstream, "\"");
+  cnt += fprintf(outstream, "%s", s);
   cnt += fprintf(outstream, "\"");
+  
   return cnt;
 }
 
