diff --git a/ds.module b/ds.module
index 4f8c590..1c1c6b9 100644
--- a/ds.module
+++ b/ds.module
@@ -280,6 +280,7 @@ function template_preprocess_ds_entity_view(&$variables) {
   if (!empty($build['#cache']['keys'])) {
     $build['#cache']['keys'][0] = 'ds_entity_view';
   }
+  unset($build['#theme']);
   unset($build['#pre_render']);
   unset($build['#sorted']);
   unset($build['#children']);
@@ -289,8 +290,9 @@ function template_preprocess_ds_entity_view(&$variables) {
 
   // Create region variables based on the layout settings.
   $use_field_names = \Drupal::config('ds.settings')->get('use_field_names');
+  $regions = [];
   foreach (array_keys($configuration['regions']) as $region_name) {
-    $build[$region_name] = array();
+    $regions[$region_name] = array();
 
     // Create the region content.
     if (!empty($configuration['regions'][$region_name])) {
@@ -304,17 +306,17 @@ function template_preprocess_ds_entity_view(&$variables) {
         }
 
         if ($use_field_names) {
-          $build[$region_name][$field] = $build[$field];
+          $regions[$region_name][$field] = $build[$field];
         }
         else {
-          $build[$region_name][$key] = $build[$field];
+          $regions[$region_name][$key] = $build[$field];
         }
       }
     }
   }
 
   $layout = Layout::layoutPluginManager()->createInstance($configuration['layout']['id'], $configuration['layout']['settings']);
-  $build = $layout->build($build);
+  $build = array_merge($build, $layout->build($regions));
 
   // Disable CSS files when needed.
   if ($build['#ds_configuration']['layout']['disable_css']) {
