diff --git a/modules/entity_reference_override_revisions/entity_reference_override_revisions.info.yml b/modules/entity_reference_override_revisions/entity_reference_override_revisions.info.yml
new file mode 100644
index 0000000000000000000000000000000000000000..246c10b416316dd1fcf17a9dc24373739a0d89c3
--- /dev/null
+++ b/modules/entity_reference_override_revisions/entity_reference_override_revisions.info.yml
@@ -0,0 +1,8 @@
+name: Entity Reference Override - Entity Reference Revisions integration
+type: module
+description: Entity reference revisions with overridable title
+core: 8.x
+package: Custom
+dependencies:
+  - entity_reference_override
+  - entity_reference_revisions
\ No newline at end of file
diff --git a/modules/entity_reference_override_revisions/entity_reference_override_revisions.module b/modules/entity_reference_override_revisions/entity_reference_override_revisions.module
new file mode 100644
index 0000000000000000000000000000000000000000..cdb732db242a9b2c35059f54d6318783ffb92265
--- /dev/null
+++ b/modules/entity_reference_override_revisions/entity_reference_override_revisions.module
@@ -0,0 +1,34 @@
+<?php
+
+/**
+ * @file
+ * Contains entity_reference_override_revisions.module.
+ */
+
+use Drupal\Core\Routing\RouteMatchInterface;
+
+/**
+ * Implements hook_help().
+ */
+function entity_reference_override_revisions_help($route_name, RouteMatchInterface $route_match) {
+  switch ($route_name) {
+    // Main module help for the entity_reference_override_revisions module.
+    case 'help.page.entity_reference_override_revisions':
+      $output = '';
+      $output .= '<h3>' . t('About') . '</h3>';
+      $output .= '<p>' . t('Entity reference revisions with overridable title') . '</p>';
+      return $output;
+
+    default:
+  }
+}
+
+/**
+ * Implements hook_field_formatter_info_alter().
+ */
+function entity_reference_override_revisions_field_formatter_info_alter(&$info) {
+  // Update the entity_reference_override formatters for
+  // entity_reference_override_revisions use.
+  $info['entity_reference_override_entity']['field_types'][] = 'entity_reference_override_revisions';
+  $info['entity_reference_override_label']['field_types'][] = 'entity_reference_override_revisions';
+}
diff --git a/modules/entity_reference_override_revisions/src/Plugin/Field/FieldType/EntityReferenceOverrideRevisions.php b/modules/entity_reference_override_revisions/src/Plugin/Field/FieldType/EntityReferenceOverrideRevisions.php
new file mode 100644
index 0000000000000000000000000000000000000000..537e191ae2af0df1c31d5e71091caa5f2dcc2cac
--- /dev/null
+++ b/modules/entity_reference_override_revisions/src/Plugin/Field/FieldType/EntityReferenceOverrideRevisions.php
@@ -0,0 +1,86 @@
+<?php
+
+namespace Drupal\entity_reference_override_revisions\Plugin\Field\FieldType;
+
+use Drupal\Core\Field\FieldStorageDefinitionInterface;
+use Drupal\Core\TypedData\DataDefinition;
+use Drupal\Core\Form\FormStateInterface;
+use Drupal\entity_reference_revisions\Plugin\Field\FieldType\EntityReferenceRevisionsItem;
+
+/**
+ * Implementation of the 'entity_reference_override_revisions' field type.
+ *
+ * @FieldType(
+ *   id = "entity_reference_override_revisions",
+ *   label = @Translation("Entity reference revisions w/custom text"),
+ *   description = @Translation("An entity field containing an entity reference by revision with custom text"),
+ *   category = @Translation("Reference revisions"),
+ *   default_widget = "entity_reference_override_revisions_autocomplete",
+ *   default_formatter = "entity_reference_override_label",
+ *   list_class = "\Drupal\entity_reference_revisions\EntityReferenceRevisionsFieldItemList"
+ * )
+ */
+class EntityReferenceOverrideRevisions extends EntityReferenceRevisionsItem {
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function propertyDefinitions(FieldStorageDefinitionInterface $field_definition) {
+    $properties = parent::propertyDefinitions($field_definition);
+    $override_definition = DataDefinition::create('string')
+      ->setLabel($field_definition->getSetting('override_label'))
+      ->setRequired(FALSE);
+    $properties['override'] = $override_definition;
+    return $properties;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function schema(FieldStorageDefinitionInterface $field_definition) {
+    $schema = parent::schema($field_definition);
+    $schema['columns']['override'] = array(
+      'type' => 'varchar',
+      'length' => 255,
+      'not null' => FALSE,
+    );
+    return $schema;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function defaultFieldSettings() {
+    return array(
+      'override_label' => t('Custom text'),
+    ) + parent::defaultFieldSettings();
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function fieldSettingsForm(array $form, FormStateInterface $form_state) {
+    $elements = parent::fieldSettingsForm($form, $form_state);
+
+    $elements['override_label'] = [
+      '#type' => 'textfield',
+      '#title' => t('Custom text label'),
+      '#default_value' => $this->getSetting('override_label'),
+      '#description' => t('Also used as a placeholder in multi-value instances.')
+    ];
+
+    return $elements;
+  }
+
+//  /**
+//   * {@inheritdoc}
+//   */
+//  public static function getPreconfiguredOptions() {
+//    // In the base EntityReference class, this is used to populate the
+//    // list of field-types with options for each destination entity type.
+//    // Too much work, we'll just make people fill that out later.
+//    // Also, keeps the field type dropdown from getting too cluttered.
+//    return array();
+//  }
+
+}
\ No newline at end of file
diff --git a/modules/entity_reference_override_revisions/src/Plugin/Field/FieldWidget/EntityReferenceOverrideRevisionsAutocompleteWidget.php b/modules/entity_reference_override_revisions/src/Plugin/Field/FieldWidget/EntityReferenceOverrideRevisionsAutocompleteWidget.php
new file mode 100644
index 0000000000000000000000000000000000000000..8edd07304ffde85c604c002325ecda657490b45d
--- /dev/null
+++ b/modules/entity_reference_override_revisions/src/Plugin/Field/FieldWidget/EntityReferenceOverrideRevisionsAutocompleteWidget.php
@@ -0,0 +1,70 @@
+<?php
+
+namespace Drupal\entity_reference_override_revisions\Plugin\Field\FieldWidget;
+
+use Drupal\Core\Field\FieldItemListInterface;
+use Drupal\Core\Field\Plugin\Field\FieldWidget\EntityReferenceAutocompleteWidget;
+use Drupal\Core\Form\FormStateInterface;
+
+/**
+ * Plugin implementation of the 'entity_reference_autocomplete' widget.
+ *
+ * @FieldWidget(
+ *   id = "entity_reference_override_revisions_autocomplete",
+ *   label = @Translation("Autocomplete"),
+ *   description = @Translation("An autocomplete text field."),
+ *   field_types = {
+ *     "entity_reference_override_revisions"
+ *   }
+ * )
+ */
+class EntityReferenceOverrideRevisionsAutocompleteWidget extends EntityReferenceAutocompleteWidget {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
+    $widget = array(
+      '#attributes' => ['class' => ['form--inline', 'clearfix']],
+      '#theme_wrappers' => ['container'],
+    );
+    $widget['target_id'] = parent::formElement($items, $delta, $element, $form, $form_state)['target_id'];
+    $widget['override'] = array(
+      '#type' => 'textfield',
+      '#default_value' => isset($items[$delta]) ? $items[$delta]->override : '',
+      '#size' => 40,
+      '#weight' => 10,
+    );
+
+    if ($this->fieldDefinition->getFieldStorageDefinition()->isMultiple()) {
+      $widget['override']['#placeholder'] = $this->fieldDefinition->getSetting('override_label');
+    }
+    else {
+      $widget['override']['#title'] = $this->fieldDefinition->getSetting('override_label');
+    }
+
+    return $widget;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public function massageFormValues(array $values, array $form, FormStateInterface $form_state) {
+    $entity_type = $this->fieldDefinition->getFieldStorageDefinition()->getSetting('target_type');
+    foreach ($values as $key => $value) {
+      if ($value['target_id']) {
+        $entity = \Drupal::entityTypeManager()->getStorage($entity_type)->load($value['target_id']);
+        // Add the current revision ID.
+        $values[$key]['target_revision_id'] = $entity->getRevisionId();
+      }
+      // The entity_autocomplete form element returns an array when an entity
+      // was "autocreated", so we need to move it up a level.
+      if (is_array($value['target_id'])) {
+        unset($values[$key]['target_id']);
+        $values[$key] += $value['target_id'];
+      }
+    }
+    return $values;
+  }
+
+}