Index: simplenews.module
===================================================================
RCS file: /cvs/drupal/contributions/modules/simplenews/simplenews.module,v
retrieving revision 1.76.2.129
diff -u -r1.76.2.129 simplenews.module
--- simplenews.module	9 Mar 2009 07:45:19 -0000	1.76.2.129
+++ simplenews.module	13 Mar 2009 15:04:23 -0000
@@ -1108,13 +1108,13 @@
   // Load subscription data based on available account informatioin
   // NOTE that the order of checking for snid, mail and uid is critical. mail must be checked *before* uid. See simplenews_subscribe_user()
   if (isset($account->snid)) {
-    $subscription = db_fetch_object(db_query("SELECT s.* FROM {simplenews_subscriptions} s LEFT JOIN {users} u ON u.uid = s.uid WHERE s.snid = %d", $account->snid));
+    $subscription = db_fetch_object(db_query("SELECT s.*, u.name, u.data FROM {simplenews_subscriptions} s LEFT JOIN {users} u ON u.uid = s.uid WHERE s.snid = %d", $account->snid));
   }
   elseif (isset($account->mail)) {
-    $subscription = db_fetch_object(db_query("SELECT s.* FROM {simplenews_subscriptions} s LEFT JOIN {users} u ON u.uid = s.uid WHERE s.mail = '%s'", $account->mail));
+    $subscription = db_fetch_object(db_query("SELECT s.*, u.name, u.data FROM {simplenews_subscriptions} s LEFT JOIN {users} u ON u.uid = s.uid WHERE s.mail = '%s'", $account->mail));
   }
   elseif (isset($account->uid) && $account->uid > 0) {
-    $subscription = db_fetch_object(db_query("SELECT s.* FROM {simplenews_subscriptions} s LEFT JOIN {users} u ON u.uid = s.uid WHERE s.uid = %d", $account->uid));
+    $subscription = db_fetch_object(db_query("SELECT s.*, u.name, u.data FROM {simplenews_subscriptions} s LEFT JOIN {users} u ON u.uid = s.uid WHERE s.uid = %d", $account->uid));
   }
 
   if (!empty($subscription)) {
@@ -1123,8 +1123,8 @@
     while ($newsletter = db_fetch_object($result)) {
       $subscription->tids[$newsletter->tid] = $newsletter->tid;
     }
-    $subscription->name = '';
     $subscription->language = user_preferred_language($subscription);
+    $subscription = drupal_unpack($subscription);
   }
   else {
     // Account is unknown in subscription table. Create default subscription object
@@ -1651,7 +1651,7 @@
       $plain = $message['params']['context']['node']->simplenews['s_format'] == 'plain';
       $message['result'] = mimemail(
         $message['from'],
-        $message['to'],
+        isset($message['params']['context']['account']) ? $message['params']['context']['account'] : $message['to'],
         $message['subject'],
         $message['body'],
         $plain,
