diff --git a/includes/entity.inc b/includes/entity.inc
--- includes/entity.inc	Thu Apr 21 02:44:00 2011
+++ includes/entity.inc	Tue May 17 15:55:07 2011
@@ -257,7 +257,7 @@
       $query->join($this->revisionTable, 'revision', "revision.{$this->idKey} = base.{$this->idKey} AND revision.{$this->revisionKey} = :revisionId", array(':revisionId' => $revision_id));
     }
     elseif ($this->revisionKey) {
-      $query->join($this->revisionTable, 'revision', "revision.{$this->revisionKey} = base.{$this->revisionKey}");
+      $query->join($this->revisionTable, 'revision', "revision.{$this->revisionKey} = base.{$this->revisionKey} AND revision.{$this->idKey} = base.{$this->idKey}");
     }
 
     // Add fields from the {entity} table.
