diff -rupN diff.install diff.install
--- diff.install	1970-01-01 01:00:00.000000000 +0100
+++ diff.install	2009-04-11 14:03:32.000000000 +0200
@@ -0,0 +1,12 @@
+<?php
+// $Id$
+
+/**
+ * Implementation of hook_uninstall().
+ */
+function diff_uninstall() {
+  // Delete all module variables and then clear the variables cache.
+  db_query("DELETE FROM {variable} WHERE name LIKE 'show\_preview\_changes\_%'");
+  db_query("DELETE FROM {variable} WHERE name LIKE 'enable\_revisions\_page\_%'");
+  cache_clear_all('variables', 'cache');
+}
diff -rupN diff.module diff.module
--- diff.module	2008-08-31 22:32:18.000000000 +0200
+++ diff.module	2009-04-11 14:07:00.000000000 +0200
@@ -61,10 +61,18 @@ function diff_menu_alter(&$callbacks) {
   // Overwrite the default 'Revisions' page
   $callbacks['node/%node/revisions']['page callback'] = 'diff_diffs_overview';
   $callbacks['node/%node/revisions']['module'] = 'diff';
+  $callbacks['node/%node/revisions']['access callback'] = 'diff_node_revision_access';
   unset($callbacks['node/%node/revisions']['file']);
 }
 
 /**
+ * Access callback for the node revisions page.
+ */
+function diff_node_revision_access($node) {
+  return variable_get('enable_revisions_page_'. $node->type, TRUE) && _node_revision_access($node);
+}
+
+/**
  * Generate an overview table of older revisions of a node and provide 
  * an input form to select two revisions for a comparison.
  */
@@ -480,6 +488,14 @@ function diff_form_alter(&$form, $form_s
       '#weight' => 10,
       '#default_value' => variable_get('show_preview_changes_'. $form['#node_type']->type, TRUE),
     );
+    // Add checkbox to enable 'Revisions' page per node type.
+    $form['workflow']['enable_revisions_page'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Enable the %revisions page for this content type', array('%revisions' => t('Revisions'))),
+      '#prefix' => '<strong>'. t('Enable revisions page') .'</strong>',
+      '#weight' => 11,
+      '#default_value' => variable_get('enable_revisions_page_'. $form['#node_type']->type, TRUE),
+    );
   }
 }
 
