anchor.diff:      Inc(I);
   
     if I >= fFieldsCount then
  -    SetLength(fFields, fFieldsCount + LENGTH_INC);
  +    Inc(fFieldsCount);
  +
  +  if I >= Length(fFields) then
  +    SetLength(fFields, Length(fFields) + LENGTH_INC);
   
     fFields[I].Loc := aLoc;
     fFields[I].FieldType := aFieldType;
     fFields[I].JobStatus := js_Open;
     fFields[I].Worker := nil;
  -
  -  Inc(fFieldsCount);
   end;
   
   
  
positive.code: procedure TKMWorkerList.AddWorker(aWorker: TKMUnitWorker);
  begin
    if fWorkersCount >= Length(fWorkers) then
      SetLength (fWorkers, fWorkersCount + 16);
  
    fWorkers[fWorkersCount].Worker := TKMUnitWorker(aWorker.GetUnitPointer);
    Inc(fWorkersCount);
  
negative.code: begin
    SaveStream.Write('FieldworksList');
  
    SaveStream.Write(fFieldsCount);
    for I := 0 to fFieldsCount - 1 do
    begin
      SaveStream.Write(fFields[I].Loc);
  