--- ...\strongswan-4.6.2\strongswan-4.6.2\src\pluto\ipsec_doi.c 2011-11-07 22:27:07.000000000 +-0530 +++ ...\strongswan-4.6.2\strongswan-4.6.2\src\pluto\ipsec_doi.c 2012-05-21 12:19:03.000000000 +-0530 @@ -2426,13 +2426,13 @@ if (!peer->equals(peer, c->spd.that.id)) { loglog(RC_LOG_SERIOUS, "we require peer to have ID '%Y', but peer declares '%Y'", c->spd.that.id, peer); - return FALSE; + /*return FALSE;*/ } if (c->spd.that.ca) { DBG(DBG_CONTROL, DBG_log("required CA: \"%s\"", c->spd.that.ca); --- ...\strongswan-4.6.2\strongswan-4.6.2\src\pluto\connections.c 2011-11-07 22:27:07.000000000 +-0530 +++ ...\strongswan-4.6.2\strongswan-4.6.2\src\pluto\connections.c 2012-05-21 12:19:15.000000000 +-0530 @@ -3418,13 +3418,14 @@ for (; d != NULL; d = d->hp_next) { const char *match_name[] = {"no", "ok"}; id_match_t match_level = peer_id->matches(peer_id, d->spd.that.id); - bool matching_id = match_level > ID_MATCH_NONE; + /*bool matching_id = match_level > ID_MATCH_NONE;*/ + bool matching_id = TRUE; bool matching_auth = (d->policy & auth_policy) != LEMPTY; bool matching_trust = trusted_ca(peer_ca , d->spd.that.ca, &peer_pathlen); bool matching_request = match_requested_ca(c->requested_ca