anchor.diff:            for i:= FJobsRunning.Count - 1 downto 0 do
             begin
               if (FCanDieEvents.Items[FJobsRunning.Items[i]] as TSimpleEvent).WaitFor(10) <> wrTimeout then
  +            begin
  +              {$IFDEF DEBUG}
  +              logger.Debug('[TControlThread] Job ' + IntToStr(FJobsRunning.Items[i]) + ' is terminated');
  +              {$ENDIF}
                 FJobsRunning.Delete(i);
  +            end;
               if Terminated then
                 break;
             end;
  
positive.code: 
  procedure TmBatchExecutor.Execute({$ifdef gui}aParentForm : TForm;{$endif}aCallBack : TOnEndJobCallback);
  begin
    if GetControlThread(Self).Running then
      exit;
  
    if GetControlThread(Self).Jobs.Count = 0 then
      exit;
  
  
    {$ifdef gui}
  
negative.code:           begin
              inc (lastRunJobIdx);
              FJobsRunning.Add(lastRunJobIdx);
              {$IFDEF DEBUG}
              logger.Debug('[TControlThread] Starting job ' + IntToStr(lastRunJobIdx) + '...');
              {$ENDIF}
  
              tmpJobResult := TJobResult.Create;
              FCurrentJobResults.Add(tmpJobResult);
  