diff -uprN bird-1.0.11-old/proto/ospf/topology.c bird-1.0.11/proto/ospf/topology.c
--- bird-1.0.11-old/proto/ospf/topology.c	2008-08-27 15:02:33.000000000 +0200
+++ bird-1.0.11/proto/ospf/topology.c	2008-08-27 15:13:32.000000000 +0200
@@ -57,9 +57,6 @@ originate_rt_lsa_body(struct ospf_area *
 
   WALK_LIST(ifa, po->iface_list)
   {
-    if (ln == ln_after)
-      die("LSA space overflow");
-
     if ((ifa->type == OSPF_IT_VLINK) && (ifa->voa == oa) && (!EMPTY_LIST(ifa->neigh_list)))
     {
       neigh = (struct ospf_neighbor *) HEAD(ifa->neigh_list);
@@ -70,6 +67,9 @@ originate_rt_lsa_body(struct ospf_area *
     if ((ifa->oa != oa) || (ifa->state == OSPF_IS_DOWN))
       continue;
 
+    if (ln == ln_after)
+      die("LSA space overflow");
+
     if (ifa->state == OSPF_IS_LOOP)
     {
       ln->type = 3;
