anchor.diff:        true
     end.
   
  -try_lock_and_monitor_timeout(Keys, Pid, M0, TryLock, Timeout) ->
  +try_lock_and_monitor_timeout(Keys, Pid, Tag, M0, TryLock, Timeout) ->
     case try_lock_and_monitor(Keys, Pid, M0) of
       {true, M} ->
         {true, M, TryLock};      
  
positive.code:       {false, M, TryLock};
      {false, M} ->
        Ticks = (Timeout div tick_period()) + 1,
        {false, M, [{Keys, Pid, Ticks} | TryLock]}
    end.
  
  try_lock_and_monitor(Keys, Pid, M) ->
  
negative.code:       %% A process may only have one monitored lock (for now).
        {reply, false, S};
      false ->
        case try_lock_and_monitor_timeout(Keys, Pid, Tag, M0, TryLock0,Timeout) of
          {true, M, TryLock} ->
            {reply, true, S#s{ monitors = M
                             , try_lock = TryLock}};
  