diff --git a/proto/bgp/packets.c b/proto/bgp/packets.c
index b623902..4464523 100644
--- a/proto/bgp/packets.c
+++ b/proto/bgp/packets.c
@@ -1112,7 +1112,7 @@ bgp_do_rx_update(struct bgp_conn *conn,
   if (conn->state != BS_ESTABLISHED)	/* fatal error during decoding */
     return;
 
-  if (a0 && ! bgp_set_next_hop(p, a0))
+  if (a0 && nlri_len && !bgp_set_next_hop(p, a0))
     a0 = NULL;
 
   last_id = 0;
