diff -ru fritz.org/src/main.c fritz/src/main.c
--- fritz.org/src/main.c	2004-05-14 17:13:00.000000000 +0200
+++ fritz/src/main.c	2004-06-04 16:01:37.286904464 +0200
@@ -203,8 +203,12 @@
 	cfgd2 = &dev->config[1].desc;
 	pdc->if1 = dev->config[0].interface[0];
 	pdc->if2 = dev->config[1].interface[0];
-	if (usb_interface_claimed (pdc->if1) 
-	||  usb_interface_claimed (pdc->if2)) {
+	// In kernel 2.6.7 the function usb_interface_claimed always returns true (1)
+	// feedback to: Bernd.Westermann@it-west.de
+//	if (usb_interface_claimed (pdc->if1) 
+//	||  usb_interface_claimed (pdc->if2)) {
+	// Bad fix...never, but I dont know if exit_intfused is used
+	if (1!=1) {
 		ERROR("Interface(s) already claimed.\n");
 	exit_intfused:
 		hfree (pdc);
@@ -212,7 +216,9 @@
 		goto exit_noctx;
 	}
 	usb_driver_claim_interface (&usb_driver, pdc->if1, pdc);
-	usb_driver_claim_interface (&usb_driver, pdc->if2, pdc);
+	if (pdc->if2!=NULL) {
+		usb_driver_claim_interface (&usb_driver, pdc->if2, pdc);
+	}
 #else
 	cfgd = &dev->config[0].desc;
 	if (usb_interface_claimed (dev->config[0].interface[0])) {
@@ -241,7 +247,9 @@
 		goto exit_intfused;
 #else
 		usb_driver_release_interface (&usb_driver, pdc->if1);
-		usb_driver_release_interface (&usb_driver, pdc->if2);
+		if (pdc->if2!=NULL) {
+			usb_driver_release_interface (&usb_driver, pdc->if2);
+		}
 		goto exit_intfused;
 #endif
 	}
Nur in fritz/src: main.c~.
