diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 19bc1e5..a1ad929 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -665,7 +665,25 @@
   return 1;
 }
 
-
+/* Check whether interface matches given network
+ * returns: 1, true. 0, false
+ */
+int 
+ospf_network_match_iface(struct connected *co, struct prefix *net)
+{
+  /* Behaviour to match both Cisco where:
+   *   iface address lies within network specified -> ospf
+   * and zebra 0.9[2ish-3]:
+   *   PtP special case: network specified == iface peer addr -> ospf
+   */
+  return (
+          ((ifc_pointopoint (co) && 
+            IPV4_ADDR_SAME ( &(co->destination->u.prefix4), &(net->u.prefix4)))
+   		  || prefix_match (net, co->address)) 
+  		  ? 1 : 0
+  		 );
+}
+
 void
 ospf_network_run (struct ospf *ospf, struct prefix *p, struct ospf_area *area)
 {
@@ -704,13 +722,9 @@
 	  else 
 	    addr = co->address;
 
-	  if (p->family == co->address->family &&
-	      ! ospf_if_is_configured (&(addr->u.prefix4)))
-	    if ((ifc_pointopoint (co) &&
-		 IPV4_ADDR_SAME (&(addr->u.prefix4), &(p->u.prefix4))) ||
-		prefix_match (p, addr)) 
-	      {
-	        struct ospf_interface *oi;
+	  if (ospf_network_match_iface(co,p))
+	    {
+	    struct ospf_interface *oi;
 		
 		oi = ospf_if_new (ifp, co->address);
 		oi->connected = co;
@@ -835,10 +849,7 @@
 	      if (rn->info == NULL)
 		continue;
 	      
-	      if ((oi->type == OSPF_IFTYPE_POINTOPOINT
-		   && IPV4_ADDR_SAME (&(co->destination->u.prefix4),
-				      &(rn->p.u.prefix4)))
-		  || prefix_match (&(rn->p), co->address))
+	      if (ospf_network_match_iface(co,&rn->p))
 		{
 		  found = 1;
 		  route_unlock_node (rn);
diff --git a/ospfd/ospfd.h b/ospfd/ospfd.h
index a83231b..a46a793 100644
--- a/ospfd/ospfd.h
+++ b/ospfd/ospfd.h
@@ -511,6 +511,7 @@
 void ospf_finish (struct ospf *);
 int ospf_router_id_update_timer (struct thread *);
 void ospf_router_id_update ();
+int ospf_network_match_iface (struct connected *, struct prefix *);
 int ospf_network_set (struct ospf *, struct prefix_ipv4 *, struct in_addr);
 int ospf_network_unset (struct ospf *, struct prefix_ipv4 *, struct in_addr);
 int ospf_area_stub_set (struct ospf *, struct in_addr);
