diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index 31c1056..ae92626 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -247,7 +247,7 @@
 	}
 
 	/* send a PDP context activation */
-	function f_pdp_ctx_act(inout PdpContext ctx) runs on GT_CT {
+	function f_pdp_ctx_act(inout PdpContext ctx, OCT1 exp_cause := '80'O) runs on GT_CT {
 		var Gtp1cUnitdata ud;
 		var default d;
 
@@ -260,7 +260,7 @@
 		alt {
 			[] GTPC.receive(tr_GTPC_MsgType(g_peer_c, createPDPContextResponse, ctx.teic)) -> value ud {
 				var CreatePDPContextResponse cpr := ud.gtpc.gtpc_pdu.createPDPContextResponse;
-				if (cpr.cause.causevalue == '80'O) {
+				if (exp_cause == '80'O and exp_cause == cpr.cause.causevalue) {
 					/*  Check if EUA type corresponds to requested type */
 					if (match(ctx.eua, t_EuaIPv4(?)) and
 					    not match(cpr.endUserAddress, tr_EuaIPv4(?))){
@@ -292,6 +292,12 @@
 					ctx.eua := cpr.endUserAddress;
 					ctx.pco_neg := cpr.protConfigOptions;
 					setverdict(pass);
+				} else if (exp_cause != '80'O and exp_cause == cpr.cause.causevalue) {
+					if (ispresent(cpr.endUserAddress)) {
+						log("EUA received on createPDPContextResponse cause=" & oct2str(cpr.cause.causevalue));
+						setverdict(fail);
+					}
+					setverdict(pass);
 				} else {
 					setverdict(fail);
 				}
@@ -1287,6 +1293,22 @@
 		f_pdp_ctx_del(ctxA, '1'B);
 	}
 
+	/* Test IPv4v6 context activation for dynamic IPv4v6 EUA on a v4-only APN */
+	testcase TC_pdp46_act_deact_apn4() runs on GT_CT {
+		f_init();
+		/* A typical MS first attempts v4v6, and if rejected, then tries v4 and v6 separetly */
+		var PdpContext ctx46 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dynv6Dyn)));
+		f_pdp_ctx_act(ctx46, 'DC'O); /* Cause: Unknown PDP address or PDP type */
+
+		var PdpContext ctx4 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv4Dyn)));
+		f_pdp_ctx_act(ctx4, '80'O); /* Normal accept cause */
+
+		var PdpContext ctx6 := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInternet, valueof(t_EuaIPv6Dyn)));
+		f_pdp_ctx_act(ctx6, 'DC'O); /* Cause: Unknown PDP address or PDP type */
+
+		f_pdp_ctx_del(ctx4, '1'B);
+	}
+
 	/* Send a duplicate echo req. osmo-ggsn maintains a queue for sent
 	   responses (60 seconds): If same delete req is sent and duplicate is
 	   detected, saved duplicate response should be sent back. */
@@ -1332,6 +1354,7 @@
 		execute(TC_pdp46_act_deact_pcodns6());
 		execute(TC_pdp46_act_deact_gtpu_access());
 		execute(TC_pdp46_clients_interact());
+		execute(TC_pdp46_act_deact_apn4());
 
 		execute(TC_echo_req_resp());
 		execute(TC_act_deact_retrans_duplicate());
