diff --git a/ospf6d/ospf6_abr.c b/ospf6d/ospf6_abr.c
index 29188ab..58015ff 100644
--- a/ospf6d/ospf6_abr.c
+++ b/ospf6d/ospf6_abr.c
@@ -498,6 +498,7 @@
   char options[3] = {0, 0, 0};
   u_int8_t prefix_options = 0;
   u_int32_t cost = 0;
+  u_char router_bits = 0;
   int i;
   char buf[64];
   int is_debug = 0;
@@ -543,6 +544,7 @@
       options[1] = router_lsa->options[1];
       options[2] = router_lsa->options[2];
       cost = OSPF6_ABR_SUMMARY_METRIC (router_lsa);
+      SET_FLAG (router_bits, OSPF6_ROUTER_BIT_E);
     }
   else
     assert (0);
@@ -567,7 +569,7 @@
       if (is_debug)
         zlog_info ("cost is LS_INFINITY, ignore");
       if (old)
-        ospf6_route_remove (old, oa->ospf6->route_table);
+        ospf6_route_remove (old, table);
       return;
     }
   if (OSPF6_LSA_IS_MAXAGE (lsa))
@@ -575,7 +577,7 @@
       if (is_debug)
         zlog_info ("LSA is MaxAge, ignore");
       if (old)
-        ospf6_route_remove (old, oa->ospf6->route_table);
+        ospf6_route_remove (old, table);
       return;
     }
 
@@ -585,7 +587,7 @@
       if (is_debug)
         zlog_info ("LSA is self-originated, ignore");
       if (old)
-        ospf6_route_remove (old, oa->ospf6->route_table);
+        ospf6_route_remove (old, table);
       return;
     }
 
@@ -598,7 +600,7 @@
           if (is_debug)
             zlog_info ("Prefix is equal to address range, ignore");
           if (old)
-            ospf6_route_remove (old, oa->ospf6->route_table);
+            ospf6_route_remove (old, table);
           return;
         }
     }
@@ -613,7 +615,7 @@
       if (is_debug)
         zlog_info ("ABR router entry does not exist, ignore");
       if (old)
-        ospf6_route_remove (old, oa->ospf6->route_table);
+        ospf6_route_remove (old, table);
       return;
     }
 
@@ -630,6 +632,7 @@
   route->path.origin.type = lsa->header->type;
   route->path.origin.id = lsa->header->id;
   route->path.origin.adv_router = lsa->header->adv_router;
+  route->path.router_bits = router_bits;
   route->path.options[0] = options[0];
   route->path.options[1] = options[1];
   route->path.options[2] = options[2];
