diff --git a/ds.module b/ds.module
index 471008f..383c8f5 100644
--- a/ds.module
+++ b/ds.module
@@ -608,17 +608,20 @@ function ds_entity_variables(&$vars) {
     }
 
     // Move any preprocess fields to render container.
-    // Inconsitency in taxonomy term naming.
-    $object = $vars['elements']['#entity_type'];
+    // Inconsistency in taxonomy term naming.
+    $entity_type = $vars['elements']['#entity_type'];
     if ($vars['elements']['#entity_type'] == 'taxonomy_term') {
-      $object = 'term';
+      $entity_type = 'term';
     }
 
     // Get entity id and bundle
-    list($id,, $bundle) = entity_extract_ids($vars['elements']['#entity_type'], $vars[$object]);
+    $id = NULL;
+    $bundle = $vars['elements']['#bundle'];
+    $entity = isset($vars[$entity_type]) ? $vars[$entity_type] : (isset($vars['elements']['#' . $entity_type]) ? $vars['elements']['#' . $entity_type] : NULL);
+    list($id,, $bundle) = entity_extract_ids($entity_type, $entity);
 
-    if (isset($vars[$object]->preprocess_fields)) {
-      foreach ($vars[$object]->preprocess_fields as $field) {
+    if (isset($vars[$entity_type]->preprocess_fields)) {
+      foreach ($vars[$entity_type]->preprocess_fields as $field) {
 
         // Process RDF if the module is enabled before moving preprocess fields.
         if (module_exists('rdf')) {
@@ -667,7 +670,9 @@ function ds_entity_variables(&$vars) {
       $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '_' . $vars['elements']['#view_mode'];
       $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '_' . $bundle;
       $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '_' . $bundle . '_' . $vars['elements']['#view_mode'];
-      $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '__' . $id;
+      if (!empty($id)) {
+        $vars['theme_hook_suggestions'][] = $layout['layout'] . '__' . $vars['elements']['#entity_type'] . '__' . $id;
+      }
     }
 
     // If the layout has wrapper class lets add it.
@@ -677,6 +682,7 @@ function ds_entity_variables(&$vars) {
       }
     }
 
+    $layout_render_array = array();
     // Create region variables based on the layout settings.
     foreach ($layout['regions'] as $region_name => $region) {
 
@@ -700,8 +706,8 @@ function ds_entity_variables(&$vars) {
         $vars[$region_name . '_classes'] = !empty($layout['settings']['classes'][$region_name]) ? ' ' . implode(' ', $layout['settings']['classes'][$region_name]) : '';
 
         // Token support for region classes.
-        if (module_exists('token') && isset($vars[$object])) {
-          $vars[$region_name . '_classes'] = token_replace($vars[$region_name . '_classes'], array($object => $vars[$object]), array('clear' => TRUE, 'sanitize' => TRUE));
+        if (module_exists('token') && isset($vars[$entity_type])) {
+          $vars[$region_name . '_classes'] = token_replace($vars[$region_name . '_classes'], array($entity_type => $vars[$entity_type]), array('clear' => TRUE, 'sanitize' => TRUE));
         }
       }
       // Add a wrapper to the region.
@@ -719,8 +725,8 @@ function ds_entity_variables(&$vars) {
     // Add layout attributes if any.
     $vars['layout_attributes'] = '';
     if (!empty($layout['settings']['layout_attributes'])) {
-      if (isset($vars[$object])) {
-        $vars['layout_attributes'] .= ' ' . token_replace($layout['settings']['layout_attributes'], array($object => $vars[$object]), array('clear' => TRUE, 'sanitize' => TRUE));
+      if (isset($vars[$entity_type])) {
+        $vars['layout_attributes'] .= ' ' . token_replace($layout['settings']['layout_attributes'], array($entity_type => $vars[$entity_type]), array('clear' => TRUE, 'sanitize' => TRUE));
       }
       else {
         $vars['layout_attributes'] .= ' ' . $layout['settings']['layout_attributes'];
@@ -737,9 +743,9 @@ function ds_entity_variables(&$vars) {
     }
 
     // Token support for layout classes.
-    if (module_exists('token') && isset($vars[$object])) {
+    if (module_exists('token') && isset($vars[$entity_type])) {
       foreach ($vars['classes_array'] as &$class) {
-        $class = token_replace($class, array($object => $vars[$object]), array('clear' => TRUE, 'sanitize' => TRUE));
+        $class = token_replace($class, array($entity_type => $vars[$entity_type]), array('clear' => TRUE, 'sanitize' => TRUE));
       }
     }
 
@@ -748,11 +754,11 @@ function ds_entity_variables(&$vars) {
       $url = '';
       switch ($layout['settings']['layout_link_attribute']) {
         case 'content':
-          if ($object == 'user') {
+          if ($entity_type == 'user') {
             $uri = entity_uri($vars['elements']['#entity_type'], $vars['elements']['#account']);
           }
           else {
-            $uri = entity_uri($vars['elements']['#entity_type'], $vars[$object]);
+            $uri = entity_uri($vars['elements']['#entity_type'], $vars[$entity_type]);
           }
           if (!empty($uri)) {
             $url = $uri['path'];
@@ -762,7 +768,7 @@ function ds_entity_variables(&$vars) {
           $url = $layout['settings']['layout_link_custom'];
           break;
         case 'tokens':
-          $url = token_replace($layout['settings']['layout_link_custom'], array($vars['elements']['#entity_type'] => $vars[$object]), array('clear' => TRUE));
+          $url = token_replace($layout['settings']['layout_link_custom'], array($vars['elements']['#entity_type'] => $vars[$entity_type]), array('clear' => TRUE));
           break;
       }
 
@@ -772,14 +778,14 @@ function ds_entity_variables(&$vars) {
     }
 
     // Set field weights for all fields, including pre-process.
-    foreach($layout_render_array as $region => &$fields) {
+    foreach ($layout_render_array as $region => &$fields) {
       foreach ($fields as $field_key => &$field) {
         $field['#weight'] = $field_key;
       }
     }
 
     // Let other modules alter the ds array before creating the region variables.
-    $context = array('entity' => isset($vars[$object]) ? $vars[$object] : (isset($vars['elements']['#' . $object]) ? $vars['elements']['#' . $object] : ''), 'entity_type' => $vars['elements']['#entity_type'], 'bundle' => $vars['elements']['#bundle'], 'view_mode' => $vars['elements']['#view_mode']);
+    $context = array('entity' => isset($vars[$entity_type]) ? $vars[$entity_type] : (isset($vars['elements']['#' . $entity_type]) ? $vars['elements']['#' . $entity_type] : ''), 'entity_type' => $vars['elements']['#entity_type'], 'bundle' => $vars['elements']['#bundle'], 'view_mode' => $vars['elements']['#view_mode']);
     drupal_alter('ds_pre_render', $layout_render_array, $context, $vars);
     foreach ($layout_render_array as $region_name => $content) {
       // In case this is a panels layout, add the region to the $content variable.
