--- /checkout/checkout.module
+++ checkout.module
@@ -100,6 +100,15 @@
         '#default_value' => FALSE,
         '#description' => t('Check this box if you want to keep this document locked in your name after submitting it.'),
       );
+    $node = $form['#node'];
+    //here we add a checkbox to disable or enable checkouts for this node
+    $form['checkout_lockable'] = array(
+        '#type' => 'checkbox',
+        '#title' => t('Make this file lockable'),
+        '#weight' => 22, // Place immediately after log message.
+        '#default_value' => checkout_lockable_state($node->nid),
+        '#description' => t('Check this box if you want only one person to be able to edit at a time.'),
+      );
     }
   }
   else if ($form_id == 'node_configure') {
@@ -150,6 +159,8 @@
       else if ($op == 'update') {
         checkout_release($node->nid, $user->uid, TRUE);
       }
+      //store the preference for this node's lockability... if 0 this node will not be checked out at all...
+      checkout_lockable($node->nid, $node->checkout_lockable);
       break;
     
     case 'delete':
@@ -286,7 +297,8 @@
  *   FALSE, if a document has already been locked by someone else.
  */
 function checkout_node($nid, $uid) {
-  if ($lock = checkout_fetch_lock($nid)) {
+  //add check if node is lockable
+  if ($lock = checkout_fetch_lock($nid) && checkout_lockable_state($nid)) {
     // Node is already locked.
 
     // Deny editing this node even if the node is locked by the same user.
@@ -309,7 +321,8 @@
       return FALSE;
     }
   }
-  else {
+  //check again if node is lockable
+  elseif (checkout_lockable_state($nid)) {
     // Lock node.
     db_query("INSERT INTO {checkout} (nid, uid, timestamp) VALUES (%d, %d, %d)", $nid, $uid, time());
 
@@ -329,6 +342,35 @@
   db_query("UPDATE {checkout} SET persistent = 1 WHERE nid = %d", $nid);
 }
 
+
+/**
+ * Set a document as lockable or not.
+ *
+ * @param $nid
+ *   The node id to set lockable.
+ */
+function checkout_lockable($nid, $lockable) {
+  $exists=db_result(db_query("SELECT * FROM {checkout_lockable} WHERE nid = %d", $nid));
+  if (!$exists) {
+    db_query("INSERT INTO {checkout_lockable} (nid, lockable) VALUES (%d, %d)", $nid, $lockable);
+  } else {
+    db_query("UPDATE {checkout_lockable} SET lockable = %d WHERE nid = %d", $lockable, $nid);
+  }
+}
+
+
+/**
+ * Is a document lockable?.
+ *
+ * @param $nid
+ *   The node id to check.
+ */
+function checkout_lockable_state($nid) {
+  if (db_result(db_query("SELECT * FROM {checkout_lockable} WHERE lockable = 1 AND nid = %d", $nid))) {
+    return TRUE;
+  }
+}
+
 /**
  * Release a locked node.
  *
