diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 3ba3fca..8d48cb1 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -1746,8 +1746,62 @@
 	}
 }
 
+type enumerated BssgpRadioCause {
+	BSSGP_RADIO_CAUSE_CONTACT_LOST		('00'H),
+	BSSGP_RADIO_CAUSE_LINK_QUAL_INSUFF	('01'H),
+	BSSGP_RADIO_CAUSE_CELL_RESEL_ORDERED	('02'H),
+	BSSGP_RADIO_CAUSE_CELL_RESEL_PREPARE	('03'H),
+	BSSGP_RADIO_CAUSE_CELL_RESEL_FAILURE 	('04'H)
+} with { variant "FIELDLENGTH(8)" };
 
 
+function ts_BSSGP_RADIO_CAUSE(template (omit) BssgpRadioCause cause) return template (omit) Radio_Cause {
+	var template (omit) Radio_Cause ret;
+	if (istemplatekind(cause, "omit")) {
+		ret := omit;
+	} else {
+		ret.iEI := '19'O;
+		ret.ext := '1'B;
+		ret.lengthIndicator := { length1 := 1 };
+		ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+	}
+	return ret;
+}
+function tr_BSSGP_RADIO_CAUSE(template BssgpRadioCause cause) return template (present) Radio_Cause {
+	var template Radio_Cause ret;
+	ret.iEI := '19'O;
+	ret.ext := '1'B;
+	ret.lengthIndicator := { length1 := 1 };
+	if (isvalue(cause)) {
+		ret.radio_Cause_Value := int2oct(enum2int(valueof(cause)), 1);
+	} else {
+		ret.radio_Cause_Value := ?
+	}
+	return ret;
+}
+
+/* 10.3.5 */
+template (value) PDU_BSSGP
+ts_BSSGP_RADIO_STATUS(GprsTlli tlli, template (value) BssgpRadioCause cause) := {
+	pDU_BSSGP_RADIO_STATUS := {
+		bssgpPduType := '0a'O,
+		tLLI := ts_BSSGP_TLLI(tlli),
+		tMSI := omit,
+		iMSI := omit,
+		radio_Cause := ts_BSSGP_RADIO_CAUSE(cause)
+	}
+}
+template (present) PDU_BSSGP
+tr_BSSGP_RADIO_STATUS(template (present) GprsTlli tlli, template (present) BssgpRadioCause cause) := {
+	pDU_BSSGP_RADIO_STATUS := {
+		bssgpPduType := '0a'O,
+		tLLI := ts_BSSGP_TLLI(tlli),
+		tMSI := omit,
+		iMSI := omit,
+		radio_Cause := tr_BSSGP_RADIO_CAUSE(cause)
+	}
+}
+
 
 
 /* PDU permitted on PTP BVC only (TS 48.018 Section 5.4.1) */
