diff --git a/src/mixer/simple.c b/src/mixer/simple.c index 469e1f63..566ca68e 100644 --- a/src/mixer/simple.c +++ b/src/mixer/simple.c @@ -730,7 +730,8 @@ static int simple_update(snd_mixer_elem_t *melem) } /* exceptions */ - if ((caps & (CAP_GSWITCH|CAP_PSWITCH|CAP_CSWITCH)) == (caps & CAP_GSWITCH)) { + if ((caps & (CAP_GSWITCH|CAP_PSWITCH|CAP_CSWITCH)) && + (caps & (CAP_GSWITCH|CAP_PSWITCH|CAP_CSWITCH)) == (caps & CAP_GSWITCH)) { caps &= ~(CAP_GSWITCH|CAP_CSWITCH_JOIN|CAP_CSWITCH_EXCL); caps |= CAP_PSWITCH; }