Index: mailchimp.module
===================================================================
--- mailchimp.module	(revision 534)
+++ mailchimp.module	(working copy)
@@ -112,11 +112,11 @@
           }
           else {
             // They don't *really* need to go in the queue unless they just changed their prefs.
-            if ($op == 'insert') {
-              db_query("INSERT INTO {mailchimp_user} (uid, status) VALUES (%d, '%s')", $account->uid, MAILCHIMP_USERSTATUS_PENDING);
+            if (db_result(db_query("SELECT uid FROM {mailchimp_user} WHERE uid = %d", $account->uid))) {
+              db_query("UPDATE {mailchimp_user} SET status = '%s' WHERE uid = %d", MAILCHIMP_USERSTATUS_PENDING, $account->uid);
             }
             else {
-              db_query("UPDATE {mailchimp_user} SET status = '%s' WHERE uid = %d", MAILCHIMP_USERSTATUS_PENDING, $account->uid);
+              db_query("INSERT INTO {mailchimp_user} (uid, status) VALUES (%d, '%s')", $account->uid, MAILCHIMP_USERSTATUS_PENDING);
             }
           }
           break;
