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); }