diff --git a/includes/mimemail.rules.inc b/includes/mimemail.rules.inc
index 4b3fe2d..340b186 100644
--- a/includes/mimemail.rules.inc
+++ b/includes/mimemail.rules.inc
@@ -11,7 +11,7 @@
 /**
  * Action Implementation: Send HTML mail.
  */
-function rules_action_mimemail($to, $cc = NULL, $bcc = NULL, $from_name = NULL, $from_mail = NULL, $subject, $body, $plaintext = NULL, $attachments = array(), $settings, RulesState $state, RulesPlugin $element) {
+function rules_action_mimemail($to, $cc = NULL, $bcc = NULL, $from_name = NULL, $from_mail = NULL, $reply_to = NULL, $subject, $body, $plaintext = NULL, $attachments = array(), $settings, RulesState $state, RulesPlugin $element) {
   // Set the sender name and from address.
   if (empty($from_mail)) {
     $from = NULL;
@@ -43,6 +43,7 @@ function rules_action_mimemail($to, $cc = NULL, $bcc = NULL, $from_name = NULL,
     ),
     'cc' => $cc,
     'bcc' => $bcc,
+    'reply-to' => $reply_to,
     'plaintext' => $plaintext,
     'attachments' => $attachments,
   );
diff --git a/mimemail.module b/mimemail.module
index d06081d..905ebf2 100644
--- a/mimemail.module
+++ b/mimemail.module
@@ -173,6 +173,12 @@ function mimemail_rules_action_info() {
           'description' => t("The sender's address. Leave it empty to use the site-wide configured address."),
           'optional' => TRUE,
         ),
+        'reply_to' => array(
+          'type' => 'text',
+          'label' => t('Reply e-mail address'),
+          'description' => t("The address to reply to. Leave it empty to use the sender's address."),
+          'optional' => TRUE,
+        ),
         'subject' => array(
           'type' => 'text',
           'label' => t('Subject'),
@@ -326,22 +332,20 @@ function mimemail_mail($key, &$message, $params) {
     }
   }
 
-  // We also handle CC and BCC if it's set.
-  $params['cc'] = empty($params['cc']) ? array() : explode(',', $params['cc']);
-  $params['bcc'] = empty($params['bcc']) ? array() : explode(',', $params['bcc']);
-
-  if (!empty($params['cc'])) {
-    foreach ($params['cc'] as $key => $address) {
-      $params['cc'][$key] = token_replace($address, $context);
-    }
-    $message['headers']['Cc'] = implode(',', $params['cc']);
-  }
-
-  if (!empty($params['bcc'])) {
-    foreach ($params['bcc'] as $key => $address) {
-      $params['bcc'][$key] = token_replace($address, $context);
+  // We handle different address headers if set.
+  $address_headers = array(
+    'cc' => 'Cc',
+    'bcc' => 'Ccc',
+    'reply-to' => 'Reply-to',
+  );
+  foreach ($address_headers as $param_key => $address_header) {
+    $params[$param_key] = empty($params[$param_key]) ? array() : explode(',', $params[$param_key]);
+    if (!empty($params[$param_key])) {
+      foreach ($params[$param_key] as $key => $address) {
+        $params[$param_key][$key] = token_replace($address, $context);
+      }
+      $message['headers'][$address_header] = implode(',', $params[$param_key]);
     }
-    $message['headers']['Bcc'] = implode(',', $params['bcc']);
   }
 
   $message['to'] = token_replace($message['to'], $context);
