diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn
index f5eeda5..9fd7733 100644
--- a/library/GSM_RR_Types.ttcn
+++ b/library/GSM_RR_Types.ttcn
@@ -552,7 +552,129 @@
 	type record IaRestOctLL {
 		BIT1		compressed_irat_ho_info_ind
 	} with { variant "" };
-	type octetstring EgprsUlAss;	/* TODO */
+
+
+	type record of AccessTechnologiesRequest
+	AccessTechnologiesRequestRepetition
+	with { variant "EXTENSION_BIT(reverse)" };
+
+	type record AccessTechnologiesRequest
+	{
+		BIT4	accessTechnType,
+		BIT1    extensionBit
+	} with { variant "FIELDORDER(msb)" };
+
+	type enumerated EgprsChCodingCommand {
+		CH_CODING_MCS1		('0000'B),
+		CH_CODING_MCS2		('0001'B),
+		CH_CODING_MCS3		('0010'B),
+		CH_CODING_MCS4		('0011'B),
+		CH_CODING_MCS5		('0100'B),
+		CH_CODING_MCS6		('0101'B),
+		CH_CODING_MCS7		('0110'B),
+		CH_CODING_MCS8		('0111'B),
+		CH_CODING_MCS9		('1000'B),
+		CH_CODING_MCS5_7	('1001'B),
+		CH_CODING_MCS6_9	('1010'B)
+	} with { variant "FIELDLENGTH(4)" };
+
+	/* TS 44.060 Table 12.5.2.1 */
+	type enumerated EgprsWindowSize {
+		EGPRS_WS_64		('00000'B),
+		EGPRS_WS_96		('00001'B),
+		EGPRS_WS_128		('00010'B),
+		EGPRS_WS_160		('00011'B),
+		EGPRS_WS_192		('00100'B),
+		EGPRS_WS_224		('00101'B),
+		EGPRS_WS_256		('00110'B),
+		EGPRS_WS_288		('00111'B),
+		EGPRS_WS_320		('01000'B),
+		EGPRS_WS_352		('01001'B),
+		EGPRS_WS_384		('01010'B),
+		EGPRS_WS_416		('01011'B),
+		EGPRS_WS_448		('01100'B),
+		EGPRS_WS_480		('01101'B),
+		EGPRS_WS_512		('01110'B),
+		EGPRS_WS_544		('01111'B),
+		EGPRS_WS_576		('10000'B),
+		EGPRS_WS_608		('10001'B),
+		EGPRS_WS_640		('10010'B),
+		EGPRS_WS_672		('10011'B),
+		EGPRS_WS_704		('10100'B),
+		EGPRS_WS_736		('10101'B),
+		EGPRS_WS_768		('10110'B),
+		EGPRS_WS_800		('10111'B),
+		EGPRS_WS_832		('11000'B),
+		EGPRS_WS_864		('11001'B),
+		EGPRS_WS_896		('11010'B),
+		EGPRS_WS_928		('11011'B),
+		EGPRS_WS_960		('11100'B),
+		EGPRS_WS_992		('11101'B),
+		EGPRS_WS_1024		('11110'B)
+	} with { variant "FIELDLENGTH(5)" };
+
+	type record EgprsUlAssignDyn {
+		uint5_t		tfi_assignment,
+		BIT1		polling,
+		BIT1		spare ('0'B),
+		uint3_t		usf,
+		BIT1		usf_granularity,
+		BIT1		p0_present,
+		uint4_t		p0 optional,
+		BIT1		pr_mode optional,
+		EgprsChCodingCommand	egprs_ch_coding_cmd,
+		BIT1		tlli_block_chan_coding,
+		BIT1		bep_period2_present,
+		BIT4		bep_period2 optional,
+		BIT1		resegment,
+		EgprsWindowSize	egprs_window_size,
+		BIT1		alpha_present,
+		uint4_t		alpha optional,
+		uint5_t		gamma,
+		BIT1		ta_index_present,
+		uint4_t		ta_index optional,
+		BIT1		tbf_starting_time_present,
+		uint16_t	tbf_starting_time optional
+		/* TODO: Additions for Rel-7 */
+	} with {
+		variant (p0)		"PRESENCE(p0_present = '1'B)"
+		variant (pr_mode)	"PRESENCE(p0_present = '1'B)"
+		variant (bep_period2)	"PRESENCE(bep_period2_present = '1'B)"
+		variant (alpha)		"PRESENCE(alpha_present = '1'B)"
+		variant (ta_index)	"PRESENCE(ta_index_present = '1'B)"
+		variant (tbf_starting_time)	"PRESENCE(tbf_starting_time_present = '1'B)"
+	};
+	type record EgprsUlAssignMultiblock {
+		BIT1		alpha_present,
+		uint4_t		alpha optional,
+		uint5_t		gamma,
+		uint16_t	tbf_starting_time,
+		BIT2		nr_radio_blocks_allocated,
+		BIT1		p0_present,
+		uint4_t		p0 optional,
+		BIT1		spare ('0'B) optional,
+		BIT1		pr_mode optional
+		/* TDO: Additions for Rel-6 */
+	} with {
+		variant (alpha)		"PRESENCE(alpha_present = '1'B)"
+		variant (p0)		"PRESENCE(p0_present = '1'B)"
+		variant (spare)		"PRESENCE(p0_present = '1'B)"
+		variant (pr_mode)	"PRESENCE(p0_present = '1'B)"
+	};
+	/* 3GPP TS 44.018 version 13.3.2 10.5.2.16, "EGPRS Packet Uplink Assignment" */
+	type record EgprsUlAss {
+		BIT5 ext_ra,
+		BIT1 ats_present,
+		AccessTechnologiesRequestRepetition ats optional,
+		BIT1			presence,
+		EgprsUlAssignDyn	dynamic optional,
+		EgprsUlAssignMultiblock	multiblock optional
+	} with {
+		variant (ats)	"PRESENCE(ats_present = '1'B)"
+		variant (dynamic)	"PRESENCE(presence = '1'B)"
+		variant (multiblock)	"PRESENCE(presence = '0'B)"
+	};
+
 	type octetstring MblkDlAss;	/* TODO */
 	type record IaRestOctLH {
 		BIT2		presence,
