diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index b67645d..e3d9341 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -98,7 +98,8 @@
 		/* TEI (Control) remote side */
 		OCT4		teic_remote,
 		OCT1		ratType optional,
-		UserLocationInformation uli optional
+		UserLocationInformation uli optional,
+		OCT2 charging_char optional
 	}
 
 	type component GT_CT {
@@ -350,7 +351,8 @@
 			geographicLocation := {
 				geographicLocationCGI := ts_GeographicLocationCGI('262'H, '42F'H, '0001'O, '0002'O)
 			}
-		}
+		},
+		charging_char := '0000'O
 	}
 
 	/* send GTP-C for a given context and increment sequence number */
@@ -510,7 +512,8 @@
 		log("sending CreatePDP");
 		f_send_gtpc(ts_GTPC_CreatePDP(g_peer_c, g_c_seq_nr, ctx.imsi, g_restart_ctr,
 						  ctx.teid, ctx.teic, ctx.nsapi, ctx.eua, ctx.apn,
-						  g_sgsn_ip_c, g_sgsn_ip_u, ctx.msisdn, ctx.pco_req, ctx.ratType, ctx.uli));
+						  g_sgsn_ip_c, g_sgsn_ip_u, ctx.msisdn, ctx.pco_req, ctx.ratType,
+						  ctx.uli, ctx.charging_char));
 		T_default.start;
 		d := activate(pingpong());
 		if (Gx_PROC.checkstate("Connected")) {
@@ -2006,7 +2009,7 @@
 							  ctx[next_req_ctx].teid, ctx[next_req_ctx].teic, ctx[next_req_ctx].nsapi,
 							  ctx[next_req_ctx].eua, ctx[next_req_ctx].apn,  g_sgsn_ip_c, g_sgsn_ip_u,
 							  ctx[next_req_ctx].msisdn, ctx[next_req_ctx].pco_req, ctx[next_req_ctx].ratType,
-							  ctx[next_req_ctx].uli));
+							  ctx[next_req_ctx].uli, ctx[next_req_ctx].charging_char));
 			next_req_ctx := next_req_ctx + 1;
 			if (next_req_ctx < num_ctx) {
 				T_next.start;
@@ -2120,7 +2123,7 @@
 									  ctx.teid, ctx.teic, ctx.nsapi,
 									  ctx.eua, ctx.apn,  g_sgsn_ip_c, g_sgsn_ip_u,
 									  ctx.msisdn, ctx.pco_req, ctx.ratType,
-									  ctx.uli));
+									  ctx.uli, ctx.charging_char));
 					next_req_ctx := next_req_ctx + 1;
 				}
 				T_next.start;
diff --git a/library/GTP_Templates.ttcn b/library/GTP_Templates.ttcn
index 049614a..0c5c003 100644
--- a/library/GTP_Templates.ttcn
+++ b/library/GTP_Templates.ttcn
@@ -119,6 +119,25 @@
 		restartCounter := restart_counter
 	}
 
+	/* Charging Characteristics IE TS 29.060 7.7.23 */
+	template ChargingCharacteristics_GTPC ts_ChargingCharacteristics(template (value) OCT2 chargingChar) := {
+		type_gtpc := '1A'O,
+		chargingChar := chargingChar
+	}
+	private function f_ts_ChargingCharacteristics(template (omit) OCT2 chargingChar)
+		return template (omit) ChargingCharacteristics_GTPC {
+		if (istemplatekind(chargingChar, "omit")) {
+			return omit;
+		}
+		return ts_ChargingCharacteristics(chargingChar);
+	}
+
+	template ChargingCharacteristics_GTPC tr_ChargingCharacteristics(template (present) OCT2 chargingChar) := {
+		type_gtpc := '1A'O,
+		chargingChar := chargingChar
+	}
+
+
 	/* template matching reception of GTP-C echo-request */
 	template Gtp1cUnitdata tr_GTPC_MsgType(template GtpPeer peer, template OCT1 msg_type, template OCT4 teid, template GTPC_PDUs pdus := ?) := {
 		peer := peer,
@@ -359,7 +378,8 @@
 					   octetstring sgsn_ip_sign, octetstring sgsn_ip_data,
 					   octetstring msisdn, template ProtConfigOptions pco := omit,
 					   template (omit) OCT1 ratType := omit,
-					   template (omit) UserLocationInformation uli := omit) := {
+					   template (omit) UserLocationInformation uli := omit,
+					   template (omit) OCT2 charging_char := omit) := {
 		createPDPContextRequest := {
 			imsi := ts_Imsi(imsi),
 			rai := omit,
@@ -383,7 +403,7 @@
 				unused := '0000'B
 			},
 			linked_nsapi := omit,
-			charging_char := omit,
+			charging_char := f_ts_ChargingCharacteristics(charging_char),
 			trace_ref := omit,
 			trace_type := omit,
 			endUserAddress := eua,
@@ -422,12 +442,13 @@
 						 octetstring sgsn_ip_data, octetstring msisdn,
 						 template ProtConfigOptions pco := omit,
 						 template (omit) OCT1 ratType := omit,
-						 template (omit) UserLocationInformation uli := omit) := {
+						 template (omit) UserLocationInformation uli := omit,
+						 template (omit) OCT2 charging_char := omit) := {
 		peer := peer,
 		gtpc := ts_GTP1C_PDU(createPDPContextRequest, '00000000'O,
 					valueof(ts_CreatePdpPDU(imsi, restart_ctr, teid_data, teid_ctrl,
 								nsapi, eua, apn, sgsn_ip_sign,
-								sgsn_ip_data, msisdn, pco, ratType, uli)), seq)
+								sgsn_ip_data, msisdn, pco, ratType, uli, charging_char)), seq)
 	}
 
 
