anchor.diff:      if not fDoExchange then
         case CheckForObstacle(OldDir) of
           ocNoObstacle:   ;
  -        ocReRouteMade:  Exit; //New route will pick-up
  +        ocReRouteMade:  Exit; //Self was freed so exit immediately. New route will pick-up
           ocNoRoute:      begin Result := arActAborted; Exit; end; //
         end;
   
  
positive.code:         Exit(ocNoObstacle)
        else
        begin
  
          if fUnit.TrySetActionWalk(fWalkTo, fType, fDistance, fTargetUnit, fTargetHouse, False) then
          begin
            //Restore direction, cause it usually looks unpleasant,
          //when warrior turns to locked Loc and then immidiately (in 1 tick) turns away when on new route
            fUnit.Direction := aDir;
            Result := ocReRouteMade;
          end else
            Exit(ocNoObstacle); //Same as when AllTilesAroundLocked
        end;
  
negative.code:   T: TKMPoint;
    DistNext: Single;
    AllTilesAroundLocked: Boolean;
    U: TKMUnit;
  begin
    Result := ocNoObstacle;
  
  