diff --git a/ospfd/ospf_spf.c b/ospfd/ospf_spf.c
index 15d27be..82f0fed 100644
--- a/ospfd/ospf_spf.c
+++ b/ospfd/ospf_spf.c
@@ -946,7 +946,8 @@
 /* Second stage of SPF calculation. */
 static void
 ospf_spf_process_stubs (struct ospf_area *area, struct vertex *v,
-                        struct route_table *rt)
+                        struct route_table *rt,
+                        int parent_is_root)
 {
   struct listnode *cnode, *cnnode;
   struct vertex *child;
@@ -981,21 +982,7 @@
                 (l->m[0].tos_count * ROUTER_LSA_TOS_SIZE));
 
           if (l->m[0].type == LSA_LINK_TYPE_STUB)
-	    {
-	      /* PtP links with /32 masks adds host routes to the remote host,
-		 see RFC 2328, 12.4.1.1, Option 1.
-		 Make sure that such routes are ignored */
-	      /* XXX: Change to breadth-first and avoid the lookup */
-	      if (l->link_data.s_addr == 0xffffffff &&
-		  ospf_if_lookup_by_local_addr (area->ospf, NULL, l->link_id))
-		{
-		  if (IS_DEBUG_OSPF_EVENT)
-		    zlog_debug ("ospf_spf_process_stubs(): ignoring host route "
-				"%s/32 to self.", inet_ntoa (l->link_id));
-		  continue;
-		}
-	      ospf_intra_add_stub (rt, l, v, area);
-	    }
+            ospf_intra_add_stub (rt, l, v, area, parent_is_root);
         }
     }
 
@@ -1005,8 +992,17 @@
     {
       if (CHECK_FLAG (child->flags, OSPF_VERTEX_PROCESSED))
         continue;
-
-      ospf_spf_process_stubs (area, child, rt);
+      
+      /* the first level of routers connected to the root
+       * should have 'parent_is_root' set, including those 
+       * connected via a network vertex.
+       */
+      if (area->spf == v)
+        parent_is_root = 1;
+      else if (v->type == OSPF_VERTEX_ROUTER)
+        parent_is_root = 0;
+        
+      ospf_spf_process_stubs (area, child, rt, parent_is_root);
 
       SET_FLAG (child->flags, OSPF_VERTEX_PROCESSED);
     }
@@ -1193,7 +1189,7 @@
     }
 
   /* Second stage of SPF calculation procedure's  */
-  ospf_spf_process_stubs (area, area->spf, new_table);
+  ospf_spf_process_stubs (area, area->spf, new_table, 0);
 
   /* Free candidate queue. */
   pqueue_delete (candidate);
