diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index 9d6d3c3..44d9e73 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -2254,6 +2254,22 @@
 	}
 }
 
+function ts_TearDownIndicatorTV(in template (omit) boolean ind)
+					return template (omit) TearDownIndicatorTV {
+	if (istemplatekind(ind, "omit")) {
+		return omit;
+	} else {
+		var template (omit) TearDownIndicatorTV ret := {
+			tearDownIndicatorV := {
+				tdi_flag := bool2bit(valueof(ind)),
+				spare := '000'B
+			},
+			elementIdentifier := '1001'B
+		}
+		return ret;
+	}
+}
+
 template (value) PDU_L3_MS_SGSN ts_SM_ACT_PDP_REQ(BIT3 tid, BIT4 nsapi, BIT4 sapi, QoSV qos,
 						  PDPAddressV addr,
 						  template (omit) octetstring apn := omit,
@@ -2348,10 +2364,11 @@
 	}
 }
 
-template (value) PDU_L3_MS_SGSN ts_SM_DEACT_PDP_REQ_MO(BIT3 tid, OCT1 cause, boolean tdown := false,
+template (value) PDU_L3_MS_SGSN ts_SM_DEACT_PDP_REQ_MO(BIT3 tid, OCT1 cause,
+						  template (omit) boolean tdown := omit,
 						  template (omit) ProtocolConfigOptionsV pco := omit
 						) := {
-	discriminator := '0000'B, /* overwritten */
+	discriminator := '1010'B,
 	tiOrSkip := {
 		transactionId := {
 			tio := tid,
@@ -2362,15 +2379,9 @@
 	msgs := {
 		gprs_sm := {
 			deactivatePDPContextRequest := {
-				messageType := '00000000'B, /* overwritten */
+				messageType := '01000110'B,
 				smCause := cause,
-				tearDownIndicator := {
-					tearDownIndicatorV := {
-						tdi_flag := bool2bit(tdown),
-						spare := '000'B
-					},
-					elementIdentifier := '1001'B
-				},
+				tearDownIndicator := ts_TearDownIndicatorTV(tdown),
 				protocolConfigOpts := ts_PcoTLV(pco),
 				mBMSprotocolConfigOptions := omit,
 				t3396 := omit,
@@ -2381,10 +2392,11 @@
 	}
 }
 
-template (value) PDU_L3_SGSN_MS ts_SM_DEACT_PDP_REQ_MT(BIT3 tid, OCT1 cause, boolean tdown := false,
+template (value) PDU_L3_SGSN_MS ts_SM_DEACT_PDP_REQ_MT(BIT3 tid, OCT1 cause,
+						  template (omit) boolean tdown := omit,
 						  template (omit) ProtocolConfigOptionsV pco := omit
 						) := {
-	discriminator := '0000'B, /* overwritten */
+	discriminator := '1010'B,
 	tiOrSkip := {
 		transactionId := {
 			tio := tid,
@@ -2395,15 +2407,9 @@
 	msgs := {
 		gprs_sm := {
 			deactivatePDPContextRequest := {
-				messageType := '00000000'B, /* overwritten */
+				messageType := '01000110'B,
 				smCause := cause,
-				tearDownIndicator := {
-					tearDownIndicatorV := {
-						tdi_flag := bool2bit(tdown),
-						spare := '000'B
-					},
-					elementIdentifier := '1001'B
-				},
+				tearDownIndicator := ts_TearDownIndicatorTV(tdown),
 				protocolConfigOpts := ts_PcoTLV(pco),
 				mBMSprotocolConfigOptions := omit,
 				t3396 := omit,
@@ -2415,10 +2421,10 @@
 }
 
 template PDU_L3_SGSN_MS tr_SM_DEACT_PDP_REQ_MT(template BIT3 tid, template OCT1 cause,
-						template boolean tdown := false,
-						  template (omit) ProtocolConfigOptionsV pco := omit
-						) := {
-	discriminator := '0000'B, /* overwritten */
+						template (omit) boolean tdown := omit,
+						template (omit) ProtocolConfigOptionsV pco := omit
+					) := {
+	discriminator := '1010'B,
 	tiOrSkip := {
 		transactionId := {
 			tio := tid,
@@ -2429,16 +2435,10 @@
 	msgs := {
 		gprs_sm := {
 			deactivatePDPContextRequest := {
-				messageType := '00000000'B, /* overwritten */
+				messageType := '01000110'B,
 				smCause := cause,
-				tearDownIndicator := {
-					tearDownIndicatorV := {
-						tdi_flag := bool2bit_tmpl(tdown),
-						spare := '000'B
-					},
-					elementIdentifier := '1001'B
-				},
-				protocolConfigOpts := *,
+				tearDownIndicator := ts_TearDownIndicatorTV(tdown),
+				protocolConfigOpts := ts_PcoTLV(pco),
 				mBMSprotocolConfigOptions := *,
 				t3396 := *,
 				wLANOffloadIndication := *,
@@ -2448,7 +2448,6 @@
 	}
 }
 
-
 template PDU_L3_SGSN_MS tr_SM_DEACT_PDP_ACCEPT_MT(template BIT3 tid := ?)
 := {
 	discriminator := '1010'B,
