diff --git a/openbsc/src/osmo-bsc/osmo_bsc_bssap.c b/openbsc/src/osmo-bsc/osmo_bsc_bssap.c
index 684a6c1..4190abf 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_bssap.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_bssap.c
@@ -1,6 +1,6 @@
 /* GSM 08.08 BSSMAP handling						*/
-/* (C) 2009-2011 by Holger Hans Peter Freyther <zecke@selfish.org>
- * (C) 2009-2011 by On-Waves
+/* (C) 2009-2012 by Holger Hans Peter Freyther <zecke@selfish.org>
+ * (C) 2009-2012 by On-Waves
  * All Rights Reserved
  *
  * This program is free software; you can redistribute it and/or modify
@@ -459,6 +459,7 @@
 	struct dtap_header *header;
 	struct msgb *gsm48;
 	uint8_t *data;
+	int rc;
 
 	LOGP(DMSC, LOGL_DEBUG, "Rx MSC DTAP: %s\n",
 		osmo_hexdump(msg->l3h, length));
@@ -495,8 +496,10 @@
 	memcpy(data, msg->l3h + sizeof(*header), length - sizeof(*header));
 
 	/* pass it to the filter for extra actions */
-	bsc_scan_msc_msg(conn->conn, gsm48);
-	return gsm0808_submit_dtap(conn->conn, gsm48, header->link_id, 1);
+	rc = bsc_scan_msc_msg(conn->conn, gsm48);
+	gsm0808_submit_dtap(conn->conn, gsm48, header->link_id, 1);
+	if (rc == BSS_SEND_USSD)
+		bsc_send_welcome_ussd(conn->conn);
 }
 
 int bsc_handle_udt(struct osmo_msc_data *msc,
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_filter.c b/openbsc/src/osmo-bsc/osmo_bsc_filter.c
index 3b657b3..957ceaf 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_filter.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_filter.c
@@ -225,23 +225,30 @@
 	return 0;
 }
 
-static void send_welcome_ussd(struct gsm_subscriber_connection *conn)
+static int send_welcome_ussd(struct gsm_subscriber_connection *conn)
 {
 	struct osmo_bsc_sccp_con *bsc_con;
 
 	bsc_con = conn->sccp_con;
 	if (!bsc_con) {
 		LOGP(DMSC, LOGL_DEBUG, "No SCCP connection associated.\n");
-		return;
+		return 0;
 	}
 
 	if (!bsc_con->msc->ussd_welcome_txt) {
 		LOGP(DMSC, LOGL_DEBUG, "No USSD Welcome text defined.\n");
-		return;
+		return 0;
 	}
 
-	gsm0480_send_ussdNotify(conn, 1, bsc_con->msc->ussd_welcome_txt);
+	return BSS_SEND_USSD;
+}
+
+int bsc_send_welcome_ussd(struct gsm_subscriber_connection *conn)
+{
+	gsm0480_send_ussdNotify(conn, 1, conn->sccp_con->msc->ussd_welcome_txt);
 	gsm0480_send_releaseComplete(conn);
+
+	return 0;
 }
 
 /**
@@ -276,7 +283,8 @@
 		}
 
 		if (conn->sccp_con->new_subscriber)
-			send_welcome_ussd(conn);
+			return send_welcome_ussd(conn);
+		return 0;
 	}
 
 	return 0;
