diff --git a/epdg/EPDG_Tests.ttcn b/epdg/EPDG_Tests.ttcn
index 0d1b10f..fb9f98b 100644
--- a/epdg/EPDG_Tests.ttcn
+++ b/epdg/EPDG_Tests.ttcn
@@ -6,6 +6,9 @@
 import from Osmocom_Types all;
 import from L3_Common all;
 import from DNS_Helpers all;
+import from IP_Types all;
+import from ICMP_Types all;
+import from ICMP_Templates all;
 
 import from IPA_Emulation all;
 import from PCO_Types all;
@@ -692,6 +695,31 @@
 	GTP2.send(ts_GTPU_PING(peer, seq := seq_nr));
 	GTP2.receive(tr_GTPU_PONG(peer));
 }
+private altstep as_GTPU_rx_icmp4(template (present) PDU_ICMP expected := ?) runs on EPDG_ConnHdlr {
+	var Gtp1uUnitdata rx_msg;
+	var template (value) Gtp1uPeer peer := ts_GtpPeerU(f_inet_addr(g_pars.bearer.gtpu_addr_remote));
+
+	[] GTP2.receive(tr_GTPU_GPDU(peer, g_pars.bearer.teid_local)) -> value rx_msg {
+			/*TODO: verify gtpu txseq:
+			if (f_verify_gtpu_txseq(ud.gtpu, use_gtpu_txseq) == false) {
+				setverdict(fail);
+				stop;
+			}
+			*/
+			var octetstring gpdu := rx_msg.gtpu.gtpu_IEs.g_PDU_IEs.data;
+			var IPv4_packet ip4 := f_IPv4_dec(gpdu);
+			if (ip4.header.ver != 4) {
+				repeat;
+			}
+			var PDU_ICMP icmp4 := f_dec_PDU_ICMP(ip4.payload);
+			if (not match(icmp4, expected)) {
+				repeat;
+			}
+	}
+	[] GTP2.receive(Gtp1uUnitdata:?) -> value rx_msg {
+		Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail, log2str("Unexpected GTP msg rx: ", rx_msg));
+	}
+}
 
 /* GSUP AuthInfo Req + Resp, triggers SWx MAR + MAA. */
 private function f_GSUP_AI_success() runs on EPDG_ConnHdlr {
@@ -942,6 +970,24 @@
 	setverdict(pass);
 }
 
+private function f_TC_mt_ipv4_echo_req(charstring id) runs on EPDG_ConnHdlr {
+	f_initial_attach();
+	/* Dispatch Echo Resp to this component: */
+	f_gtp2_register_teid('00000000'O);
+	var octetstring echo_req := f_gen_icmpv4_echo(f_inet_addr(mp_upf_gtpu_local_ip), f_inet_addr(g_pars.ue_ip));
+	f_GTP1U_send(echo_req);
+	as_GTPU_rx_icmp4((tr_ICMPv4_ERP, tr_ICMPv4_DU));
+	f_GSUP_PurgeMS_success();
+}
+testcase TC_mt_ipv4_echo_req() runs on MTC_CT {
+	var EPDG_ConnHdlrPars pars := f_init_pars();
+	var EPDG_ConnHdlr vc_conn;
+	f_init();
+	vc_conn := f_start_handler(refers(f_TC_mt_ipv4_echo_req), pars);
+	vc_conn.done;
+	setverdict(pass);
+}
+
 control {
 	execute ( TC_authinfo_normal() );
 	execute ( TC_ho_lte_to_wifi() );
@@ -950,6 +996,7 @@
 	execute ( TC_concurrent_ues2() );
 	execute ( TC_concurrent_ues100() );
 	execute ( TC_upf_echo_req() );
+	execute ( TC_mt_ipv4_echo_req() );
 }
 
 }
diff --git a/epdg/ICMP_Types.ttcn b/epdg/ICMP_Types.ttcn
new file mode 120000
index 0000000..361cad1
--- /dev/null
+++ b/epdg/ICMP_Types.ttcn
@@ -0,0 +1 @@
+../deps/titan.ProtocolModules.ICMP/src/ICMP_Types.ttcn
\ No newline at end of file
diff --git a/epdg/gen_links.sh b/epdg/gen_links.sh
index ed4209c..7a4e60d 100755
--- a/epdg/gen_links.sh
+++ b/epdg/gen_links.sh
@@ -17,6 +17,14 @@
 FILES="IPL4asp_Functions.ttcn  IPL4asp_PT.cc  IPL4asp_PT.hh IPL4asp_PortType.ttcn  IPL4asp_Types.ttcn  IPL4asp_discovery.cc IPL4asp_protocol_L234.hh"
 gen_links $DIR $FILES
 
+DIR=$BASEDIR/titan.ProtocolModules.IP/src
+FILES="IP_EncDec.cc IP_Types.ttcn"
+gen_links $DIR $FILES
+
+DIR=$BASEDIR/titan.ProtocolModules.ICMP/src
+FILES="ICMP_EncDec.cc ICMP_Types.ttcn"
+gen_links $DIR $FILES
+
 DIR=$BASEDIR/titan.TestPorts.TELNETasp/src
 FILES="TELNETasp_PT.cc  TELNETasp_PT.hh  TELNETasp_PortType.ttcn"
 gen_links $DIR $FILES
@@ -54,6 +62,7 @@
 FILES+="GTPv1U_CodecPort.ttcn GTPv1U_CodecPort_CtrlFunct.ttcn GTPv1U_CodecPort_CtrlFunctDef.cc GTPv1U_Templates.ttcn "
 FILES+="GTPv2_PrivateExtensions.ttcn GTPv2_Templates.ttcn "
 FILES+="GTPv2_CodecPort.ttcn GTPv2_CodecPort_CtrlFunctDef.cc GTPv2_CodecPort_CtrlFunct.ttcn GTPv2_Emulation.ttcn "
+FILES+="ICMP_Templates.ttcn "
 gen_links $DIR $FILES
 
 ignore_pp_results
diff --git a/epdg/regen_makefile.sh b/epdg/regen_makefile.sh
index eb5935e..9aa83b4 100755
--- a/epdg/regen_makefile.sh
+++ b/epdg/regen_makefile.sh
@@ -9,6 +9,8 @@
 	IPL4asp_PT.cc
 	IPL4asp_discovery.cc
 	Native_FunctionDefs.cc
+	IP_EncDec.cc
+	ICMP_EncDec.cc
 	TCCConversion.cc
 	TCCEncoding.cc
 	TCCInterface.cc
