Index: modules/mime/mime.tcl
===================================================================
RCS file: /cvsroot/tcllib/tcllib/modules/mime/mime.tcl,v
retrieving revision 1.52
diff -w -u -r1.52 mime.tcl
--- modules/mime/mime.tcl	19 Sep 2006 23:36:17 -0000	1.52
+++ modules/mime/mime.tcl	2 Oct 2006 21:33:49 -0000
@@ -1827,6 +1827,8 @@
                 }
 
                 default {
+		    # Note RFC 2046: See buildmessageaux for details.
+
                     foreach part $state(parts) {
                         puts $channel "\n--$boundary"
                         mime::copymessage $part $channel
@@ -1855,9 +1857,9 @@
             puts $channel ""
 
             if {[string compare $converter ""]} {
-                puts $channel [$converter -mode encode -- $state(string)]
+                puts -nonewline $channel [$converter -mode encode -- $state(string)]
             } else {
-		puts $channel $state(string)
+		puts -nonewline $channel $state(string)
 	    }
         }
 	default {
@@ -2036,9 +2038,9 @@
 		    set size [expr {$size - [string length $X]}]
 		}
 		if {[string compare $converter ""]} {
-		    append result "[$converter -mode encode -- $X]\r\n"
+		    append result [$converter -mode encode -- $X]
 		} else {
-		    append result "$X\r\n"
+		    append result $X
 		}
 	    }
 
@@ -2065,6 +2067,21 @@
                 }
 
                 default {
+		    # Note RFC 2046:
+		    #
+		    # The boundary delimiter MUST occur at the
+		    # beginning of a line, i.e., following a CRLF, and
+		    # the initial CRLF is considered to be attached to
+		    # the boundary delimiter line rather than part of
+		    # the preceding part.
+		    #
+		    # - The above means that the CRLF before $boundary
+		    #   is needed per the RFC, and the parts must not
+		    #   have a closing CRLF of their own. See Tcllib bug
+		    #   1213527, and patch 1254934 for the problems when
+		    #   both file/string brnaches added CRLF after the
+		    #   body parts.
+
                     foreach part $state(parts) {
                         append result "\r\n--$boundary\r\n"
                         append result [buildmessage $part]
@@ -2080,13 +2097,12 @@
         }
 
         string {
-
             append result "\r\n"
 
 	    if {[string compare $converter ""]} {
-		append result "[$converter -mode encode -- $state(string)]\r\n"
+		append result [$converter -mode encode -- $state(string)]
 	    } else {
-		append result "$state(string)\r\n"
+		append result $state(string)
 	    }
         }
 	default {
Index: modules/mime/pkgIndex.tcl
===================================================================
RCS file: /cvsroot/tcllib/tcllib/modules/mime/pkgIndex.tcl,v
retrieving revision 1.16
diff -w -u -r1.16 pkgIndex.tcl
--- modules/mime/pkgIndex.tcl	19 Sep 2006 23:36:17 -0000	1.16
+++ modules/mime/pkgIndex.tcl	2 Oct 2006 21:33:49 -0000
@@ -1,3 +1,3 @@
 if {![package vsatisfies [package provide Tcl] 8.3]} {return}
-package ifneeded mime 1.5   [list source [file join $dir mime.tcl]]
+package ifneeded mime 1.5.1 [list source [file join $dir mime.tcl]]
 package ifneeded smtp 1.4.2 [list source [file join $dir smtp.tcl]]
