Index: uc_order.module
===================================================================
--- uc_order.module	(revision 1190)
+++ uc_order.module	(working copy)
@@ -1445,7 +1445,14 @@
 
   $thank_you_message = FALSE;
 
-  $file = drupal_get_path('module', 'uc_order') .'/templates/'. $template .'.itpl.php';
+  // Check the current theme directory for the template first.
+  $file = path_to_theme() .'/uc_order_templates/'. $template .'.itpl.php';
+
+  // Then check the module directory if it doesn't exist.
+  if (!file_exists($file)) {
+    $file = drupal_get_path('module', 'uc_order') .'/templates/'. $template .'.itpl.php';
+  }
+
   if (file_exists($file)) {
     switch ($op) {
       case 'checkout-mail':
@@ -1517,6 +1524,14 @@
       $templates[] = substr($file->name, 0, strlen($file->name) - 5);
     }
 
+    // Add to that, all files found in the current theme's directory.
+    foreach (file_scan_directory(path_to_theme() .'/uc_order_templates', '.*\.itpl\.php', array('.', '..', 'CVS'), 0, FALSE) as $file) {
+      $template_name = substr($file->name, 0, strlen($file->name) - 5);
+      if (!in_array($template_name, $templates)) {
+        $templates[] = $template_name;
+      }
+    }
+
     // Sort the template names alphabetically.
     sort($templates);
   }
