diff --git a/openbsc/src/ipaccess/Makefile.am b/openbsc/src/ipaccess/Makefile.am
index 784a578..6c4d95c 100644
--- a/openbsc/src/ipaccess/Makefile.am
+++ b/openbsc/src/ipaccess/Makefile.am
@@ -48,6 +48,7 @@
 # FIXME: resolve the bogus dependencies patched around here:
 ipaccess_config_LDADD = \
 	$(top_builddir)/src/libbsc/libbsc.a \
+	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
 	$(top_builddir)/src/libtrau/libtrau.a \
 	$(top_builddir)/src/libcommon/libcommon.a \
 	$(LIBCRYPT) \
diff --git a/openbsc/src/libbsc/net_init.c b/openbsc/src/libbsc/net_init.c
index 07a4423..f728d3f 100644
--- a/openbsc/src/libbsc/net_init.c
+++ b/openbsc/src/libbsc/net_init.c
@@ -17,12 +17,9 @@
  *
  */
 
+#include <openbsc/common_cs.h>
 #include <openbsc/osmo_bsc.h>
-#include <openbsc/gsm_data.h>
 #include <openbsc/osmo_msc_data.h>
-#include <openbsc/gsm_subscriber.h>
-
-#include <stdbool.h>
 
 struct gsm_network *bsc_network_init(void *ctx,
 				     uint16_t country_code,
@@ -30,11 +27,8 @@
 				     mncc_recv_cb_t mncc_recv)
 {
 	struct gsm_network *net;
-	const char *default_regexp = ".*";
 
-	net = talloc_zero(ctx, struct gsm_network);
-	if (!net)
-		return NULL;
+	net = gsm_network_init(ctx, country_code, network_code, mncc_recv);
 
 	net->bsc_data = talloc_zero(net, struct osmo_bsc_data);
 	if (!net->bsc_data) {
@@ -42,27 +36,11 @@
 		return NULL;
 	}
 
-	net->subscr_group = talloc_zero(net, struct gsm_subscriber_group);
-	if (!net->subscr_group) {
-		talloc_free(net);
-		return NULL;
-	}
-
-	if (gsm_parse_reg(net, &net->authorized_regexp, &net->authorized_reg_str, 1,
-			  &default_regexp) != 0)
-		return NULL;
-
 	/* Init back pointer */
 	net->bsc_data->auto_off_timeout = -1;
 	net->bsc_data->network = net;
 	INIT_LLIST_HEAD(&net->bsc_data->mscs);
 
-	net->subscr_group->net = net;
-	net->auto_create_subscr = true;
-	net->auto_assign_exten = true;
-
-	net->country_code = country_code;
-	net->network_code = network_code;
 	net->num_bts = 0;
 	net->reject_cause = GSM48_REJECT_ROAMING_NOT_ALLOWED;
 	net->T3101 = GSM_T3101_DEFAULT;
@@ -79,23 +57,13 @@
 	net->handover.pwr_hysteresis = 3;
 	net->handover.max_distance = 9999;
 
-	INIT_LLIST_HEAD(&net->trans_list);
-	INIT_LLIST_HEAD(&net->upqueue);
 	INIT_LLIST_HEAD(&net->bts_list);
-	INIT_LLIST_HEAD(&net->subscr_conns);
 
 	/* init statistics */
 	net->bsc_ctrs = rate_ctr_group_alloc(net, &bsc_ctrg_desc, 0);
-	net->msc_ctrs = rate_ctr_group_alloc(net, &msc_ctrg_desc, 0);
-	net->active_calls = osmo_counter_alloc("msc.active_calls");
 
-	net->mncc_recv = mncc_recv;
-	net->ext_min = GSM_MIN_EXTEN;
-	net->ext_max = GSM_MAX_EXTEN;
 	gsm_net_update_ctype(net);
 
-	net->dyn_ts_allow_tch_f = true;
-
 	return net;
 }
 
diff --git a/openbsc/src/libcommon-cs/common_cs.c b/openbsc/src/libcommon-cs/common_cs.c
index 99aa0cf..0efec23 100644
--- a/openbsc/src/libcommon-cs/common_cs.c
+++ b/openbsc/src/libcommon-cs/common_cs.c
@@ -1,6 +1,8 @@
 /* Code used by both libbsc and libmsc (common_cs means "BSC or MSC").
  *
  * (C) 2016 by sysmocom s.m.f.c. <info@sysmocom.de>
+ * (C) 2008-2010 by Harald Welte <laforge@gnumonks.org>
+ * (C) 2014 by Holger Hans Peter Freyther
  * All Rights Reserved
  *
  * This program is free software; you can redistribute it and/or modify
@@ -17,3 +19,64 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *
  */
+
+#include <stdbool.h>
+
+#include <osmocom/gsm/gsm0480.h>
+
+#include <openbsc/common_cs.h>
+#include <openbsc/gsm_data.h>
+#include <openbsc/gsm_subscriber.h>
+
+/* Warning: if bsc_network_init() is not called, some of the members of
+ * gsm_network are not initialized properly and must not be used! (In
+ * particular the llist heads and stats counters.)
+ * The long term aim should be to have entirely separate structs for libbsc and
+ * libmsc with some common general items.
+ */
+struct gsm_network *gsm_network_init(void *ctx,
+				     uint16_t country_code,
+				     uint16_t network_code,
+				     mncc_recv_cb_t mncc_recv)
+{
+	struct gsm_network *net;
+
+	const char *default_regexp = ".*";
+
+	net = talloc_zero(ctx, struct gsm_network);
+	if (!net)
+		return NULL;
+
+	net->subscr_group = talloc_zero(net, struct gsm_subscriber_group);
+	if (!net->subscr_group) {
+		talloc_free(net);
+		return NULL;
+	}
+
+	if (gsm_parse_reg(net, &net->authorized_regexp, &net->authorized_reg_str, 1,
+			  &default_regexp) != 0)
+		return NULL;
+
+	net->subscr_group->net = net;
+	net->auto_create_subscr = true;
+	net->auto_assign_exten = true;
+
+	net->country_code = country_code;
+	net->network_code = network_code;
+
+	INIT_LLIST_HEAD(&net->trans_list);
+	INIT_LLIST_HEAD(&net->upqueue);
+	INIT_LLIST_HEAD(&net->subscr_conns);
+
+	/* init statistics */
+	net->msc_ctrs = rate_ctr_group_alloc(net, &msc_ctrg_desc, 0);
+	net->active_calls = osmo_counter_alloc("msc.active_calls");
+
+	net->mncc_recv = mncc_recv;
+	net->ext_min = GSM_MIN_EXTEN;
+	net->ext_max = GSM_MAX_EXTEN;
+
+	net->dyn_ts_allow_tch_f = true;
+
+	return net;
+}
diff --git a/openbsc/src/osmo-bsc/Makefile.am b/openbsc/src/osmo-bsc/Makefile.am
index 2dbfeb8..6f836b0 100644
--- a/openbsc/src/osmo-bsc/Makefile.am
+++ b/openbsc/src/osmo-bsc/Makefile.am
@@ -41,6 +41,7 @@
 osmo_bsc_LDADD = \
 	$(top_builddir)/src/libfilter/libfilter.a \
 	$(top_builddir)/src/libbsc/libbsc.a \
+	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
 	$(top_builddir)/src/libmsc/libmsc.a \
 	$(top_builddir)/src/libbsc/libbsc.a \
 	$(top_builddir)/src/libtrau/libtrau.a \
diff --git a/openbsc/src/osmo-bsc_nat/Makefile.am b/openbsc/src/osmo-bsc_nat/Makefile.am
index 6027f27..141b892 100644
--- a/openbsc/src/osmo-bsc_nat/Makefile.am
+++ b/openbsc/src/osmo-bsc_nat/Makefile.am
@@ -42,6 +42,7 @@
 osmo_bsc_nat_LDADD = \
 	$(top_builddir)/src/libmgcp/libmgcp.a \
 	$(top_builddir)/src/libbsc/libbsc.a \
+	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
 	$(top_builddir)/src/libtrau/libtrau.a \
 	$(top_builddir)/src/libcommon/libcommon.a \
 	$(top_builddir)/src/libfilter/libfilter.a \
diff --git a/openbsc/src/osmo-nitb/Makefile.am b/openbsc/src/osmo-nitb/Makefile.am
index 60514c0..2a6d2fc 100644
--- a/openbsc/src/osmo-nitb/Makefile.am
+++ b/openbsc/src/osmo-nitb/Makefile.am
@@ -29,6 +29,7 @@
 
 osmo_nitb_LDADD = \
 	$(top_builddir)/src/libbsc/libbsc.a \
+	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
 	$(top_builddir)/src/libmsc/libmsc.a \
 	$(top_builddir)/src/libtrau/libtrau.a \
 	$(top_builddir)/src/libcommon/libcommon.a \
diff --git a/openbsc/src/utils/Makefile.am b/openbsc/src/utils/Makefile.am
index 7fcc4e3..6fe840c 100644
--- a/openbsc/src/utils/Makefile.am
+++ b/openbsc/src/utils/Makefile.am
@@ -50,6 +50,7 @@
 
 bs11_config_LDADD = \
 	$(top_builddir)/src/libbsc/libbsc.a \
+	$(top_builddir)/src/libcommon-cs/libcommon-cs.a \
 	$(top_builddir)/src/libtrau/libtrau.a \
 	$(top_builddir)/src/libcommon/libcommon.a \
 	$(LIBOSMOCORE_LIBS) \
