... although, in this case, the code would be clearer by phrasing the existing condition as (copy_start == NULL), as copy_start isn't a boolean deciding whether we start copying but a pointer to the start of the copy; it's NULL when we're processing the first element in the sequence.