=== modified file 'includes/entity.inc'
--- includes/entity.inc 2009-12-08 06:33:11 +0000
+++ includes/entity.inc 2010-02-22 18:19:49 +0000
@@ -189,14 +189,6 @@
       // The id field is provided by entity, so remove it.
       unset($entity_revision_fields[$this->idKey]);
 
-      // Change timestamp to revision_timestamp, and revision uid to
-      // revision_uid before adding them to the query.
-      // TODO: This is node specific and has to be moved into NodeController.
-      unset($entity_revision_fields['timestamp']);
-      $this->query->addField('revision', 'timestamp', 'revision_timestamp');
-      unset($entity_revision_fields['uid']);
-      $this->query->addField('revision', 'uid', 'revision_uid');
-
       // Remove all fields from the base table that are also fields by the same
       // name in the revision table.
       $entity_field_keys = array_flip($entity_fields);

=== modified file 'modules/node/node.module'
--- modules/node/node.module  2010-02-17 03:37:12 +0000
+++ modules/node/node.module  2010-02-22 18:30:57 +0000
@@ -3541,4 +3541,15 @@
     $this->hookLoadArguments[] = array_keys($typed_nodes);
     parent::attachLoad($nodes);
   }
+
+  protected function buildQuery() {
+    // Ensure that uid is taken from the {node} table
+    // alias timestamp to revision_timestamp and add revision_uid.
+    parent::buildQuery();
+    $fields =& $this->query->getFields();
+    unset($fields['timestamp']);
+    $query['uid']['table'] = 'node';
+    $this->query->addField('revision', 'timestamp', 'revision_timestamp');
+    $this->query->addField('revision', 'uid', 'revision_uid');
+  }
 }

