diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c
index 917dd73..9e913d6 100644
--- a/openbsc/src/libbsc/bsc_init.c
+++ b/openbsc/src/libbsc/bsc_init.c
@@ -476,12 +476,8 @@
 	return 0;
 }
 
-int bsc_bootstrap_network(mncc_recv_cb_t mncc_recv, const char *config_file)
+int bsc_network_alloc(mncc_recv_cb_t mncc_recv)
 {
-	struct gsm_bts *bts;
-	int rc;
-
-	/* initialize our data structures */
 	bsc_gsmnet = bsc_network_init(tall_bsc_ctx, 1, 1, mncc_recv);
 	if (!bsc_gsmnet)
 		return -ENOMEM;
@@ -489,6 +485,14 @@
 	bsc_gsmnet->name_long = talloc_strdup(bsc_gsmnet, "OpenBSC");
 	bsc_gsmnet->name_short = talloc_strdup(bsc_gsmnet, "OpenBSC");
 
+	return 0;
+}
+
+int bsc_network_configure(const char *config_file)
+{
+	struct gsm_bts *bts;
+	int rc;
+
 	rc = vty_read_config_file(config_file, NULL);
 	if (rc < 0) {
 		LOGP(DNM, LOGL_FATAL, "Failed to parse the config file: '%s'\n", config_file);
diff --git a/openbsc/src/osmo-bsc/osmo_bsc_main.c b/openbsc/src/osmo-bsc/osmo_bsc_main.c
index daab55b..b6b1ae1 100644
--- a/openbsc/src/osmo-bsc/osmo_bsc_main.c
+++ b/openbsc/src/osmo-bsc/osmo_bsc_main.c
@@ -220,8 +220,12 @@
 	/* initialize SCCP */
 	sccp_set_log_area(DSCCP);
 
-
-	rc = bsc_bootstrap_network(NULL, config_file);
+	rc = bsc_network_alloc(NULL);
+	if (rc) {
+		fprintf(stderr, "Allocation failed. exiting.\n");
+		exit(1);
+	}
+	rc = bsc_network_configure(config_file);
 	if (rc < 0) {
 		fprintf(stderr, "Bootstrapping the network failed. exiting.\n");
 		exit(1);
diff --git a/openbsc/src/osmo-nitb/bsc_hack.c b/openbsc/src/osmo-nitb/bsc_hack.c
index 552ab4f..ccd3b74 100644
--- a/openbsc/src/osmo-nitb/bsc_hack.c
+++ b/openbsc/src/osmo-nitb/bsc_hack.c
@@ -285,15 +285,26 @@
 
 	/* internal MNCC handler or MNCC socket? */
 	if (mncc_sock_path) {
-		rc = bsc_bootstrap_network(mncc_sock_from_cc, config_file);
-		if (rc >= 0)
-			mncc_sock_init(bsc_gsmnet, mncc_sock_path);
+		rc = bsc_network_alloc(mncc_sock_from_cc);
+		if (rc) {
+			fprintf(stderr, "Allocation failed. Exiting.\n");
+			exit(1);
+		}
+		mncc_sock_init(bsc_gsmnet, mncc_sock_path);
 	} else {
 		DEBUGP(DMNCC, "Using internal MNCC handler.\n");
-		rc = bsc_bootstrap_network(int_mncc_recv, config_file);
+		rc = bsc_network_alloc(int_mncc_recv);
+		if (rc) {
+			fprintf(stderr, "Allocation failed. Exiting.\n");
+			exit(1);
+		}
 	}
-	if (rc < 0)
+	rc = bsc_network_configure(config_file);
+	if (rc < 0) {
+		fprintf(stderr, "Reading config failed. Exiting.\n");
 		exit(1);
+	}
+
 #ifdef BUILD_SMPP
 	smpp_openbsc_start(bsc_gsmnet);
 #endif
