diff --git a/openbsc/src/gprs/gb_proxy_main.c b/openbsc/src/gprs/gb_proxy_main.c
index b853fbf..5f67a71 100644
--- a/openbsc/src/gprs/gb_proxy_main.c
+++ b/openbsc/src/gprs/gb_proxy_main.c
@@ -229,7 +229,7 @@
 	if (rc < 0)
 		exit(1);
 
-	bssgp_nsi = gprs_ns_instantiate(&proxy_ns_cb);
+	bssgp_nsi = gprs_ns_instantiate(&proxy_ns_cb, tall_bsc_ctx);
 	if (!bssgp_nsi) {
 		LOGP(DGPRS, LOGL_ERROR, "Unable to instantiate NS\n");
 		exit(1);
diff --git a/openbsc/src/gprs/sgsn_main.c b/openbsc/src/gprs/sgsn_main.c
index 9600c23..98cc600 100644
--- a/openbsc/src/gprs/sgsn_main.c
+++ b/openbsc/src/gprs/sgsn_main.c
@@ -226,7 +226,7 @@
 	if (rc < 0)
 		exit(1);
 
-	sgsn_nsi = gprs_ns_instantiate(&sgsn_ns_cb);
+	sgsn_nsi = gprs_ns_instantiate(&sgsn_ns_cb, tall_bsc_ctx);
 	if (!sgsn_nsi) {
 		LOGP(DGPRS, LOGL_ERROR, "Unable to instantiate NS\n");
 		exit(1);
diff --git a/openbsc/src/libcommon/common_vty.c b/openbsc/src/libcommon/common_vty.c
index e8486f4..5958df2 100644
--- a/openbsc/src/libcommon/common_vty.c
+++ b/openbsc/src/libcommon/common_vty.c
@@ -147,8 +147,6 @@
 	case MGCP_NODE:
 	case GBPROXY_NODE:
 	case SGSN_NODE:
-	case NS_NODE:
-	case BSSGP_NODE:
 	case NAT_NODE:
 		vty->node = CONFIG_NODE;
 		vty->index = NULL;
@@ -191,7 +189,6 @@
 	case TRUNK_NODE:
 	case GBPROXY_NODE:
 	case SGSN_NODE:
-	case NS_NODE:
 	case VTY_NODE:
 	case NAT_NODE:
 	case NAT_BSC_NODE:
diff --git a/openbsc/src/libgb/Makefile.am b/openbsc/src/libgb/Makefile.am
index fc1847f..eafbc34 100644
--- a/openbsc/src/libgb/Makefile.am
+++ b/openbsc/src/libgb/Makefile.am
@@ -5,5 +5,5 @@
 noinst_LIBRARIES = libgb.a
 
 libgb_a_SOURCES = gprs_ns.c gprs_ns_frgre.c gprs_ns_vty.c \
-		  gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c gprs_bssgp_bss.c
-#gprs_llc.c gprs_llc_vty.c crc24.c
+		  gprs_bssgp.c gprs_bssgp_util.c gprs_bssgp_vty.c \
+		  gprs_bssgp_bss.c common_vty.c
diff --git a/openbsc/src/libgb/common_vty.c b/openbsc/src/libgb/common_vty.c
new file mode 100644
index 0000000..269df8c
--- /dev/null
+++ b/openbsc/src/libgb/common_vty.c
@@ -0,0 +1,63 @@
+/* OpenBSC VTY common helpers */
+/* (C) 2009-2012 by Harald Welte <laforge@gnumonks.org>
+ * (C) 2009-2010 by Holger Hans Peter Freyther
+ * All Rights Reserved
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <osmocom/core/talloc.h>
+
+#include <osmocom/vty/telnet_interface.h>
+#include <osmocom/vty/command.h>
+#include <osmocom/vty/buffer.h>
+#include <osmocom/vty/vty.h>
+
+/* Down vty node level. */
+gDEFUN(libgb_exit,
+       libgb_exit_cmd, "exit", "Exit current mode and down to previous mode\n")
+{
+	switch (vty->node) {
+	case L_NS_NODE:
+	case L_BSSGP_NODE:
+		vty->node = CONFIG_NODE;
+		vty->index = NULL;
+		break;
+	default:
+		break;
+	}
+	return CMD_SUCCESS;
+}
+
+/* End of configuration. */
+gDEFUN(libgb_end,
+       libgb_end_cmd, "end", "End current mode and change to enable mode.")
+{
+	switch (vty->node) {
+	case L_NS_NODE:
+	case L_BSSGP_NODE:
+		vty_config_unlock(vty);
+		vty->node = ENABLE_NODE;
+		vty->index = NULL;
+		vty->index_sub = NULL;
+		break;
+	default:
+		break;
+	}
+	return CMD_SUCCESS;
+}
diff --git a/openbsc/src/libgb/common_vty.h b/openbsc/src/libgb/common_vty.h
new file mode 100644
index 0000000..a278266
--- /dev/null
+++ b/openbsc/src/libgb/common_vty.h
@@ -0,0 +1,5 @@
+#include <osmocom/vty/command.h>
+
+extern struct cmd_element libgb_exit_cmd;
+extern struct cmd_element libgb_end_cmd;
+
diff --git a/openbsc/src/libgb/gprs_bssgp_vty.c b/openbsc/src/libgb/gprs_bssgp_vty.c
index 256e8af..37919e6 100644
--- a/openbsc/src/libgb/gprs_bssgp_vty.c
+++ b/openbsc/src/libgb/gprs_bssgp_vty.c
@@ -40,10 +40,9 @@
 #include <osmocom/vty/telnet_interface.h>
 #include <osmocom/vty/misc.h>
 
-#include <openbsc/vty.h>
-#include <openbsc/gsm_data.h>
 #include <openbsc/debug.h>
 
+#include "common_vty.h"
 
 /* FIXME: this should go to some common file as it is copied
  * in vty_interface.c of the BSC */
@@ -52,7 +51,7 @@
 };
 
 static struct cmd_node bssgp_node = {
-	BSSGP_NODE,
+	L_BSSGP_NODE,
 	"%s(bssgp)#",
 	1,
 };
@@ -68,7 +67,7 @@
       "bssgp",
       "Configure the GPRS BSS Gateway Protocol")
 {
-	vty->node = BSSGP_NODE;
+	vty->node = L_BSSGP_NODE;
 	return CMD_SUCCESS;
 }
 
@@ -169,10 +168,10 @@
 
 	install_element(CONFIG_NODE, &cfg_bssgp_cmd);
 	install_node(&bssgp_node, config_write_bssgp);
-	install_default(BSSGP_NODE);
-	install_element(BSSGP_NODE, &ournode_exit_cmd);
-	install_element(BSSGP_NODE, &ournode_end_cmd);
-	//install_element(BSSGP_NODE, &cfg_bssgp_timer_cmd);
+	install_default(L_BSSGP_NODE);
+	install_element(L_BSSGP_NODE, &libgb_exit_cmd);
+	install_element(L_BSSGP_NODE, &libgb_end_cmd);
+	//install_element(L_BSSGP_NODE, &cfg_bssgp_timer_cmd);
 
 	return 0;
 }
diff --git a/openbsc/src/libgb/gprs_ns_vty.c b/openbsc/src/libgb/gprs_ns_vty.c
index a33e754..0ae3141 100644
--- a/openbsc/src/libgb/gprs_ns_vty.c
+++ b/openbsc/src/libgb/gprs_ns_vty.c
@@ -40,9 +40,9 @@
 #include <osmocom/vty/telnet_interface.h>
 #include <osmocom/vty/misc.h>
 
-#include <openbsc/gsm_data.h>
 #include <openbsc/debug.h>
-#include <openbsc/vty.h>
+
+#include "common_vty.h"
 
 static struct gprs_ns_inst *vty_nsi = NULL;
 
@@ -60,7 +60,7 @@
 };
 
 static struct cmd_node ns_node = {
-	NS_NODE,
+	L_NS_NODE,
 	"%s(ns)#",
 	1,
 };
@@ -137,7 +137,7 @@
       "ns",
       "Configure the GPRS Network Service")
 {
-	vty->node = NS_NODE;
+	vty->node = L_NS_NODE;
 	return CMD_SUCCESS;
 }
 
@@ -549,21 +549,21 @@
 
 	install_element(CONFIG_NODE, &cfg_ns_cmd);
 	install_node(&ns_node, config_write_ns);
-	install_default(NS_NODE);
-	install_element(NS_NODE, &ournode_exit_cmd);
-	install_element(NS_NODE, &ournode_end_cmd);
-	install_element(NS_NODE, &cfg_nse_nsvci_cmd);
-	install_element(NS_NODE, &cfg_nse_remoteip_cmd);
-	install_element(NS_NODE, &cfg_nse_remoteport_cmd);
-	install_element(NS_NODE, &cfg_nse_fr_dlci_cmd);
-	install_element(NS_NODE, &cfg_nse_encaps_cmd);
-	install_element(NS_NODE, &cfg_nse_remoterole_cmd);
-	install_element(NS_NODE, &cfg_no_nse_cmd);
-	install_element(NS_NODE, &cfg_ns_timer_cmd);
-	install_element(NS_NODE, &cfg_nsip_local_ip_cmd);
-	install_element(NS_NODE, &cfg_nsip_local_port_cmd);
-	install_element(NS_NODE, &cfg_frgre_enable_cmd);
-	install_element(NS_NODE, &cfg_frgre_local_ip_cmd);
+	install_default(L_NS_NODE);
+	install_element(L_NS_NODE, &libgb_exit_cmd);
+	install_element(L_NS_NODE, &libgb_end_cmd);
+	install_element(L_NS_NODE, &cfg_nse_nsvci_cmd);
+	install_element(L_NS_NODE, &cfg_nse_remoteip_cmd);
+	install_element(L_NS_NODE, &cfg_nse_remoteport_cmd);
+	install_element(L_NS_NODE, &cfg_nse_fr_dlci_cmd);
+	install_element(L_NS_NODE, &cfg_nse_encaps_cmd);
+	install_element(L_NS_NODE, &cfg_nse_remoterole_cmd);
+	install_element(L_NS_NODE, &cfg_no_nse_cmd);
+	install_element(L_NS_NODE, &cfg_ns_timer_cmd);
+	install_element(L_NS_NODE, &cfg_nsip_local_ip_cmd);
+	install_element(L_NS_NODE, &cfg_nsip_local_port_cmd);
+	install_element(L_NS_NODE, &cfg_frgre_enable_cmd);
+	install_element(L_NS_NODE, &cfg_frgre_local_ip_cmd);
 
 	install_element(ENABLE_NODE, &nsvc_nsei_cmd);
 
