If you copy backwards in the case where the srcPos is after destPos and the ranges overlap, you will have the same problem. The distinction is required.