Index: mailets-function/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java
===================================================================
--- mailets-function/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java	(revision 671499)
+++ mailets-function/src/main/java/org/apache/james/transport/mailets/RemoteDelivery.java	(working copy)
@@ -916,11 +916,18 @@
                 convertTo7Bit((MimePart)parts.getBodyPart(i));
             }
         } else {
+            // The content may already be in encoded the form (likely with mail created from a
+            // stream).  In that case, just changing the encoding to quoted-printable will mangle 
+            // the result when this is transmitted.  We must first convert the content into its 
+            // native format, set it back, and only THEN set the transfer encoding to force the 
+            // content to be encoded appropriately. 
             if (part.isMimeType("text/*")) {
+                part.setContent(part.getContent(), part.getContentType()); 
                 part.setHeader("Content-Transfer-Encoding", "quoted-printable");
                 part.addHeader("X-MIME-Autoconverted", "from 8bit to quoted-printable by "+getMailetContext().getServerInfo());
             } else {
                 // if the part doesn't contain text it will be base64 encoded.
+                part.setContent(part.getContent(), part.getContentType()); 
                 part.setHeader("Content-Transfer-Encoding", "base64");
                 part.addHeader("X-MIME-Autoconverted", "from 8bit to base64 by "+getMailetContext().getServerInfo());
             }
