diff --git a/src/nm-policy.c b/src/nm-policy.c
index cf94033..57c56f8 100644
--- a/src/nm-policy.c
+++ b/src/nm-policy.c
@@ -660,6 +660,7 @@ get_best_ip6_config (NMPolicy *policy,
                NMConnection *tmp;
                NMSettingIP6Config *s_ip6;
                NMVPNConnectionState vpn_state;
+               const struct in6_addr *int_gw_addr;
 
                if (!NM_IS_VPN_CONNECTION (active))
                        continue;
@@ -677,6 +678,11 @@ get_best_ip6_config (NMPolicy *policy,
                if (!vpn_ip6)
                        continue;
 
+               /* Check for an IPv6 internal gateway */
+               int_gw_addr = nm_vpn_connection_get_ip6_internal_gateway (candidate);
+               if (!int_gw_addr)
+                       continue;
+
                if (ignore_never_default == FALSE) {
                        /* Check for a VPN-provided config never-default */
                        if (nm_ip6_config_get_never_default (vpn_ip6))
