--- linux-2.6.12.3/drivers/isdn/capi/capidrv.c.orig	2005-08-17 23:39:22.000000000 +0200
+++ linux-2.6.12.3/drivers/isdn/capi/capidrv.c	2005-08-18 00:23:24.000000000 +0200
@@ -153,7 +153,6 @@
 	case ISDN_PROTO_L2_X75I:
 	case ISDN_PROTO_L2_X75UI:
 	case ISDN_PROTO_L2_X75BUI:
-		return 0;
 	case ISDN_PROTO_L2_HDLC:
 	default:
 		return 0;
@@ -166,7 +165,7 @@
         case ISDN_PROTO_L2_FAX:
 		return 4;
 	case ISDN_PROTO_L2_MODEM:
-		return 8;
+		return 7;
 	}
 }
 
@@ -183,10 +182,11 @@
         case ISDN_PROTO_L2_V11096:
         case ISDN_PROTO_L2_V11019:
         case ISDN_PROTO_L2_V11038:
-	case ISDN_PROTO_L2_MODEM:
 		return 1;
         case ISDN_PROTO_L2_FAX:
 		return 4;
+	case ISDN_PROTO_L2_MODEM:
+		return 7;
 	}
 }
 
@@ -201,11 +201,12 @@
         case ISDN_PROTO_L2_V11096:
         case ISDN_PROTO_L2_V11019:
         case ISDN_PROTO_L2_V11038:
-	case ISDN_PROTO_L2_MODEM:
 	default:
 		return 0;
         case ISDN_PROTO_L2_FAX:
 		return 4;
+	case ISDN_PROTO_L2_MODEM:
+		return 7;
 	}
 }
 
@@ -2040,7 +2041,7 @@
 		card->interface.features |= ISDN_FEATURE_L2_V11096 |
 	    				    ISDN_FEATURE_L2_V11019 |
 	    				    ISDN_FEATURE_L2_V11038;
-	if (profp->support1 & (1<<8))
+	if (profp->support1 & (1<<8) || profp->support1 & (1<<7))
 		card->interface.features |= ISDN_FEATURE_L2_MODEM;
 	card->interface.hl_hdrlen = 22; /* len of DATA_B3_REQ */
 	strncpy(card->interface.id, id, sizeof(card->interface.id) - 1);
