diff --git a/src/Access/MediaRevisionAccessCheck.php b/src/Access/MediaRevisionAccessCheck.php
index 1a8f80a..0bd5633 100644
--- a/src/Access/MediaRevisionAccessCheck.php
+++ b/src/Access/MediaRevisionAccessCheck.php
@@ -34,6 +34,9 @@ class MediaRevisionAccessCheck extends CoreMediaRevisionAccessCheck {
    * {@inheritDoc}
    */
   public function access(Route $route, AccountInterface $account, $media_revision = NULL, MediaInterface $media = NULL) {
+    if ($media_revision) {
+      $media = $this->mediaStorage->loadRevision($media_revision);
+    }
     return parent::access($route, $account, $media_revision, $media)->addCacheTags([
       'media:' . $media->id() . ':revisions_list',
     ]);
diff --git a/tests/src/Functional/MediaRevisionsUiTest.php b/tests/src/Functional/MediaRevisionsUiTest.php
index 1e92a84..9c94c01 100644
--- a/tests/src/Functional/MediaRevisionsUiTest.php
+++ b/tests/src/Functional/MediaRevisionsUiTest.php
@@ -121,6 +121,27 @@ class MediaRevisionsUiTest extends BrowserTestBase {
     $this->assertRevisionsTabExists($media);
   }
 
+  /**
+   * Tests reverting a revision.
+   */
+  public function testRevert() {
+    $media = Media::create([
+      'bundle' => $this->mediaType->id(),
+      'name' => 'Test media',
+    ]);
+    $media->save();
+    $user = $this->drupalCreateUser([
+      'administer media',
+      'view all media revisions',
+    ]);
+    $this->createMediaRevision($media);
+    $this->assertRevisionsListStatusCode($user, $media, 200);
+    $this->clickLink('Revert');
+    $this->assertSession()->statusCodeEquals(200);
+    $this->getSession()->getPage()->pressButton('Revert');
+    $this->assertSession()->pageTextContains('Media Test media has been reverted');
+  }
+
   /**
    * Creates a new revision for a given media item.
    *
