diff --git a/openbsc/include/openbsc/osmo_msc_data.h b/openbsc/include/openbsc/osmo_msc_data.h
index 8cfe683..5d5c958 100644
--- a/openbsc/include/openbsc/osmo_msc_data.h
+++ b/openbsc/include/openbsc/osmo_msc_data.h
@@ -60,8 +60,8 @@
 	struct write_queue mgcp_agent;
 
 	/* rf ctl related bits */
-	char *ussd_grace_txt;
-	int ussd_grace_timeout;
+	char *mid_call_txt;
+	int mid_call_timeout;
 	struct osmo_bsc_rf *rf_ctl;
 
 	/* ussd welcome text */
diff --git a/openbsc/src/bsc/osmo_bsc_grace.c b/openbsc/src/bsc/osmo_bsc_grace.c
index 89f05f4..882ae60 100644
--- a/openbsc/src/bsc/osmo_bsc_grace.c
+++ b/openbsc/src/bsc/osmo_bsc_grace.c
@@ -69,7 +69,7 @@
 	struct gsm_bts *bts;
 	struct gsm_bts_trx *trx;
 
-	if (!network->msc_data->ussd_grace_txt)
+	if (!network->msc_data->mid_call_txt)
 		return 0;
 
 	llist_for_each_entry(bts, &network->bts_list, list) {
@@ -78,7 +78,7 @@
 				struct gsm_bts_trx_ts *ts = &trx->ts[ts_nr];
 				for (lchan_nr = 0; lchan_nr < TS_MAX_LCHAN; ++lchan_nr) {
 					handle_sub(&ts->lchan[lchan_nr],
-						   network->msc_data->ussd_grace_txt);
+						   network->msc_data->mid_call_txt);
 				}
 			}
 		}
diff --git a/openbsc/src/bsc/osmo_bsc_vty.c b/openbsc/src/bsc/osmo_bsc_vty.c
index 980dfa4..804b411 100644
--- a/openbsc/src/bsc/osmo_bsc_vty.c
+++ b/openbsc/src/bsc/osmo_bsc_vty.c
@@ -69,9 +69,9 @@
 	vty_out(vty, "  ip-dscp %d%s", data->msc_ip_dscp, VTY_NEWLINE);
 	vty_out(vty, "  timeout-ping %d%s", data->ping_timeout, VTY_NEWLINE);
 	vty_out(vty, "  timeout-pong %d%s", data->pong_timeout, VTY_NEWLINE);
-	if (data->ussd_grace_txt)
-		vty_out(vty, "bsc-grace-text %s%s", data->ussd_grace_txt, VTY_NEWLINE);
-	vty_out(vty, " bsc-grace-timeout %d%s", data->ussd_grace_timeout, VTY_NEWLINE);
+	if (data->mid_call_txt)
+		vty_out(vty, "mid-call-text %s%s", data->mid_call_txt, VTY_NEWLINE);
+	vty_out(vty, " mid-call-timeout %d%s", data->mid_call_timeout, VTY_NEWLINE);
 
 	if (data->audio_length != 0) {
 		int i;
@@ -247,9 +247,9 @@
 	return CMD_SUCCESS;
 }
 
-DEFUN(cfg_net_msc_grace_ussd,
-      cfg_net_msc_grace_ussd_cmd,
-      "bsc-grace-text .TEXT",
+DEFUN(cfg_net_msc_mid_call_text,
+      cfg_net_msc_mid_call_text_cmd,
+      "mid-call-text .TEXT",
       "Set the USSD notifcation to be send.\n" "Text to be sent\n")
 {
 	struct osmo_msc_data *data = osmo_msc_data(vty);
@@ -257,18 +257,18 @@
 	if (!txt)
 		return CMD_WARNING;
 
-	bsc_replace_string(data, &data->ussd_grace_txt, txt);
+	bsc_replace_string(data, &data->mid_call_txt, txt);
 	talloc_free(txt);
 	return CMD_SUCCESS;
 }
 
-DEFUN(cfg_net_msc_grace_timeout,
-      cfg_net_msc_grace_timeout_cmd,
-      "bsc-grace-timeout NR",
+DEFUN(cfg_net_msc_mid_call_timeout,
+      cfg_net_msc_mid_call_timeout_cmd,
+      "mid-call-timeout NR",
       "Switch from Grace to Off in NR seconds.\n" "Timeout in seconds\n")
 {
 	struct osmo_msc_data *data = osmo_msc_data(vty);
-	data->ussd_grace_timeout = atoi(argv[0]);
+	data->mid_call_timeout = atoi(argv[0]);
 	return CMD_SUCCESS;
 }
 
@@ -288,8 +288,8 @@
 	install_element(MSC_NODE, &cfg_net_msc_prio_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_ping_time_cmd);
 	install_element(MSC_NODE, &cfg_net_msc_pong_time_cmd);
-	install_element(MSC_NODE, &cfg_net_msc_grace_ussd_cmd);
-	install_element(MSC_NODE, &cfg_net_msc_grace_timeout_cmd);
+	install_element(MSC_NODE, &cfg_net_msc_mid_call_text_cmd);
+	install_element(MSC_NODE, &cfg_net_msc_mid_call_timeout_cmd);
 
 	return 0;
 }
