diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 4f64cbc..e7ef97e 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,3 +1,7 @@
+2004-09-23 Hasso Tepper <hasso at quagga.net>
+
+	* *.[c|h]: list -> struct list *, listnode -> struct listnode *.
+
 2004-09-13  Yasuhiro Ohara  <yasu@sfc.wide.ad.jp>
 
 	* ospf6_intra.c, ospf6_route.[ch]: try to fix assertion failure
diff --git a/ospf6d/ospf6_abr.c b/ospf6d/ospf6_abr.c
index 503c13f..52fa590 100644
--- a/ospf6d/ospf6_abr.c
+++ b/ospf6d/ospf6_abr.c
@@ -52,7 +52,7 @@
 int
 ospf6_is_router_abr (struct ospf6 *o)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
   int area_count = 0;
 
@@ -73,7 +73,7 @@
 {
   struct ospf6_area *oa;
   struct ospf6_route *ro;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (area->ospf6->area_list); node; nextnode (node))
     {
@@ -111,7 +111,7 @@
   struct ospf6_area *oa;
   struct ospf6_route *ro;
   struct ospf6_lsa *old;
-  listnode node;
+  struct listnode *node;
 
   /* Withdraw all summary prefixes previously originated */
   for (ro = ospf6_route_head (area->summary_prefix); ro;
@@ -470,7 +470,7 @@
 void
 ospf6_abr_originate_summary (struct ospf6_route *route)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
   struct ospf6_route *range = NULL;
 
@@ -656,7 +656,7 @@
 {
   struct ospf6_lsa *lsa;
   struct ospf6_area *oa;
-  listnode node;
+  struct listnode *node;
   u_int16_t type;
 
   type = htons (OSPF6_LSTYPE_INTER_ROUTER);
diff --git a/ospf6d/ospf6_area.c b/ospf6d/ospf6_area.c
index de28cb9..c9d15b8 100644
--- a/ospf6d/ospf6_area.c
+++ b/ospf6d/ospf6_area.c
@@ -175,7 +175,7 @@
 void
 ospf6_area_delete (struct ospf6_area *oa)
 {
-  listnode n;
+  struct listnode *n;
   struct ospf6_interface *oi;
 
   ospf6_route_table_delete (oa->range_table);
@@ -215,7 +215,7 @@
 ospf6_area_lookup (u_int32_t area_id, struct ospf6 *ospf6)
 {
   struct ospf6_area *oa;
-  listnode n;
+  struct listnode *n;
 
   for (n = listhead (ospf6->area_list); n; nextnode (n))
     {
@@ -240,7 +240,7 @@
 void
 ospf6_area_enable (struct ospf6_area *oa)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_interface *oi;
 
   SET_FLAG (oa->flag, OSPF6_AREA_ENABLE);
@@ -255,7 +255,7 @@
 void
 ospf6_area_disable (struct ospf6_area *oa)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_interface *oi;
 
   UNSET_FLAG (oa->flag, OSPF6_AREA_ENABLE);
@@ -271,7 +271,7 @@
 void
 ospf6_area_show (struct vty *vty, struct ospf6_area *oa)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_interface *oi;
 
   vty_out (vty, " Area %s%s", oa->name, VNL);
@@ -410,7 +410,7 @@
 void
 ospf6_area_config_write (struct vty *vty)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
   struct ospf6_route *range;
   char buf[128];
@@ -437,7 +437,7 @@
        "Shortest Path First caculation\n"
        "Show SPF tree\n")
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
   struct ospf6_vertex *root;
   struct ospf6_route *route;
diff --git a/ospf6d/ospf6_area.h b/ospf6d/ospf6_area.h
index 734f030..0cee638 100644
--- a/ospf6d/ospf6_area.h
+++ b/ospf6d/ospf6_area.h
@@ -47,7 +47,7 @@
   struct ospf6_route_table *summary_router;
 
   /* OSPF interface list */
-  list if_list;
+  struct list *if_list;
 
   struct ospf6_lsdb *lsdb;
   struct ospf6_lsdb *lsdb_self;
diff --git a/ospf6d/ospf6_asbr.c b/ospf6d/ospf6_asbr.c
index 032e348..a3728f4 100644
--- a/ospf6d/ospf6_asbr.c
+++ b/ospf6d/ospf6_asbr.c
@@ -444,7 +444,7 @@
   struct prefix prefix_id;
   struct route_node *node;
   char pbuf[64], ibuf[16];
-  listnode lnode;
+  struct listnode *lnode;
   struct ospf6_area *oa;
 
   if (! ospf6_zebra_is_redistribute (type))
@@ -590,7 +590,7 @@
   struct ospf6_lsa *lsa;
   struct prefix prefix_id;
   char pbuf[64], ibuf[16];
-  listnode lnode;
+  struct listnode *lnode;
   struct ospf6_area *oa;
 
   match = ospf6_route_lookup (prefix, ospf6->external_table);
diff --git a/ospf6d/ospf6_flood.c b/ospf6d/ospf6_flood.c
index e9ba52b..acfe28a 100644
--- a/ospf6d/ospf6_flood.c
+++ b/ospf6d/ospf6_flood.c
@@ -245,7 +245,7 @@
 ospf6_flood_interface (struct ospf6_neighbor *from,
                        struct ospf6_lsa *lsa, struct ospf6_interface *oi)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_neighbor *on;
   struct ospf6_lsa *req;
   int retrans_added = 0;
@@ -394,7 +394,7 @@
 ospf6_flood_area (struct ospf6_neighbor *from,
                   struct ospf6_lsa *lsa, struct ospf6_area *oa)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_interface *oi;
 
   for (node = listhead (oa->if_list); node; nextnode (node))
@@ -419,7 +419,7 @@
 ospf6_flood_process (struct ospf6_neighbor *from,
                      struct ospf6_lsa *lsa, struct ospf6 *process)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
 
   for (node = listhead (process->area_list); node; nextnode (node))
@@ -450,7 +450,7 @@
 void
 ospf6_flood_clear_interface (struct ospf6_lsa *lsa, struct ospf6_interface *oi)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_neighbor *on;
   struct ospf6_lsa *rem;
 
@@ -474,7 +474,7 @@
 void
 ospf6_flood_clear_area (struct ospf6_lsa *lsa, struct ospf6_area *oa)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_interface *oi;
 
   for (node = listhead (oa->if_list); node; nextnode (node))
@@ -498,7 +498,7 @@
 void
 ospf6_flood_clear_process (struct ospf6_lsa *lsa, struct ospf6 *process)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
 
   for (node = listhead (process->area_list); node; nextnode (node))
@@ -714,7 +714,7 @@
   struct ospf6_interface *oi;
   struct ospf6_area *oa;
   struct ospf6 *process = NULL;
-  listnode i, j, k;
+  struct listnode *i, *j, *k;
   int count = 0;
 
   if (! OSPF6_LSA_IS_MAXAGE (lsa))
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index a8ea1d3..85f908e 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -165,7 +165,7 @@
 void
 ospf6_interface_delete (struct ospf6_interface *oi)
 {
-  listnode n;
+  struct listnode *n;
   struct ospf6_neighbor *on;
 
   for (n = listhead (oi->neighbor_list); n; nextnode (n))
@@ -213,7 +213,7 @@
 void
 ospf6_interface_disable (struct ospf6_interface *oi)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_neighbor *on;
 
   SET_FLAG (oi->flag, OSPF6_INTERFACE_DISABLE);
@@ -237,7 +237,7 @@
 static struct in6_addr *
 ospf6_interface_get_linklocal_address (struct interface *ifp)
 {
-  listnode n;
+  struct listnode *n;
   struct connected *c;
   struct in6_addr *l = (struct in6_addr *) NULL;
 
@@ -332,7 +332,7 @@
   struct ospf6_interface *oi;
   struct ospf6_route *route;
   struct connected *c;
-  listnode i;
+  struct listnode *i;
 
   oi = (struct ospf6_interface *) ifp->info;
   if (oi == NULL)
@@ -512,7 +512,7 @@
 static u_char
 dr_election (struct ospf6_interface *oi)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_neighbor *on, *drouter, *bdrouter, myself;
   struct ospf6_neighbor *best_drouter, *best_bdrouter;
   u_char next_state = 0;
@@ -738,7 +738,7 @@
 interface_down (struct thread *thread)
 {
   struct ospf6_interface *oi;
-  listnode n;
+  struct listnode *n;
   struct ospf6_neighbor *on;
 
   oi = (struct ospf6_interface *) THREAD_ARG (thread);
@@ -772,7 +772,7 @@
   struct ospf6_interface *oi;
   struct connected *c;
   struct prefix *p;
-  listnode i;
+  struct listnode *i;
   char strbuf[64], drouter[32], bdrouter[32];
   char *updown[3] = {"down", "up", NULL};
   char *type;
@@ -895,7 +895,7 @@
        )
 {
   struct interface *ifp;
-  listnode i;
+  struct listnode *i;
 
   if (argc)
     {
@@ -1002,7 +1002,7 @@
        "Display connected prefixes to advertise\n"
        )
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_interface *oi;
   struct interface *ifp;
 
@@ -1059,7 +1059,7 @@
   struct ospf6_interface *oi;
   struct interface *ifp;
   int ifmtu, iobuflen;
-  listnode node;
+  struct listnode *node;
   struct ospf6_neighbor *on;
 
   ifp = (struct interface *) vty->index;
@@ -1120,7 +1120,7 @@
   struct ospf6_interface *oi;
   struct interface *ifp;
   int iobuflen;
-  listnode node;
+  struct listnode *node;
   struct ospf6_neighbor *on;
 
   ifp = (struct interface *) vty->index;
@@ -1360,7 +1360,7 @@
 {
   struct ospf6_interface *oi;
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
   struct ospf6_neighbor *on;
 
   ifp = (struct interface *) vty->index;
@@ -1491,7 +1491,7 @@
 int
 config_write_ospf6_interface (struct vty *vty)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_interface *oi;
   struct interface *ifp;
 
diff --git a/ospf6d/ospf6_interface.h b/ospf6d/ospf6_interface.h
index be3007d..d28b310 100644
--- a/ospf6d/ospf6_interface.h
+++ b/ospf6d/ospf6_interface.h
@@ -43,7 +43,7 @@
   struct ospf6_area *area;
 
   /* list of ospf6 neighbor */
-  list neighbor_list;
+  struct list *neighbor_list;
 
   /* linklocal address of this I/F */
   struct in6_addr *linklocal_addr;
diff --git a/ospf6d/ospf6_intra.c b/ospf6d/ospf6_intra.c
index 4452e62..fd208fd 100644
--- a/ospf6d/ospf6_intra.c
+++ b/ospf6d/ospf6_intra.c
@@ -109,7 +109,7 @@
   struct ospf6_lsa *lsa;
 
   u_int32_t link_state_id = 0;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6_interface *oi;
   struct ospf6_neighbor *on, *drouter = NULL;
   struct ospf6_router_lsa *router_lsa;
@@ -354,7 +354,7 @@
   struct ospf6_network_lsdesc *lsdesc;
   struct ospf6_neighbor *on;
   struct ospf6_link_lsa *link_lsa;
-  listnode i;
+  struct listnode *i;
   u_int16_t type;
 
   oi = (struct ospf6_interface *) THREAD_ARG (thread);
@@ -687,7 +687,7 @@
   struct ospf6_neighbor *on;
   struct ospf6_route *route;
   struct ospf6_prefix *op;
-  listnode i, j;
+  struct listnode *i, *j;
   int full_count = 0;
   unsigned short prefix_num = 0;
   char buf[BUFSIZ];
@@ -839,7 +839,7 @@
   struct ospf6_neighbor *on;
   struct ospf6_route *route;
   struct ospf6_prefix *op;
-  listnode i;
+  struct listnode *i;
   int full_count = 0;
   unsigned short prefix_num = 0;
   struct ospf6_route_table *route_advertise;
diff --git a/ospf6d/ospf6_message.c b/ospf6d/ospf6_message.c
index ae699b9..d4a60dd 100644
--- a/ospf6d/ospf6_message.c
+++ b/ospf6d/ospf6_message.c
@@ -1387,7 +1387,7 @@
   struct ospf6_header *oh;
   struct ospf6_hello *hello;
   char *p;
-  listnode node;
+  struct listnode *node;
   struct ospf6_neighbor *on;
 
   oi = (struct ospf6_interface *) THREAD_ARG (thread);
diff --git a/ospf6d/ospf6_neighbor.c b/ospf6d/ospf6_neighbor.c
index ad4261f..752b3fc 100644
--- a/ospf6d/ospf6_neighbor.c
+++ b/ospf6d/ospf6_neighbor.c
@@ -58,7 +58,7 @@
 ospf6_neighbor_lookup (u_int32_t router_id,
                        struct ospf6_interface *oi)
 {
-  listnode n;
+  struct listnode *n;
   struct ospf6_neighbor *on;
 
   for (n = listhead (oi->neighbor_list); n; nextnode (n))
@@ -772,7 +772,7 @@
   struct ospf6_neighbor *on;
   struct ospf6_interface *oi;
   struct ospf6_area *oa;
-  listnode i, j, k;
+  struct listnode *i, *j, *k;
   void (*showfunc) (struct vty *, struct ospf6_neighbor *);
 
   OSPF6_CMD_CHECK_RUNNING ();
@@ -835,7 +835,7 @@
   struct ospf6_neighbor *on;
   struct ospf6_interface *oi;
   struct ospf6_area *oa;
-  listnode i, j, k;
+  struct listnode *i, *j, *k;
   void (*showfunc) (struct vty *, struct ospf6_neighbor *);
   u_int32_t router_id;
 
diff --git a/ospf6d/ospf6_spf.c b/ospf6d/ospf6_spf.c
index 6d4237a..79539b2 100644
--- a/ospf6d/ospf6_spf.c
+++ b/ospf6d/ospf6_spf.c
@@ -281,7 +281,7 @@
   struct ospf6_route *route;
   int i, j;
   struct ospf6_vertex *prev, *w;
-  listnode node;
+  struct listnode *node;
 
   if (IS_OSPF6_DEBUG_SPF (PROCESS))
     zlog_info ("SPF install %s hops %d cost %d",
@@ -530,7 +530,7 @@
 ospf6_spf_display_subtree (struct vty *vty, char *prefix, int rest,
                            struct ospf6_vertex *v)
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_vertex *c;
   char *next_prefix;
   int len;
diff --git a/ospf6d/ospf6_spf.h b/ospf6d/ospf6_spf.h
index 64f5ed8..6a6424e 100644
--- a/ospf6d/ospf6_spf.h
+++ b/ospf6d/ospf6_spf.h
@@ -68,7 +68,7 @@
 
   /* For tree display */
   struct ospf6_vertex *parent;
-  list child_list;
+  struct list *child_list;
 };
 
 #define OSPF6_VERTEX_TYPE_ROUTER  0x01
diff --git a/ospf6d/ospf6_top.c b/ospf6d/ospf6_top.c
index cc4356c..712b337 100644
--- a/ospf6d/ospf6_top.c
+++ b/ospf6d/ospf6_top.c
@@ -143,7 +143,7 @@
 void
 ospf6_delete (struct ospf6 *o)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_area *oa;
 
   for (i = listhead (o->area_list); i; nextnode (i))
@@ -167,7 +167,7 @@
 void
 ospf6_enable (struct ospf6 *o)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_area *oa;
 
   if (CHECK_FLAG (o->flag, OSPF6_DISABLED))
@@ -184,7 +184,7 @@
 void
 ospf6_disable (struct ospf6 *o)
 {
-  listnode i;
+  struct listnode *i;
   struct ospf6_area *oa;
 
   if (! CHECK_FLAG (o->flag, OSPF6_DISABLED))
@@ -209,7 +209,7 @@
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
   struct ospf6_neighbor *on;
-  listnode i, j, k;
+  struct listnode *i, *j, *k;
 
   o->maxage_remover = (struct thread *) NULL;
 
@@ -437,7 +437,7 @@
 void
 ospf6_show (struct vty *vty, struct ospf6 *o)
 {
-  listnode n;
+  struct listnode *n;
   struct ospf6_area *oa;
   char router_id[16], duration[32];
   struct timeval now, running;
@@ -608,7 +608,7 @@
 config_write_ospf6 (struct vty *vty)
 {
   char router_id[16];
-  listnode j, k;
+  struct listnode *j, *k;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
 
diff --git a/ospf6d/ospf6_top.h b/ospf6d/ospf6_top.h
index d831d94..9fd0395 100644
--- a/ospf6d/ospf6_top.h
+++ b/ospf6d/ospf6_top.h
@@ -34,7 +34,7 @@
   struct timeval starttime;
 
   /* list of areas */
-  list area_list;
+  struct list *area_list;
 
   /* AS scope link state database */
   struct ospf6_lsdb *lsdb;
diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c
index 4a722e4..e94a036 100644
--- a/ospf6d/ospf6d.c
+++ b/ospf6d/ospf6d.c
@@ -174,7 +174,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -242,7 +242,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -330,7 +330,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -429,7 +429,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -538,7 +538,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -697,7 +697,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -847,7 +847,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -933,7 +933,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1029,7 +1029,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1154,7 +1154,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1266,7 +1266,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1339,7 +1339,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1444,7 +1444,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1560,7 +1560,7 @@
       )
 {
   int level;
-  listnode i, j;
+  struct listnode *i, *j;
   struct ospf6 *o = ospf6;
   struct ospf6_area *oa;
   struct ospf6_interface *oi;
@@ -1723,7 +1723,7 @@
        "Display linkstate routing table\n"
       )
 {
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
 
   for (node = listhead (ospf6->area_list); node; nextnode (node))
@@ -1773,7 +1773,7 @@
 {
   char *sargv[CMD_ARGC_MAX];
   int i, sargc;
-  listnode node;
+  struct listnode *node;
   struct ospf6_area *oa;
 
   /* copy argv to sargv and then append "detail" */
