=== modified file 'sites/all/modules/signup_status/signup_status.module'
--- sites/all/modules/signup_status/signup_status.module	2009-01-16 04:01:11 +0000
+++ sites/all/modules/signup_status/signup_status.module	2009-01-18 09:58:58 +0000
@@ -986,6 +986,8 @@
   // check to see if there are "approved" seats available
   $limits = signup_status_get_node_code_limits($nid);
   $totals = signup_status_get_node_code_totals($nid);
+  $total_approved = signup_status_get_total_approved_signups($nid);
+  $totals[1] = $total_approved;
   $seats_available = $limits[1] - $totals[1];
   if ($seats_available <= 0) {
     // do nothing, we can't transition any users because "approved" slots are full
@@ -1495,3 +1497,15 @@
   $codes = signup_status_codes();
   return $codes[$value]['name'];
 }
+
+function signup_status_signup_cancel($node, $uid) {
+  signup_status_auto_transition($node->nid);
+}
+
+function signup_status_cron() {
+  $sql = 'select distinct nid from {signup_status_log} where timestamp > (UNIX_TIMESTAMP() - 400)';
+  $r = db_query($sql);
+  while ($node = db_fetch_object($r)) {
+    signup_status_auto_transition($node->nid);
+  }
+}
