diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
index a4e5d67..017da52 100644
--- a/ospf6d/ospf6_message.c
+++ b/ospf6d/ospf6_message.c
@@ -322,10 +322,12 @@
       on->prev_drouter = on->drouter = hello->drouter;
       on->prev_bdrouter = on->bdrouter = hello->bdrouter;
       on->priority = hello->priority;
-      on->ifindex = ntohl (hello->interface_id);
-      memcpy (&on->linklocal_addr, src, sizeof (struct in6_addr));
     }
 
+  /* always override neighbor's source address and ifindex */
+  on->ifindex = ntohl (hello->interface_id);
+  memcpy (&on->linklocal_addr, src, sizeof (struct in6_addr));
+
   /* TwoWay check */
   for (p = (char *) ((caddr_t) hello + sizeof (struct ospf6_hello));
        p + sizeof (u_int32_t) <= OSPF6_MESSAGE_END (oh);
@@ -826,13 +828,6 @@
       return;
     }
 
-  if (memcmp (src, &on->linklocal_addr, sizeof (struct in6_addr)))
-    {
-      if (IS_OSPF6_DEBUG_MESSAGE (oh->type, RECV))
-        zlog_debug ("Seems to be from Secondary I/F of the neighbor, ignore");
-      return;
-    }
-
   dbdesc = (struct ospf6_dbdesc *)
     ((caddr_t) oh + sizeof (struct ospf6_header));
 
@@ -885,13 +880,6 @@
       return;
     }
 
-  if (memcmp (src, &on->linklocal_addr, sizeof (struct in6_addr)))
-    {
-      if (IS_OSPF6_DEBUG_MESSAGE (oh->type, RECV))
-        zlog_debug ("Seems to be from Secondary I/F of the neighbor, ignore");
-      return;
-    }
-
   if (on->state != OSPF6_NEIGHBOR_EXCHANGE &&
       on->state != OSPF6_NEIGHBOR_LOADING &&
       on->state != OSPF6_NEIGHBOR_FULL)
@@ -978,13 +966,6 @@
       return;
     }
 
-  if (memcmp (src, &on->linklocal_addr, sizeof (struct in6_addr)))
-    {
-      if (IS_OSPF6_DEBUG_MESSAGE (oh->type, RECV))
-        zlog_debug ("Seems to be from Secondary I/F of the neighbor, ignore");
-      return;
-    }
-
   if (on->state != OSPF6_NEIGHBOR_EXCHANGE &&
       on->state != OSPF6_NEIGHBOR_LOADING &&
       on->state != OSPF6_NEIGHBOR_FULL)
@@ -1065,13 +1046,6 @@
       return;
     }
 
-  if (memcmp (src, &on->linklocal_addr, sizeof (struct in6_addr)))
-    {
-      if (IS_OSPF6_DEBUG_MESSAGE (oh->type, RECV))
-        zlog_debug ("Seems to be from Secondary I/F of the neighbor, ignore");
-      return;
-    }
-
   if (on->state != OSPF6_NEIGHBOR_EXCHANGE &&
       on->state != OSPF6_NEIGHBOR_LOADING &&
       on->state != OSPF6_NEIGHBOR_FULL)
