diff -ur linux-2.6.39.1.orig/sound/usb/card.c linux-2.6.39.1/sound/usb/card.c --- linux-2.6.39.1.orig/sound/usb/card.c 2011-06-06 06:37:26.000000000 +0200 +++ linux-2.6.39.1/sound/usb/card.c 2011-06-06 07:06:06.000000000 +0200 @@ -461,7 +461,10 @@ chip = NULL; mutex_lock(®ister_mutex); for (i = 0; i < SNDRV_CARDS; i++) { - if (usb_chip[i] && usb_chip[i]->dev == dev) { + if (usb_chip[i] && + (usb_chip[i]->dev == dev) && + (usb_chip[i]->ctrl_intf) && + (usb_chip[i]->ctrl_intf->desc.bInterfaceNumber == ifnum)) { if (usb_chip[i]->shutdown) { snd_printk(KERN_ERR "USB device is in the shutdown state, cannot create a card instance\n"); goto __error;