Index: checkout.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/checkout/checkout.module,v
retrieving revision 1.11.2.2
diff -u -p -r1.11.2.2 checkout.module
--- checkout.module	11 Jul 2008 22:09:41 -0000	1.11.2.2
+++ checkout.module	14 Jul 2008 08:34:15 -0000
@@ -179,11 +179,12 @@ function checkout_cron() {
  *   The user id to (un)lock nodes for.
  */
 function checkout_handle_request($uid) {
+  global $base_path;
   
   // Build referer path
   $referer_uri = parse_url(referer_uri());
   if (variable_get('clean_url', 0)) {
-    $referer = $referer_uri['path'];
+    $referer = str_replace($base_path, '', $referer_uri['path']);
   }
   else {
     $vars = array();
@@ -193,11 +194,18 @@ function checkout_handle_request($uid) {
   if ($referer) {
     $referer = drupal_get_normal_path(trim($referer, '/'));
   }
+
+  // If refering and current paths match we can abort, since there can't be any
+  // locking action involved.
+  if ($_GET['q'] == $referer) {
+    return;
+  }
+
+  // Otherwise try to extract nid from path.
   $previous_nid = checkout_get_nid($referer);
   $current_nid = checkout_get_nid($_GET['q']);
 
-  // Check whether to release a previously edited node. Don't release if the
-  // node edit page has just been reloaded.
+  // Check whether to release a previously edited node.
   if ($previous_nid && (!$current_nid || $current_nid != $previous_nid)) {
     checkout_release($previous_nid, $uid);
   }
