diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 61bc212..bf777cc 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -821,6 +821,46 @@
 	f_cleanup();
 }
 
+private function f_TC_resume(charstring id) runs on BSSGP_ConnHdlr {
+	var integer i;
+
+	/* TODO: Generate RA ID for each ConnHdlr */
+	var RoutingAreaIdentification	ra_id := g_pars.pcu[0].cfg.bvc[0].cell_id.ra_id;
+	for (i := 0; i < 10; i := i+1) {
+
+		var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_RESUME(g_pars.tlli, ra_id, int2oct(i, 1));
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_RESUME(g_pars.tlli, ra_id, int2oct(i, 1));
+
+		f_pcu2sgsn(pdu_tx, pdu_rx);
+
+		pdu_tx := ts_BSSGP_RESUME_ACK(g_pars.tlli, ra_id);
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		pdu_rx := tr_BSSGP_RESUME_ACK(g_pars.tlli, ra_id);
+
+		f_sgsn2pcu(pdu_tx, pdu_rx);
+
+		/* These messages are simple passed through so just also test sending NACK */
+		pdu_tx := ts_BSSGP_RESUME_NACK(g_pars.tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS);
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		pdu_rx := tr_BSSGP_RESUME_NACK(g_pars.tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS);
+
+		f_sgsn2pcu(pdu_tx, pdu_rx);
+	}
+	setverdict(pass);
+}
+testcase TC_resume() runs on test_CT
+{
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_resume), testcasename(), g_pcu, g_sgsn, 6);
+	vc_conn.done;
+	/* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
+
+	f_cleanup();
+}
+
 
 control {
 	execute( TC_BVC_bringup() );
@@ -830,6 +870,7 @@
 	execute( TC_ra_capability_upd() );
 	execute( TC_radio_status() );
 	execute( TC_suspend() );
+	execute( TC_resume() );
 }
 
 
