anchor.diff:      if not fDoExchange and CheckWalkComplete then
       begin
         if (fDistance > 0) and ((fUnit.Task = nil) or (not fUnit.Task.WalkShouldAbandon))
  -        and not KMSamePoint(NodeList[NodePos], fWalkTo) then //Happens rarely when we asked to sidestep towards our not locked target (Warrior)
  +      and not KMSamePoint(NodeList[NodePos], fWalkTo) then //Happens rarely when we asked to sidestep towards our not locked target (Warrior)
           fUnit.Direction := KMGetDirection(NodeList[NodePos], fWalkTo); //Face tile (e.g. worker)
  -      Result := arActDone;
  -      Exit;
  +      Exit(arActDone);
       end;
   
       //Check if target unit (warrior) has died and if so abandon our walk and so delivery task can exit itself
       if CanAbandonInternal then
         if CheckTargetHasDied then
  -      begin
  -        Result := arActAborted;
  -        Exit;
  -      end;
  +        Exit(arActAborted);
   
       //This is sometimes caused by unit interaction changing the route so simply ignore it
       if KMSamePoint(NodeList[NodePos], NodeList[NodePos+1]) then
  
positive.code:       fPass := CanWalk;}
  
      //Save unit dir in case we will need to restore it
      OldDir := fUnit.Direction;
  
      //Update unit direction according to next Node
      fUnit.Direction := KMGetDirection(NodeList[NodePos], NodeList[NodePos+1]);
  
negative.code: 
  
  // Check if our path is through viewport, to show debug unit route
  function TKMUnitActionWalkTo.NeedToPaint(const aRect: TKMRect): Boolean;
  var
    I: Integer;
  begin
  