diff --git a/src/openvpn/init.c b/src/openvpn/init.c
index 2933d555..b1f4320a 100644
--- a/src/openvpn/init.c
+++ b/src/openvpn/init.c
@@ -1680,6 +1680,9 @@ do_open_tun(struct context *c)
     if (c->c1.tuntap)
     {
         oldtunfd = c->c1.tuntap->fd;
+        free(c->c1.tuntap);
+        c->c1.tuntap = NULL;
+        c->c1.tuntap_owned = false;
     }
 #endif
 
