? workflow-370111.patch
? workflow-370111_old.patch
? workflow-472966.patch
Index: workflow.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/workflow/workflow.module,v
retrieving revision 1.83.2.1
diff -u -p -r1.83.2.1 workflow.module
--- workflow.module	5 Jun 2009 22:05:30 -0000	1.83.2.1
+++ workflow.module	10 Aug 2009 10:31:06 -0000
@@ -494,14 +494,16 @@ function workflow_execute_transition($no
   $old_sid = workflow_node_current_state($node);
   if ($old_sid == $sid) {
     // Stop if not going to a different state.
-    // Write comment into history though.
+    // Write comment into history if it is not empty.
     if ($comment && !$node->_workflow_scheduled_comment) {
       $node->workflow_stamp = time();
       db_query("UPDATE {workflow_node} SET stamp = %d WHERE nid = %d", $node->workflow_stamp, $node->nid);
       $result = module_invoke_all('workflow', 'transition pre', $old_sid, $sid, $node);
       _workflow_write_history($node, $sid, $comment);
+      // Comment has been written, so also unset it in the node.
+      unset($node->workflow_comment);
+      $result = module_invoke_all('workflow', 'transition post', $old_sid, $sid, $node);
     }
-    $result = module_invoke_all('workflow', 'transition post', $old_sid, $sid, $node);
     return;
   }
 
@@ -535,7 +537,9 @@ function workflow_execute_transition($no
   }
   // Change the state.
   _workflow_node_to_state($node, $sid, $comment);
+  // Assign new state to node
   $node->_workflow = $sid;
+  $node->workflow = $sid;
 
   // Register state change with watchdog.
   $state_name = db_result(db_query('SELECT state FROM {workflow_states} WHERE sid = %d', $sid));
