diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c
index 78fdd1e0..b5f88a7f 100644
--- a/proto/bgp/packets.c
+++ b/proto/bgp/packets.c
@@ -914,12 +914,14 @@ bgp_apply_next_hop(struct bgp_parse_state *s, rta *a, ip_addr gw, ip_addr ll)
       nbr = neigh_find(&p->p, ll, p->neigh->iface, 0);
 
     if (!nbr || (nbr->scope == SCOPE_HOST))
-      WITHDRAW(BAD_NEXT_HOP);
-
+      a->dest = RTD_UNREACHABLE;
+    else
+    {
     a->dest = RTD_UNICAST;
     a->nh.gw = nbr->addr;
     a->nh.iface = nbr->iface;
     a->igp_metric = c->cf->cost;
+    }
   }
   else /* GW_RECURSIVE */
   {
