This change is intentional. There were 2 problems:
1. If all waypoints were removed an array out of bounds error ws thrown because the TargetPointsHelper().removeWayPoint method is only intended for use with waypoints stored in the persistent storage and this does not include the destination point. The IntermdediatePointsDialog creates and array that has the destination point added to the waypoints, hence is always bigger thatn the size of the waypoints array in persistent storage. Thus iIf you try to remove all waypoints (including the destination point), the error occurs.
2. If the Destination point is deleted, the original method just assumed that the next entry in the array would become the new destination point and sets it accordingly. However if this point is one of th elist to be removed, the destination point is not changed, hence continues to points to a non waypoint. THis is the reason the new method was added to swap the destination point for a waypoint that will not be deleted.