diff --git a/sgsn/SGSN_Tests_Iu.ttcn b/sgsn/SGSN_Tests_Iu.ttcn
new file mode 100644
index 0000000..ace295c
--- /dev/null
+++ b/sgsn/SGSN_Tests_Iu.ttcn
@@ -0,0 +1,45 @@
+module SGSN_Tests_Iu {
+
+import from Osmocom_Types all;
+
+import from SGSN_Tests all;
+
+import from RAN_Adapter all;
+import from RAN_Emulation all;
+import from RANAP_Templates all;
+import from RANAP_PDU_Descriptions all;
+import from RANAP_IEs all;
+
+
+private function f_TC_iu_attach(charstring id) runs on BSSGP_ConnHdlr {
+	var PdpActPars apars := valueof(t_PdpActPars(mp_ggsn_ip));
+
+	/* first perform regular attach */
+	f_gmm_attach(umts_aka_challenge := true, force_gsm_sres := false, gb_idx := 3);
+	setverdict(pass);
+}
+testcase TC_iu_attach() runs on test_CT {
+	/* MS -> SGSN: Attach Request IMSI
+	 * MS <- SGSN: Identity Request IMEI
+	 * MS -> SGSN: Identity Response IMEI
+	 * MS <- SGSN: Auth Request
+	 * MS -> SGSN: Auth Response
+	 * MS <- SGSN: Attach Accept
+	 * MS -> SGSN: Attach Complete
+	 */
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+	f_sleep(1.0);
+	vc_conn := f_start_handler(refers(f_TC_iu_attach), testcasename(), g_gb, 1001);
+	vc_conn.done;
+	f_cleanup();
+}
+
+
+
+control {
+	execute( TC_iu_attach() );
+}
+
+
+}
