diff --git a/core/modules/block/block.module b/core/modules/block/block.module
index a08254a..b132858 100644
--- a/core/modules/block/block.module
+++ b/core/modules/block/block.module
@@ -75,7 +75,7 @@ function block_help($path, $arg) {
     }
     $themes = list_themes();
     $output = '<p>' . t('This page provides a drag-and-drop interface for adding a block to a region, and for controlling the order of blocks within regions. To add a block to a region, or to configure its specific title and visibility settings, click the block title under <em>Place blocks</em>. Since not all themes implement the same regions, or display regions in the same way, blocks are positioned on a per-theme basis. Remember that your changes will not be saved until you click the <em>Save blocks</em> button at the bottom of the page.') . '</p>';
-    $output .= '<p>' . l(t('Demonstrate block regions (@theme)', array('@theme' => $themes[$demo_theme]->info['name'])), 'admin/structure/block/demo/' . $demo_theme) . '</p>';
+    $output .= '<p>' . l(t('Demonstrate block regions (!theme)', array('!theme' => $themes[$demo_theme]->info['name'])), 'admin/structure/block/demo/' . $demo_theme) . '</p>';
     return $output;
   }
 }
@@ -143,7 +143,7 @@ function block_menu() {
   // @see http://drupal.org/node/1067408
   foreach (list_themes() as $key => $theme) {
     $items["admin/structure/block/list/$key"] = array(
-      'title' => check_plain($theme->info['name']),
+      'title' => $theme->info['name'],
       'type' => $key == $default_theme ? MENU_DEFAULT_LOCAL_TASK : MENU_LOCAL_TASK,
       'route_name' => "block_admin_display.$key",
     );
diff --git a/core/modules/block/lib/Drupal/block/Tests/BlockTest.php b/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
index 404b436..319c20e 100644
--- a/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
+++ b/core/modules/block/lib/Drupal/block/Tests/BlockTest.php
@@ -145,6 +145,26 @@ function testBlock() {
   }
 
   /**
+   * Test block display of theme titles.
+   */
+  function testThemeName() {
+    module_enable(array('block_test'));
+    // Explicitly set the default and admin themes.
+    $theme = 'cat_mouse';
+    theme_enable(array($theme,'seven','block_test_theme'));
+    $this->resetAll();
+
+    config('system.theme')
+      ->set('default', 'seven')
+      ->set('admin', 'seven')
+      ->save();
+    menu_router_rebuild();
+    $this->drupalGet('admin/appearance');
+    $this->drupalGet('admin/structure/block');
+    $this->assertText('&lt;&quot;Cat&quot; &amp; &#039;Mouse&#039;&gt;');
+  }
+
+  /**
    * Test block title display settings.
    */
   function testHideBlockTitle() {
diff --git a/core/modules/block/tests/modules/block_test/block_test.module b/core/modules/block/tests/modules/block_test/block_test.module
index 5184454..40464da 100644
--- a/core/modules/block/tests/modules/block_test/block_test.module
+++ b/core/modules/block/tests/modules/block_test/block_test.module
@@ -10,6 +10,7 @@
  */
 function block_test_system_theme_info() {
   $themes['block_test_theme'] = drupal_get_path('module', 'block_test') . '/themes/block_test_theme/block_test_theme.info.yml';
+  $themes['cat_mouse'] = drupal_get_path('module', 'block_test') . '/themes/cat_mouse/cat_mouse.info.yml';
   return $themes;
 }
 
diff --git a/core/modules/block/tests/modules/block_test/themes/cat_mouse/cat_mouse.info.yml b/core/modules/block/tests/modules/block_test/themes/cat_mouse/cat_mouse.info.yml
new file mode 100644
index 0000000..999f7f3
--- /dev/null
+++ b/core/modules/block/tests/modules/block_test/themes/cat_mouse/cat_mouse.info.yml
@@ -0,0 +1,16 @@
+name: '<"Cat" & ''Mouse''>'
+type: theme
+description: 'Theme for testing special characters in block admin.'
+core: 8.x
+hidden: true
+regions:
+  sidebar_first: 'Left sidebar'
+  sidebar_second: 'Right sidebar'
+  content: Content
+  header: Header
+  footer: Footer
+  highlighted: Highlighted
+  help: Help
+regions_hidden:
+  - sidebar_first
+  - sidebar_second
