diff --git a/cps.module b/cps.module
index 5933f38..1e0aac2 100644
--- a/cps.module
+++ b/cps.module
@@ -329,6 +329,10 @@ function cps_menu() {
  * Implements hook_entity_load().
  */
 function cps_entity_load(&$entities, $entity_type) {
+  $changeset = cps_get_current_changeset();
+  if ($changeset == CPS_PUBLISHED_CHANGESET) {
+    return;
+  }
   $entity_info = entity_get_info($entity_type);
   if (empty($entity_info['entity keys']['revision'])) {
     return;
@@ -347,10 +351,11 @@ function cps_entity_load(&$entities, $entity_type) {
     }
   }
 
-  $changeset = cps_get_current_changeset();
   // Fetch entity state information for not published changesets OR the current
   // one. We ignore published changesets because those will accrete over time
   // and are generally irrelevant to our needs.
+  // @todo: this isn't needed every time an entity is loaded, review where this
+  // information is used and do it on demand.
   $keys = array_keys($entities);
 
   // @todo: should this include the actual 'published' changeset, that has
