diff --git a/core/modules/update/lib/Drupal/update/Tests/UpdateContribTest.php b/core/modules/update/lib/Drupal/update/Tests/UpdateContribTest.php
index 2817c86..1fdd0b3 100644
--- a/core/modules/update/lib/Drupal/update/Tests/UpdateContribTest.php
+++ b/core/modules/update/lib/Drupal/update/Tests/UpdateContribTest.php
@@ -263,6 +263,36 @@ function testUpdateShowDisabledThemes() {
   }
 
   /**
+   * Tests updates with a hidden base theme.
+   */
+  function testUpdateHiddenBaseTheme() {
+    module_load_include('compare.inc', 'update');
+
+    // Enable the subtheme.
+    theme_enable(array('update_test_subtheme'));
+
+    // Add a project and initial state for base theme and subtheme.
+    $system_info = array(
+      // Hide the update_test_basetheme.
+      'update_test_basetheme' => array(
+        'project' => 'update_test_basetheme',
+        'hidden' => TRUE,
+      ),
+      // Show the update_test_subtheme.
+      'update_test_subtheme' => array(
+        'project' => 'update_test_subtheme',
+        'hidden' => FALSE,
+      ),
+    );
+    config('update_test.settings')->set('system_info', $system_info)->save();
+    $projects = update_get_projects();
+    $theme_data = system_rebuild_theme_data();
+    update_process_info_list($projects, $theme_data, 'theme', TRUE);
+
+    $this->assertTrue(!empty($projects['update_test_basetheme']), 'Valid base theme (update_test_basetheme) was found.');
+  }
+
+  /**
    * Makes sure that if we fetch from a broken URL, sane things happen.
    */
   function testUpdateBrokenFetchURL() {
