Index: mailchimp.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/mailchimp/mailchimp.module,v
retrieving revision 1.2.2.1.2.3.2.8.2.47
diff -u -p -r1.2.2.1.2.3.2.8.2.47 mailchimp.module
--- mailchimp.module	4 Feb 2010 20:23:48 -0000	1.2.2.1.2.3.2.8.2.47
+++ mailchimp.module	6 Feb 2010 05:06:05 -0000
@@ -222,7 +222,7 @@ function mailchimp_subscribe_auth_form_s
         else if ($selected) {
         // subscribe the user if they are not previously subscribed or update existing subscriptions
           $merge_vars = _mailchimp_load_user_list_mergevars($account->uid, $list->id, $q->listMergeVars($list->id));
-          $merge_vars['EMAIL'] = $form_state['values']['mail'];
+          $merge_vars['EMAIL'] = isset($form_state['values']['mail']) ? $form_state['values']['mail'] : $account->mail;
           if (!empty($form_state['values']['mailchimp_list_'. $list->id .'_INTERESTS'])){
             $merge_vars['INTERESTS'] = implode(',', array_filter($form_state['values']['mailchimp_list_'. $list->id .'_INTERESTS']));
           }
@@ -886,6 +886,11 @@ function mailchimp_mailchimp_merge_value
   $out = (array)$user;
   foreach ((array)$user as $key => $value) {
     if (is_array($value) && $key != 'role') {
+      foreach ($value as $k => $v) {
+        if (!is_scalar($v)) {
+          unset($value[$k]);
+        }
+      }
       $out[$key] = implode('/', $value);
     }
     elseif (in_array($key, array('login', 'access', 'created'))) {
