anchor.diff:    FCanTerminate:= true;
   end;
   
  -function TReplicaEngine.ProcessTables({$ifdef gui}aParentForm : TForm;{$endif} const aTables: TDataReplicaTables; const aResults : IPerformedOperationResults; const aMaxConcurrentThreads: integer): boolean;
  +function TReplicaEngine.ProcessTables({$ifdef gui}aParentForm : TForm;{$endif} aApplication : TCustomApplication; const aTables: TDataReplicaTables; const aResults : IPerformedOperationResults; const aMaxConcurrentThreads: integer): boolean;
   var
     batchexec : TmBatchExecutor;
     newjob : TmJob;
  
positive.code:   TReplicaEngine = class
    strict private
      FCanTerminate : boolean;
  
      procedure InternalReplicaTable (aProgress: ImProgress; aData : TObject; aJobResult : TJobResult);
      procedure DoTerminate(const aJobsResult : TJobResults);
    public
      function ProcessTables ({$ifdef gui}aParentForm : TForm;{$endif} const aTables : TDataReplicaTables; const aResults : IPerformedOperationResults = nil; const aMaxConcurrentThreads : integer = -1) : boolean;
    end;
  
    function DoReplicaTable (const aTable : TDataReplicaTableToTable; aProgress: ImProgress; aResults : IPerformedOperationResults) : boolean;
  
negative.code:     begin
        newjob := batchexec.QueueJob;
        newjob.Description:= aTables.Get(i).DestinationTableName;
        newjob.Application:= aApplication;
        newjob.DoJobProcedure := InternalReplicaTable;
        tmpJobData := TJobData.Create;
        jobDataList.Add(tmpJobData);
  