Index: checkout.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/checkout/checkout.module,v
retrieving revision 1.11.2.11
diff -u -p -r1.11.2.11 checkout.module
--- checkout.module	24 Apr 2009 13:08:57 -0000	1.11.2.11
+++ checkout.module	17 Jun 2009 17:16:44 -0000
@@ -212,15 +212,22 @@ function checkout_handle_request($uid) {
 
   // Check whether to release a previously edited node.
   if ($previous_nid && (!$current_nid || $current_nid != $previous_nid)) {
-    checkout_release($previous_nid, $uid);
+    // Validate user has permission to release lock.
+    $item = menu_get_item($referer);
+    if ($item && $item['access']){
+      checkout_release($previous_nid, $uid);
+    }
   }
 
   // Check whether to lock the current node.
   if ($current_nid && (!$previous_nid || $previous_nid != $current_nid)) {
-    // Try to lock the node.
-    if (!checkout_node($current_nid, $uid)) {
-      // Node already locked: send back to refering page.
-      drupal_goto(referer_uri());
+    // Validate user has permission to lock the node.
+    $item = menu_get_item($_GET['q']);
+    if ($item && $item['access']){
+      if (!checkout_node($current_nid, $uid)) {
+        // Node already locked: send back to refering page.
+        drupal_goto(referer_uri());
+      }
     }
   }
 }
