diff -urNp openswan-2.6.32-current/programs/pluto/hostpair.c openswan-2.6.32-current-next/programs/pluto/hostpair.c --- openswan-2.6.32-current/programs/pluto/hostpair.c 2011-10-27 15:28:42.654831240 -0400 +++ openswan-2.6.32-current-next/programs/pluto/hostpair.c 2011-10-28 18:31:38.700580128 -0400 @@ -301,6 +301,7 @@ release_dead_interfaces(void) */ passert(p == *pp); + terminate_connection(p->name); p->interface = NULL; *pp = p->hp_next; /* advance *pp */ diff -urNp openswan-2.6.32-current/programs/pluto/initiate.c openswan-2.6.32-current-next/programs/pluto/initiate.c --- openswan-2.6.32-current/programs/pluto/initiate.c 2011-10-27 15:28:42.656831238 -0400 +++ openswan-2.6.32-current-next/programs/pluto/initiate.c 2011-10-28 18:31:38.703580123 -0400 @@ -133,6 +133,7 @@ orient(struct connection *c) else loglog(RC_LOG_SERIOUS, "two interfaces match \"%s\" (%s, %s)" , c->name, c->interface->ip_dev->id_rname, p->ip_dev->id_rname); + terminate_connection(c->name); c->interface = NULL; /* withdraw orientation */ return FALSE; }