diff --git a/ctools/content_types/entity_view.inc b/ctools/content_types/entity_view.inc
index e505633..1c9bcf1 100644
--- a/ctools/content_types/entity_view.inc
+++ b/ctools/content_types/entity_view.inc
@@ -112,8 +112,19 @@ function entity_entity_view_content_type_render($entity_type, $conf, $panel_args
   $block->module = 'entity';
   $block->delta = $entity_type . '-' . str_replace('-', '_', $conf['view_mode']);
 
-  $entity_id = $context->argument;
-  $entity = entity_load_single($entity_type, $entity_id);
+  if ( !empty($context->data) && is_object($context->data) ) {
+    $entity = $context->data;
+    $info = entity_extract_ids($entity_type, $entity);
+    if( $info[0] != $context->argument ) {
+      $entity = FALSE;
+    }
+  }
+
+  if ( !$entity ) {
+    $entity_id = $context->argument;
+    $entity = entity_load_single($entity_type, $entity_id);
+  }
+
   $block->content = entity_view($entity_type, array($entity_id => $entity), $conf['view_mode']);
   return $block;
 }
