Index: uuid.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uuid/uuid.module,v
retrieving revision 1.1.2.18
diff -u -p -r1.1.2.18 uuid.module
--- uuid.module	9 Feb 2011 21:38:30 -0000	1.1.2.18
+++ uuid.module	18 Feb 2011 06:29:10 -0000
@@ -58,21 +58,24 @@ function uuid_nodeapi(&$node, $op, $teas
       }
       break;
     case 'update':
+      // get fully loaded node object
+      $loaded_node = node_load($node->nid);
+  
       // Get existing UUID info from the DB.
-      $uuid_information = uuid_node_load($node);
+      $uuid_information = uuid_node_load($loaded_node);
       $auto_create = in_array($node->type, $automatic_types, TRUE);
-      $uuid_exists = isset($node->uuid) && uuid_is_valid($node->uuid);
+      $uuid_exists = isset($loaded_node->uuid) && uuid_is_valid($loaded_node->uuid);
       $uuid_in_db = !empty($uuid_information['uuid']);
 
       // Create a UUID if this is an automatic type but no UUID exists. Save the
       // UUID if it's valid but is not in the database.
       if ($uuid_exists || $auto_create) {
-        $node->uuid = $uuid_exists ? $node->uuid : uuid_uuid();
+        $node->uuid = $uuid_exists ? $loaded_node->uuid : uuid_uuid();
         // Update the existing UUID.
         if (!$uuid_in_db) {
-          db_query("INSERT INTO {uuid_node} (nid, uuid) VALUES (%d, '%s')", $node->nid, $node->uuid);
+          db_query("INSERT INTO {uuid_node} (nid, uuid) VALUES (%d, '%s')", $node->nid, $loaded_node->uuid);
         }
-        elseif ($uuid_information['uuid'] != $node->uuid) {
+        elseif ($uuid_information['uuid'] != $loaded_node->uuid) {
           db_query("UPDATE {uuid_node} SET uuid = '%s' WHERE nid = %d", $node->uuid, $node->nid);
         }
         $uuid_exists = TRUE;
