diff --git a/beta2beta/beta2beta.install b/beta2beta/beta2beta.install
index a848145..a9ca9ab 100644
--- a/beta2beta/beta2beta.install
+++ b/beta2beta/beta2beta.install
@@ -182,6 +182,13 @@ function beta2beta_update_81103() {
 }
 
 /**
+ * Adds the custom block library listing view.
+ */
+function beta2beta_update_81104() {
+  beta2beta_update_helper('2375589', 11);
+}
+
+/**
  * @} End of "defgroup updates-beta-10-to-11"
  */
 
diff --git a/beta2beta/src/Tests/Update/Beta10UpdatePath.php b/beta2beta/src/Tests/Update/Beta10UpdatePath.php
index 342108c..7477c36 100644
--- a/beta2beta/src/Tests/Update/Beta10UpdatePath.php
+++ b/beta2beta/src/Tests/Update/Beta10UpdatePath.php
@@ -11,6 +11,7 @@ use Drupal\beta2beta\Tests\Update\TestTraits\FrontPage;
 use Drupal\beta2beta\Tests\Update\TestTraits\NewNode;
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\Core\Database\Database;
+use Drupal\views\Entity\View;
 
 /**
  * Tests the beta 10 update path.
@@ -160,6 +161,22 @@ class Beta10UpdatePath extends Beta2BetaUpdateTestBase {
     $this->assertEqual('text', $schema['columns']['value']['type']);
   }
 
+  /**
+   * Test that the block_content view is properly created.
+   */
+  public function testUpdate81104() {
+    // View should not exist prior to updates.
+    $this->assertFalse(View::load('block_content'), 'The block_content view does not already exist.');
+    $this->runUpdates();
+    $this->assertTrue(View::load('block_content'), 'The block_content view has been created.');
+
+    // Browse to the listing page.
+    $account = $this->drupalCreateUser(['administer blocks']);
+    $this->drupalLogin($account);
+    $this->drupalGet('admin/structure/block/block-content');
+    $this->assertRaw('view-id-block_content');
+    $this->assertResponse(200);
+  }
 
   /**
    * Helper function to assert pending updates.
diff --git a/head2head.module b/head2head.module
index e61d96f..39b9bb5 100644
--- a/head2head.module
+++ b/head2head.module
@@ -14,8 +14,10 @@ use Drupal\Core\Field\FieldStorageDefinitionInterface;
 use Drupal\Core\Entity\Sql\SqlEntityStorageInterface;
 use Drupal\field\Entity\FieldConfig;
 use Drupal\field\Entity\FieldStorageConfig;
+use Drupal\views\Entity\View;
 use Drupal\Component\Utility\SafeMarkup;
 use Drupal\user\Entity\Role;
+use Symfony\Component\Yaml\Yaml;
 
 /**
  * Converts Taxonomy term reference fields to Entity reference.
@@ -1072,6 +1074,21 @@ function _head2head_is_varchar_ascii(FieldStorageDefinitionInterface $field_stor
 }
 
 /**
+ * Add the custom block listing view.
+ */
+function head2head_2375589() {
+  // Only create if the view doesn't exist and views is enabled.
+  if (!View::load('block_content') && \Drupal::moduleHandler()->moduleExists('views')) {
+    $config_path = drupal_get_path('module', 'block_content') . '/config/optional/views.view.block_content.yml';
+    $data = Yaml::parse($config_path);
+    \Drupal::configFactory()->getEditable('views.view.block_content')->setData($data)->save(TRUE);
+  }
+  else {
+    drupal_set_message('Not creating views.view.block_content since it already exists.');
+  }
+}
+
+/**
  * Ensures that system.site:site_front, site_403 and site_404 start with a slash.
  */
 function head2head_2509300() {
