diff --git a/mimemail.inc b/mimemail.inc
index 83c95aa..f91565c 100644
--- a/mimemail.inc
+++ b/mimemail.inc
@@ -29,13 +29,17 @@ function mimemail_rfc_headers($headers) {
     if (drupal_strlen($value) > 60) {
       // If there's a semicolon, use that to separate.
       if (count($array = preg_split('/;\s*/', $value)) > 1) {
-        $value = trim(join(";$crlf    ", $array));
+        // Long Header Fields - a CRLF may be inserted before any WSP.
+        // http://tools.ietf.org/html/rfc2822#section-2.2.3
+        $value = trim(join(";$crlf ", $array));
       }
       else {
-        $value = wordwrap($value, 50, "$crlf    ", FALSE);
+        // Long Header Fields - a CRLF may be inserted before any WSP.
+        // http://tools.ietf.org/html/rfc2822#section-2.2.3
+        $value = wordwrap($value, 50, "$crlf ", FALSE);
       }
     }
-    $header .= "$key: $value$crlf";
+    $header .= $key . ":" . $value . $crlf;
   }
   return trim($header);
 }
diff --git a/mimemail.module b/mimemail.module
index ae3c42a..c168082 100644
--- a/mimemail.module
+++ b/mimemail.module
@@ -353,7 +353,8 @@ function mimemail_prepare_message($message) {
     }
   }
 
-  $subject = str_replace(array(" \n", "\n"), '', trim(drupal_html_to_text($subject)));
+  // Removing newline character introduced by _drupal_wrap_mail_line();
+  $subject = str_replace(array("\n"), '', trim(drupal_html_to_text($subject)));
 
   $hook = array(
     'mimemail_message__' . $key,
