diff --git a/openbsc/src/libbsc/bsc_api.c b/openbsc/src/libbsc/bsc_api.c
index 76ceb2d..78e7c87 100644
--- a/openbsc/src/libbsc/bsc_api.c
+++ b/openbsc/src/libbsc/bsc_api.c
@@ -155,17 +155,31 @@
  * Handle the multirate config
  */
 static void handle_mr_config(struct gsm_subscriber_connection *conn,
-			     struct gsm_lchan *lchan)
+			     struct gsm_lchan *lchan, int full_rate)
 {
 	struct bsc_api *api;
 	api = conn->bts->network->bsc_api;
+	struct amr_multirate_conf *mr;
+	struct gsm48_multi_rate_conf *mr_conf;
 
 	if (api->mr_config)
-		return api->mr_config(conn, &lchan->mr_conf);
+		return api->mr_config(conn, lchan->mr_ms_lv, lchan->mr_bts_lv);
 
-	lchan->mr_conf.ver = 1;
-	lchan->mr_conf.icmi = 1;
-	lchan->mr_conf.m5_90 = 1;
+	if (full_rate)
+		mr = &lchan->ts->trx->bts->mr_full;
+	else
+		mr = &lchan->ts->trx->bts->mr_half;
+
+	mr_conf = (struct gsm48_multi_rate_conf *) mr->gsm48_ie;
+	mr_conf->ver = 1;
+
+	/* default, if no AMR codec defined */
+	if (!mr->gsm48_ie[1]) {
+		mr_conf->icmi = 1;
+		mr_conf->m5_90 = 1;
+	}
+	gsm48_multirate_config(lchan->mr_ms_lv, mr, 1);
+	gsm48_multirate_config(lchan->mr_bts_lv, mr, 0);
 }
 
 /*
@@ -209,7 +223,7 @@
 
 	/* handle AMR correctly */
 	if (chan_mode == GSM48_CMODE_SPEECH_AMR)
-		handle_mr_config(conn, new_lchan);
+		handle_mr_config(conn, new_lchan, full_rate);
 
 	if (rsl_chan_activate_lchan(new_lchan, 0x1, 0) < 0) {
 		LOGP(DHO, LOGL_ERROR, "could not activate channel\n");
@@ -382,7 +396,7 @@
 		LOGP(DMSC, LOGL_NOTICE,
 			"Sending ChanModify for speech %d %d\n", chan_mode, full_rate);
 		if (chan_mode == GSM48_CMODE_SPEECH_AMR)
-			handle_mr_config(conn, conn->lchan);
+			handle_mr_config(conn, conn->lchan, full_rate);
 
 		gsm48_lchan_modify(conn->lchan, chan_mode);
 	}
