diff --git a/core/modules/content_moderation/src/EntityTypeInfo.php b/core/modules/content_moderation/src/EntityTypeInfo.php
index 363ecaac919695bbfa5889adab61f8b7695c91af..00ddda2dfcda086c2b5acd46ba6576332cabbc9e 100644
--- a/core/modules/content_moderation/src/EntityTypeInfo.php
+++ b/core/modules/content_moderation/src/EntityTypeInfo.php
@@ -321,37 +321,36 @@ public function entityPrepareForm(EntityInterface $entity, $operation, FormState
   public function formAlter(array &$form, FormStateInterface $form_state, $form_id) {
     $form_object = $form_state->getFormObject();
     if ($form_object instanceof BundleEntityFormBase) {
-      $config_entity_type = $form_object->getEntity()->getEntityType();
-      $bundle_of = $config_entity_type->getBundleOf();
+      $config_entity = $form_object->getEntity();
+      $bundle_of = $config_entity->getEntityType()->getBundleOf();
       if ($bundle_of
           && ($bundle_of_entity_type = $this->entityTypeManager->getDefinition($bundle_of))
-          && $this->moderationInfo->canModerateEntitiesOfEntityType($bundle_of_entity_type)) {
-        $this->entityTypeManager->getHandler($config_entity_type->getBundleOf(), 'moderation')->enforceRevisionsBundleFormAlter($form, $form_state, $form_id);
+          && $this->moderationInfo->shouldModerateEntitiesOfBundle($bundle_of_entity_type, $config_entity->id())) {
+        $this->entityTypeManager->getHandler($bundle_of, 'moderation')->enforceRevisionsBundleFormAlter($form, $form_state, $form_id);
       }
     }
     elseif ($this->isModeratedEntityEditForm($form_object)) {
       /** @var \Drupal\Core\Entity\ContentEntityFormInterface $form_object */
       /** @var \Drupal\Core\Entity\ContentEntityInterface $entity */
       $entity = $form_object->getEntity();
-      if ($this->moderationInfo->isModeratedEntity($entity)) {
-        $this->entityTypeManager
-          ->getHandler($entity->getEntityTypeId(), 'moderation')
-          ->enforceRevisionsEntityFormAlter($form, $form_state, $form_id);
-
-        // Submit handler to redirect to the latest version, if available.
-        $form['actions']['submit']['#submit'][] = [EntityTypeInfo::class, 'bundleFormRedirect'];
-
-        // Move the 'moderation_state' field widget to the footer region, if
-        // available.
-        if (isset($form['footer']) && in_array($form_object->getOperation(), ['edit', 'default'], TRUE)) {
-          $form['moderation_state']['#group'] = 'footer';
-        }
 
-        // If the publishing status exists in the meta region, replace it with
-        // the current state instead.
-        if (isset($form['meta']['published'])) {
-          $form['meta']['published']['#markup'] = $this->moderationInfo->getWorkflowForEntity($entity)->getTypePlugin()->getState($entity->moderation_state->value)->label();
-        }
+      $this->entityTypeManager
+        ->getHandler($entity->getEntityTypeId(), 'moderation')
+        ->enforceRevisionsEntityFormAlter($form, $form_state, $form_id);
+
+      // Submit handler to redirect to the latest version, if available.
+      $form['actions']['submit']['#submit'][] = [EntityTypeInfo::class, 'bundleFormRedirect'];
+
+      // Move the 'moderation_state' field widget to the footer region, if
+      // available.
+      if (isset($form['footer']) && in_array($form_object->getOperation(), ['edit', 'default'], TRUE)) {
+        $form['moderation_state']['#group'] = 'footer';
+      }
+
+      // If the publishing status exists in the meta region, replace it with
+      // the current state instead.
+      if (isset($form['meta']['published'])) {
+        $form['meta']['published']['#markup'] = $this->moderationInfo->getWorkflowForEntity($entity)->getTypePlugin()->getState($entity->moderation_state->value)->label();
       }
     }
   }
diff --git a/core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTypeTest.php b/core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTypeTest.php
index 8999dae1229bfc2df18c7e0d97cacc2976f3b929..5c4b70a4e21dc622e7a27203895eace24dc7e54b 100644
--- a/core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTypeTest.php
+++ b/core/modules/content_moderation/tests/src/Functional/ModerationStateNodeTypeTest.php
@@ -67,9 +67,18 @@ public function testEnablingOnExistingContent() {
     ], t('Save'));
     $this->assertText('Not moderated Test has been created.');
 
+    // Check that the 'Create new revision' is not disabled.
+    $this->drupalGet('/admin/structure/types/manage/not_moderated');
+    $this->assertNull($this->assertSession()->fieldExists('options[revision]')->getAttribute('disabled'));
+
     // Now enable moderation state.
     $this->enableModerationThroughUi('not_moderated');
 
+    // Check that the 'Create new revision' checkbox is checked and disabled.
+    $this->drupalGet('/admin/structure/types/manage/not_moderated');
+    $this->assertSession()->checkboxChecked('options[revision]');
+    $this->assertSession()->fieldDisabled('options[revision]');
+
     // And make sure it works.
     $nodes = \Drupal::entityTypeManager()->getStorage('node')
       ->loadByProperties(['title' => 'Test']);
diff --git a/core/modules/content_moderation/tests/src/Functional/ModerationStateTestBase.php b/core/modules/content_moderation/tests/src/Functional/ModerationStateTestBase.php
index 5c7c68e34da41fc9ce5a20b478f760267a630aea..fc0433eb03d948156f7c57a10153091f7ed5c9e6 100644
--- a/core/modules/content_moderation/tests/src/Functional/ModerationStateTestBase.php
+++ b/core/modules/content_moderation/tests/src/Functional/ModerationStateTestBase.php
@@ -112,10 +112,6 @@ protected function createContentTypeFromUi($content_type_name, $content_type_id,
     $this->drupalGet('admin/structure/types');
     $this->clickLink('Add content type');
 
-    // Check that the 'Create new revision' checkbox is checked and disabled.
-    $this->assertSession()->checkboxChecked('options[revision]');
-    $this->assertSession()->fieldDisabled('options[revision]');
-
     $edit = [
       'name' => $content_type_name,
       'type' => $content_type_id,