<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -11,6 +11,7 @@ import java.util.List;
 import com.android.email.Email;
 import com.android.email.Utility;
 import com.android.email.mail.MessagingException;
+import org.apache.james.mime4j.codec.EncoderUtil;
 
 public class MimeHeader {
     /**
@@ -97,12 +98,35 @@ public class MimeHeader {
         BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out), 1024);
         for (Field field : mFields) {
             if (!Utility.arrayContains(writeOmitFields, field.name)) {
-                writer.write(field.name + &quot;: &quot; + field.value + &quot;\r\n&quot;);
+                String v = field.value;
+
+                if (hasToBeEncoded(v)) {
+                    v = EncoderUtil.encodeEncodedWord(
+                        field.value,
+                        EncoderUtil.Usage.WORD_ENTITY
+                    );
+                }
+
+                writer.write(field.name + &quot;: &quot; + v + &quot;\r\n&quot;);
             }
         }
         writer.flush();
     }
 
+    // encode non printable characters except LF/CR codes.
+    public boolean hasToBeEncoded(String text) {
+        for (int i = 0; i &lt; text.length(); i++) {
+            char c = text.charAt(i);
+            if (c &lt; 0x20 || 0x7e &lt; c) { // non printable
+                if (c != 0x0a &amp;&amp; c != 0x0d) { // non LF/CR
+                    return true;
+                }
+            }
+        }
+
+        return false;
+    }
+
     class Field {
         String name;
 </diff>
      <filename>src/com/android/email/mail/internet/MimeHeader.java</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>c544904faf9f9120478b7bb797673957c0de1576</id>
    </parent>
  </parents>
  <author>
    <name>Daisuke Murase</name>
    <login></login>
    <email>typester@cpan.org</email>
  </author>
  <url>http://github.com/typester/android-k9mail/commit/9c37dbdf51ec8ef009b4c6564b0cddcf5f25cbc7</url>
  <id>9c37dbdf51ec8ef009b4c6564b0cddcf5f25cbc7</id>
  <committed-date>2009-07-01T04:43:10-07:00</committed-date>
  <authored-date>2009-07-01T04:43:10-07:00</authored-date>
  <message>Added adhoc header encode feature</message>
  <tree>bbe21698928d2ab4c4b88229a490c4796df48255</tree>
  <committer>
    <name>Daisuke Murase</name>
    <login></login>
    <email>typester@cpan.org</email>
  </committer>
</commit>
