diff --git a/modules/signup/rsvp_signup.module b/modules/signup/rsvp_signup.module
index cf181aa..10d398b 100644
--- a/modules/signup/rsvp_signup.module
+++ b/modules/signup/rsvp_signup.module
@@ -43,7 +43,7 @@ function rsvp_signup_form_submit($form, &$form_state) {
   // Signup module integration; if a valid user (real or anonymous),
   // is confirming his/her attendance, and has not already signed up
   // for this event, sign him/her up for it.
-  if ($reply == RSVP_ATT_YES && module_exists('signup')) {
+  if ($reply == RSVP_ATT_YES) {
     include_once('./'. drupal_get_path('module', 'signup') . '/includes/no_views.inc');
     
     // check first if the signup status is set to open. 
@@ -54,8 +54,7 @@ function rsvp_signup_form_submit($form, &$form_state) {
       return;
     }
     
-  	if ( $invite_target->uid > 0 ) {
-
+  	if ($invite_target->uid > 0) {
       // Sign up the registered user.
       $signups = signup_list_user_signups($invite_target->uid);
       if (!in_array($rsvp->nid, array_keys($signups))) {
@@ -79,7 +78,16 @@ function rsvp_signup_form_submit($form, &$form_state) {
       }
     }
   }
-
+  // If the user replied NO to the rsvp, we need to remove them
+  // from the signup list, if they're on it
+  else if ($reply == RSVP_ATT_NO) {
+    // Attempt to find a sid for the user and node
+    $sql = "SELECT sid FROM {signup_log} WHERE uid = %d AND nid = %d";
+    if ($sid = db_result(db_query($sql, $invite_target->uid, $rsvp->nid))) {
+      // Remove from the signup list
+      signup_cancel_signup($sid);
+    }
+  }
 }
 
 
