diff --git a/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php b/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
index a170438..063f413 100644
--- a/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
+++ b/core/lib/Drupal/Core/Entity/DatabaseStorageControllerNG.php
@@ -96,7 +96,9 @@ public function __construct($entityType) {
    */
   public function create(array $values) {
     // We have to determine the bundle first.
-    $bundle = $this->bundleKey && isset($values[$this->bundleKey]) ? $values[$this->bundleKey] : FALSE;
+    // @todo Throw an exception if no bundle is passed and we have a bundle key
+    //   defined.
+    $bundle = $this->bundleKey ? $values[$this->bundleKey] : FALSE;
     $entity = new $this->entityClass(array(), $this->entityType, $bundle);
 
     // Set all other given values.
diff --git a/core/lib/Drupal/Core/Entity/EntityBCDecorator.php b/core/lib/Drupal/Core/Entity/EntityBCDecorator.php
index 9f39e53..86b0bd0 100644
--- a/core/lib/Drupal/Core/Entity/EntityBCDecorator.php
+++ b/core/lib/Drupal/Core/Entity/EntityBCDecorator.php
@@ -58,7 +58,7 @@ class EntityBCDecorator implements IteratorAggregate, EntityInterface {
    *
    * @var array
    */
-  protected $intializedEmpty = array();
+  protected $initializedEmpty = array();
 
   /**
    * Constructs a Drupal\Core\Entity\EntityCompatibilityDecorator object.
@@ -127,7 +127,7 @@ public function &__get($name) {
     // possible to use the BC-decorator with properties; e.g., $node->title.
     if (isset($this->definitions[$name]) && empty($this->definitions[$name]['configurable'])) {
       if (!isset($this->decorated->values[$name][LANGUAGE_DEFAULT])) {
-        $this->intializedEmpty[$name] = TRUE;
+        $this->initializedEmpty[$name] = TRUE;
         $this->decorated->values[$name][LANGUAGE_DEFAULT][0]['value'] = NULL;
       }
       $value = $this->decorated->values[$name][LANGUAGE_DEFAULT];
@@ -160,13 +160,6 @@ public function &__get($name) {
    * Directly writes to the plain field values, as done by Drupal 7.
    */
   public function __set($name, $value) {
-
-    // The property revision was used to create a new revision - do so as well.
-    // @todo Did this apply only to node or for other entity types too?
-    if ($name == 'revision') {
-      $this->setNewRevision($value);
-    }
-
     $defined = isset($this->definitions[$name]);
     // When updating values for entity properties that have been converted to
     // an entity field, directly write to the plain value. This makes it
@@ -195,7 +188,7 @@ public function __set($name, $value) {
     // will hold the updated value.
     unset($this->decorated->fields[$name]);
     // Clear the empty tracking.
-    unset($this->intializedEmpty[$name]);
+    unset($this->initializedEmpty[$name]);
   }
 
   /**
@@ -203,7 +196,7 @@ public function __set($name, $value) {
    */
   public function __isset($name) {
     $value = $this->__get($name);
-    return isset($value) && empty($this->intializedEmpty[$name]);
+    return isset($value) && empty($this->initializedEmpty[$name]);
   }
 
   /**
@@ -218,7 +211,7 @@ public function __unset($name) {
     // possible to use the BC-decorator with properties; e.g., $node->title.
     if (isset($this->definitions[$name]) && empty($this->definitions[$name]['configurable'])) {
       // Ensure it's really recognized as unset in EntityBCDecorator::__isset().
-      $this->intializedEmpty[$name] = TRUE;
+      $this->initializedEmpty[$name] = TRUE;
     }
   }
 
@@ -248,7 +241,7 @@ public function get($property_name) {
    */
   public function set($property_name, $value) {
     // Clear the empty tracking.
-    unset($this->intializedEmpty[$property_name]);
+    unset($this->initializedEmpty[$property_name]);
     return $this->decorated->set($property_name, $value);
   }
 
diff --git a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php
index 53b9d94..dfdccdf 100644
--- a/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php
+++ b/core/modules/node/lib/Drupal/node/Tests/NodeRevisionPermissionsTest.php
@@ -49,7 +49,7 @@ function setUp() {
       for ($i = 0; $i < 3; $i++) {
         // Create a revision for the same nid and settings with a random log.
         $revision = clone $nodes[$type];
-        $revision->revision = 1;
+        $revision->setNewRevision();
         $revision->log = $this->randomName(32);
         node_save($revision);
         $this->node_revisions[$type][] = $revision;
diff --git a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
index 6f42262..6855fab 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Entity/EntityFieldTest.php
@@ -593,7 +593,11 @@ protected function assertComputedProperties($entity_type) {
   public function testBCDecorator() {
     // Test using comment subject via the BC decorator.
     module_enable(array('node', 'comment'));
-    $node = $this->drupalCreateNode();
+    $node = entity_create('node', array(
+      'type' => 'page',
+      'uid' => 1,
+    ));
+    $node->save();
     $comment = entity_create('comment', array(
       'nid' => $node->nid,
       'subject' => 'old-value',
