Index: node_clone/clone.module
===================================================================
--- node_clone/clone.module	(revision 6142)
+++ node_clone/clone.module	(working copy)
@@ -66,7 +66,16 @@
 
 function clone_is_permitted($type) {
   $omitted = variable_get('clone_omitted', array());
-  return empty($omitted[$type]);
+  if (!empty($omitted[$type])) {
+    return FALSE;
+  }
+
+  $included = variable_get('clone_included', array());
+  if (empty($included)) {
+    // same as without the included test
+    return TRUE;
+  }
+  return !empty($included[$type]);
 }
 
 /**
Index: node_clone/clone.pages.inc
===================================================================
--- node_clone/clone.pages.inc	(revision 6142)
+++ node_clone/clone.pages.inc	(working copy)
@@ -57,10 +63,30 @@
     '#options' => $types,
     '#description' => t('Select any node types which should <em>never</em> be cloned. Typically you should will want to select here all node types for which cloning fails (e.g. image nodes).'),
   );
+  $form['omit']['clone_included'] = array(
+    '#type' => 'checkboxes',
+    '#title' => t('Included content types'),
+    '#default_value' => variable_get('clone_included', array()),
+    '#options' => $types,
+    '#description' => t('Select the exact node types which can be cloned. You may want to only allow a few node types to be clone-able. In that case select those types here. If you want to include all the node types, do not select anything here.'),
+  );
 
-  return system_settings_form($form);
+  $form = system_settings_form($form);
+  $form['#submit'][] = '_clone_submit';
+
+  return $form;
 }
 
+function _clone_submit($form, $form_value) {
+  $included = variable_get('clone_included', array());
+  foreach ($included as $key => $enabled) {
+    if (!$enabled) {
+      unset($included[$key]);
+    }
+  }
+  variable_set('clone_included', $included);
+}
+
 /**
  *  Menu callback: prompt the user to confirm the operation
  */
