USplineComponent::SetWorldLocationAtSplinePoint sets Local location

This function USplineComponent::SetWorldLocationAtSplinePoint is intended to receive a World Location as input. It stores the location internally without first transforming it to local space. The object stores these locations as local space only.

The fix is to change the function to:

void USplineComponent::SetWorldLocationAtSplinePoint(int32 PointIndex, const FVector& InLocation)
{
	if((PointIndex >= 0) && (PointIndex < SplineInfo.Points.Num()))
	{
		SplineInfo.Points[ PointIndex ].OutVal = ComponentToWorld.InverseTransformPosition( InLocation );
		UpdateSpline();
	}
}

It looks like Epic fixed this in [CL 2311780 by Michael Noland in Main branch] on 09/26/2014.