anchor.diff:        end;
   
       //Walk complete
  -    if ((NodePos=NodeList.Count) or ((not fWalkToSpot) and (KMLength(fWalker.GetPosition,fWalkTo) < 1.5)) or
  +    if CanAbandon and ((NodePos=NodeList.Count) or ((not fWalkToSpot) and (KMLength(fWalker.GetPosition,fWalkTo) < 1.5)) or
         ((fTargetUnit <> nil) and (KMLength(fWalker.GetPosition,fTargetUnit.GetPosition) < 1.5)) or //If we are walking to a unit check to see if we've met the unit early
         ((fWalker.GetUnitTask <> nil) and fWalker.GetUnitTask.WalkShouldAbandon)) then //See if task wants us to abandon
       begin
  
positive.code:     end;
  
      //Check if target unit (warrior) has died and if so abandon our walk and so delivery task can exit itself
      if (fTargetUnit <> nil) and ((fTargetUnit.IsDead) or (fTargetUnit.GetUnitTask is TTaskDie)) then
      begin
        if (fWalker is TKMUnitWarrior) and (fTargetUnit is TKMUnitWarrior) and (TKMUnitWarrior(fWalker).GetWarriorState <> ws_Engage) then
        begin
  
negative.code:   Distance := ACTION_TIME_DELTA * fWalker.GetSpeed;
  
    //Check if unit has arrived on tile
    if KMSamePointF(fWalker.PositionF, KMPointF(NodeList.List[NodePos]), Distance/2) then
    begin
  
      //Set precise position to avoid rounding errors
      fWalker.PositionF := KMPointF(NodeList.List[NodePos]);
      if (NodePos > 1) and (not WaitingOnStep) and KMStepIsDiag(NodeList.List[NodePos-1],NodeList.List[NodePos]) then DecVertex; //Unoccupy vertex
      WaitingOnStep := true;
  
      GetIsStepDone := true; //Unit stepped on a new tile
      fWalker.IsExchanging := false; //Disable sliding (in case it was set in previous step)
  
  
      { Update destination point }
  
      //Make changes to our route if we are supposed to be tracking a unit
      if CanAbandon and (fTargetUnit <> nil) and not KMSamePoint(fTargetUnit.GetPosition,fWalkTo) then
      begin
        ChangeWalkTo(fTargetUnit.GetPosition,false,false); //If target unit has moved then change course and follow it (don't reset target unit)
        //If we are a warrior commander tell our memebers to use this new position
  