diff --git a/src/input/dahdi.c b/src/input/dahdi.c
index edc86ba..0cefa6c 100644
--- a/src/input/dahdi.c
+++ b/src/input/dahdi.c
@@ -526,7 +526,7 @@
 			if (!e1i_ts->lapd)
 				e1i_ts->lapd = lapd_instance_alloc(1,
 					dahdi_write_msg, bfd, e1inp_dlsap_up,
-					e1i_ts, LAPD_PROFILE_ABIS);
+					e1i_ts, &lapd_profile_abis);
 			break;
 		case E1INP_TS_TYPE_TRAU:
 			/* close/release LAPD instance, if any */
diff --git a/src/input/lapd.c b/src/input/lapd.c
index d40b61c..22040cb 100644
--- a/src/input/lapd.c
+++ b/src/input/lapd.c
@@ -68,6 +68,39 @@
 #define LAPD_LEN(len)	((len << 2) | 0x1)
 #define LAPD_EL	0x1
 
+const struct lapd_profile lapd_profile_isdn = {
+	7, 0,
+	3,
+	260,
+	3,
+	1,0,
+	1,0,
+	10,0,
+	0
+};
+
+const struct lapd_profile lapd_profile_abis = {
+	1, 2,
+	3,
+	260,
+	3,
+	0,240000,
+	1,0,
+	10,0,
+	0
+};
+
+const struct lapd_profile lapd_profile_sat = {
+	15, 0,
+	5,
+	260,
+	5,
+	2,500000,
+	2,500000,
+	20,0,
+	1
+};
+
 typedef enum {
 	LAPD_TEI_NONE = 0,
 	LAPD_TEI_ASSIGNED,
@@ -162,9 +195,8 @@
 	struct lapd_sap *sap;
 	struct lapd_datalink *dl;
 	struct lapd_instance *li;
-	int profile;
-	int n201, k;
-	int t200_sec, t200_usec;
+	struct lapd_profile *profile;
+	int k;
 
 	sap = talloc_zero(teip, struct lapd_sap);
 	if (!sap)
@@ -177,41 +209,24 @@
 	sap->tei = teip;
 	dl = &sap->dl;
 	li = teip->li;
+	profile = &li->profile;
 
-	profile = li->profile;
-	switch (profile) {
-	case LAPD_PROFILE_ABIS:
-		n201 = 260;
-		t200_sec = 0; t200_usec = 240000;
-		if (sapi == 0)
-			k = 2;
-		else
-			k = 1;
-		break;
-	case LAPD_PROFILE_ASAT:
-		n201 = 260;
-		t200_sec = 2; t200_usec = 500000;
-		k = 15;
-		li->short_address = 1;
-		break;
-	case LAPD_PROFILE_ISDN:
-	default:
-		n201 = 260;
-		t200_sec = 1; t200_usec = 0;
-		k = 7;
-		break;
-	}
-
-	lapd_dl_init(dl, k, 128, n201);
+	if (sapi == 0 && profile->k_sapi0)
+		k = profile->k_sapi0;
+	else
+		k = profile->k;
+	lapd_dl_init(dl, k, 128, profile->n201);
 	dl->use_sabme = 1; /* use SABME instead of SABM (GSM) */
 	dl->send_ph_data_req = send_ph_data_req;
 	dl->send_dlsap = send_dlsap;
+	dl->n200 = profile->n200;
+	dl->n200_est_rel = profile->n200;
+	dl->t200_sec = profile->t200_sec; dl->t200_usec = profile->t200_usec;
+	dl->t203_sec = profile->t203_sec; dl->t203_usec = profile->t203_usec;
 	dl->lctx.dl = &sap->dl;
 	dl->lctx.sapi = sapi;
 	dl->lctx.tei = teip->tei;
-	dl->lctx.n201 = n201;
-	dl->t200_sec = t200_sec;
-	dl->t200_usec = t200_usec;
+	dl->lctx.n201 = profile->n201;
 
 	lapd_set_mode(&sap->dl, (teip->li->network_side) ? LAPD_MODE_NETWORK
 							: LAPD_MODE_USER);
@@ -512,7 +527,7 @@
 		return -EINVAL;
 	}
 	/* address field */
-	if (li->short_address && lctx->tei == 0)
+	if (li->profile.short_address && lctx->tei == 0)
 		addr_len = 1;
 	else
 		addr_len = 2;
@@ -570,7 +585,7 @@
 	void (*tx_cb)(struct msgb *msg, void *cbdata), void *tx_cbdata,
 	void (*rx_cb)(struct osmo_dlsap_prim *odp, uint8_t tei, uint8_t sapi, 
 			void *rx_cbdata), void *rx_cbdata,
-	enum lapd_profile profile)
+	const struct lapd_profile *profile)
 {
 	struct lapd_instance *li;
 
@@ -583,7 +598,7 @@
 	li->transmit_cbdata = tx_cbdata;
 	li->receive_cb = rx_cb;
 	li->receive_cbdata = rx_cbdata;
-	li->profile = profile;
+	memcpy(&li->profile, profile, sizeof(li->profile));
 
 	INIT_LLIST_HEAD(&li->tei_list);
 
diff --git a/src/input/misdn.c b/src/input/misdn.c
index b5b57ae..10bb47e 100644
--- a/src/input/misdn.c
+++ b/src/input/misdn.c
@@ -547,7 +547,7 @@
 				addr.channel = ts;
 				e1i_ts->lapd = lapd_instance_alloc(1,
 					misdn_write_msg, bfd, e1inp_dlsap_up,
-					e1i_ts, LAPD_PROFILE_ABIS);
+					e1i_ts, &lapd_profile_abis);
 			} else {
 				addr.channel = 0;
 				/* SAPI not supported yet in kernel */
