diff --git a/sgsn/SGSN_Tests.ttcn b/sgsn/SGSN_Tests.ttcn
index adbcf19..501bec8 100644
--- a/sgsn/SGSN_Tests.ttcn
+++ b/sgsn/SGSN_Tests.ttcn
@@ -130,6 +130,7 @@
 type component test_CT {
 	var GbInstances g_gb;
 	var RAN_Adapter g_ranap[NUM_RNC];
+	var boolean g_ranap_enable := false;
 
 	var GSUP_Emulation_CT vc_GSUP;
 	var IPA_Emulation_CT vc_GSUP_IPA;
@@ -177,8 +178,8 @@
 	SGSN_ConnHdlrNetworkPars net,
 	float t_guard,
 	/* only in IuPS / RANAP case */
-	SCCP_PAR_Address sccp_addr_local,
-	SCCP_PAR_Address sccp_addr_peer
+	SCCP_PAR_Address sccp_addr_local optional,
+	SCCP_PAR_Address sccp_addr_peer optional
 };
 
 private function f_cellid_to_RAI(in BssgpCellId cell_id) return RoutingAreaIdentificationV {
@@ -327,9 +328,11 @@
 	f_init_gb(g_gb[1], "SGSN_Test-Gb1", 1);
 	f_init_gb(g_gb[2], "SGSN_Test-Gb2", 2);
 
-	for (i := 0; i < NUM_RNC; i := i+1) {
-		f_ran_adapter_init(g_ranap[i], mp_ranap_cfg[i], "SGSN_Test_" & int2str(i), RNC_RanOps);
-		f_ran_adapter_start(g_ranap[i]);
+	if (g_ranap_enable) {
+		for (i := 0; i < NUM_RNC; i := i+1) {
+			f_ran_adapter_init(g_ranap[i], mp_ranap_cfg[i], "SGSN_Test_" & int2str(i), RNC_RanOps);
+			f_ran_adapter_start(g_ranap[i]);
+		}
 	}
 	f_init_gsup("SGSN_Test");
 	f_init_gtp("SGSN_Test");
@@ -338,8 +341,10 @@
 
 function f_cleanup() runs on test_CT {
 	var integer i;
-	for (i := 0; i < NUM_RNC; i := i+1) {
-		f_ran_adapter_cleanup(g_ranap[i]);
+	if (g_ranap_enable) {
+		for (i := 0; i < NUM_RNC; i := i+1) {
+			f_ran_adapter_cleanup(g_ranap[i]);
+		}
 	}
 	self.stop;
 }
@@ -398,10 +403,15 @@
 		vec := omit,
 		net := net_pars,
 		t_guard := t_guard,
-		sccp_addr_local := g_ranap[0].sccp_addr_own,
-		sccp_addr_peer := g_ranap[0].sccp_addr_peer
+		sccp_addr_local := omit,
+		sccp_addr_peer := omit
 	};
 
+	if (g_ranap_enable) {
+		pars.sccp_addr_local := g_ranap[0].sccp_addr_own;
+		pars.sccp_addr_peer := g_ranap[0].sccp_addr_peer;
+	}
+
 	vc_conn := BSSGP_ConnHdlr.create(id);
 	connect(vc_conn:BSSGP[0], gb[0].vc_BSSGP:BSSGP_SP);
 	connect(vc_conn:BSSGP_PROC[0], gb[0].vc_BSSGP:BSSGP_PROC);
@@ -411,8 +421,10 @@
 	connect(vc_conn:BSSGP_PROC[2], gb[2].vc_BSSGP:BSSGP_PROC);
 
 	/* FIXME: support multiple RNCs */
-	connect(vc_conn:BSSAP, g_ranap[0].vc_RAN:CLIENT);
-	connect(vc_conn:BSSAP_PROC, g_ranap[0].vc_RAN:PROC);
+	if (g_ranap_enable) {
+		connect(vc_conn:BSSAP, g_ranap[0].vc_RAN:CLIENT);
+		connect(vc_conn:BSSAP_PROC, g_ranap[0].vc_RAN:PROC);
+	}
 
 	connect(vc_conn:GSUP, vc_GSUP:GSUP_CLIENT);
 	connect(vc_conn:GSUP_PROC, vc_GSUP:GSUP_PROC);
diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn
index ace295c..2f077d8 100644
--- a/sgsn/SGSN_Tests_Iu.ttcn
+++ b/sgsn/SGSN_Tests_Iu.ttcn
@@ -28,6 +28,7 @@
 	 * MS -> SGSN: Attach Complete
 	 */
 	var BSSGP_ConnHdlr vc_conn;
+	g_ranap_enable := true;
 	f_init();
 	f_sleep(1.0);
 	vc_conn := f_start_handler(refers(f_TC_iu_attach), testcasename(), g_gb, 1001);
