diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index ee03a8a..dacb720 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -768,13 +768,43 @@
 	} with { variant "FIELDLENGTH(8)" };
 
 
-	template BVCI t_BSSGP_BVCI(template BssgpBvci bvci) := {
-		iEI := '04'O,
-		ext := '1'B,
-		lengthIndicator := {
-			length1 := 2
-		},
-		unstructured_value := f_oct_or_wc(bvci, 2)
+	private function t_BSSGP_BVCI(template BssgpBvci bvci)
+	return template BVCI {
+		var template BVCI r;
+		if (istemplatekind(bvci, "omit")) {
+			return omit;
+		} else if (istemplatekind(bvci, "*")) {
+			return *;
+		} else {
+			r := {
+				iEI := '04'O,
+				ext := '1'B,
+				lengthIndicator := {
+					length1 := 2
+				},
+				unstructured_value := f_oct_or_wc(bvci, 2)
+			}
+			return r;
+		}
+	}
+	private function  t_BSSGP_NSEI(template Nsei nsei)
+	return template NSEI_BSSGP {
+		var template NSEI_BSSGP r;
+		if (istemplatekind(nsei, "omit")) {
+			return omit;
+		} else if (istemplatekind(nsei, "*")) {
+			return *;
+		} else {
+			r := {
+				iEI:= '3E'O,
+				ext := '1'B,
+				lengthIndicator := {
+					length1 := 2
+				},
+				nSEI := f_oct_or_wc(nsei, 2)
+			}
+			return r;
+		}
 	}
 
 	template (value) TLLI_BSSGP ts_BSSGP_TLLI(template (value) GprsTlli tlli) := {
@@ -1728,6 +1758,30 @@
 		}
 	}
 
+	/* 10.4.1 */
+	template (value) PDU_BSSGP ts_BSSGP_FLUSH_LL(GprsTlli tlli, template (value) BssgpBvci bvci_old,
+						     template (omit) BssgpBvci bvci_new := omit,
+						     template (omit) Nsei nsei := omit) := {
+		pDU_BSSGP_FLUSH_LL := {
+			bssgpPduType := '2A'O,
+			tLLI := ts_BSSGP_TLLI(tlli),
+			bVCI_old := t_BSSGP_BVCI(bvci_old),
+			bVCI_new := t_BSSGP_BVCI(bvci_new),
+			nSEI := t_BSSGP_NSEI(nsei)
+		}
+	}
+	template PDU_BSSGP tr_BSSGP_FLUSH_LL(template GprsTlli tlli, template BssgpBvci bvci_old,
+					     template (omit) BssgpBvci bvci_new := omit,
+					     template (omit) Nsei nsei := omit) := {
+		pDU_BSSGP_FLUSH_LL := {
+			bssgpPduType := '2A'O,
+			tLLI := tr_BSSGP_TLLI(tlli),
+			bVCI_old := t_BSSGP_BVCI(bvci_old),
+			bVCI_new := t_BSSGP_BVCI(bvci_new),
+			nSEI := t_BSSGP_NSEI(nsei)
+		}
+	}
+
 	/* 10.2.3 */
 	template (value) PDU_BSSGP ts_BSSGP_RA_CAP(GprsTlli tlli,
 						   template (omit) MSRadioAccessCapabilityV_BSSGP racap := omit) := {
