diff -ur alsa-lib-1.0.10.orig/src/pcm/pcm_dmix.c alsa-lib-1.0.10/src/pcm/pcm_dmix.c --- alsa-lib-1.0.10.orig/src/pcm/pcm_dmix.c 2006-03-06 10:23:44 +0200 +++ alsa-lib-1.0.10/src/pcm/pcm_dmix.c 2006-03-06 10:27:55 +0200 @@ -532,6 +532,12 @@ return 0; } } + + if (dmix->state == SND_PCM_STATE_XRUN) { + snd_pcm_dmix_drop(pcm); + return 0; + } + stop_threshold = pcm->stop_threshold; if (pcm->stop_threshold > pcm->buffer_size) pcm->stop_threshold = pcm->buffer_size;