diff -ruwNBb old/uc_order.ca.inc new/uc_order.ca.inc
--- old/uc_order.ca.inc	2012-10-22 08:24:58.000000000 -0400
+++ new/uc_order.ca.inc	2012-10-31 13:00:15.000000000 -0400
@@ -1210,14 +1210,13 @@
     'user' => $account,
   );
 
-  // Apply token replacements to from e-mail address.
+  // Apply token replacements to e-mail recipient and from addresses.
+  $addresses = token_replace_multiple($settings['addresses'], $settings['replacements']);
   $from = token_replace_multiple($settings['from'], $settings['replacements']);
   if (empty($from)) {
     $from = uc_store_email_from();
   }
 
-  // Apply token replacements to recipient e-mail addresses.
-  $addresses = token_replace_multiple($settings['addresses'], $settings['replacements']);
   // Split up our recipient e-mail addresses.
   $recipients = array();
   foreach (explode("\n", $addresses) as $address) {
@@ -1316,6 +1315,12 @@
   $recipients = array();
   $addresses = token_replace_multiple($settings['addresses'], $settings['replacements']);
 
+  // Apply token replacements to from e-mail address.
+  $from = token_replace_multiple($settings['from'], $settings['replacements']);
+  if (empty($from)) {
+    $from = uc_store_email_from();
+  }
+  
   foreach (explode("\n", $addresses) as $address) {
     $recipients[] = trim($address);
   }
@@ -1328,8 +1333,7 @@
   }
 
   foreach ($recipients as $email) {
-    $sent = drupal_mail('uc_order', 'action-mail', $email, uc_store_mail_recipient_language($email), $settings, empty($settings['from']) ? uc_store_email_from() : $settings['from']);
-
+      $sent = drupal_mail('uc_order', 'action-mail', $email, uc_store_mail_recipient_language($email), $settings, $from);
     if (!$sent['result']) {
       watchdog('ca', 'Attempt to e-mail invoice for order @order_id to @email failed.', array('@email' => $email, '@order_id' => $order->order_id), WATCHDOG_ERROR);
     }
diff -ruwNBb old/uc_order.module new/uc_order.module
--- old/uc_order.module	2012-10-22 08:24:58.000000000 -0400
+++ new/uc_order.module	2012-10-31 13:00:50.000000000 -0400
@@ -610,11 +610,12 @@
     case 'action-mail':
       // Assemble an email message from the conditional actions settings.
       $message['headers']['Content-Type'] = 'text/html; charset=UTF-8; format=flowed';
-      $message['from'] = $params['from'];
 
-      // Perform token replacement on the subject and body.
+      // Perform token replacement on the subject, body and from.
       $subject = token_replace_multiple($params['subject'], $params['replacements']);
       $body = token_replace_multiple($params['message'], $params['replacements']);
+      $message['from'] = token_replace_multiple($params['from'], $params['replacements']);
+      
 
       // Strip newline characters from e-mail subjects.
       // TODO: Maybe drupal_mail_send() should do this? -LM
