diff --git a/src/InlineEditingDisabler.php b/src/InlineEditingDisabler.php
new file mode 100644
index 0000000..545dfae
--- /dev/null
+++ b/src/InlineEditingDisabler.php
@@ -0,0 +1,57 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\workbench_moderation\InlineEditingDisabler.
+ */
+
+namespace Drupal\workbench_moderation;
+
+use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
+use Drupal\Core\Entity\EntityInterface;
+
+/**
+ * Disables the inline editing for entities with forward revisions.
+ */
+class InlineEditingDisabler {
+
+  /**
+   * The moderation info.
+   *
+   * @var \Drupal\workbench_moderation\ModerationInformationInterface
+   */
+  protected $moderationInfo;
+
+  /**
+   * Creates a new InlineEditingDisabler instance.
+   *
+   * @param \Drupal\workbench_moderation\ModerationInformationInterface $moderation_info
+   *   The moderation info.
+   */
+  public function __construct(ModerationInformationInterface $moderation_info) {
+    $this->moderationInfo = $moderation_info;
+  }
+
+  /**
+   * Implements hook_entity_view_alter().
+   */
+  public function entityViewAlter(&$build, EntityInterface $entity, EntityViewDisplayInterface $display) {
+    if ($entity->getEntityType()->isRevisionable() && !$this->moderationInfo->isLatestRevision($entity)) {
+      // Hide quickedit, because its super confusing for the user to not edit the
+      // live revision.
+      unset($build['#attributes']['data-quickedit-entity-id']);
+    }
+  }
+
+  /**
+   * Implements hook_module_implements_alter().
+   */
+  public function moduleImplementsAlter(&$implementations, $hook) {
+    if ($hook == 'entity_view_alter') {
+      // Find the quickedit implementation and move workbench after it.
+      unset($implementations['workbench_moderation']);
+      $implementations['workbench_moderation'] = FALSE;
+    }
+  }
+
+}
diff --git a/workbench_moderation.module b/workbench_moderation.module
index da3d4d5..6692f21 100644
--- a/workbench_moderation.module
+++ b/workbench_moderation.module
@@ -9,6 +9,7 @@
  *   revision) - i.e. unpublish
  */
 
+use Drupal\Core\Entity\Display\EntityViewDisplayInterface;
 use Drupal\Core\Entity\EntityInterface;
 use Drupal\Core\Entity\EntityTypeInterface;
 use Drupal\Core\Routing\RouteMatchInterface;
@@ -41,6 +42,24 @@ function workbench_moderation_entity_base_field_info(EntityTypeInterface $entity
 }
 
 /**
+ * Implements hook_module_implements_alter().
+ */
+function workbench_moderation_module_implements_alter(&$implementations, $hook) {
+  /** @var \Drupal\workbench_moderation\InlineEditingDisabler $inline_editing_disabler */
+  $inline_editing_disabler = \Drupal::service('workbench_moderation.inline_editing_disabler');
+  $inline_editing_disabler->moduleImplementsAlter($implementations, $hook);
+}
+
+/**
+ * Implements hook_entity_view_alter().
+ */
+function workbench_moderation_entity_view_alter(&$build, EntityInterface $entity, EntityViewDisplayInterface $display) {
+  /** @var \Drupal\workbench_moderation\InlineEditingDisabler $inline_editing_disabler */
+  $inline_editing_disabler = \Drupal::service('workbench_moderation.inline_editing_disabler');
+  $inline_editing_disabler->entityViewAlter($build, $entity, $display);
+}
+
+/**
  * Implements hook_entity_type_alter().
  */
 function workbench_moderation_entity_type_alter(array &$entity_types) {
diff --git a/workbench_moderation.services.yml b/workbench_moderation.services.yml
index a9d9b20..ab9a1c0 100644
--- a/workbench_moderation.services.yml
+++ b/workbench_moderation.services.yml
@@ -18,6 +18,9 @@ services:
   workbench_moderation.entity_operations:
     class: Drupal\workbench_moderation\EntityOperations
     arguments: ['@workbench_moderation.moderation_information', '@entity_type.manager']
+  workbench_moderation.inline_editing_disabler:
+    class: \Drupal\workbench_moderation\InlineEditingDisabler
+    arguments: ['@workbench_moderation.moderation_information']
   workbench_moderation.workbench_preprocess:
     class: Drupal\workbench_moderation\WorkbenchPreprocess
     arguments: ['@current_route_match']
