diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index 4eccee7..afe3acf 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -439,11 +439,12 @@
   return NULL;
 }
 
-/* determine receiving interface by source of packet */
+/* determine receiving interface by ifp and source address */
 struct ospf_interface *
-ospf_if_lookup_recv_if (struct ospf *ospf, struct in_addr src)
+ospf_if_lookup_recv_if (struct ospf *ospf, struct in_addr src,
+			struct interface *ifp)
 {
-  struct listnode *node;
+  struct route_node *rn;
   struct prefix_ipv4 addr;
   struct ospf_interface *oi, *match;
 
@@ -453,11 +454,16 @@
 
   match = NULL;
 
-  for (ALL_LIST_ELEMENTS_RO (ospf->oiflist, node, oi))
+  for (rn = route_top (IF_OIFS (ifp)); rn; rn = route_next (rn))
     {
+      oi = rn->info;
+
+      if (!oi) /* oi can be NULL for PtP aliases */
+	continue;
+
       if (oi->type == OSPF_IFTYPE_VIRTUALLINK)
 	continue;
-      
+
       if (if_is_loopback (oi->ifp))
         continue;
 
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index 0fc4ccb..ab0b758 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -252,7 +252,8 @@
 						    struct prefix *);
 extern struct ospf_interface *ospf_if_addr_local (struct in_addr);
 extern struct ospf_interface *ospf_if_lookup_recv_if (struct ospf *,
-						      struct in_addr);
+						      struct in_addr,
+						      struct interface *);
 extern struct ospf_interface *ospf_if_is_configured (struct ospf *,
 						     struct in_addr *);
 
diff --git a/ospfd/ospf_packet.c b/ospfd/ospf_packet.c
index 7ebf114..effef39 100644
--- a/ospfd/ospf_packet.c
+++ b/ospfd/ospf_packet.c
@@ -2373,7 +2373,7 @@
   ospfh = (struct ospf_header *) STREAM_PNT (ibuf);
 
   /* associate packet with ospf interface */
-  oi = ospf_if_lookup_recv_if (ospf, iph->ip_src);
+  oi = ospf_if_lookup_recv_if (ospf, iph->ip_src, ifp);
 
   /* If incoming interface is passive one, ignore it. */
   if (oi && OSPF_IF_PASSIVE_STATUS (oi) == OSPF_IF_PASSIVE)
@@ -2419,7 +2419,7 @@
           return 0;
         }
     }
-    
+
   /* else it must be a local ospf interface, check it was received on 
    * correct link 
    */
