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:   T: TKMPoint;
    DistNext: Single;
    AllTilesAroundLocked: Boolean;
  begin
    Result := ocNoObstacle;
  
  
negative.code:     if CanWalkToTarget(fUnit.CurrPosition, GetEffectivePassability) then
      begin
        fUnit.SetActionWalk(fWalkTo, fType, fDistance, fTargetUnit, fTargetHouse);
        //Now Self = nil since the walk action was replaced! Don't access members and exit ASAP
        Exit(ocReRouteMade);
      end else
        Result := ocNoRoute;
  end;
  