diff --git a/pcu/PCU_selftest.ttcn b/pcu/PCU_selftest.ttcn
index 3cdb4f4..15cdd80 100644
--- a/pcu/PCU_selftest.ttcn
+++ b/pcu/PCU_selftest.ttcn
@@ -17,12 +17,15 @@
 import from NS_Emulation all;
 import from GPRS_Context all;
 import from Osmocom_Gb_Types all;
+import from Osmocom_Types all;
 import from LLC_Types all;
 import from LLC_Templates all;
 import from L3_Templates all;
 import from GSM_RR_Types all;
-import from RLCMAC_Types all;
 import from RLCMAC_CSN1_Types all;
+import from RLCMAC_Types all;
+import from RLCMAC_Templates all;
+import from PCU_Tests all;
 
 type component dummy_CT extends BSSGP_Client_CT {
 	var NS_CT ns_component;
@@ -249,6 +252,53 @@
 	f_rlcmac_ul_decenc(c_ul_dl_ack_nack);
 }
 
+testcase TC_selftest_rlcmac_egprs() runs on RAW_PCU_Test_CT
+{
+	var octetstring data;
+	var CodingSchemeArray schemes := {
+		//MCS_0,
+		MCS_1,
+		MCS_2,
+		MCS_3,
+		MCS_4,
+		MCS_5,
+		MCS_6,
+		MCS_7,
+		MCS_8,
+		MCS_9
+		};
+
+	/* Initialize the PCU interface abstraction */
+	f_init_raw(testcasename());
+
+	log("Started Uplink test");
+	for (var integer i := 0; i < sizeof(schemes); i := i+1) {
+		log("Testing Coding Schema ", schemes[i]);
+		var template (value) RlcmacUlBlock ul_data := t_RLCMAC_UL_EGPRS_DATA(
+			schemes[i],
+			tfi := 4,
+			cv := 1, /* num UL blocks to be sent (to be overridden in loop) */
+			bsn1 := 2, /* TODO: what should be here? */
+			blocks := { /* To be generated in loop */ });
+
+		ul_data.data_egprs.tlli := '00100101'O;
+		ul_data.data_egprs.blocks := { valueof(t_RLCMAC_LLCBLOCK_EGPRS('AABBCCDDEEFF00112233'O)) };
+
+		/* Encode the payload of DATA.ind */
+		log("Encoding ", valueof(ul_data));
+		data := enc_RlcmacUlBlock(valueof(ul_data));
+		data := f_pad_oct(data, f_rlcmac_cs_mcs2block_len(schemes[i]), '00'O);
+
+		/* Send to PCU so that we get gsmtap traces to verify with wireshark */
+		f_pcuif_tx_data_ind(data, 0, 0);
+
+		log("Decoding ", schemes[i]);
+		ul_data := dec_RlcmacUlBlock(data);
+		log("Decoded: ", ul_data);
+	}
+	log("Done Uplink test");
+}
+
 ///////////////////
 // RR selftest
 ///////////////////
