diff --git a/lib/ChangeLog b/lib/ChangeLog
index 149403f..7b32578 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,3 +1,8 @@
+2004-09-23 Hasso Tepper <hasso at quagga.net>
+
+	* linklist.h: Remove list and listnode typedefs.
+	* *.[c|h]: list -> struct list *, listnode -> struct listnode *.
+
 2004-09-17 Paul Jakma <paul@dishone.st>
 
 	* sockopt.c: Add missing bracket
diff --git a/lib/if.c b/lib/if.c
index d80e234..43e84a4 100644
--- a/lib/if.c
+++ b/lib/if.c
@@ -179,7 +179,7 @@
 struct interface *
 if_lookup_by_index (unsigned int index)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
   for (node = listhead (iflist); node; nextnode (node))
@@ -194,7 +194,7 @@
 char *
 ifindex2ifname (unsigned int index)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
   for (node = listhead (iflist); node; nextnode (node))
@@ -210,7 +210,7 @@
 struct interface *
 if_lookup_by_name (char *name)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
   for (node = listhead (iflist); node; nextnode (node))
@@ -226,8 +226,8 @@
 struct interface *
 if_lookup_exact_address (struct in_addr src)
 {
-  listnode node;
-  listnode cnode;
+  struct listnode *node;
+  struct listnode *cnode;
   struct interface *ifp;
   struct prefix *p;
   struct connected *c;
@@ -256,10 +256,10 @@
 struct interface *
 if_lookup_address (struct in_addr src)
 {
-  listnode node;
+  struct listnode *node;
   struct prefix addr;
   struct prefix best;
-  listnode cnode;
+  struct listnode *cnode;
   struct interface *ifp;
   struct prefix *p;
   struct connected *c;
@@ -429,7 +429,7 @@
 void
 if_dump (struct interface *ifp)
 {
-  listnode node;
+  struct listnode *node;
 
   zlog_info ("Interface %s index %d metric %d mtu %d "
 #ifdef HAVE_IPV6
@@ -450,7 +450,7 @@
 void
 if_dump_all ()
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (iflist); node; nextnode (node))
     if_dump (getdata (node));
@@ -560,8 +560,8 @@
        SHOW_STR
        "address\n")
 {
-  listnode node;
-  listnode node2;
+  struct listnode *node;
+  struct listnode *node2;
   struct interface *ifp;
   struct connected *ifc;
   struct prefix *p;
@@ -681,7 +681,7 @@
 {
   struct prefix addr;
   struct prefix best;
-  listnode cnode;
+  struct listnode *cnode;
   struct prefix *p;
   struct connected *c;
   struct connected *match;
@@ -760,7 +760,7 @@
 unsigned int
 if_nametoindex (const char *name)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
   for (node = listhead (iflist); node; nextnode (node))
@@ -777,7 +777,7 @@
 char *
 if_indextoname (unsigned int ifindex, char *name)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
   for (node = listhead (iflist); node; nextnode (node))
@@ -849,7 +849,7 @@
   struct prefix_ipv4 p;
   struct route_node *rn;
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   if (addr)
     {
diff --git a/lib/if.h b/lib/if.h
index 70a1286..47e992c 100644
--- a/lib/if.h
+++ b/lib/if.h
@@ -117,7 +117,7 @@
   void *distribute_out;
 
   /* Connected address list. */
-  list connected;
+  struct list *connected;
 
   /* Daemon specific interface data pointer. */
   void *info;
@@ -222,7 +222,7 @@
 #endif
 
 /* Exported variables. */
-extern list iflist;
+extern struct list *iflist;
 extern struct cmd_element interface_desc_cmd;
 extern struct cmd_element no_interface_desc_cmd;
 extern struct cmd_element interface_cmd;
diff --git a/lib/linklist.c b/lib/linklist.c
index 1c95da4..3970c24 100644
--- a/lib/linklist.c
+++ b/lib/linklist.c
@@ -244,7 +244,7 @@
 struct listnode *
 listnode_lookup (struct list *list, void *data)
 {
-  listnode node;
+  struct listnode *node;
 
   assert(list);
   for (node = list->head; node; nextnode (node))
@@ -255,7 +255,7 @@
 
 /* Delete the node from list.  For ospfd and ospf6d. */
 void
-list_delete_node (list list, listnode node)
+list_delete_node (struct list *list, struct listnode *node)
 {
   if (node->prev)
     node->prev->next = node->next;
@@ -271,7 +271,7 @@
 
 /* ospf_spf.c */
 void
-list_add_node_prev (list list, listnode current, void *val)
+list_add_node_prev (struct list *list, struct listnode *current, void *val)
 {
   struct listnode *node;
 
@@ -292,7 +292,7 @@
 
 /* ospf_spf.c */
 void
-list_add_node_next (list list, listnode current, void *val)
+list_add_node_next (struct list *list, struct listnode *current, void *val)
 {
   struct listnode *node;
 
diff --git a/lib/linklist.h b/lib/linklist.h
index 303b0bc..b766420 100644
--- a/lib/linklist.h
+++ b/lib/linklist.h
@@ -22,9 +22,6 @@
 #ifndef _ZEBRA_LINKLIST_H
 #define _ZEBRA_LINKLIST_H
 
-typedef struct list *list;
-typedef struct listnode *listnode;
-
 struct listnode 
 {
   struct listnode *next;
@@ -68,12 +65,12 @@
 void list_delete_all_node (struct list *);
 
 /* For ospfd and ospf6d. */
-void list_delete_node (list, listnode);
+void list_delete_node (struct list *, struct listnode *);
 
 /* For ospf_spf.c */
-void list_add_node_prev (list, listnode, void *);
-void list_add_node_next (list, listnode, void *);
-void list_add_list (list, list);
+void list_add_node_prev (struct list *, struct listnode *, void *);
+void list_add_node_next (struct list *, struct listnode *, void *);
+void list_add_list (struct list *, struct list *);
 
 /* List iteration macro. */
 #define LIST_LOOP(L,V,N) \
