Index: services/system_service/system_service.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/services/services/system_service/Attic/system_service.module,v
retrieving revision 1.3.2.3
diff -u -p -r1.3.2.3 system_service.module
--- services/system_service/system_service.module	8 May 2008 00:24:54 -0000	1.3.2.3
+++ services/system_service/system_service.module	6 Aug 2008 22:20:23 -0000
@@ -34,7 +34,7 @@ function system_service_service() {
     // system.mail
     array(
       '#method'   => 'system.mail',
-      '#callback' => 'system_service_mail',
+      '#callback' => 'system_service_mailprepare',
       '#access arguments' => array('send mail from remote'),
       '#args'     => array(
         array(
@@ -143,8 +143,12 @@ function system_service_connect() {
 /**
  * Send an email using the Services module.
  */ 
-function system_service_mail($mailkey, $to, $subject, $body, $from = NULL, $headers = array()) {
-  $status = drupal_mail($mailkey, $to, $subject, $body, $from, $headers);
+function system_service_mailprepare($mailkey, $to, $subject, $body, $from = NULL, $headers = array()) {
+	$params = array();
+	$params['subject'] = $subject;
+	$params['body'] = $body;
+	$params['headers'] = $headers;
+  $status = drupal_mail('system_service',$mailkey, $to, user_preferred_language($to), $params, $from, TRUE);
   if (!$status) {
     return services_error(t('There was a problem sending your email.'));
   }
@@ -152,6 +156,16 @@ function system_service_mail($mailkey, $
   return $status;
 }
 
+function system_service_mail($mailkey,&$message,$params) {
+	$language = $message['language'];
+	$variables = user_mail_tokens($params['account'], $language);
+	$message['subject'] = t($params['subject'], $variables, $language->language);
+	$message['body'] = t($params['body'], $variables, $language->language);
+	foreach($params['headers'] as $header => $val) {
+		$message['headers'][$header] = $val;
+	}
+}
+
 /**
  * Returns a specified variable.
  */
