diff --git a/lib/modules/MIME.pmod b/lib/modules/MIME.pmod
index 6890ec5d7086bd74d6934edac4475fe0a13d557b..1a44c42324f441642274888c6ca31da792e64b73 100644
--- a/lib/modules/MIME.pmod
+++ b/lib/modules/MIME.pmod
@@ -1,5 +1,5 @@
 /*
- * $Id: MIME.pmod,v 1.3 1997/03/26 21:11:07 grubba Exp $
+ * $Id: MIME.pmod,v 1.4 1997/05/05 12:33:11 marcus Exp $
  *
  * RFC1521 functionality for Pike
  *
@@ -34,13 +34,14 @@ class support {
     }
   }
   
-  string encode( string data, string encoding, void|string filename )
+  string encode( string data, string encoding, void|string filename,
+		 void|int stripcrlf )
   {
     switch (lower_case( encoding || "binary" )) {
     case "base64":
-      return encode_base64( data );
+      return (stripcrlf? encode_base64( data )-"\r\n" : encode_base64( data ));
     case "quoted-printable":
-      return encode_qp( data );
+      return (stripcrlf? encode_qp( data )-"\r\n" : encode_qp( data ));
     case "x-uue":
       return encode_uue( data, filename );
     case "7bit":
@@ -92,7 +93,7 @@ class support {
       throw (({ "invalid rfc1522 encoding "+encoding+"\n", backtrace() }));
     }  
     return "=?"+word[1]+"?"+encoding[0..0]+"?"+
-      replace( encode( word[0], encoding ),
+      replace( encode( word[0], encoding, 0, 1 ),
 	       ({ "?", "_" }), ({ "=3F", "=5F" }))+"?=";
   }