diff --git a/gbproxy/GBProxy_Tests.ttcn b/gbproxy/GBProxy_Tests.ttcn
index 81c55b5..9ee9093 100644
--- a/gbproxy/GBProxy_Tests.ttcn
+++ b/gbproxy/GBProxy_Tests.ttcn
@@ -566,8 +566,46 @@
 }
 
 
+/* send uplink-unitdata of a variety of different sizes; expect it to show up on SGSN */
+private function f_TC_ul_unitdata(charstring id) runs on BSSGP_ConnHdlr {
+	var integer i;
+
+	for (i := 0; i < 1024; i := i+1) {
+		var octetstring payload := f_rnd_octstring(i);
+		var template (value) PDU_BSSGP pdu_tx := ts_BSSGP_UL_UD(g_pars.tlli, g_pars.bssgp_cell_id[0], payload);
+		/* we cannot use pdu_tx as there are some subtle differences in the length field :/ */
+		var template (present) PDU_BSSGP pdu_rx := tr_BSSGP_UL_UD(g_pars.tlli, g_pars.bssgp_cell_id[0], payload);
+
+		PCU[0].send(pdu_tx);
+		alt {
+		[] SGSN[0].receive(pdu_rx);
+		/* FIXME: Those should be handled before the ConnHdlr is started */
+		[] SGSN[0].receive(BssgpStatusIndication:{*,?,BVC_S_UNBLOCKED}) { repeat; }
+		[] SGSN[0].receive {
+			setverdict(fail, "SGSN Received unexpected");
+			mtc.stop;
+			}
+		}
+	}
+	setverdict(pass);
+}
+
+testcase TC_ul_unitdata() runs on test_CT
+{
+	var BSSGP_ConnHdlr vc_conn;
+	f_init();
+
+	vc_conn := f_start_handler(refers(f_TC_ul_unitdata), testcasename(), g_pcu, g_sgsn, 1);
+	vc_conn.done;
+	/* TODO: start multiple handlers (UEs) on various cells on same and other NSEs */
+
+	f_cleanup();
+}
+
+
 control {
 	execute( TC_BVC_bringup() );
+	execute( TC_ul_unitdata() );
 }
 
 
