Index: already_in.module
===================================================================
--- already_in.module
+++ already_in.module
@@ -79,10 +79,15 @@
     // return user_is_anonymous() && variable_get('user_register', 1);
     // this removes the 'user_is_anonymous' call in the access check
     if (!user_is_anonymous()) {
-      if (variable_get('already_in_message', TRUE)) {
-        drupal_set_message(t('You are already logged in.'), 'status', FALSE);
+      if (user_access('administer users') && arg(1) == 'register') { // permission to register new users
+        return TRUE; 
       }
-      drupal_goto(filter_xss(variable_get('already_in_destination', 'user')));  
+      else {
+        if (variable_get('already_in_message', TRUE)) {
+          drupal_set_message(t('You are already logged in.'), 'status', FALSE);
+        }
+        drupal_goto(filter_xss(variable_get('already_in_destination', 'user')));
+      }
     }
     else if ($op == 'register') {
       return variable_get('user_register', 1);
