diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php
index 9f77c111c4fe9adf233a08e86dfed8a9e94dc83f..7a4e3d6169e730a4788a42a6d77610ab58cd730a 100644
--- a/lib/SimpleSAML/XHTML/Template.php
+++ b/lib/SimpleSAML/XHTML/Template.php
@@ -204,6 +204,23 @@ class SimpleSAML_XHTML_Template
 
         $twig = new Twig_Environment($loader, $options);
         $twig->addExtension(new Twig_Extensions_Extension_I18n());
+
+        // initialize some basic context
+        $langParam = $this->configuration->getString('language.parameter.name', 'language');
+        $twig->addGlobal('languageParameterName', $langParam);
+        $twig->addGlobal('localeBackend', $this->configuration->getString('language.i18n.backend', 'SimpleSAMLphp'));
+        $twig->addGlobal('currentLanguage', $this->translator->getLanguage()->getLanguage());
+        $twig->addGlobal('isRTL', false); // language RTL configuration
+        if ($this->translator->getLanguage()->isLanguageRTL()) {
+            $twig->addGlobal('isRTL', true);
+        }
+        $queryParams = $_GET; // add query parameters, in case we need them in the template
+        if (isset($queryParams[$langParam])) {
+            unset($queryParams[$langParam]);
+        }
+        $twig->addGlobal('queryParams', $queryParams);
+        $twig->addGlobal('templateId', str_replace('.twig', '', $this->normalizeTemplateName($this->template)));
+
         return $twig;
     }
 
@@ -320,9 +337,6 @@ class SimpleSAML_XHTML_Template
      */
     private function twigDefaultContext()
     {
-        $this->data['languageParameterName'] = $this->configuration->getString('language.parameter.name', 'language');
-        $this->data['localeBackend'] = $this->configuration->getString('language.i18n.backend', 'SimpleSAMLphp');
-        $this->data['currentLanguage'] = $this->translator->getLanguage()->getLanguage();
         // show language bar by default
         if (!isset($this->data['hideLanguageBar'])) {
             $this->data['hideLanguageBar'] = false;
@@ -345,18 +359,6 @@ class SimpleSAML_XHTML_Template
         if (!isset($this->data['pagetitle'])) {
             $this->data['pagetitle'] = 'SimpleSAMLphp';
         }
-
-        // set RTL
-        $this->data['isRTL'] = false;
-        if ($this->translator->getLanguage()->isLanguageRTL()) {
-            $this->data['isRTL'] = true;
-        }
-
-        // add query parameters, in case we need them in the template
-        $this->data['queryParams'] = $_GET;
-        if (isset($this->data['queryParams'][$this->data['languageParameterName']])) {
-            unset($this->data['queryParams'][$this->data['languageParameterName']]);
-        }
     }