diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
index 439f6a6..d382f03 100644
--- a/ospf6d/ospf6_message.c
+++ b/ospf6d/ospf6_message.c
@@ -245,7 +245,6 @@
   char *p;
   int twoway = 0;
   int neighborchange = 0;
-  int neighbor_ifindex_change = 0;
   int backupseen = 0;
 
   hello = (struct ospf6_hello *)
@@ -286,17 +285,10 @@
       on->priority = hello->priority;
     }
 
-  /* Always override neighbor's source address */
+  /* always override neighbor's source address and ifindex */
+  on->ifindex = ntohl (hello->interface_id);
   memcpy (&on->linklocal_addr, src, sizeof (struct in6_addr));
 
-  /* Neighbor ifindex check */
-  if (on->ifindex > 0 
-      && (unsigned int) on->ifindex != ntohl (hello->interface_id))
-    {
-      on->ifindex = ntohl (hello->interface_id);
-      neighbor_ifindex_change++;
-    }
-
   /* TwoWay check */
   for (p = (char *) ((caddr_t) hello + sizeof (struct ospf6_hello));
        p + sizeof (u_int32_t) <= OSPF6_MESSAGE_END (oh);
@@ -356,9 +348,6 @@
     thread_add_event (master, backup_seen, oi, 0);
   if (neighborchange)
     thread_add_event (master, neighbor_change, oi, 0);
-
-  if (neighbor_ifindex_change && on->state == OSPF6_NEIGHBOR_FULL)
-    OSPF6_ROUTER_LSA_SCHEDULE (oi->area);
 }
 
 static void
