diff --git a/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php b/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php
index 036f346..01b95da 100644
--- a/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php
+++ b/core/modules/content_moderation/src/Plugin/Field/ModerationStateFieldItemList.php
@@ -57,6 +57,14 @@ protected function getModerationState() {
         return $content_moderation_state->get('moderation_state')->value;
       }
     }
+
+    if (!empty($entity->getLoadedRevisionId())) {
+      $loaded_revision = \Drupal::entityTypeManager()
+        ->getStorage($entity->getEntityTypeId())
+        ->loadRevision($entity->getLoadedRevisionId());
+      return $loaded_revision->moderation_state->value;
+    }
+
     // It is possible that the bundle does not exist at this point. For example,
     // the node type form creates a fake Node entity to get default values.
     // @see \Drupal\node\NodeTypeForm::form()
diff --git a/core/modules/content_moderation/tests/src/Kernel/ContentModerationStateTest.php b/core/modules/content_moderation/tests/src/Kernel/ContentModerationStateTest.php
index b5b5a75..0a32a98 100644
--- a/core/modules/content_moderation/tests/src/Kernel/ContentModerationStateTest.php
+++ b/core/modules/content_moderation/tests/src/Kernel/ContentModerationStateTest.php
@@ -101,6 +101,21 @@ public function testBasicModeration() {
     $this->assertTrue($node->isPublished());
     $this->assertEquals(4, $node->getRevisionId());
 
+    // Update the node to archived which will then be the default revision.
+    $node->set('moderation_state', 'archived');
+    $node->save();
+
+    // Revert to the previous (published) revision.
+    $prev_rev = \Drupal::entityTypeManager()->getStorage('node')->loadRevision(4);
+    $prev_rev->isDefaultRevision(TRUE);
+    $prev_rev->setNewRevision(TRUE);
+    $prev_rev->save();
+
+    // Get the default revision
+    $node = $this->reloadNode($node);
+    $this->assertEquals('published', $node->moderation_state->value);
+    $this->assertTrue($node->isPublished());
+
   }
 
   /**
