Index: includes/mail.inc
===================================================================
RCS file: /cvs/drupal/drupal/includes/mail.inc,v
retrieving revision 1.34
diff -u -p -r1.34 mail.inc
--- includes/mail.inc	28 Jul 2010 02:19:56 -0000	1.34
+++ includes/mail.inc	9 Nov 2010 08:13:39 -0000
@@ -321,7 +321,8 @@ function drupal_wrap_mail($text, $indent
   // Check if the string has line breaks.
   if (strpos($text, "\n") !== FALSE) {
     // Remove trailing spaces to make existing breaks hard.
-    $text = preg_replace('/ +\n/m', "\n", $text);
+    // Leave signature marker untouched (RFC 3676, Section 4.3).
+    $text = preg_replace('/(?(?<!^--) +\n|  +\n)/m', "\n", $text);
     // Wrap each line at the needed width.
     $lines = explode("\n", $text);
     array_walk($lines, '_drupal_wrap_mail_line', array('soft' => $soft, 'length' => strlen($indent)));
