diff --git a/includes/theme.inc b/includes/theme.inc
index bea87c0..6e9b8ad 100644
--- a/includes/theme.inc
+++ b/includes/theme.inc
@@ -1199,10 +1199,10 @@ function drupal_find_theme_templates($cache, $extension, $path) {
     if (strpos($file->uri, str_replace($subtheme_paths, '', $file->uri)) !== 0) {
       continue;
     }
-    // Chop off the remaining extensions if there are any. $template already
-    // has the rightmost extension removed, but there might still be more,
-    // such as with .tpl.php, which still has .tpl in $template at this point.
-    if (($pos = strpos($template, '.')) !== FALSE) {
+    // Chop off the remaining '.tpl' extension. $template already has the
+    // rightmost extension removed, but there might still be more, such as with
+    // .tpl.php, which still has .tpl in $template at this point.
+    if (($pos = strpos($template, '.tpl')) !== FALSE) {
       $template = substr($template, 0, $pos);
     }
     // Transform - in filenames to _ to match function naming scheme
@@ -1216,12 +1216,12 @@ function drupal_find_theme_templates($cache, $extension, $path) {
     }
   }
 
-  // Find templates that implement possible "suggestion" variants of registered
-  // theme hooks and add those as new registered theme hooks. See
-  // drupal_find_theme_functions() for more information about suggestions and
-  // the use of 'pattern' and 'base hook'.
   $patterns = array_keys($files);
   foreach ($cache as $hook => $info) {
+    // Find templates that implement possible "suggestion" variants of
+    // registered theme hooks and add those as new registered theme hooks. See
+    // drupal_find_theme_functions() for more information about suggestions and
+    // the use of 'pattern' and 'base hook'.
     $pattern = isset($info['pattern']) ? $info['pattern'] : ($hook . '__');
     if (!isset($info['base hook']) && !empty($pattern)) {
       // Transform _ in pattern to - to match file naming scheme
@@ -1243,6 +1243,17 @@ function drupal_find_theme_templates($cache, $extension, $path) {
         }
       }
     }
+
+    // Match templates by designated template file name instead of restricting
+    // to templates named after the theme funciton hook alone.
+    if (isset($info['template'])) {
+      if (in_array($template, array($info['template'], str_replace($info['theme path'] . '/', '', $info['template'])))) {
+        $implementations[$hook] = array(
+          'template' => $template,
+          'path' => dirname($file->uri),
+        );
+      }
+    }
   }
   return $implementations;
 }
