diff --git a/core/lib/Drupal/Core/Entity/ContentEntityBase.php b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
index 82e5241..e38ab5a 100644
--- a/core/lib/Drupal/Core/Entity/ContentEntityBase.php
+++ b/core/lib/Drupal/Core/Entity/ContentEntityBase.php
@@ -165,6 +165,11 @@ public function __construct(array $values, $entity_type, $bundle = FALSE, $trans
    * {@inheritdoc}
    */
   public function setNewRevision($value = TRUE) {
+    if ($value) {
+      // When saving a new revision, set any existing revision ID to NULL so as
+      // to ensure that a new revision will actually be created.
+      $this->set($this->getEntityType()->getKey('revision'), NULL);
+    }
     $this->newRevision = $value;
   }
 
diff --git a/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php b/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php
index eaa4951..fe4f5fa 100644
--- a/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php
+++ b/core/lib/Drupal/Core/Entity/FieldableDatabaseStorageController.php
@@ -734,12 +734,6 @@ protected function mapToDataStorageRecord(EntityInterface $entity, $table_key =
   protected function saveRevision(EntityInterface $entity) {
     $record = $this->mapToStorageRecord($entity, 'revision_table');
 
-    // When saving a new revision, set any existing revision ID to NULL so as to
-    // ensure that a new revision will actually be created.
-    if ($entity->isNewRevision() && isset($record->{$this->revisionKey})) {
-      $record->{$this->revisionKey} = NULL;
-    }
-
     $entity->preSaveRevision($this, $record);
 
     if ($entity->isNewRevision()) {
