diff --git a/eva.module b/eva.module
index 4a32781..d53c285 100755
--- a/eva.module
+++ b/eva.module
@@ -62,13 +62,17 @@ function eva_entity_view_alter(&$build, $type) {
   $view_mode = $build['#view_mode'];
   $language = $build['#language'];
 
-  $entity_data = entity_get_info($type);
-  $entity = _eva_extract_entity_from_build($build);
+  $entity = _eva_extract_entity_from_build($build, $type);
+  // If we've found an entity in the build array, gather views information.
+  $views = !empty($entity) ? eva_get_views($type) : NULL;
 
+  // Check to make sure we have at least 1 view to display.
+  if (!$views) {
+    return;
+  }
   $entity_ids = entity_extract_ids($type, $entity);
   $settings = field_view_mode_settings($type, $entity_ids[2]);
   $fields = field_extra_fields_get_display($type, $entity_ids[2], $view_mode);
-  $views = eva_get_views($type);
 
   foreach ($views as $info) {
     $longname = $info['name'] .'_'. $info['display'];
@@ -173,12 +177,13 @@ function eva_get_views($type = NULL, $reset = FALSE) {
  *
  * @param $build
  *   The token string defined by the view.
- * @param $entity_data
- *   The token type.
+ * @param string $entity_type
+ *   (optional) The entity type. Defaults to NULL.
  *
- * I hate you, Milkman Dan.
+ * @return object|bool
+ *   The entity object, or FALSE if none is found.
  */
-function _eva_extract_entity_from_build($build) {
+function _eva_extract_entity_from_build($build, $entity_type = NULL) {
   // EntityAPI often sticks stuff in here.
   if (!empty($build['#entity'])) {
     return $build['#entity'];
@@ -188,6 +193,9 @@ function _eva_extract_entity_from_build($build) {
   elseif (!empty($build['#' . $build['#entity_type']])) {
     return $build['#' . $build['#entity_type']];
   }
+  elseif ($entity_type && !empty($build['#' . $entity_type])) {
+    return $build['#' . $entity_type];
+  }
 
   // Some entities are naughty.
   elseif ($build['#entity_type'] == 'user') {
