diff --git a/workflow.module b/workflow.module
index d840818..909db0a 100644
--- a/workflow.module
+++ b/workflow.module
@@ -821,17 +821,18 @@ function workflow_execute_transition($node, $sid, $comment = NULL, $force = FALS
  *   Array of transitions.
  */
 function workflow_field_choices($node, $force = FALSE) {
-  global $user;
+//  global $user;
   $choices = FALSE;
   if ($workflow = workflow_get_workflow_type_map_by_type($node->type)) {
-    $roles = array_keys($user->roles);
+    $account = user_load($node->uid);
+    $roles = array_keys($account->roles);
     $current_sid = workflow_node_current_state($node);
 
     // If user is node author or this is a new page, give the authorship role.
-    if (($user->uid == $node->uid && $node->uid > 0) || (arg(0) == 'node' && arg(1) == 'add')) {
+    if (($account->uid == $node->uid && $node->uid > 0) || (arg(0) == 'node' && arg(1) == 'add')) {
       $roles += array('author' => 'author');
     }
-    if ($user->uid == 1 || $force) {
+    if ($account->uid == 1 || $force) {
       // Superuser is special. And Force allows Rules to cause transition.
       $roles = 'ALL';
     }
