diff --git a/core/lib/Drupal/Core/CoreBundle.php b/core/lib/Drupal/Core/CoreBundle.php
index a15279e..6be3fb6 100644
--- a/core/lib/Drupal/Core/CoreBundle.php
+++ b/core/lib/Drupal/Core/CoreBundle.php
@@ -346,7 +346,7 @@ protected function registerTwig(ContainerBuilder $container) {
         // This is saved / loaded via drupal_php_storage().
         // All files can be refreshed by clearing caches.
         // @todo ensure garbage collection of expired files.
-        'cache' => TRUE,
+        'cache' => settings()->get('twig_cache', TRUE),
         'base_template_class' => 'Drupal\Core\Template\TwigTemplate',
         // @todo Remove in followup issue
         // @see http://drupal.org/node/1712444.
@@ -354,10 +354,8 @@ protected function registerTwig(ContainerBuilder $container) {
         // @todo Remove in followup issue
         // @see http://drupal.org/node/1806538.
         'strict_variables' => FALSE,
-        // @todo Maybe make debug mode dependent on "production mode" setting.
-        'debug' => TRUE,
-        // @todo Make auto reload mode dependent on "production mode" setting.
-        'auto_reload' => FALSE,
+        'debug' => settings()->get('twig_debug', FALSE),
+        'auto_reload' => settings()->get('twig_auto_reload', FALSE),
       ))
       ->addMethodCall('addExtension', array(new Definition('Drupal\Core\Template\TwigExtension')))
       // @todo Figure out what to do about debugging functions.
diff --git a/core/modules/system/lib/Drupal/system/Tests/Theme/TwigSettingsTest.php b/core/modules/system/lib/Drupal/system/Tests/Theme/TwigSettingsTest.php
new file mode 100644
index 0000000..df12f30
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Tests/Theme/TwigSettingsTest.php
@@ -0,0 +1,56 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\system\Tests\Theme\TwigSettingsTest.
+ */
+
+namespace Drupal\system\Tests\Theme;
+
+use Drupal\simpletest\WebTestBase;
+
+/**
+ * Tests Twig engine configuration via settings.php.
+ */
+class TwigSettingsTest extends WebTestBase {
+
+  /**
+   * Modules to enable.
+   *
+   * @var array
+   */
+  public static $modules = array('theme_test');
+
+  public static function getInfo() {
+    return array(
+      'name' => 'Twig Settings',
+      'description' => 'Tests overriding Twig engine settings via settings.php.',
+      'group' => 'Theme',
+    );
+  }
+
+  protected function setUp() {
+    parent::setUp();
+    theme_enable(array('test_theme_twig'));
+  }
+
+  /**
+   * Ensures Twig template auto reloading can be overridden.
+   */
+  function testTwigAutoReloadOverride() {
+    $this->settingsSet('twig_auto_reload', TRUE);
+    $this->assertTrue(drupal_container()->get('twig')->isAutoReload(), 'Automatic reloading of Twig templates can be overridden.');
+  }
+
+  /**
+   * Ensures Twig engine debugging can be overridden.
+   */
+  function testTwigDebugOverride() {
+    $this->settingsSet('twig_debug', TRUE);
+    variable_set('theme_default', 'test_theme_twig');
+
+    $this->drupalGet('theme-test/template-test');
+    $this->assertRaw('<!-- THEME DEBUG -->', 'Twig debug can be overridden.');
+  }
+
+}
diff --git a/core/themes/engines/twig/twig.engine b/core/themes/engines/twig/twig.engine
index d318263..d98f021 100644
--- a/core/themes/engines/twig/twig.engine
+++ b/core/themes/engines/twig/twig.engine
@@ -31,22 +31,49 @@ 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.
+ * This retrieves Twig_Environment from the container and renders the template.
+ *
+ * If Twig debug settings are enabled, HTML comments including 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
old mode 100644
new mode 100755
index 8dbb5a7..095852a
--- a/sites/default/default.settings.php
+++ b/sites/default/default.settings.php
@@ -284,6 +284,36 @@
 $settings['update_free_access'] = FALSE;
 
 /**
+ * Twig debugging:
+ *
+ * Displays debugging information in comments surrounding Twig template output.
+ *
+ * Not recommended in production environments (Default: FALSE).
+ */
+# $settings['twig_debug'] = TRUE;
+
+/**
+ * Twig auto-reload:
+ *
+ * Automatically reload Twig templates whenever the source code changes.
+ *
+ * Not recommended in production environments (Default: FALSE).
+ */
+# $settings['twig_auto_reload'] = TRUE;
+
+/**
+ * Twig cache:
+ *
+ * By default, Twig templates will be compiled and stored in the filesystem to
+ * increase performance. Disabling the Twig cache will recompile the templates
+ * from source each time they are used. In most cases the twig_auto_reload
+ * setting above should be enabled rather than disabling the Twig cache.
+ *
+ * Not recommended in production environments (Default: TRUE).
+ */
+# $settings['twig_cache'] = FALSE;
+
+/**
  * External access proxy settings:
  *
  * If your site must access the Internet via a web proxy then you can enter
