diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index 904228c..87a5511 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,11 @@
+2004-04-20 Hasso Tepper <hasso@estpak.ee>
+
+	* ospfd.c: Unset NP flag if area is going to be normal or stub.
+	  Fixes UNH OSPF_NSSA.1.2a comment.
+	* ospf_abr.c: Originate default into stub/nssa area even if
+	  summaries are disabled.
+	* ospf_zebra.c: Don't attempt to redistribute 127.0.0.0/8.
+
 2004-04-19 Hasso Tepper <hasso@estpak.ee>
 
 	* ospf_vty.c: Don't warn that export- and import-list can't be
diff --git a/ospfd/ospf_abr.c b/ospfd/ospf_abr.c
index 424d1d3..359e3ba 100644
--- a/ospfd/ospf_abr.c
+++ b/ospfd/ospf_abr.c
@@ -1628,9 +1628,6 @@
       if (OSPF_IS_AREA_BACKBONE (area))
         continue; /* Sanity Check */
 
-      if (area->no_summary)
-        continue;
-
       if (IS_DEBUG_OSPF_EVENT)
       zlog_info ("ospf_abr_announce_stub_defaults(): "
                  "announcing 0.0.0.0/0 to area %s",
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index e3738be..300105f 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -794,6 +794,9 @@
   p.prefixlen = stream_getc (s);
   stream_get (&p.prefix, s, PSIZE (p.prefixlen));
 
+  if (IPV4_NET127(ntohl(p.prefix.s_addr)))
+    return 0;
+
   /* Nexthop, ifindex, distance, metric. */
   if (CHECK_FLAG (api.message, ZAPI_MESSAGE_NEXTHOP))
     {
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 89ef21b..abf898c 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -982,7 +982,12 @@
       for (node = listhead (area->oiflist); node; nextnode (node))
 	if ((oi = getdata (node)) != NULL)
 	  if (oi->nbr_self != NULL)
-	    SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+	    {
+#ifdef HAVE_NSSA
+	      UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
+#endif /* HAVE_NSSA */
+	      SET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
+	    }
       break;
     case OSPF_AREA_STUB:
       for (node = listhead (area->oiflist); node; nextnode (node))
@@ -991,6 +996,9 @@
 	    {
 	      if (IS_DEBUG_OSPF_EVENT)
 		zlog_info ("setting options on %s accordingly", IF_NAME (oi));
+#ifdef HAVE_NSSA
+	      UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_NP);
+#endif /* HAVE_NSSA */
 	      UNSET_FLAG (oi->nbr_self->options, OSPF_OPTION_E);
 	      if (IS_DEBUG_OSPF_EVENT)
 		zlog_info ("options set on %s: %x",
