diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 23a109a..bc7b5e2 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -3,6 +3,8 @@
 	* (general) Bug #234, see also [quagga-dev 3902].
 	  Fix problem with nbr_self not being properly reinitialised
 	  when an interface comes up, after having been down.
+	  Some re-arrangement done by Paul Jakma, any bugs introduced
+	  on top of Len's suggested changes are his.
 	* ospf_neighbor.c: (ospf_nbr_add_self) centralise
 	  initialisation of nbr_self parameters here.
 	* ospf_interface.c: (ospf_if_new) deleting initialisation of
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index d21dea3..82c4bae 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -237,9 +237,6 @@
 
   /* Add pseudo neighbor. */
   oi->nbr_self = ospf_nbr_new (oi);
-  oi->nbr_self->state = NSM_TwoWay;
-  oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
-  oi->nbr_self->options = OSPF_OPTION_E;
 
   oi->ls_upd_queue = route_table_init ();
   oi->t_ls_upd_event = NULL;
@@ -267,7 +264,7 @@
   struct ospf_nbr_nbma *nbr_nbma;
   struct ospf_lsa *lsa;
 
-  /* oi->nbrs and oi->nbr_nbma should be deletete on InterafceDown event */
+  /* oi->nbrs and oi->nbr_nbma should be deleted on InterfaceDown event */
   /* delete all static neighbors attached to this interface */
   for (ALL_LIST_ELEMENTS (oi->nbr_nbma, node, nnode, nbr_nbma))
     {
@@ -300,26 +297,11 @@
   /* Empty link state update queue */
   ospf_ls_upd_queue_empty (oi);
   
- /* Handle pseudo neighbor. */
+  /* Reset pseudo neighbor. */
   ospf_nbr_delete (oi->nbr_self);
   oi->nbr_self = ospf_nbr_new (oi);
-  oi->nbr_self->state = NSM_TwoWay;
-  oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
-
-  switch (oi->area->external_routing)
-    {
-    case OSPF_AREA_DEFAULT:
-      SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-      break;
-    case OSPF_AREA_STUB:
-      UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-      break;
-    case OSPF_AREA_NSSA:
-      UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-      SET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
-      break;
-    }
-
+  ospf_nbr_add_self (oi);
+  
   ospf_lsa_unlock (oi->network_lsa_self);
   oi->network_lsa_self = NULL;
   OSPF_TIMER_OFF (oi->t_network_lsa_self);
diff --git a/ospfd/ospf_neighbor.c b/ospfd/ospf_neighbor.c
index 5c1a762..5875236 100644
--- a/ospfd/ospf_neighbor.c
+++ b/ospfd/ospf_neighbor.c
@@ -202,6 +202,27 @@
     }
   else
     rn->info = oi->nbr_self;
+  
+  /* Initial state */
+  oi->nbr_self->address = *oi->address;
+  oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
+  oi->nbr_self->router_id = oi->ospf->router_id;
+  oi->nbr_self->src = oi->address->u.prefix4;
+  oi->nbr_self->state = NSM_TwoWay;
+  
+  switch (oi->area->external_routing)
+    {
+      case OSPF_AREA_DEFAULT:
+        SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+        break;
+      case OSPF_AREA_STUB:
+        UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+        break;
+      case OSPF_AREA_NSSA:
+        UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+        SET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
+        break;
+    }
 }
 
 /* Get neighbor count by status.
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 7c99365..680a500 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -859,24 +859,14 @@
 		oi = ospf_if_new (ospf, ifp, co->address);
 		oi->connected = co;
 		
-		oi->nbr_self->address = *oi->address;
-
 		oi->area = area;
 
 		oi->params = ospf_lookup_if_params (ifp, oi->address->u.prefix4);
 		oi->output_cost = ospf_if_get_output_cost (oi);
 		
-		if (area->external_routing != OSPF_AREA_DEFAULT)
-		  UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-		oi->nbr_self->priority = OSPF_IF_PARAM (oi, priority);
-		
 		/* Add pseudo neighbor. */
 		ospf_nbr_add_self (oi);
 
-		/* Make sure pseudo neighbor's router_id. */
-		oi->nbr_self->router_id = ospf->router_id;
-		oi->nbr_self->src = oi->address->u.prefix4;
-		
 		/* Relate ospf interface to ospf instance. */
 		oi->ospf = ospf;
 
@@ -885,21 +875,6 @@
 		   skip network type setting. */
 		oi->type = IF_DEF_PARAMS (ifp)->type;
 		
-		/* Set area flag. */
-		switch (area->external_routing)
-		  {
-		  case OSPF_AREA_DEFAULT:
-		    SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-		    break;
-		  case OSPF_AREA_STUB:
-		    UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-		    break;
-		  case OSPF_AREA_NSSA:
-		    UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
-		    SET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
-		    break;
-		  }
-
 		ospf_area_add_if (oi->area, oi);
 		
 		/* if router_id is not configured, dont bring up
