diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 6a3df19..b38df20 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1323,13 +1323,24 @@
     {
       for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
 	{
+
 	  if ((cmd == RTM_NEWROUTE 
 	       && CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
 	      || (cmd == RTM_DELROUTE
 		  && CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)))
 	    {
+
 	      if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
 		{
+		  if (IS_ZEBRA_DEBUG_KERNEL) {
+			zlog_info ("netlink_route_multipath(): %s %s/%d via %s if %u",
+		          lookup (nlmsg_str, cmd),
+		          inet_ntoa (p->u.prefix4),
+		          p->prefixlen, 
+		          inet_ntoa (nexthop->rgate.ipv4),
+		          nexthop->rifindex);
+		  }
+
 		  if (nexthop->rtype == NEXTHOP_TYPE_IPV4 
 		      || nexthop->rtype == NEXTHOP_TYPE_IPV4_IFINDEX)
 		    addattr_l (&req.n, sizeof req, RTA_GATEWAY,
@@ -1351,6 +1362,15 @@
 		}
 	      else
 		{
+		  if (IS_ZEBRA_DEBUG_KERNEL) {
+            zlog_info ("netlink_route_multipath(): %s %s/%d via %s if %u",
+		                lookup (nlmsg_str, cmd),
+		                inet_ntoa (p->u.prefix4),
+		                p->prefixlen,
+		                inet_ntoa (nexthop->gate.ipv4), 
+		                nexthop->ifindex);
+		  }
+
 		  if (nexthop->type == NEXTHOP_TYPE_IPV4 
 		      || nexthop->type == NEXTHOP_TYPE_IPV4_IFINDEX)
 		    addattr_l (&req.n, sizeof req, RTA_GATEWAY,
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 2209364..09d2da5 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -1146,6 +1146,13 @@
   /* Apply mask. */
   apply_mask_ipv4 (p);
 
+  if (IS_ZEBRA_DEBUG_KERNEL && gate)
+    zlog_info ("rib_delete_ipv4(): route delete %s/%d via %s ifindex %d",
+		       inet_ntop (AF_INET, &p->prefix, buf1, BUFSIZ),
+		       p->prefixlen, 
+		       inet_ntoa (*gate), 
+		       ifindex);
+
   /* Lookup route node. */
   rn = route_node_lookup (table, (struct prefix *) p);
   if (! rn)
@@ -1192,6 +1199,20 @@
 	      break;
 	    }
 	}
+      else if (gate) 
+        {
+          nexthop = rib->nexthop;
+
+	  /* Make sure that the route found has the same gateway. */
+	  if (rib->type == type
+	      && nexthop &&
+	          (IPV4_ADDR_SAME (&nexthop->gate.ipv4, gate) || 
+		    IPV4_ADDR_SAME (&nexthop->rgate.ipv4, gate)) )
+	    {
+	      same = rib;
+	      break;
+	    }
+	}
       else
 	{
 	  if (rib->type == type)
