diff --git a/signup_status.module b/signup_status.module
index 879c19c..7aea393 100644
--- a/signup_status.module
+++ b/signup_status.module
@@ -8,6 +8,7 @@
 //////////////////////////////////////////////////////////////////////////////
 
 define('SIGNUP_STATUS_MANAGE_PERMISSION', 'manage signup status codes');
+define('SIGNUP_STATUS_MANAGE_ALL_STATUS_PERMISSION', 'manage all signup status');
 
 //////////////////////////////////////////////////////////////////////////////
 // Core API hooks
@@ -16,7 +17,7 @@ define('SIGNUP_STATUS_MANAGE_PERMISSION', 'manage signup status codes');
  * Implementation of hook_perm().
  */
 function signup_status_perm() {
-  return array(SIGNUP_STATUS_MANAGE_PERMISSION);
+  return array(SIGNUP_STATUS_MANAGE_PERMISSION, SIGNUP_STATUS_MANAGE_ALL_STATUS_PERMISSION);
 }
 
 /**
@@ -190,10 +191,11 @@ function signup_status_signup_insert($signup) {
  *   FormAPI array defining the signup status form element.
  */
 function _signup_status_status_form_element($current_status = NULL) {
+  global $user;
   $element = array();
   $options = array();
   foreach (signup_status_codes() as $cid => $code) {
-    if ($code['show_on_form']) {
+    if ($code['show_on_form'] || user_access(SIGNUP_STATUS_MANAGE_ALL_STATUS_PERMISSION)) {
       $options[$cid] = $code['name'];
     }
   }
