diff --git a/lib/Drupal/views/Tests/ViewStorageTest.php b/lib/Drupal/views/Tests/ViewStorageTest.php
index fa07fbe1a86306b65752f485737b35f07fa53ff0..5dc7ec07f0c3f99cc5a81e04f7d28ceb6b00eb33 100644
--- a/lib/Drupal/views/Tests/ViewStorageTest.php
+++ b/lib/Drupal/views/Tests/ViewStorageTest.php
@@ -168,7 +168,7 @@ function testConfigurableCRUD() {
     $created_loaded = reset($loaded_entities);
     $values_loaded = config('views.view.archive')->get();
 
-    $this->assertTrue(isset($created_loaded->display['default']->display_options), 'Make sure that the display options exists.');
+    $this->assertTrue(isset($created_loaded->display['default']->display_options), 'Make sure that the display options exist.');
     $this->assertEqual($created_loaded->display['default']->display_plugin, 'default', 'Make sure the right display plugin is set.');
 
     $this->assertEqual($values, $values_loaded, 'The loaded config is the same as the original loaded one.');
diff --git a/lib/Drupal/views/ViewDisplay.php b/lib/Drupal/views/ViewDisplay.php
index 1e374d431d944b4f5f25268e36ed97af225869c3..aa8c6cdd301050555d2e05f5ef928e0aea78b467 100644
--- a/lib/Drupal/views/ViewDisplay.php
+++ b/lib/Drupal/views/ViewDisplay.php
@@ -29,13 +29,19 @@ class ViewDisplay {
    */
   public $display_options;
 
-  function __construct(array $display_options = array()) {
-    if (!empty($display_options)) {
-      $this->display_options = $display_options['display_options'];
-      $this->display_plugin = $display_options['display_plugin'];
-      $this->id = $display_options['id'];
-      $this->display_title = $display_options['display_title'];
-    }
+  public function __construct(array $display_options = array()) {
+    $display_options += array(
+      'display_options' => array(),
+      'display_plugin' => NULL,
+      'id' => NULL,
+      'display_title' => '',
+      'position' => NULL,
+    );
+
+    $this->display_options = $display_options['display_options'];
+    $this->display_plugin = $display_options['display_plugin'];
+    $this->id = $display_options['id'];
+    $this->display_title = $display_options['display_title'];
   }
 
 }
diff --git a/lib/Drupal/views/ViewStorageController.php b/lib/Drupal/views/ViewStorageController.php
index f297b075c4e3c88f4cffc8ab8c3f9d77838ad7b7..7318b3c5090fe58925326bf999e17d6361916835 100644
--- a/lib/Drupal/views/ViewStorageController.php
+++ b/lib/Drupal/views/ViewStorageController.php
@@ -104,7 +104,6 @@ public function save(StorableInterface $entity) {
    * Overrides Drupal\config\ConfigStorageController::create().
    */
   public function create(array $values) {
-
     // If there is no information about displays available add at least the
     // default display.
     $values += array(
@@ -124,13 +123,22 @@ public function create(array $values) {
    *
    * @param Drupal\entity\StorableInterface $entity
    */
-  protected function attachDisplays($entity) {
+  protected function attachDisplays(StorableInterface $entity) {
     if (isset($entity->display) && is_array($entity->display)) {
       $displays = array();
+
       foreach ($entity->get('display') as $key => $options) {
+        $options += array(
+          'display_options' => array(),
+          'display_plugin' => NULL,
+          'id' => NULL,
+          'display_title' => '',
+          'position' => NULL,
+        );
         // Create a ViewDisplay object using the display options.
         $displays[$key] = new ViewDisplay($options);
       }
+
       $entity->set('display', $displays);
     }
   }