anchor.diff:        _Options:Cardinal;
   
         _SortOrder:CollectionSortOrder;
  +      _Share:Collection;
   
         {$IFNDEF DISABLETHREADS}
  -      _SharedMutex:Boolean;
         _Mutex:CriticalSection;
         {$ENDIF}
   
  
positive.code:   {$IFNDEF DISABLETHREADS}
    If (Assigned(Share)) Then
    Begin
      _Mutex := Share._Mutex;
      _SharedMutex := True;
    End Else
    Begin
      _SharedMutex := False;
      If (Options And coThreadSafe<>0) Then
        _Mutex := CriticalSection.Create({Self.ClassName +CardinalToString(GetTime())})
      Else
  
negative.code:   Self.Clear();
  
    {$IFNDEF DISABLETHREADS}
    ReleaseObject(_Mutex);
    {$ENDIF}
  End;
  
  Procedure Collection.Lock();
  Begin
    {$IFNDEF DISABLETHREADS}
    If Assigned(_Share) Then
    Begin
      _Share.Lock();
    End Else
    If Assigned(_Mutex) Then
    Begin
      _Mutex.Lock();
  