diff --git mailchimp.admin.inc mailchimp.admin.inc
index f4121ab..7171d97 100644
--- mailchimp.admin.inc
+++ mailchimp.admin.inc
@@ -42,7 +42,7 @@ function mailchimp_admin_settings() {
             '#tree'         => TRUE
         );
         foreach ($lists as $list) {
-          $saved_list = unserialize(variable_get('mailchimp_lists', NULL));
+          $saved_list = variable_get('mailchimp_lists', array());
           $saved_list = $saved_list[$list['id']];
 
           $form['mailchimp_lists']['mailchimp_list_' . $list['id']] = array(
@@ -255,5 +255,5 @@ function mailchimp_admin_settings_validate($form, &$form_state) {
 
   // remove lists from the form_state
   unset($form_state['values']['mailchimp_lists']);
-  variable_set('mailchimp_lists', serialize($lists));
+  variable_set('mailchimp_lists', $lists);
 }
diff --git mailchimp.install mailchimp.install
index 78a98b7..a18b4e8 100644
--- mailchimp.install
+++ mailchimp.install
@@ -91,6 +91,24 @@ function mailchimp_update_6202() {
 }
 
 /**
+ * Implements hook_update_N().
+ *
+ * Fix for double serialized list data
+ */
+function mailchimp_update_7001() {
+  $lists = variable_get('mailchimp_lists', array());
+
+  if (!empty($lists)) {
+    $unserialized_list = unserialize($lists);
+    if ($unserialized_list) {
+      variable_set('mailchimp_lists', $unserialized_list);
+    }
+  }
+
+  return TRUE;
+}
+
+/**
  * Implements hook_uninstall().
  */
 function mailchimp_uninstall() {
diff --git mailchimp.module mailchimp.module
index b9f5051..6604136 100644
--- mailchimp.module
+++ mailchimp.module
@@ -19,7 +19,7 @@ function mailchimp_form_user_register_form_alter(&$form, &$form_state) {
   $edit = $form;
   $account = $form['#user'];
   $category = $form['#user_category'];
-  if (TRUE && variable_get('mailchimp_user_register', TRUE)) {
+  if (variable_get('mailchimp_user_register', TRUE)) {
     $account->roles = array(2 => 'authenticated');
     if (count(_mailchimp_get_available_lists($account)) > 0 ) {
       // wrap in a fieldset
@@ -27,7 +27,7 @@ function mailchimp_form_user_register_form_alter(&$form, &$form_state) {
         '#type' => 'fieldset',
         '#title' => t('Newsletters')
       );
-      $form['mailchimp_lists'][] = mailchimp_subscribe_auth_form(NULL, $account, FALSE);
+      $form['mailchimp_lists'][] = mailchimp_subscribe_auth_form(NULL, NULL, $account, FALSE);
       $form['#submit'][] = 'mailchimp_subscribe_auth_form_submit';
     }
   }
@@ -134,7 +134,7 @@ function mailchimp_user_update(&$edit, $account, $category) {
  */
 function mailchimp_subscribe_auth_form($form, $form_state, $account, $standalone = TRUE, $list = NULL) {
   if ($q = _mailchimp_get_api_object()) {
-    if ($account->uid) {
+    if ($account->uid > 0) {
       $form['uid'] = array(
         '#type' => 'hidden',
         '#value' => $account->uid
@@ -171,7 +171,7 @@ function mailchimp_auth_newsletter_form(&$form, $list, $account, $q) {
 
   // ignore required lists, handled by hook_user
   if ($list->listtype !== MAILCHIMP_LISTTYPE_REQUIRED) {
-    if ($account && $account->uid) {
+    if ($account && $account->uid > 0) {
       $memberinfo = $q->listMemberInfo($list->id, $account->mail);
       $is_subscribed = $memberinfo['status'] == 'subscribed';
       $default_value = $is_subscribed;
@@ -759,6 +759,7 @@ function mailchimp_mailchimp_merge_keys() {
  * @return string
  */
 function implode_recursive($glue, $pieces) {
+  $retVal = array();
   foreach ($pieces as $piece) {
     if (is_array($piece)) {
       $retVal[] = implode_recursive($glue, $piece);
@@ -828,7 +829,7 @@ function mailchimp_get_merge_values($uid) {
  */
 function _mailchimp_load_user_list_mergevars($uid, $list_id, $mergevars) {
   $account = mailchimp_get_merge_values($uid);
-  $lists = unserialize(variable_get('mailchimp_lists', array()));
+  $lists = variable_get('mailchimp_lists', array());
   $list = $lists[$list_id];
 
   $uservars = array(
@@ -919,10 +920,9 @@ function _mailchimp_unsubscribe_user($list, $mail, $message = TRUE, $q = NULL) {
  * Get all of the lists that the given user can subscribe to
  */
 function _mailchimp_get_available_lists($user) {
-  $all_lists = variable_get('mailchimp_lists', array());
+  $all_lists = variable_get('mailchimp_lists', NULL);
   $available_lists = array();
-  if (!empty($all_lists)) {
-    $all_lists = unserialize($all_lists);
+  if (is_array($all_lists)) {
     foreach ($all_lists as $key => $list) {
       foreach ($user->roles as $rid => $info) {
         if (!empty($list->roles[$rid])) {
@@ -940,10 +940,8 @@ function _mailchimp_get_available_lists($user) {
  * Get all of the lists that the given user must be subscribed to
  */
 function _mailchimp_get_required_lists() {
-  $data = variable_get('mailchimp_lists', NULL);
-  $lists = array();
-  if (!empty($data)) {
-    $lists = unserialize($data);
+  $lists = variable_get('mailchimp_lists', NULL);
+  if (is_array($lists)) {
     foreach ($lists as $key => $list) {
       if ($list->listtype !== MAILCHIMP_LISTTYPE_REQUIRED) {
         unset($lists[$key]);
@@ -975,9 +973,8 @@ function _mailchimp_get_api_object() {
  */
 function mailchimp_block_info() {
   $blocks = array();
-  $all_lists = variable_get('mailchimp_lists', array());
-  if (!empty($all_lists)) {
-    $all_lists = unserialize($all_lists);
+  $all_lists = variable_get('mailchimp_lists', NULL);
+  if (is_array($all_lists)) {
     foreach ($all_lists as $key => $list) {
       // exclude required lists
       if ($list->listtype !== MAILCHIMP_LISTTYPE_REQUIRED) {
