diff --git a/modules/state_flow_entity/state_flow_entity.module b/modules/state_flow_entity/state_flow_entity.module
index 83673b9..f4c07f2 100644
--- a/modules/state_flow_entity/state_flow_entity.module
+++ b/modules/state_flow_entity/state_flow_entity.module
@@ -488,3 +488,33 @@ function state_flow_entity_state_flow_entity_plugins() {
 
   return $info;
 }
+
+/**
+ * Get the active revision id for an entity.
+ */
+function state_flow_entity_get_active_revision_id($entity, $entity_type) {
+
+  $state_flow = state_flow_entity_load_state_machine($entity, $entity_type);
+  $active_id = $state_flow->get_active_revision();
+
+  return $active_id;
+}
+
+
+/**
+ * Get the active revision for an entity.
+ */
+function state_flow_entity_get_active_revision($entity, $entity_type) {
+
+ // @todo, return an actual entity.
+  $active_id = state_flow_entity_get_active_revision_id($entity, $entity_type);
+  $entity_info = entity_get_info($entity_type);
+  $revision_key = $entity_info['entity keys']['revision'];
+  list($entity_id, $revision_id, $bundle) = entity_extract_ids($entity_type, $entity);
+  $conditions = array($revision_key => $active_id);
+  $active_revisions = entity_load($entity_type, array($entity_id), $conditions);
+  $active_revision = $active_revisions[$entity_id];
+  return $active_revision;
+
+
+}
\ No newline at end of file
diff --git a/modules/state_flow_entity/state_flow_entity.rules.inc b/modules/state_flow_entity/state_flow_entity.rules.inc
index 7f2f052..0a4dfa4 100644
--- a/modules/state_flow_entity/state_flow_entity.rules.inc
+++ b/modules/state_flow_entity/state_flow_entity.rules.inc
@@ -177,8 +177,7 @@ function state_flow_entity_fetch_active_id($entity, $entity_type) {
     $raw_entity = $entity;
   }
 
-  $state_flow = state_flow_entity_load_state_machine($raw_entity, $entity_type);
-  $active_id = $state_flow->get_active_revision();
+  $active_id = state_flow_entity_get_active_revision_id($raw_entity, $entity_type);
 
   return array('active_id' => $active_id);
 }
