diff --git a/nest/rt-table.c b/nest/rt-table.c
index 0844070d7f6b954a35f0e3f9776f7fbf111aa9fd..df7c1634293035b7a20f4b260dcfbc242a889936 100644
--- a/nest/rt-table.c
+++ b/nest/rt-table.c
@@ -2737,7 +2737,7 @@ rte_update_out(struct channel *c, const net_addr *n, rte *new, rte *old0, int re
 
   /* Find the old rte */
   for (pos = &net->routes; old = *pos; pos = &old->next)
-    if (old->attrs->src == src)
+    if ((c->ra_mode != RA_ANY) || (old->attrs->src == src))
     {
       if (new && rte_same(old, new))
       {