--- orig/alsa-kernel/usb/usbaudio.c	2007-07-10 21:16:07.000000000 +0200
+++ alsa-kernel/usb/usbaudio.c	2007-07-10 21:32:16.000000000 +0200
@@ -2350,7 +2350,9 @@
 			return 1;
 		break;
 	case USB_ID(0x0763, 0x2003): /* M-Audio Audiophile USB */
-		return 1;
+		if (fp->altsetting==1 || fp->altsetting==2 ||
+                    fp->altsetting==3)
+			return 1;
 	}
 	return 0;
 }
@@ -3251,6 +3253,10 @@
 static int audiophile_skip_setting_quirk(struct snd_usb_audio *chip,
 					 int iface, int altno)
 {
+	/* Reset ALL ifaces to 0 altsetting. 
+	Call it for every possible altsetting of every interface. */
+	usb_set_interface(chip->dev, iface, 0); 
+
 	if (device_setup[chip->index] & AUDIOPHILE_SET) {
 		if ((device_setup[chip->index] & AUDIOPHILE_SET_DTS)
 		    && altno != 6)
