anchor.diff:  function TKMUnitActionWalkTo.AssembleTheRoute: Boolean;
   var
     I: Integer;
  -  NodeList2: TKMPointList;
  -  AvoidLocked: TKMPathAvoidLocked;
  +  nodeList2: TKMPointList;
  +  avoidLocked: TKMPathAvoidLocked;
   begin
     //Build a piece of route to return to nearest road piece connected to destination road network
     if (fPass = tpWalkRoad)
  
positive.code: function TKMUnitActionWalkTo.CheckAllTilesAroundHouseLocked: Boolean;
  var
    I: Integer;
    CellsAround: TKMPointDirList;
  begin
    Result := (fTargetHouse <> nil) and not fTargetHouse.IsDestroyed;
    if not Result then
      Exit;
  
    CellsAround := TKMPointDirList.Create;
    try
      fTargetHouse.GetListOfCellsAround(CellsAround, fPass);
  
      for I := 0 to CellsAround.Count - 1 do
        if not gTerrain.TileIsLocked(CellsAround[I].Loc) then
          Exit(False);
    finally
      CellsAround.Free;
    end;
  end;
  
  
negative.code: 
    if (fUnit is TKMUnitWorker) then
    begin
      distNext := gHands.DistanceToEnemyTowers(T, fUnit.Owner);
      if (distNext <= RANGE_WATCHTOWER_MAX)
        and (distNext < gHands.DistanceToEnemyTowers(fUnit.Position, fUnit.Owner)) then
      begin
        //Cancel the plan if we cant approach it
        if TKMUnitWorker(fUnit).Task is TKMTaskBuild then
  