diff --git a/mailchimp.module b/mailchimp.module
index fb3a604..30388eb 100644
--- a/mailchimp.module
+++ b/mailchimp.module
@@ -89,6 +89,7 @@ function mailchimp_subscribe_user($list, $email, $merge_vars, $message = TRUE, $
     mailchimp_cache_clear_user($list->mc_list_id, $email);
 
     if ($success) {
+      module_invoke_all('mailchimp_subscribe_user', $list, $email);
       watchdog('mailchimp', '@email was subscribed to list @list.',
         array('@email' => $merge_vars['EMAIL'], '@list' => $list->label), WATCHDOG_NOTICE
       );
@@ -145,7 +146,7 @@ function mailchimp_update_user($list, $email, $merge_vars, $message = TRUE, $mca
  * @param string $email 
  * @param bool $message 
  * @param object $mcapi 
- * @param book $delete 
+ * @param bool $delete
  *   Indicates whether an email should be deleted or just unsubscribed.
  * @return bool
  */
@@ -154,8 +155,12 @@ function mailchimp_unsubscribe_user($list, $email, $message = TRUE, $mcapi = NUL
   if ($mcapi || $mcapi = mailchimp_get_api_object()) {
     if (mailchimp_is_subscribed($list->mc_list_id, $email)) {
       $success = $mcapi->listUnsubscribe($list->mc_list_id, $email, $delete, FALSE, FALSE);
-      if ($message && $success) {
-        drupal_set_message(t('You have unsubscribed from %list.', array('%list' => $list->label)));
+      if ($success) {
+        module_invoke_all('mailchimp_unsubscribe_user', $list, $email);
+
+        if ($message) {
+          drupal_set_message(t('You have unsubscribed from %list.', array('%list' => $list->label)));
+        }
       }
 
       // clear user cache
