--- signup_old.module	2007-05-10 02:30:30.000000000 -0500
+++ signup.module	2007-06-26 12:19:11.000000000 -0500
@@ -556,7 +556,7 @@ function signup_nodeapi(&$node, $op, $te
       // If this is a signup node, start checks for what's to be printed.
       // Only include any of this if we're trying to view the node as
       // a page, not during the view from comment validation, etc.
-      if ($node->signup && $page && !in_array(TRUE, $suppress)) {
+      if ($node->signup && ($page || $teaser) && !in_array(TRUE, $suppress)) {
         global $user;
 
         // The node has been closed for signups, and the user has
@@ -611,7 +611,7 @@ function signup_nodeapi(&$node, $op, $te
             // User isn't signed up, so check to make sure they have signup
             // permissions, and if so, print the themed signup form.
             if (user_access('sign up for content')) {
-              $output = drupal_get_form('signup_form', $node, $anon_signup_form);
+              $output = drupal_get_form('signup_form-' . $node->nid, $anon_signup_form,  $node);
             }
           }
           else {
@@ -660,7 +660,7 @@ function _signup_print_current_signup($n
   if (!empty($rows)) {
     $output .= theme('table', $header, $rows);
   }
-  $output .= drupal_get_form('signup_form_cancel', $node);
+  $output .= drupal_get_form('signup_form_cancel-' . $node->nid, $node, $node);
   return $output;
 }
 
@@ -675,7 +675,6 @@ function _signup_print_current_signup($n
  */
 function signup_form($node, $anon_signup_form = NULL) {
   global $user;
-
   $form['nid'] = array('#type' => 'value', '#value' => $node->nid);
   $form['uid'] = array('#type' => 'value', '#value' => $user->uid);
 
@@ -697,6 +696,10 @@ function signup_form($node, $anon_signup
     '#type' => 'submit',
     '#value' => t('Sign up'),
   );
+	
+  $form['#submit'] = array('signup_form_submit' => NULL);
+  $form['#validate'] = array('signup_form_validate' => NULL);	
+	
   return $form;
 }
 
@@ -709,6 +712,9 @@ function signup_form_cancel($node) {
   $form['nid'] = array('#type' => 'value', '#value' => $node->nid);
   $form['uid'] = array('#type' => 'value', '#value' => $user->uid);
   $form['submit'] = array('#type' => 'submit', '#value' => t('Cancel Signup'));
+	
+	$form['#submit'] = array('signup_form_cancel_submit' => NULL);
+	
   return $form;
 }
 
@@ -1410,6 +1416,9 @@ function signup_forms() {
   $args = func_get_args();
   $args = $args[0];
   $form_id = array_shift($args);
+	$form_id_base = explode("-", $form_id);
+	$form_id_base = $form_id_base[0];
+	
   if (strpos($form_id, 'signup_user_cancel_form') !== FALSE) {
     if ($form_id == 'signup_user_cancel_form_' . $args[0]) {
       array_shift($args);  // Get rid of the extra uid arg.
@@ -1420,6 +1429,21 @@ function signup_forms() {
       return $forms;
     }
   }
+	
+	if ($form_id_base == "signup_form" || $form_id_base == "signup_form_cancel"){
+		if ($form_id_base == "signup_form") {
+			$forms[$form_id] = array('callback' => 'signup_form',
+				'callback arguments' => array($args[1]),	
+			);
+		}
+	
+		if ($form_id_base == "signup_form_cancel") {
+			$forms[$form_id] = array('callback' => 'signup_form_cancel',
+				'callback arguments' =>  array($args[1]),	
+			);
+		}
+		return $forms;
+	}
 }
 
 function signup_user_cancel_form($nid, $uid, $anon_mail) {
@@ -1561,7 +1585,7 @@ function signup_build_signup_data($data,
 
   switch ($type) {
     case 'table':
-      static $rows = array();
+      $rows = array();
       // Loop through each first level element.
       foreach ($data as $key => $value) {
         // Element is nested, render it recursively.
