Index: uc_mailchimp.module
===================================================================
--- uc_mailchimp.module	(revision 1390)
+++ uc_mailchimp.module	(working copy)
@@ -97,14 +97,15 @@
   switch ($op) {
     case 'view':
         $lists = _uc_mailchimp_call_api('lists');
- foreach($lists as $list){
-  if (variable_get("uc_mailchimp_{$list['id']}_checkout_pane_enabled",0)) {
-    $contents[$list['id']] = array(
-    '#type' => 'checkbox',
-    '#title' => t(variable_get("uc_mailchimp_{$list['id']}_checkout_pane_label",'Subscribe To The '.$list['name'].' Mailing List')),
-    '#default_value' => variable_get("uc_mailchimp_{$list['id']}_checkout_pane_toggled",1),
-    );
-  }
+  foreach($lists as $list){
+    $subscribed = _mailchimp_is_subscribed($list['id'], $user->mail, _mailchimp_get_api_object()); // current user is subscribed
+	  if (variable_get("uc_mailchimp_{$list['id']}_checkout_pane_enabled",0) && !$subscribed) {
+	    $contents[$list['id']] = array(
+	    '#type' => 'checkbox',
+	    '#title' => t(variable_get("uc_mailchimp_{$list['id']}_checkout_pane_label",'Subscribe To The '.$list['name'].' Mailing List')),
+	    '#default_value' => variable_get("uc_mailchimp_{$list['id']}_checkout_pane_toggled",1),
+	    );
+	  }
  }
           return array('description' => variable_get('uc_mailchimp_checkout_pane_desc',''), 'contents' => $contents);
         break;
@@ -299,7 +300,8 @@
 function uc_mailchimp_action_ecom_update($order) {
     global $user;
     foreach ($order->uc_mailchimp as $list => $toggle) {//Foreach mailchimp list that this order is subscribing to.
-        if($toggle){//if the list element was toggled
+        $subscribed = _mailchimp_is_subscribed($list, $user->mail, _mailchimp_get_api_object()); // current user is subscribed
+        if($toggle && !$subscribed){ //if the list element was toggled and current user not subscribed
               //Parameters
             $params = array($list,$order->primary_email,array('FNAME'=>$order->billing_first_name,'LNAME'=>$order->billing_last_name),'html',false,TRUE);
             if(UC_MC_DEBUG && UC_MC_ADMIN){
