diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 8bc8731..61bc212 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -781,7 +781,45 @@
 	f_cleanup();
 }
 
+private function f_TC_suspend(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_SUSPEND(g_pars.tlli, ra_id);
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_SUSPEND(g_pars.tlli, ra_id);
+
+		f_pcu2sgsn(pdu_tx, pdu_rx);
+
+		pdu_tx := ts_BSSGP_SUSPEND_ACK(g_pars.tlli, ra_id, int2oct(i, 1));
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		pdu_rx := tr_BSSGP_SUSPEND_ACK(g_pars.tlli, ra_id, int2oct(i, 1));
+
+		f_sgsn2pcu(pdu_tx, pdu_rx);
+
+		/* These messages are simple passed through so just also test sending NACK */
+		pdu_tx := ts_BSSGP_SUSPEND_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_SUSPEND_NACK(g_pars.tlli, ra_id, BSSGP_CAUSE_UNKNOWN_MS);
+
+		f_sgsn2pcu(pdu_tx, pdu_rx);
+	}
+	setverdict(pass);
+}
+testcase TC_suspend() runs on test_CT
+{
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_suspend), 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 {
@@ -791,6 +829,7 @@
 	execute( TC_ra_capability() );
 	execute( TC_ra_capability_upd() );
 	execute( TC_radio_status() );
+	execute( TC_suspend() );
 }
 
 
