anchor.diff:  destructor TUramakiEngine.Destroy;
   begin
     FMessagesThread.Terminate;
  +  FMessagesThread.MessagesQueue := nil;
     FMessagesThread.LetsGoEvent.SetEvent;
     FWaitForCloseThreadEvent.WaitFor(3000);
     FreeAndNil(FWaitForCloseThreadEvent);
  
positive.code: begin
    while not Terminated do
    begin
      tmpMessage := FQueue.Pick;
      while (tmpMessage <> nil) and (not Self.Terminated) do
      begin
        FCurrentMessage := tmpMessage;
        try
          Synchronize(FProcessMessage);
        except
          on e:Exception do
          begin
            Application.ShowException(e);
          end;
        end;
        tmpMessage := FQueue.Pick;
      end;
  
      if not Terminated then
  
negative.code: 
  destructor TUramakiEngineMessageQueue.Destroy;
  begin
    FreeAndNil(FCriticalSection);
    FreeAndNil(FMessages);
    inherited Destroy;
  end;
  
  