diff --git a/openbsc/include/openbsc/gsm_04_08.h b/openbsc/include/openbsc/gsm_04_08.h
index 8df7b73..2f5aaa9 100644
--- a/openbsc/include/openbsc/gsm_04_08.h
+++ b/openbsc/include/openbsc/gsm_04_08.h
@@ -39,9 +39,6 @@
 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 df985ca..c41443e 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);
 }
 
-int gsm48_tx_mm_serv_ack(struct gsm_subscriber_connection *conn)
+static 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 */
-int gsm48_tx_mm_serv_rej(struct gsm_subscriber_connection *conn,
+static 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 9c091af..63972c8 100644
--- a/openbsc/src/osmo-bsc/Makefile.am
+++ b/openbsc/src/osmo-bsc/Makefile.am
@@ -16,7 +16,5 @@
 		 $(top_builddir)/src/libcommon/libcommon.a \
 		 $(top_builddir)/src/libctrl/libctrl.a \
 		 $(top_builddir)/src/libcommon/libcommon.a \
-		 -ldbi -ldl $(LIBOSMOSCCP_LIBS) \
-		 $(LIBSMPP34_LIBS) $(LIBOSMOCORE_LIBS) \
-		 $(LIBOSMOGSM_LIBS) $(LIBOSMOVTY_LIBS) $(COVERAGE_LDFLAGS) \
-		 $(LIBOSMOABIS_LIBS)
+		 $(LIBOSMOSCCP_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 8288d3b..675bbb2 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_no_srv(struct gsm_subscriber_connection *conn,
-				 struct msgb *msg, const char *text)
+static void bsc_send_ussd_notification(struct gsm_subscriber_connection *conn,
+			   struct msgb *msg, const char *text)
 {
 	struct gsm48_hdr *gh;
 	int8_t pdisc;
@@ -119,14 +119,10 @@
 	}
 
 	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);
@@ -147,8 +143,7 @@
 	msc = bsc_find_msc(conn, msg);
 	if (!msc) {
 		LOGP(DMSC, LOGL_ERROR, "Failed to find a MSC for a connection.\n");
-		bsc_send_ussd_no_srv(conn, msg,
-				     conn->bts->network->bsc_data->ussd_no_msc_txt);
+		bsc_send_ussd_notification(conn, msg, conn->bts->network->bsc_data->ussd_no_msc_txt);
 		return -1;
 	}
 
@@ -169,9 +164,9 @@
 	if (ret != BSC_CON_SUCCESS) {
 		/* allocation has failed */
 		if (ret == BSC_CON_REJECT_NO_LINK)
-			bsc_send_ussd_no_srv(conn, msg, msc->ussd_msc_lost_txt);
+			bsc_send_ussd_notification(conn, msg, msc->ussd_msc_lost_txt);
 		else if (ret == BSC_CON_REJECT_RF_GRACE)
-			bsc_send_ussd_no_srv(conn, msg, msc->ussd_grace_txt);
+			bsc_send_ussd_notification(conn, msg, msc->ussd_grace_txt);
 
 		return BSC_API_CONN_POL_REJECT;
 	}
