diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c
index c13865c..dbd6ad9 100644
--- a/ospf6d/ospf6_intra.c
+++ b/ospf6d/ospf6_intra.c
@@ -1338,7 +1338,7 @@
   struct ospf6_area *oa;
   struct ospf6_intra_prefix_lsa *intra_prefix_lsa;
   struct prefix prefix;
-  struct ospf6_route *route;
+  struct ospf6_route *route, *nroute;
   int prefix_num;
   struct ospf6_prefix *op;
   char *start, *current, *end;
@@ -1376,8 +1376,9 @@
 
       for (ospf6_route_lock (route);
            route && ospf6_route_is_prefix (&prefix, route);
-           route = ospf6_route_next (route))
+           route = nroute)
         {
+          nroute = ospf6_route_next (route);
           if (route->type != OSPF6_DEST_TYPE_NETWORK)
             continue;
           if (route->path.area_id != oa->area_id)
@@ -1407,7 +1408,7 @@
 void
 ospf6_intra_route_calculation (struct ospf6_area *oa)
 {
-  struct ospf6_route *route;
+  struct ospf6_route *route, *nroute;
   u_int16_t type;
   struct ospf6_lsa *lsa;
   void (*hook_add) (struct ospf6_route *) = NULL;
@@ -1434,8 +1435,9 @@
   oa->route_table->hook_remove = hook_remove;
 
   for (route = ospf6_route_head (oa->route_table); route;
-       route = ospf6_route_next (route))
+       route = nroute)
     {
+      nroute = ospf6_route_next (route);
       if (CHECK_FLAG (route->flag, OSPF6_ROUTE_REMOVE) &&
           CHECK_FLAG (route->flag, OSPF6_ROUTE_ADD))
         {
@@ -1515,7 +1517,7 @@
 void
 ospf6_intra_brouter_calculation (struct ospf6_area *oa)
 {
-  struct ospf6_route *brouter, *copy;
+  struct ospf6_route *brouter, *nbrouter, *copy;
   void (*hook_add) (struct ospf6_route *) = NULL;
   void (*hook_remove) (struct ospf6_route *) = NULL;
   u_int32_t brouter_id;
@@ -1584,8 +1586,9 @@
   oa->ospf6->brouter_table->hook_remove = hook_remove;
 
   for (brouter = ospf6_route_head (oa->ospf6->brouter_table); brouter;
-       brouter = ospf6_route_next (brouter))
+       brouter = nbrouter)
     {
+      nbrouter = ospf6_route_next (brouter);
       brouter_id = ADV_ROUTER_IN_PREFIX (&brouter->prefix);
       inet_ntop (AF_INET, &brouter_id, brouter_name, sizeof (brouter_name));
       
