diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index d7f8bda..fe29e81 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -305,6 +305,21 @@
 }
 #endif /* HAVE_IPV6 */
 
+struct nexthop *
+nexthop_blackhole_add (struct rib *rib)
+{
+  struct nexthop *nexthop;
+
+  nexthop = XMALLOC (MTYPE_NEXTHOP, sizeof (struct nexthop));
+  memset (nexthop, 0, sizeof (struct nexthop));
+  nexthop->type = NEXTHOP_TYPE_BLACKHOLE;
+  SET_FLAG (rib->flags, ZEBRA_FLAG_BLACKHOLE);
+
+  nexthop_add (rib, nexthop);
+
+  return nexthop;
+}
+
 /* If force flag is not set, do not modify falgs at all for uninstall
    the route from FIB. */
 int
@@ -723,6 +738,9 @@
 	}
       break;
 #endif /* HAVE_IPV6 */
+    case NEXTHOP_TYPE_BLACKHOLE:
+      SET_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE);
+      break;
     default:
       break;
     }
@@ -1270,6 +1288,9 @@
 	case STATIC_IPV4_IFNAME:
 	  nexthop_ifname_add (rib, si->gate.ifname);
 	  break;
+  case STATIC_IPV4_BLACKHOLE:
+    nexthop_blackhole_add (rib);
+    break;
 	}
       rib_process (rn, NULL);
     }
@@ -1292,6 +1313,9 @@
 	case STATIC_IPV4_IFNAME:
 	  nexthop_ifname_add (rib, si->gate.ifname);
 	  break;
+  case STATIC_IPV4_BLACKHOLE:
+    nexthop_blackhole_add (rib);
+    break;
 	}
 
       /* Save the flags of this static routes (reject, blackhole) */
@@ -1316,6 +1340,9 @@
       && si->type == STATIC_IPV4_IFNAME
       && strcmp (nexthop->ifname, si->gate.ifname) == 0)
     return 1;
+  if (nexthop->type == NEXTHOP_TYPE_BLACKHOLE
+      && si->type == STATIC_IPV4_BLACKHOLE)
+    return 1;
   return 0;;
 }
 
@@ -1406,6 +1433,8 @@
     type = STATIC_IPV4_GATEWAY;
   if (ifname)
     type = STATIC_IPV4_IFNAME;
+  else
+    type = STATIC_IPV4_BLACKHOLE;
 
   /* Do nothing if there is a same static route.  */
   for (si = rn->info; si; si = si->next)
@@ -1499,6 +1528,8 @@
     type = STATIC_IPV4_GATEWAY;
   else if (ifname)
     type = STATIC_IPV4_IFNAME;
+  else
+    type = STATIC_IPV4_BLACKHOLE;
 
   /* Find same static route is the tree */
   for (si = rn->info; si; si = si->next)
