=== modified file 'sites/all/modules/contrib/signup_status/signup_status.module'
--- sites/all/modules/contrib/signup_status/signup_status.module	2011-01-18 12:28:39 +0000
+++ sites/all/modules/contrib/signup_status/signup_status.module	2011-01-18 12:43:52 +0000
@@ -190,11 +190,11 @@ function signup_status_signup_insert($si
  * @return
  *   FormAPI array defining the signup status form element.
  */
-function _signup_status_status_form_element($current_status = NULL) {
+function _signup_status_status_form_element($current_status = NULL, $show_all_options = FALSE) {
   $element = array();
   $options = array();
   foreach (signup_status_codes() as $cid => $code) {
-    if ($code['show_on_form']) {
+    if ($code['show_on_form'] || $show_all_options || $current_status == $cid) {
       $options[$cid] = $code['name'];
     }
   }
@@ -251,7 +251,14 @@ function signup_status_signup_form_valid
  */
 function signup_status_form_signup_edit_form_alter(&$form, $form_state) {
   $signup = $form['#signup'];
-  $status_element = _signup_status_status_form_element($signup->status);
+  global $user;
+  if (user_access(SIGNUP_STATUS_MANAGE_PERMISSION)) {
+    $show_all_options = TRUE;
+  }
+  else {
+    $show_all_options = FALSE;
+  }
+  $status_element = _signup_status_status_form_element($signup->status, $show_all_options);
   if (!empty($status_element)) {
     $form['elements']['signup_status'] = $status_element;
     if (empty($form['elements']['save'])) {
@@ -459,4 +466,3 @@ function signup_status_token_values($typ
   }
   return $values;
 }
-

