Index: Pessimistic.php
===================================================================
--- Pessimistic.php	(revision 7691)
+++ Pessimistic.php	(working copy)
@@ -101,14 +101,20 @@
     public function getLock(Doctrine_Record $record, $userIdent)
     {
         $objectType = $record->getTable()->getComponentName();
-        $key        = $record->getTable()->getIdentifier();
+        $keyName    = $record->getTable()->getIdentifier();
 
         $gotLock = false;
         $time = time();
 
-        if (is_array($key)) {
+        if (is_array($keyName)) {
             // Composite key
+            $key = array();
+            foreach($keyName as $k) {
+               $key[] = $record->get( $k );
+            }
             $key = implode('|', $key);
+        } else {
+            $key = $record->get( $keyName );
         }
 
         try {
