diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index 84d4752..cff4ea0 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -994,6 +994,13 @@ function theme($hook, $variables = array()) {
   $variables += array(
     'theme_hook_original' => $original_hook,
   );
+  // If theme() is called with a suggestion like comment__node_article, include
+  // information about the base hook - e.g. 'comment'.
+  if ($hook != $original_hook) {
+    $variables += array(
+      'theme_hook_base' => $hook,
+    );
+  }
 
   // Invoke the variable preprocessors, if any. The preprocessors may specify
   // alternate suggestions for which hook's template/function to use. If the
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/TwigDebugMarkupTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/TwigDebugMarkupTest.php
index 34675f7..93508c6 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Theme/TwigDebugMarkupTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/TwigDebugMarkupTest.php
@@ -19,7 +19,7 @@ class TwigDebugMarkupTest extends WebTestBase {
    *
    * @var array
    */
-  public static $modules = array('theme_test');
+  public static $modules = array('theme_test', 'comment');
 
   public static function getInfo() {
     return array(
@@ -49,6 +49,7 @@ function testTwigDebugMarkup() {
     // Create array of Twig templates.
     $templates = drupal_find_theme_templates($cache, $extension, drupal_get_path('theme', 'test_theme'));
     $templates += drupal_find_theme_templates($cache, $extension, drupal_get_path('module', 'node'));
+    $templates += drupal_find_theme_templates($cache, $extension, drupal_get_path('module', 'comment'));
 
     // Create a node and test different features of the debug markup.
     $node = $this->drupalCreateNode();
@@ -67,6 +68,30 @@ function testTwigDebugMarkup() {
     $this->assertTrue(strpos($output, '* node--2' . $extension) !== FALSE, 'Node ID specific template suggestion found.');
     $this->assertTrue(strpos($output, 'x node' . $extension) !== FALSE, 'Base template file shown as current template.');
 
+    // Create another node, call a theme suggestion directly, and make sure the
+    // template suggestions shown in the debug markup are correct.
+    $node3 = $this->drupalCreateNode();
+    // Create a comment on the node.
+    $comment = entity_create('comment', array(
+      'cid' => NULL,
+      'nid' => $node3->id(),
+      'node_type' => $node3->type,
+      'pid' => 0,
+      'uid' => 0,
+      'status' => COMMENT_PUBLISHED,
+      'subject' => $this->randomName(),
+      'hostname' => '127.0.0.1',
+      'langcode' => 'und',
+      'comment_body' => array('und' => array($this->randomName())),
+    ));
+    $comment->save();
+    $output = theme('comment__node_article', comment_view($comment));
+    $this->assertTrue(strpos($output, "CALL: theme('comment__node_article')") !== FALSE, 'Theme call information found.');
+    $this->assertTrue(strpos($output, 'x comment' . $extension) !== FALSE, 'Comment template file shown as current template.');
+    $this->assertTrue(strpos($output, '* comment--node-article' . $extension) !== FALSE, 'Full name template file found.');
+    $template_filename = $templates['comment']['path'] . '/' . $templates['comment']['template'] . $extension;
+    $this->assertTrue(strpos($output, "BEGIN OUTPUT from '$template_filename'") !== FALSE, 'Full path to current template file found.');
+
     // Disable debug, rebuild the service container, and clear all caches.
     $this->settingsSet('twig_debug', FALSE);
     $this->rebuildContainer();
diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine
index b541cdc..6b6b4c1 100644
--- a/core/themes/engines/twig/twig.engine
+++ b/core/themes/engines/twig/twig.engine
@@ -57,6 +57,9 @@ function twig_render_template($template_file, $variables) {
   if (settings()->get('twig_debug', FALSE)) {
     $output['debug_prefix'] .= "\n\n<!-- THEME DEBUG -->";
     $output['debug_prefix'] .= "\n<!-- CALL: theme('{$variables['theme_hook_original']}') -->";
+    if (isset($variables['theme_hook_base'])) {
+      $variables['theme_hook_suggestions'][] = $variables['theme_hook_base'];
+    }
     if (!empty($variables['theme_hook_suggestions'])) {
       $extension = twig_extension();
       $current_template = basename($template_file);
