diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h
index 2f5aaa9..8df7b73 100644
--- a/openbsc/include/openbsc/gsm_04_08.h
+++ b/openbsc/include/openbsc/gsm_04_08.h
@@ -39,6 +39,9 @@
 int gsm48_tx_mm_info(struct gsm_subscriber_connection *conn);
 int gsm48_tx_mm_auth_req(struct gsm_subscriber_connection *conn, uint8_t *rand, int key_seq);
 int gsm48_tx_mm_auth_rej(struct gsm_subscriber_connection *conn);
+int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn);
+int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
+				enum gsm48_reject_value value);
 int gsm48_send_rr_release(struct gsm_lchan *lchan);
 int gsm48_send_rr_ciph_mode(struct gsm_lchan *lchan, int want_imeisv);
 int gsm48_send_rr_app_info(struct gsm_subscriber_connection *conn, uint8_t apdu_id,
diff --git a/openbsc/src/libmsc/gsm_04_08.c b/openbsc/src/libmsc/gsm_04_08.c
index c41443e..df985ca 100644
--- a/openbsc/src/libmsc/gsm_04_08.c
+++ b/openbsc/src/libmsc/gsm_04_08.c
@@ -804,14 +804,14 @@
 	return gsm48_tx_simple(conn, GSM48_PDISC_MM, GSM48_MT_MM_AUTH_REJ);
 }
 
-static int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn)
+int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn)
 {
 	DEBUGP(DMM, "-> CM SERVICE ACK\n");
 	return gsm48_tx_simple(conn, GSM48_PDISC_MM, GSM48_MT_MM_CM_SERV_ACC);
 }
 
 /* 9.2.6 CM service reject */
-static int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
+int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
 				enum gsm48_reject_value value)
 {
 	struct msgb *msg;
diff --git a/openbsc/src/osmo-bsc/Makefile.am b/openbsc/src/osmo-bsc/Makefile.am
index 63972c8..9c091af 100644
--- a/openbsc/src/osmo-bsc/Makefile.am
+++ b/openbsc/src/osmo-bsc/Makefile.am
@@ -16,5 +16,7 @@
 		 $(top_builddir)/src/libcommon/libcommon.a \
 		 $(top_builddir)/src/libctrl/libctrl.a \
 		 $(top_builddir)/src/libcommon/libcommon.a \
-		 $(LIBOSMOSCCP_LIBS) $(LIBOSMOCORE_LIBS) \
-		 $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(COVERAGE_LDFLAGS) $(LIBOSMOABIS_LIBS)
+		 -ldbi -ldl $(LIBOSMOSCCP_LIBS) \
+		 $(LIBSMPP34_LIBS) $(LIBOSMOCORE_LIBS) \
+		 $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(COVERAGE_LDFLAGS) \
+		 $(LIBOSMOABIS_LIBS)
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_api.c b/openbsc/src/osmo-bsc/osmo_bsc_api.c
index 675bbb2..8288d3b 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_api.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_api.c
@@ -87,8 +87,8 @@
 	queue_msg_or_return(resp);
 }
 
-static void bsc_send_ussd_notification(struct gsm_subscriber_connection *conn,
-			   struct msgb *msg, const char *text)
+static void bsc_send_ussd_no_srv(struct gsm_subscriber_connection *conn,
+				 struct msgb *msg, const char *text)
 {
 	struct gsm48_hdr *gh;
 	int8_t pdisc;
@@ -119,10 +119,14 @@
 	}
 
 	if (drop_message) {
-		LOGP(DMSC, LOGL_DEBUG, "Skipping (not sending) USSD message: '%s'\n", text);
+		LOGP(DMSC, LOGL_DEBUG, "Skipping (not sending) USSD message: '%s'\n",
+		     text);
 		return;
 	}
 
+	LOGP(DMSC, LOGL_INFO, "Sending CM Service Accept\n");
+	gsm48_tx_mm_serv_ack(conn);
+
 	LOGP(DMSC, LOGL_INFO, "Sending USSD message: '%s'\n", text);
 	gsm0480_send_ussdNotify(conn, 1, text);
 	gsm0480_send_releaseComplete(conn);
@@ -143,7 +147,8 @@
 	msc = bsc_find_msc(conn, msg);
 	if (!msc) {
 		LOGP(DMSC, LOGL_ERROR, "Failed to find a MSC for a connection.\n");
-		bsc_send_ussd_notification(conn, msg, conn->bts->network->bsc_data->ussd_no_msc_txt);
+		bsc_send_ussd_no_srv(conn, msg,
+				     conn->bts->network->bsc_data->ussd_no_msc_txt);
 		return -1;
 	}
 
@@ -164,9 +169,9 @@
 	if (ret != BSC_CON_SUCCESS) {
 		/* allocation has failed */
 		if (ret == BSC_CON_REJECT_NO_LINK)
-			bsc_send_ussd_notification(conn, msg, msc->ussd_msc_lost_txt);
+			bsc_send_ussd_no_srv(conn, msg, msc->ussd_msc_lost_txt);
 		else if (ret == BSC_CON_REJECT_RF_GRACE)
-			bsc_send_ussd_notification(conn, msg, msc->ussd_grace_txt);
+			bsc_send_ussd_no_srv(conn, msg, msc->ussd_grace_txt);
 
 		return BSC_API_CONN_POL_REJECT;
 	}
