diff --git a/includes/lock.inc b/includes/lock.inc
index 42f1906..b17e27b 100644
--- a/includes/lock.inc
+++ b/includes/lock.inc
@@ -74,7 +74,10 @@ function lock_initialize() {
  * Helper function to get this request's unique id.
  */
 function _lock_id() {
-  $lock_id = &drupal_static(__FUNCTION__);
+  // drupal_static() usage here is useless. This identifier refers to the
+  // current client request, and must not be changed under any circumstances
+  // else the shutdown handler may fail to release our locks.
+  static $lock_id;
 
   if (!isset($lock_id)) {
     // Assign a unique id.
