diff --git a/save_draft.install b/save_draft.install
new file mode 100644
index 0000000..0109647
--- /dev/null
+++ b/save_draft.install
@@ -0,0 +1,15 @@
+<?php
+
+/**
+ * @file
+ * Install, update and uninstall functions for the save draft module.
+ */
+
+/**
+ * Implements hook_uninstall().
+ */
+function save_draft_uninstall() {
+  foreach (node_type_get_names('names') as $type => $type_name) {
+    variable_del('save_draft_enabled_' . $type);
+  }
+}
diff --git a/save_draft.js b/save_draft.js
index f7fa45f..216ab0d 100644
--- a/save_draft.js
+++ b/save_draft.js
@@ -1,10 +1,12 @@
 (function ($) {
 
 /**
- * Remove publication status from the "Content promotion options" vertical tab.
+ * Show summaries of selected options within tabs.
  */
 Drupal.behaviors.saveDraftFieldsetSummaries = {
   attach: function (context) {
+    // Remove publication status from the "Content promotion options" vertical
+    // tab.
     $('fieldset.node-promotion-options', context).drupalSetSummary(function (context) {
       var vals = [];
 
@@ -18,6 +20,22 @@ Drupal.behaviors.saveDraftFieldsetSummaries = {
         return Drupal.t('Not promoted');
       }
     });
+
+    // Display save draft settings summary on the node options fieldet.
+    $('fieldset#edit-save-draft', context).drupalSetSummary(function (context) {
+      var vals = [];
+
+      // Add summary text for each checked option.
+      $('input:checked', context).next('label').each(function() {
+        vals.push(Drupal.checkPlain($(this).text()));
+      });
+
+      // For the case of the "Enabled" checkbox also handle the disabled state.
+      if (!$('#edit-save-draft-enabled', context).is(':checked')) {
+        vals.unshift(Drupal.t('Disabled'));
+      }
+      return vals.join(', ');
+    });
   }
 };
 
diff --git a/save_draft.module b/save_draft.module
index 6e0123a..e2675e0 100644
--- a/save_draft.module
+++ b/save_draft.module
@@ -6,6 +6,16 @@
  */
 
 /**
+ * Save draft functionality is disabled.
+ */
+define('SAVE_DRAFT_DISABLED', 0);
+
+/**
+ * Save draft functionality is enabled.
+ */
+define('SAVE_DRAFT_ENABLED', 1);
+
+/**
  * Implements hook_permission().
  */
 function save_draft_permission() {
@@ -27,7 +37,7 @@ function save_draft_permission() {
  * unpublished.
  */
 function save_draft_form_node_form_alter(&$form, &$form_state) {
-  if (save_draft_access($form, $form_state)) {
+  if (variable_get('save_draft_enabled_' . $form['#node']->type, SAVE_DRAFT_ENABLED) && save_draft_access($form, $form_state)) {
     // Remove the status checkbox from the options fieldset, and adjust the
     // fieldset accordingly.
     if (isset($form['options']['status'])) {
@@ -95,6 +105,34 @@ function save_draft_validate($form, &$form_state) {
 }
 
 /**
+ * Implements hook_form_FORM_ID_alter() for the node type form.
+ */
+function save_draft_form_node_type_form_alter(&$form, &$form_state) {
+  $enabled = variable_get('save_draft_enabled_' . $form['#node_type']->type, SAVE_DRAFT_ENABLED);
+
+  $form['save_draft'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('Enable "Save draft" button'),
+    '#weight' => 0,
+    '#collapsible' => TRUE,
+    '#collapsed' => !$enabled,
+    '#group' => 'additional_settings',
+    '#attached' => array(
+      'js' => array(
+        'save-draft' => drupal_get_path('module', 'save_draft') . '/save_draft.js',
+      ),
+    ),
+  );
+
+  $form['save_draft']['save_draft_enabled'] = array(
+    '#title' => t('Enabled'),
+    '#type' => 'checkbox',
+    '#description' => t('Enable save as draft functionality for this content type.'),
+    '#default_value' => $enabled,
+  );
+}
+
+/**
  * Returns TRUE if the currently logged in user has permission to choose the published state for the node being edited.
  */
 function save_draft_access($form, &$form_state) {
@@ -132,3 +170,10 @@ function save_draft_access($form, &$form_state) {
 
   return $access;
 }
+
+/**
+ * Implements hook_node_type_delete().
+ */
+function save_draft_node_type_delete($info) {
+  variable_del('save_draft_enabled_' . $info->type);
+}
