diff --git a/include/openbsc/abis_rsl.h b/include/openbsc/abis_rsl.h
index 160e280..3109454 100644
--- a/include/openbsc/abis_rsl.h
+++ b/include/openbsc/abis_rsl.h
@@ -377,8 +377,9 @@
 		      struct rsl_ie_chan_ident *chan_ident,
 		      u_int8_t bs_power, u_int8_t ms_power,
 		      u_int8_t ta);
-int rsl_chan_activate_tch_f(struct gsm_bts_trx_ts *ts);
-int rsl_chan_activate_sdcch(struct gsm_bts_trx_ts *ts);
+int rsl_chan_activate_lchan(struct gsm_lchan *lchan, u_int8_t act_type, 
+			    u_int8_t ta);
+int rsl_chan_mode_modify_req(struct gsm_lchan *ts);
 int rsl_paging_cmd(struct gsm_bts *bts, u_int8_t paging_group, u_int8_t len,
 		   u_int8_t *ms_ident, u_int8_t chan_needed);
 int rsl_paging_cmd_subscr(struct gsm_bts *bts, u_int8_t chan_needed,
diff --git a/src/abis_rsl.c b/src/abis_rsl.c
index 2eb1009..af5c834 100644
--- a/src/abis_rsl.c
+++ b/src/abis_rsl.c
@@ -397,9 +397,10 @@
 		cm.chan_rate = 0x00;
 		break;
 	case GSM_LCHAN_TCH_F:
-		cm.spd_ind = RSL_CMOD_SPD_SPEECH;
+		/* TCH/F are always activated in signalling mode first */
+		cm.spd_ind = RSL_CMOD_SPD_SIGN;
 		cm.chan_rt = RSL_CMOD_CRT_TCH_Bm;
-		cm.chan_rate = 0x11; /* speech coding alg version 2*/
+		cm.chan_rate = 0x00;
 		break;
 	case GSM_LCHAN_TCH_H:
 		DEBUGP(DRSL, "Unimplemented TCH_H activation\n");
@@ -437,6 +438,44 @@
 	return abis_rsl_sendmsg(msg);
 }
 
+/* Chapter 8.4.9 */
+int rsl_chan_mode_modify_req(struct gsm_lchan *lchan)
+{
+	struct abis_rsl_dchan_hdr *dh;
+	struct msgb *msg = rsl_msgb_alloc();
+
+	u_int8_t chan_nr = lchan2chan_nr(lchan);
+	struct rsl_ie_chan_mode cm;
+
+	/* FIXME: what to do with data calls ? */
+	cm.dtx_dtu = 0x00;
+	switch (lchan->type) {
+	case GSM_LCHAN_TCH_F:
+		cm.spd_ind = RSL_CMOD_SPD_SPEECH;
+		cm.chan_rt = RSL_CMOD_CRT_TCH_Bm;
+		cm.chan_rate = 0x11; /* speech coding alg version 2*/
+		break;
+	default:
+		DEBUGP(DRSL, "Unimplemented channel modification\n");
+		return -1;
+	}
+
+	dh = (struct abis_rsl_dchan_hdr *) msgb_put(msg, sizeof(*dh));
+	init_dchan_hdr(dh, RSL_MT_MODE_MODIFY_REQ);
+	dh->chan_nr = chan_nr;
+
+	msgb_tlv_put(msg, RSL_IE_CHAN_MODE, sizeof(cm),
+		     (u_int8_t *) &cm);
+#if 0
+	msgb_tlv_put(msg, RSL_IE_ENCR_INFO, 1,
+		     (u_int8_t *) &encr_info);
+#endif
+
+	msg->trx = lchan->ts->trx;
+
+	return abis_rsl_sendmsg(msg);
+}
+
 /* Chapter 9.1.7 of 04.08 */
 int rsl_chan_release(struct gsm_lchan *lchan)
 {
@@ -614,7 +653,13 @@
 		lchan_free(msg->lchan);
 		break;
 	case RSL_MT_MODE_MODIFY_ACK:
+		DEBUGP(DRSL, "RSL CHANNEL MODE MODIFY ACK chan_nr=0x%02x\n",
+			rslh->chan_nr);
+		break;
 	case RSL_MT_MODE_MODIFY_NACK:
+		DEBUGP(DRSL, "RSL CHANNEL MODE MODIFY NACK chan_nr=0x%02x\n",
+			rslh->chan_nr);
+		break;
 	case RSL_MT_PHY_CONTEXT_CONF:
 	case RSL_MT_PREPROC_MEAS_RES:
 	case RSL_MT_TALKER_DET:
@@ -907,6 +952,7 @@
 	att_ip[2] = ip >> 16;
 	att_ip[3] = ip >> 8;
 	att_ip[4] = ip & 0xff;
+	//att_ip[4] = 11;
 
 	att_port = msgb_put(msg, sizeof(port)+1);
 	att_port[0] = RSL_IE_IPAC_REMOTE_PORT;
