diff --git a/ggsn_tests/GGSN_Tests.ttcn b/ggsn_tests/GGSN_Tests.ttcn
index 4ea7cf4..8f4e709 100644
--- a/ggsn_tests/GGSN_Tests.ttcn
+++ b/ggsn_tests/GGSN_Tests.ttcn
@@ -1512,15 +1512,36 @@
 		f_pdp_ctx_del(ctx, '1'B);
 	}
 
-	/* Assert that packets with wrong ipv6 global src addr are dropped by GGSN on APN IPv4v6 */
-	testcase TC_pdp46_act_deact_gtpu_access_wrong_global_saddr_ipv6() runs on GT_CT {
+	/* Check that attempting RA with another ll src addr won't work, packet dropped: */
+	testcase TC_pdp46_act_deact_gtpu_access_wrong_ll_saddr_ipv6() runs on GT_CT {
 		f_init();
 		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
 		ctx.pco_req := valueof(ts_PCO_IPv4_DNS_CONT);
 		f_pdp_ctx_act(ctx);
 
-		var OCT16 saddr_v6 := f_inet6_addr("fde4:8dba:82e1:2000:1:2:3:4");
-		f_send_gtpu(ctx, f_gen_icmpv6_router_solicitation(saddr_v6));
+		var OCT16 saddr_ll := f_ipv6_link_local(ctx.eua.endUserAddress.endUserAddressIPv4andIPv6.ipv6_address);
+		var OCT16 saddr_ll_wrong := f_ipv6_mangle(saddr_ll, 8);
+		f_send_gtpu(ctx, f_gen_icmpv6_router_solicitation(saddr_ll_wrong));
+		f_wait_gtpu_fail(ctx);
+
+		f_pdp_ctx_del(ctx, '1'B);
+	}
+
+	/* Assert that packets with wrong ipv6 global src addr are dropped by GGSN on APN IPv4v6 */
+	testcase TC_pdp46_act_deact_gtpu_access_wrong_global_saddr_ipv6() runs on GT_CT {
+		f_init();
+		var PdpContext ctx := valueof(t_DefinePDP(f_rnd_imsi('26242'H), '1234'O, c_ApnInet46, valueof(t_EuaIPv4Dynv6Dyn)));
+		ctx.pco_req := valueof(ts_PCO_IPv6_DNS);
+		f_pdp_ctx_act(ctx);
+
+		f_send_gtpu(ctx, f_icmpv6_rs_for_pdp(ctx));
+		f_wait_rtr_adv(ctx);
+		f_send_gtpu(ctx, f_gen_icmpv6_neigh_solicit_for_pdp(ctx));
+
+		var OCT16 dns1_addr := f_PCO_extract_proto(ctx.pco_neg, '0003'O);
+		var OCT16 saddr_glob := f_ipv6_global(ctx.eua.endUserAddress.endUserAddressIPv4andIPv6.ipv6_address);
+		var OCT16 saddr_wrong := f_ipv6_mangle(saddr_glob);
+		f_send_gtpu(ctx, f_gen_icmpv6_echo(saddr_wrong, dns1_addr));
 		f_wait_gtpu_fail(ctx);
 
 		f_pdp_ctx_del(ctx, '1'B);
@@ -1713,6 +1734,7 @@
 		execute(TC_pdp46_act_deact_pcodns6());
 		execute(TC_pdp46_act_deact_gtpu_access());
 		execute(TC_pdp46_act_deact_gtpu_access_wrong_saddr_ipv4());
+		execute(TC_pdp46_act_deact_gtpu_access_wrong_ll_saddr_ipv6());
 		execute(TC_pdp46_act_deact_gtpu_access_wrong_global_saddr_ipv6());
 		execute(TC_pdp46_clients_interact());
 		execute(TC_pdp46_act_deact_apn4());
