diff --git a/programs/pluto/hostpair.c b/programs/pluto/hostpair.c
index 9b14341..e3afecd 100644
--- a/programs/pluto/hostpair.c
+++ b/programs/pluto/hostpair.c
@@ -284,7 +284,8 @@ void release_dead_interfaces(void)
*/
passert(p == *pp);
- p->interface = NULL;
+ terminate_connection(p->name);
+ p->interface = NULL; /* withdraw orientation */
*pp = p->hp_next; /* advance *pp */
p->host_pair = NULL;
diff --git a/programs/pluto/initiate.c b/programs/pluto/initiate.c
index 056af59..eed8bf3 100644
--- a/programs/pluto/initiate.c
+++ b/programs/pluto/initiate.c
@@ -119,6 +119,7 @@ bool orient(struct connection *c)
c->name, c->interface->ip_dev->id_rname,
p->ip_dev->id_rname);
}
+ terminate_connection(c->name);
c->interface = NULL; /* withdraw orientation */
return FALSE;
}