>From http://www.cplusplus.com/memcpy: the arrays pointed by both the *destination* and *source* parameters should not overlap (for overlapping memory blocks, memmoveis a safer approach). However, Array.blit allows overlapping of the chunks that are to be copied. So, probably it is slower because it is checking for the overlapping regions and dealing with them appropriately. - Tom