diff -urN alsa-lib-1.0.23-orig/src/pcm/pcm.c alsa-lib-1.0.23/src/pcm/pcm.c --- alsa-lib-1.0.23-orig/src/pcm/pcm.c 2010-04-16 20:11:05 +0900 +++ alsa-lib-1.0.23/src/pcm/pcm.c 2010-06-16 13:43:10 +0900 @@ -2672,7 +2672,8 @@ dst_area->step == (unsigned int) width) { size_t bytes = samples * width / 8; samples -= bytes * 8 / width; - memcpy(dst, src, bytes); + if (dst != src) + memcpy(dst, src, bytes); if (samples == 0) return 0; }