anchor.diff:     if (Self.httpServer.Active) then
       Self.httpServer.Active := false;
      Self.httpServer.Free();
  -   Self.readLock.Free();
  - except
  -
  +
  +   Self.receivedLock.Acquire(); // wait for everything to end
  +   FreeAndNil(Self.received);
  +   Self.receivedLock.Release();
  +   FreeAndNil(Self.receivedLock);
  + finally
  +   inherited;
    end;
  -
  - inherited;
   end;//dtor
   
   ////////////////////////////////////////////////////////////////////////////////
  
positive.code:  binding := bindings.Add();
   binding.SetBinding('0.0.0.0', _PT_DEFAULT_PORT);
  
   Self.readLock := TCriticalSection.Create();
  
   Self.httpServer := TIdHTTPServer.Create(nil);
   Self.httpServer.Bindings := bindings;
  
negative.code: 
  uses SysUtils, Classes, Graphics, PTEndpoint, Generics.Collections, SyncObjs,
       IdHttpServer, IdSocketHandle, IdContext, IdCustomHTTPServer, IdComponent,
       JsonDataObjects, PTUtils, ExtCtrls;
  
  const
    _PT_DEFAULT_PORT = 5823;
  