diff -ruN alsa-lib-1.0.10rc3.orig/src/pcm/pcm_iec958.c alsa-lib-1.0.10rc3/src/pcm/pcm_iec958.c --- alsa-lib-1.0.10rc3.orig/src/pcm/pcm_iec958.c 2005-05-24 16:14:35.000000000 +0200 +++ alsa-lib-1.0.10rc3/src/pcm/pcm_iec958.c 2005-11-16 01:35:46.000000000 +0100 @@ -116,10 +116,10 @@ data |= 0x80000000; /* Preamble */ - if (! iec->counter) - data |= iec->preamble[PREAMBLE_Z]; /* Block start, 'Z' */ - else if (! channel) + if (channel) data |= iec->preamble[PREAMBLE_Y]; /* odd sub frame, 'Y' */ + else if (! iec->counter) + data |= iec->preamble[PREAMBLE_Z]; /* Block start, 'Z' */ else data |= iec->preamble[PREAMBLE_X]; /* even sub frame, 'X' */