diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index eaad436..0c16345 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -79,7 +79,7 @@
 	}
 
 	/* generalized GTP-C receive template */
-	template PDU_GTPC tr_GTP1C_PDU(template OCT1 msg_type, template OCT4 teid) := {
+	template PDU_GTPC tr_GTP1C_PDU(template OCT1 msg_type, template OCT4 teid, template GTPC_PDUs pdu := ?) := {
 		/* N-PDU Number flag (PN) shall be set to '0'. A GTP-C receiver shall not return an
 		 * error if this flag is set to '1'. */
 		pn_bit := '0'B,
@@ -95,7 +95,7 @@
 		lengthf := ?,
 		teid := teid,
 		opt_part := *,
-		gtpc_pdu := ?
+		gtpc_pdu := pdu
 	}
 
 	/* generalized GTP-C send template */
@@ -125,25 +125,37 @@
 
 	/* recovery IE */
 	template Recovery_gtpc ts_Recovery(OCT1 restart_counter) := {
-		type_gtpc := '00'O, /* we assume encoder fixes this */
+		type_gtpc := '0E'O,
+		restartCounter := restart_counter
+	}
+
+	template Recovery_gtpc tr_Recovery(template OCT1 restart_counter) := {
+		type_gtpc := '0E'O,
 		restartCounter := restart_counter
 	}
 
 	/* template matching reception of GTP-C echo-request */
-	template Gtp1cUnitdata tr_GTPC_MsgType(template GtpPeer peer, template OCT1 msg_type, template OCT4 teid) := {
+	template Gtp1cUnitdata tr_GTPC_MsgType(template GtpPeer peer, template OCT1 msg_type, template OCT4 teid, template GTPC_PDUs pdus := ?) := {
 		peer := peer,
-		gtpc := tr_GTP1C_PDU(msg_type, teid)
+		gtpc := tr_GTP1C_PDU(msg_type, teid, pdus)
 	}
 
 	/* template matching reception of GTP-C echo-request */
 	template Gtp1cUnitdata tr_GTPC_PING(template GtpPeer peer) := tr_GTPC_MsgType(peer, echoRequest, '00000000'O);
 
+	template GTPC_PDUs tr_EchoRespPDU(template OCT1 restart_counter) := {
+		echoResponse := {
+			recovery := tr_Recovery(restart_counter),
+			private_extension_gtpc := *
+		}
+	}
+
+	/* template matching reception of GTP-C echo-response */
+	template Gtp1cUnitdata tr_GTPC_PONG(template GtpPeer peer) := tr_GTPC_MsgType(peer, echoResponse, '00000000'O, tr_EchoRespPDU(?));
+
 	template GTPC_PDUs ts_EchoRespPDU(OCT1 restart_counter) := {
 		echoResponse := {
-			recovery := {
-				type_gtpc := '00'O, /* we assume encoder fixes? */
-				restartCounter := restart_counter
-			},
+			recovery := ts_Recovery(restart_counter),
 			private_extension_gtpc := omit
 		}
 	}
@@ -154,6 +166,18 @@
 		gtpc := ts_GTP1C_PDU(echoResponse, '00000000'O, valueof(ts_EchoRespPDU(rest_ctr)), seq)
 	}
 
+	template GTPC_PDUs ts_EchoReqPDU := {
+		echoRequest := {
+			private_extension_gtpc := omit
+		}
+	}
+
+	/* master template for sending a GTP-C echo request */
+	template Gtp1cUnitdata ts_GTPC_PING(GtpPeer peer, uint16_t seq) := {
+		peer := peer,
+		gtpc := ts_GTP1C_PDU(echoRequest, '00000000'O, valueof(ts_EchoReqPDU), seq)
+	}
+
 	template EndUserAddress t_EuaIPv4(template OCT4 ip_addr) := {
 		type_gtpc := '80'O,
 		endUserAddress := {
@@ -836,6 +860,7 @@
 	testcase TC_pdp4_act_deact_ipcp() runs on GT_CT {
 		f_init();
 		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_IPCP);
 		f_pdp_ctx_act(ctx);
 		f_pdp_ctx_del(ctx, '1'B);
 	}
@@ -843,10 +868,23 @@
 	testcase TC_pdp4_act_deact_pcodns() runs on GT_CT {
 		f_init();
 		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 		f_pdp_ctx_del(ctx, '1'B);
 	}
 
+	testcase TC_echo_req_resp() runs on GT_CT {
+		f_init();
+		f_send_gtpc(ts_GTPC_PING(g_peer_c, g_c_seq_nr));
+		T_default.start;
+		alt {
+			[] GTPC.receive(tr_GTPC_PONG(g_peer_c)) { setverdict(pass); };
+			[] GTPC.receive { repeat; };
+			[] T_default.timeout { setverdict(fail); }
+		}
+		T_default.stop;
+	}
+
 	control {
 		execute(TC_pdp4_act_deact());
 		execute(TC_pdp4_act_deact_ipcp());
@@ -855,5 +893,7 @@
 		execute(TC_pdp6_act_deact());
 		execute(TC_pdp6_act_deact_pcodns());
 		execute(TC_pdp6_act_deact_icmp6());
+
+		execute(TC_echo_req_resp());
 	}
 }
