diff -urp signup_pay_orig/signup_pay.module signup_pay/signup_pay.module
--- signup_pay_orig/signup_pay.module	2008-03-20 16:12:17.000000000 -0500
+++ signup_pay/signup_pay.module	2008-03-25 16:42:22.000000000 -0500
@@ -3,13 +3,16 @@
 // $Id: signup_pay.module,v 1.2.2.1 2008/03/20 21:12:17 kbahey Exp $
 
 // Variables
+define('SIGNUP_PAY_ENABLED',              'signup_pay_enabled_default');
 define('SIGNUP_PAY_EMAIL',                'signup_pay_email');
 define('SIGNUP_PAY_AMOUNT',               'signup_pay_amount');
 define('SIGNUP_PAY_CURRENCY',             'signup_pay_currency');
 define('SIGNUP_PAY_RECEIPT_PAGE',         'signup_pay_receipt_page');
 define('SIGNUP_PAY_RECEIPT_EMAIL',        'signup_pay_receipt_email');
+define('SIGNUP_PAY_ROLE_WEIGHT',        	'signup_pay_role_weight');
 
 // Defaults
+define('SIGNUP_PAY_DEFAULT_ENABLED',      FALSE);
 define('SIGNUP_PAY_DEFAULT_EMAIL',        'donations@drupal.org');
 define('SIGNUP_PAY_DEFAULT_AMOUNT',       60.00);
 define('SIGNUP_PAY_DEFAULT_CURRENCY',     'EUR');
@@ -49,6 +52,12 @@ function signup_pay_get_currency() {
 }
 
 function signup_pay_settings() {
+	$form[SIGNUP_PAY_ENABLED] = array(
+		'#type' 					=> 'checkbox',
+		'#title'					=> t('Use payment for signup on all new signup enabled nodes by default'),
+		'#default_value'	=> variable_get(SIGNUP_PAY_ENABLED, SIGNUP_PAY_DEFAULT_ENABLED),
+		);
+
   $form[SIGNUP_PAY_EMAIL] = array(
     '#type' => 'textfield',
     '#title' => t('Payment email address'),
@@ -546,21 +555,24 @@ function signup_pay_form_alter($form_id,
   // Intercept signup form
   switch ($form_id) {
     case 'signup_form':
-      $default_rid = signup_pay_find_user_role($user);
-      $pay_roles = signup_pay_get_node_pay_roles($form['nid']['#value']);
-      $form['collapse']['signup_user_form']['payment'] = array(
-        '#value' => t('<div>The price you pay: %amount</div>', array('%amount' => _signup_pay_format_amount($pay_roles[$default_rid]['amount'],$pay_roles[$default_rid]['currency']))),
-      );
-      $form['collapse']['signup_user_form']['method'] = array(
-        '#type'          => 'radios',
-        '#title'         => t('Payment method'),
-        '#options'       => signup_pay_get_methods(),
-        '#default_value' => SIGNUP_PAY_METHOD_PAYPAL,
-        '#description'   => t('Select a method of payment. If you select Paypal, you will be redirected to the Paypal site where you can pay using your credit card or balance from Paypal.'),
-        '#after_build'   => array('signup_pay_form_check'),
-      );
-      // Add a redirect to our Paypal form
-      $form['#redirect'] = 'signup_pay_do_payment';
+			$node = $form['#parameters'][1];
+			if ($node->signup_pay_enabled) {
+	      $default_rid = signup_pay_find_user_role($user);
+	      $pay_roles = signup_pay_get_node_pay_roles($form['nid']['#value']);
+	      $form['collapse']['signup_user_form']['payment'] = array(
+	        '#value' => t('<div>The price you pay: %amount</div>', array('%amount' => _signup_pay_format_amount($pay_roles[$default_rid]['amount'],$pay_roles[$default_rid]['currency']))),
+	      );
+	      $form['collapse']['signup_user_form']['method'] = array(
+	        '#type'          => 'radios',
+	        '#title'         => t('Payment method'),
+	        '#options'       => signup_pay_get_methods(),
+	        '#default_value' => SIGNUP_PAY_METHOD_PAYPAL,
+	        '#description'   => t('Select a method of payment. If you select Paypal, you will be redirected to the Paypal site where you can pay using your credit card or balance from Paypal.'),
+	        '#after_build'   => array('signup_pay_form_check'),
+	      );
+	      // Add a redirect to our Paypal form
+	      $form['#redirect'] = 'signup_pay_do_payment';
+			}
       break;
       
     case $form['type']['#value'] .'_node_form':
@@ -572,7 +584,7 @@ function signup_pay_form_alter($form_id,
 }
 
 /**
- * find user role for determining amount and currencty
+ * find user role for determining amount and currency
  */
 function signup_pay_find_user_role(&$user) {
   $role_weight_list = variable_get(SIGNUP_PAY_ROLE_WEIGHT, 0);
@@ -587,7 +599,7 @@ function signup_pay_find_user_role(&$use
 }
 
 /**
- * alter node edit form to admin role, amount, currency per nod
+ * alter node edit form to admin role, amount, currency per node
  */
 function signup_pay_alter_node_form($form_id, &$form) {
   $node = $form['#node'];
@@ -595,9 +607,23 @@ function signup_pay_alter_node_form($for
   $form['signup']['node_settings']['settings']['signup_pay_per_role'] = array(
     '#type' => 'fieldset',
     '#title' => t('Signup Amount Per Role'),
-    '#tree' => TRUE
+		'#collapsible' => TRUE,
+		'#collapsed' => TRUE,
+    '#tree' => TRUE,
   );
   $weight = 0;
+	if ($node->nid) {
+		$enabled = (count($node->pay_roles)) ? 1 : 0;
+	}
+	else {
+		$enabled = variable_get(SIGNUP_PAY_ENABLED, SIGNUP_PAY_DEFAULT_ENABLED);
+	}
+	$form['signup']['node_settings']['settings']['signup_pay_per_role']['signup_pay_enabled'] = array(
+		'#type' => 'checkbox',
+		'#title' => t('Enbale signup payment options for this nodes'),
+		'#default_value' => $enabled,
+		'#weight' => $weight++,
+	);
   foreach ($roles as $rid => $role) {
     $form['signup']['node_settings']['settings']['signup_pay_per_role'][$rid]['amount'] = array(
       '#type' => 'textfield',
@@ -628,23 +654,30 @@ function signup_pay_nodeapi(&$node, $op,
       case 'load':
         $pay_roles = signup_pay_get_node_pay_roles($node->nid);
         $node->pay_roles = $pay_roles;
+				$node->signup_pay_enabled = (count($pay_roles)) ? true : false;
         break;
 
     case 'insert':
     case 'update':
-      $roles = user_roles(TRUE, 'sign up for content');
-      $pay_node = db_result(db_query("SELECT amount, currency FROM {signup_pay_node} WHERE nid = %d", $node->nid));
-      foreach ($roles as $rid => $role) {
-        $pay_role = $node->signup_pay_per_role[$rid];
-        signup_pay_set_node_role_pay($node->nid, $rid, $pay_role);
-      }
+			if ($node->signup_pay_per_role['signup_pay_enabled']) {
+	      $roles = user_roles(TRUE, 'sign up for content');
+	      $pay_node = db_result(db_query("SELECT amount, currency FROM {signup_pay_node} WHERE nid = %d", $node->nid));
+	      foreach ($roles as $rid => $role) {
+	        $pay_role = $node->signup_pay_per_role[$rid];
+	        signup_pay_set_node_role_pay($node->nid, $rid, $pay_role);
+	      }
+			}
+			else if (!$node->signup_pay_per_role['signup_pay_enabled'] && count($node->pay_roles)) {
+				// remove records if disabling payment
+				db_query("DELETE FROM {signup_pay_node} WHERE nid = %d", $node->nid);
+			}
       break;
     }
   }
 }
 
 /**
- * databbase interaction for insert and delete of role amount and currencty per nod
+ * databbase interaction for insert and delete of role amount and currency per node
  */
 function signup_pay_set_node_role_pay($nid, $rid, $pay_role) {
   db_query("DELETE FROM {signup_pay_node} WHERE nid = %d AND rid = %d", $nid, $rid);
@@ -652,7 +685,7 @@ function signup_pay_set_node_role_pay($n
 }
 
 /**
- * grab array of amount and currency per role for a given nod
+ * grab array of amount and currency per role for a given node
  */
 function signup_pay_get_node_pay_roles($nid) {
   $amounts = array();
