diff --git a/ggsn/ggsn.c b/ggsn/ggsn.c
index 2937b04..6aa4210 100644
--- a/ggsn/ggsn.c
+++ b/ggsn/ggsn.c
@@ -266,7 +266,8 @@
 		}
 		LOGPAPN(LOGL_ERROR, apn, "Setting up Kernel GTP\n");
 		/* use GTP kernel module for data packet encapsulation */
-		if (gtp_kernel_init(apn->ggsn->gsn, &apn->v4.cfg.ifconfig_prefix, apn->tun.cfg.ipup_script) < 0) {
+		if (gtp_kernel_init(apn->ggsn->gsn, apn->tun.cfg.dev_name,
+				    &apn->v4.cfg.ifconfig_prefix, apn->tun.cfg.ipup_script) < 0) {
 			return -1;
 		}
 		break;
@@ -334,6 +335,7 @@
 {
 	struct gsn_t *gsn = pdp->gsn;
 	struct ippoolm_t *ipp = (struct ippoolm_t *)pdp->peer;
+	struct apn_ctx *apn = pdp->priv;
 
 	LOGPPDP(LOGL_INFO, pdp, "Deleting PDP context\n");
 	struct ippoolm_t *member = pdp->peer;
@@ -344,7 +346,7 @@
 	} else
 		LOGPPDP(LOGL_ERROR, pdp, "Cannot find/free IP Pool member\n");
 
-	if (gtp_kernel_tunnel_del(pdp)) {
+	if (gtp_kernel_tunnel_del(pdp, apn->tun.cfg.dev_name)) {
 		LOGPPDP(LOGL_ERROR, pdp, "Cannot delete tunnel from kernel:%s\n",
 			strerror(errno));
 	}
@@ -567,7 +569,7 @@
 		in46a_to_eua(&member->addr, &pdp->eua);
 
 		/* TODO: In IPv6, EUA doesn't contain the actual IP addr/prefix! */
-		if (gtp_kernel_tunnel_add(pdp) < 0) {
+		if (gtp_kernel_tunnel_add(pdp, apn->tun.cfg.dev_name) < 0) {
 			LOGPPDP(LOGL_ERROR, pdp, "Cannot add tunnel to kernel: %s\n", strerror(errno));
 			gtp_create_context_resp(gsn, pdp, GTPCAUSE_SYS_FAIL);
 			return 0;
@@ -596,6 +598,7 @@
 
 	pdp->peer = member;
 	pdp->ipif = apn->tun.tun;	/* TODO */
+	pdp->priv = apn;
 	member->peer = pdp;
 
 	if (!send_trap(gsn, pdp, member, "imsi-ass-ip")) { /* TRAP with IP assignment */
