diff --git a/lib/SimpleSAML/XHTML/Template.php b/lib/SimpleSAML/XHTML/Template.php
index 3df5866a1ad0d49f19820b4ab009c2258ee61ce5..cf6b270e65e8d516f728eae8837f248993e251f1 100644
--- a/lib/SimpleSAML/XHTML/Template.php
+++ b/lib/SimpleSAML/XHTML/Template.php
@@ -568,6 +568,7 @@ class Template extends Response
     private function findTemplatePath($template, $throw_exception = true)
     {
         assert(is_string($template));
+        $extensions = ['.tpl.php', '.php'];
 
         list($templateModule, $templateName) = $this->findModuleAndTemplateName($template);
         $templateModule = ($templateModule !== null) ? $templateModule : 'default';
@@ -587,8 +588,11 @@ class Template extends Response
             $filename = $base.$templateName;
         }
 
-        if (file_exists($filename)) {
-            return $filename;
+        $filename = $this->normalizeTemplateName($filename);
+        foreach ($extensions as $extension) {
+            if (file_exists($filename.$extension)) {
+                return $filename.$extension;
+            }
         }
 
         // not found in current theme
@@ -607,8 +611,11 @@ class Template extends Response
             $filename = $base.'/'.$templateName;
         }
 
-        if (file_exists($filename)) {
-            return $filename;
+        $filename = $this->normalizeTemplateName($filename);
+        foreach ($extensions as $extension) {
+            if (file_exists($filename.$extension)) {
+                return $filename.$extension;
+            }
         }
 
         // not found in default template