diff -urBb draft-DRUPAL-6--1/draft.admin.inc draft/draft.admin.inc
--- draft-DRUPAL-6--1/draft.admin.inc 2010-02-24 11:13:02.000000000 -0800
+++ draft/draft.admin.inc 2010-10-12 11:45:07.000000000 -0700
@@ -52,6 +52,12 @@
     '#description' => t('This is the number of drafts you will see on the php version of the draft list using the pager query'),
     '#size' => 6,
   );
+  $form['draft']['draft_template_mode'] = array(
+    '#type' => 'checkbox',
+    '#title' => t('Run in template mode'),
+    '#default_value' => variable_get('draft_template_mode', 0),
+    '#description' => t('Allows users to save drafts as templates.  The templates can then be used to prepopulate forms when creating new content.'), 
+  );
   if (!module_exists('draft_views')) {
     $form['draft']['draft_php_view_display_columns'] = array(
       '#type' => 'checkboxes',
diff -urBb draft-DRUPAL-6--1/draft.module draft/draft.module
--- draft-DRUPAL-6--1/draft.module  2010-03-15 14:17:03.000000000 -0700
+++ draft/draft.module  2010-10-12 11:51:47.000000000 -0700
@@ -75,7 +75,9 @@
  */
 function draft_cron() {
   // Administrator does not want the module to remove the drafts from the system
-  if (variable_get('draft_cron_remove_disabled', 0) == 0) {
+  // Also don't remove if in template mode
+ 
+  if (variable_get('draft_cron_remove_disabled', 0) == 0 && !(variable_get('draft_template_mode', 0))) {
     // Retrieve the administration configured timeout in days for the system
     $cron_remove_timeout = variable_get('draft_cron_remove_timeout', 1);
     // If someone has entered non numeric data reset to one day
@@ -159,7 +161,10 @@
           }
           else {
             $array = array('node_type' => $form['type']['#value'], 'uid' => $user->uid, 'updated' => time(), 'data' => NULL);
+            // Don't add placeholder drafts if in template mode.
+            if(!variable_get('draft_template_mode', 0)){
             drupal_write_record('drafts', $array);
+            }
             $draft_id = $array['draft_id'];
           }
         }
@@ -215,9 +220,12 @@
   // check if we have a draft id associated with this submission if so we can remove it
   if ($form_state['values']['op'] == "Save") {
     if (isset($form_state['values']['draft_id']) && is_numeric($form_state['values']['draft_id'])) {
+      // Do not delete drafts if we are template mode.
+      if(!variable_get('draft_template_mode', 0)){
       db_query("DELETE FROM {drafts} WHERE draft_id = %d", $form_state['values']['draft_id']);
     }
   }
+  }
 }
 
 /**
diff -urBb draft-DRUPAL-6--1/draft.theme.inc draft/draft.theme.inc
--- draft-DRUPAL-6--1/draft.theme.inc 2010-01-29 08:23:50.000000000 -0800
+++ draft/draft.theme.inc 2010-10-12 11:55:18.000000000 -0700
@@ -41,7 +41,7 @@
     $settings['draft']['node_id'] = $node->nid;
   }
   // checking to see if autosave is enabled or not for this account
-  if (!variable_get('draft_disable_autosave', 0) && variable_get('draft_autosave_'. $user->uid, 0)) {
+  if (!variable_get('draft_disable_autosave', 0) && variable_get('draft_autosave_'. $user->uid, 0) && !(variable_get('draft_template_mode', 0))) {
     drupal_add_js('Drupal.draft.saveTimeout();', 'inline');
     // setting the autosave interval if the user has it set in their account since it can
     // over ride the administrator autosave timeout incase the user wishes it to be longer or shorter

