diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index bc37d50..1a3edcc 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,3 +1,19 @@
+2005-09-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* ospf_lsa.h: (ospf_external_lsa_flush) Comment out the 5th argument
+	  (nexthop) since it is not used in the function (except inside
+	  some commented-out code).
+	* ospf_lsa.c: (ospf_external_lsa_flush,ospf_external_lsa_refresh)
+	  Comment out the 5th argument to ospf_external_lsa_flush.
+	* ospf_asbr.c: (ospf_redistribute_withdraw) Comment out 5th arg
+	  to ospf_external_lsa_flush.
+	* ospf_vty.c: (no_ospf_default_information_originate) Eliminate 5th
+	  uninitialized nexthop arg to ospf_external_lsa_flush.
+	* ospf_zebra.c: (ospf_zebra_read_ipv4) Comment out 5th arg
+	  to ospf_external_lsa_flush.
+	* ospfd.c: (ospf_network_set) Comment out 5th arg
+	  to ospf_external_lsa_flush.
+
 2005-09-17 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
 	* ospf_opaque.c:
diff --git a/ospfd/ospf_asbr.c b/ospfd/ospf_asbr.c
index 7d41f5b..2eb01d0 100644
--- a/ospfd/ospf_asbr.c
+++ b/ospfd/ospf_asbr.c
@@ -287,7 +287,8 @@
 	    if (is_prefix_default (&ei->p) &&
 		ospf->default_originate != DEFAULT_ORIGINATE_NONE)
 	      continue;
-	    ospf_external_lsa_flush (ospf, type, &ei->p, ei->ifindex, ei->nexthop);
+	    ospf_external_lsa_flush (ospf, type, &ei->p,
+				     ei->ifindex /*, ei->nexthop */);
 	    ospf_external_info_delete (type, ei->p);
 	  }
 }
diff --git a/ospfd/ospf_lsa.c b/ospfd/ospf_lsa.c
index 708fa1c..a85667e 100644
--- a/ospfd/ospf_lsa.c
+++ b/ospfd/ospf_lsa.c
@@ -2137,7 +2137,7 @@
 void
 ospf_external_lsa_flush (struct ospf *ospf,
 			 u_char type, struct prefix_ipv4 *p,
-			 unsigned int ifindex, struct in_addr nexthop)
+			 unsigned int ifindex /*, struct in_addr nexthop */)
 {
   struct ospf_lsa *lsa;
 
@@ -2261,7 +2261,7 @@
                    "redist check fail", 
                    lsa->data->type, inet_ntoa (lsa->data->id));
       ospf_external_lsa_flush (ospf, ei->type, &ei->p,
-			       ei->ifindex, ei->nexthop);
+			       ei->ifindex /*, ei->nexthop */);
       return;
     }
 
diff --git a/ospfd/ospf_lsa.h b/ospfd/ospf_lsa.h
index d7ead3d..5cf69c3 100644
--- a/ospfd/ospf_lsa.h
+++ b/ospfd/ospf_lsa.h
@@ -272,7 +272,7 @@
 
 extern void ospf_nssa_lsa_flush (struct ospf *ospf, struct prefix_ipv4 *p);
 extern void ospf_external_lsa_flush (struct ospf *, u_char, struct prefix_ipv4 *,
-			      unsigned int, struct in_addr);
+			      unsigned int /* , struct in_addr nexthop */);
 
 extern struct in_addr ospf_get_ip_from_ifp (struct ospf_interface *);
 
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 1c1f2fc..e8d0a38 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -6054,13 +6054,12 @@
 {
   struct ospf *ospf = vty->index;
   struct prefix_ipv4 p;
-  struct in_addr nexthop;
     
   p.family = AF_INET;
   p.prefix.s_addr = 0;
   p.prefixlen = 0;
 
-  ospf_external_lsa_flush (ospf, DEFAULT_ROUTE, &p, 0, nexthop);
+  ospf_external_lsa_flush (ospf, DEFAULT_ROUTE, &p, 0);
 
   if (EXTERNAL_INFO (DEFAULT_ROUTE)) {
     ospf_external_info_delete (DEFAULT_ROUTE, p);
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 0e1905a..2072b17 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -869,7 +869,7 @@
       if (is_prefix_default (&p))
         ospf_external_lsa_refresh_default (ospf);
       else
-        ospf_external_lsa_flush (ospf, api.type, &p, ifindex, nexthop);
+        ospf_external_lsa_flush (ospf, api.type, &p, ifindex /*, nexthop */);
     }
 
   return 0;
diff --git a/ospfd/ospfd.c b/ospfd/ospfd.c
index 189805b..9161f9c 100644
--- a/ospfd/ospfd.c
+++ b/ospfd/ospfd.c
@@ -620,7 +620,7 @@
 	  if (ospf_external_info_find_lsa (ospf, &ei->p))
 	    if (!ospf_distribute_check_connected (ospf, ei))
 	      ospf_external_lsa_flush (ospf, ei->type, &ei->p,
-				       ei->ifindex, ei->nexthop);
+				       ei->ifindex /*, ei->nexthop */);
 
   ospf_area_check_free (ospf, area_id);
 
