diff --git a/openbsc/include/openbsc/signal.h b/openbsc/include/openbsc/signal.h
index f96c5e3..fa38bbe 100644
--- a/openbsc/include/openbsc/signal.h
+++ b/openbsc/include/openbsc/signal.h
@@ -41,7 +41,6 @@
 	SS_SUBSCR,
 	SS_SCALL,
 	SS_CHALLOC,
-	SS_NS,
 	SS_IPAC_NWL,
 	SS_RF,
 	SS_MSC,
@@ -215,18 +214,6 @@
 	struct gsm_meas_rep *mr;
 };
 
-enum signal_ns {
-	S_NS_RESET,
-	S_NS_BLOCK,
-	S_NS_UNBLOCK,
-	S_NS_ALIVE_EXP,	/* Tns-alive expired more than N times */
-};
-
-struct ns_signal_data {
-	struct gprs_nsvc *nsvc;
-	uint8_t cause;
-};
-
 /* MSC signals */
 enum signal_msc {
 	S_MSC_LOST,
diff --git a/openbsc/include/osmocom/gprs/gprs_ns.h b/openbsc/include/osmocom/gprs/gprs_ns.h
index cfc2e90..ab4bd4e 100644
--- a/openbsc/include/osmocom/gprs/gprs_ns.h
+++ b/openbsc/include/osmocom/gprs/gprs_ns.h
@@ -203,7 +203,7 @@
 };
 
 /* Create a new NS protocol instance */
-struct gprs_ns_inst *gprs_ns_instantiate(gprs_ns_cb_t *cb);
+struct gprs_ns_inst *gprs_ns_instantiate(gprs_ns_cb_t *cb, void *ctx);
 
 /* Destroy a NS protocol instance */
 void gprs_ns_destroy(struct gprs_ns_inst *nsi);
@@ -246,6 +246,18 @@
 	return msgb_alloc_headroom(NS_ALLOC_SIZE, NS_ALLOC_HEADROOM, "GPRS/NS");
 }
 
+enum signal_ns {
+	S_NS_RESET,
+	S_NS_BLOCK,
+	S_NS_UNBLOCK,
+	S_NS_ALIVE_EXP,	/* Tns-alive expired more than N times */
+};
+
+struct ns_signal_data {
+	struct gprs_nsvc *nsvc;
+	uint8_t cause;
+};
+
 /*! }@ */
 
 #endif
diff --git a/openbsc/src/gprs/gb_proxy.c b/openbsc/src/gprs/gb_proxy.c
index 518382d..87cfa61 100644
--- a/openbsc/src/gprs/gb_proxy.c
+++ b/openbsc/src/gprs/gb_proxy.c
@@ -596,7 +596,7 @@
 	struct gprs_nsvc *nsvc = nssd->nsvc;
 	struct gbprox_peer *peer;
 
-	if (subsys != SS_NS)
+	if (subsys != SS_L_NS)
 		return 0;
 
 	if (signal == S_NS_RESET && nsvc->nsei == gbcfg.nsip_sgsn_nsei) {
diff --git a/openbsc/src/gprs/gb_proxy_main.c b/openbsc/src/gprs/gb_proxy_main.c
index 5791dab..b853fbf 100644
--- a/openbsc/src/gprs/gb_proxy_main.c
+++ b/openbsc/src/gprs/gb_proxy_main.c
@@ -236,7 +236,7 @@
 	}
 	gbcfg.nsi = bssgp_nsi;
 	gprs_ns_vty_init(bssgp_nsi);
-	osmo_signal_register_handler(SS_NS, &gbprox_signal, NULL);
+	osmo_signal_register_handler(SS_L_NS, &gbprox_signal, NULL);
 
 	rc = gbproxy_parse_config(config_file, &gbcfg);
 	if (rc < 0) {
diff --git a/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c
index 640388d..9600c23 100644
--- a/openbsc/src/gprs/sgsn_main.c
+++ b/openbsc/src/gprs/sgsn_main.c
@@ -239,7 +239,7 @@
 	gprs_bssgp_vty_init();
 	gprs_llc_vty_init();
 	gprs_sndcp_vty_init();
-	/* FIXME: register signal handler for SS_NS */
+	/* FIXME: register signal handler for SS_L_NS */
 
 	rc = sgsn_parse_config(sgsn_inst.config_file, &sgsn_inst.cfg);
 	if (rc < 0) {
diff --git a/openbsc/src/libgb/gprs_bssgp.c b/openbsc/src/libgb/gprs_bssgp.c
index 7615299..33cca3d 100644
--- a/openbsc/src/libgb/gprs_bssgp.c
+++ b/openbsc/src/libgb/gprs_bssgp.c
@@ -33,7 +33,6 @@
 #include <osmocom/core/rate_ctr.h>
 
 #include <openbsc/debug.h>
-#include <openbsc/gsm_04_08_gprs.h>
 
 #include <osmocom/gprs/gprs_bssgp.h>
 #include <osmocom/gprs/gprs_ns.h>
diff --git a/openbsc/src/libgb/gprs_ns.c b/openbsc/src/libgb/gprs_ns.c
index 8bed1b7..617c50d 100644
--- a/openbsc/src/libgb/gprs_ns.c
+++ b/openbsc/src/libgb/gprs_ns.c
@@ -74,12 +74,12 @@
 #include <osmocom/core/select.h>
 #include <osmocom/core/rate_ctr.h>
 #include <osmocom/core/socket.h>
+#include <osmocom/core/signal.h>
 #include <osmocom/gprs/gprs_ns.h>
 #include <osmocom/gprs/gprs_bssgp.h>
 #include <osmocom/gprs/gprs_ns_frgre.h>
 
 #include <openbsc/debug.h>
-#include <openbsc/signal.h>
 
 static const struct tlv_definition ns_att_tlvdef = {
 	.def = {
@@ -201,7 +201,7 @@
 	nssd.nsvc = nsvc;
 	nssd.cause = cause;
 
-	osmo_signal_dispatch(SS_NS, signal, &nssd);
+	osmo_signal_dispatch(SS_L_NS, signal, &nssd);
 }
 
 /* Section 10.3.2, Table 13 */
@@ -893,9 +893,9 @@
  *  \param[in] cb Call-back function for incoming BSSGP data
  *  \returns dynamically allocated gprs_ns_inst
  */
-struct gprs_ns_inst *gprs_ns_instantiate(gprs_ns_cb_t *cb)
+struct gprs_ns_inst *gprs_ns_instantiate(gprs_ns_cb_t *cb, void *ctx)
 {
-	struct gprs_ns_inst *nsi = talloc_zero(tall_bsc_ctx, struct gprs_ns_inst);
+	struct gprs_ns_inst *nsi = talloc_zero(ctx, struct gprs_ns_inst);
 
 	nsi->cb = cb;
 	INIT_LLIST_HEAD(&nsi->gprs_nsvcs);
diff --git a/openbsc/src/libgb/gprs_ns_vty.c b/openbsc/src/libgb/gprs_ns_vty.c
index f1ab287..a33e754 100644
--- a/openbsc/src/libgb/gprs_ns_vty.c
+++ b/openbsc/src/libgb/gprs_ns_vty.c
@@ -42,7 +42,6 @@
 
 #include <openbsc/gsm_data.h>
 #include <openbsc/debug.h>
-#include <openbsc/signal.h>
 #include <openbsc/vty.h>
 
 static struct gprs_ns_inst *vty_nsi = NULL;
