Index: includes/mimemail.admin.inc
===================================================================
--- includes/mimemail.admin.inc	(revision 953)
+++ includes/mimemail.admin.inc	(working copy)
@@ -60,6 +60,12 @@
     '#collapsible'   => TRUE,
     '#collapsed'     => TRUE,
   );
+  $form['mimemail']['incoming']['mimemail_envelope_sender'] = array(
+    '#type'          => 'checkbox',
+    '#title'         => t('Set the envelope sender address'),
+    '#default_value' => variable_get('mimemail_envelope_sender', 0),
+    '#description'   => t('This option sets the envelope sender address with the <em>-f</em> sendmail option. This option will not be used if the site is running in <em>safe_mode</em>.'),
+  );
   $form['mimemail']['incoming']['mimemail_incoming'] = array(
     '#type'          => 'checkbox',
     '#title'         => t('Process incoming messages posted to this site'),
Index: mimemail.module
===================================================================
--- mimemail.module	(revision 978)
+++ mimemail.module	(working copy)
@@ -222,14 +222,19 @@
         $message['address'] = array($message['address']);
       }
       $status = TRUE;
+      if (variable_get('mimemail_envelope_sender', 0) && !ini_get('safe_mode') && isset($message['headers']['Return-Path'])) {
+      // If no explicit Return-path set, use From header and add Return-Path.
+        $return_path = preg_replace('/(.*<)?(.*?)>?/', "$2", $message['headers']['Return-Path']);
+        $additional_parameters = '-f'. $return_path;
+      }
       foreach ($message['address'] as $a) {
         $status = mail(
           $a,
           $message['subject'],
           $message['body'],
-          mimemail_rfc_headers($message['headers'])
+          mimemail_rfc_headers($message['headers']),
+          isset($additional_parameters)? $additional_parameters : NULL
         ) && $status;
-
       }
       return $status;
   }
