diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine
index d318263..f299b6e 100644
--- a/core/themes/engines/twig/twig.engine
+++ b/core/themes/engines/twig/twig.engine
@@ -31,22 +31,47 @@ function twig_init($template) {
 }
 
 /**
- * Render twig templates.
+ * Renders a Twig template.
  *
- * This retrieves the Twig_Environment from the Drupal Injection container and
- * renders the template.
+ * If the Twig debug setting is enabled, HTML comments including theme() call
+ * and template file name suggestions will surround the template markup.
  *
  * @param $template_file
- *   The filename of the template to render.
+ *   The file name of the template to render.
  * @param $variables
  *   A keyed array of variables that will appear in the output.
  *
  * @return
- *   The output generated by the template.
+ *   The output generated by the template, plus any debug information.
  */
 function twig_render_template($template_file, $variables) {
   $variables['_references'] = array();
-  return drupal_container()->get('twig')->loadTemplate($template_file)->render($variables);
+  $output = array(
+    'debug_prefix'    => '',
+    'debug_info'      => '',
+    'rendered_markup' => drupal_container()->get('twig')->loadTemplate($template_file)->render($variables),
+    'debug_suffix'    => '',
+  );
+  if (settings()->get('twig_debug', FALSE)) {
+    $output['debug_prefix'] .= "\n\n<!-- THEME DEBUG -->";
+    $output['debug_prefix'] .= "\n<!-- CALL: theme('{$variables['theme_hook_original']}') -->";
+    if (!empty($variables['theme_hook_suggestions'])) {
+      $extension = twig_extension();
+      $current_template = explode('/', $template_file);
+      $current_template = array_pop($current_template);
+      $suggestions = $variables['theme_hook_suggestions'];
+      $suggestions[] = $variables['theme_hook_original'];
+      foreach ($suggestions as $key => &$suggestion) {
+        $template = $suggestion . $extension;
+        $prefix = ($template == $current_template) ? 'x' : '*';
+        $suggestion = $prefix . ' ' . str_replace('_', '-', $template);
+      }
+      $output['debug_info'] .= "\n<!-- FILE NAME SUGGESTIONS:\n   " . implode("\n   ", $suggestions) . "\n -->";
+    }
+    $output['debug_info']   .= "\n<!-- BEGIN OUTPUT from '{$template_file}'  -->\n";
+    $output['debug_suffix'] .= "\n<!-- END OUTPUT from '{$template_file}' -->\n\n";
+  }
+  return implode('', $output);
 }
 
 /**
diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php
index 4c1239a..1356d79 100644
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -286,11 +286,16 @@
 /**
  * Twig debugging:
  *
- * When enabled, you can use the 'dump' function in Twig templates to output
- * information about variables, and templates are automatically recompiled
- * whenever the source code changes.
- *
- * @see http://drupal.org/node/1906392
+ * When debugging is enabled:
+ * - The markup of each Twig template is surrounded by HTML comments which
+ *   contain theming information such as template file name suggestions.
+ * - The 'dump' function can be used in Twig templates to output information
+ *   about template variables.
+ * - Twig templates are automatically recompiled whenever the source code
+ *   changes (see twig_auto_reload below).
+ *
+ * For more information about debugging Twig templates, see
+ * http://drupal.org/node/1906392.
  *
  * Not recommended in production environments (Default: FALSE).
  */
