diff --git a/ripd/ChangeLog b/ripd/ChangeLog
index 1921b78..1b018ee 100644
--- a/ripd/ChangeLog
+++ b/ripd/ChangeLog
@@ -1,3 +1,7 @@
+2004-09-23 Hasso Tepper <hasso at quagga.net>
+
+	* *.[c|h]: list -> struct list *, listnode -> struct listnode *.
+
 2004-09-17 Paul Jakma <paul@dishone.st>
 
 	* ripd.c: set receive buffer to a decent size, some systems have low
diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index cb6044e..7869f2e 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -222,7 +222,7 @@
   /* RIPv1 and non multicast interface. */
   if (if_is_pointopoint (ifp) || if_is_broadcast (ifp))
     {
-      listnode cnode;
+      struct listnode *cnode;
 
       if (IS_RIP_DEBUG_EVENT)
 	zlog_info ("broadcast request to %s", ifp->name);
@@ -315,7 +315,7 @@
 int
 rip_multicast_join (struct interface *ifp, int sock)
 {
-  listnode cnode;
+  struct listnode *cnode;
 
   if (if_is_operative (ifp) && if_is_multicast (ifp))
     {
@@ -348,7 +348,7 @@
 void
 rip_multicast_leave (struct interface *ifp, int sock)
 {
-  listnode cnode;
+  struct listnode *cnode;
 
   if (if_is_up (ifp) && if_is_multicast (ifp))
     {
@@ -405,11 +405,11 @@
 int
 if_check_address (struct in_addr addr)
 {
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (iflist); node; nextnode (node))
     {
-      listnode cnode;
+      struct listnode *cnode;
       struct interface *ifp;
 
       ifp = getdata (node);
@@ -436,13 +436,13 @@
 int
 if_valid_neighbor (struct in_addr addr)
 {
-  listnode node;
+  struct listnode *node;
   struct connected *connected = NULL;
   struct prefix_ipv4 *p;
 
   for (node = listhead (iflist); node; nextnode (node))
     {
-      listnode cnode;
+      struct listnode *cnode;
       struct interface *ifp;
 
       ifp = getdata (node);
@@ -609,7 +609,7 @@
 void
 rip_interface_clean ()
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
   struct rip_interface *ri;
 
@@ -633,7 +633,7 @@
 void
 rip_interface_reset ()
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
   struct rip_interface *ri;
 
@@ -744,7 +744,7 @@
 rip_if_down_all ()
 {
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (iflist); node; nextnode (node))
     {
@@ -1173,7 +1173,7 @@
 rip_enable_apply_all ()
 {
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   /* Check each interface. */
   for (node = listhead (iflist); node; nextnode (node))
@@ -1298,7 +1298,7 @@
 rip_passive_interface_apply_all ()
 {
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (iflist); node; nextnode (node))
     {
@@ -2022,7 +2022,7 @@
 int
 rip_interface_config_write (struct vty *vty)
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
 
   for (node = listhead (iflist); node; nextnode (node))
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 5fbb349..6b79a16 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -357,8 +357,8 @@
 static int
 rip_nexthop_check (struct in_addr *addr)
 {
-  listnode node;
-  listnode cnode;
+  struct listnode *node;
+  struct listnode *cnode;
   struct interface *ifp;
   struct connected *ifc;
   struct prefix *p;
@@ -2391,7 +2391,7 @@
 {
   struct prefix_ipv4 *p;
   struct connected *connected;
-  listnode node;
+  struct listnode *node;
   struct sockaddr_in to;
   struct prefix_ipv4 *saddr = (struct prefix_ipv4 *) sconn->address;
 
@@ -2440,7 +2440,7 @@
 void
 rip_update_process (int route_type)
 {
-  listnode node, ifnode;
+  struct listnode *node, *ifnode;
   struct connected *connected;
   struct interface *ifp;
   struct rip_interface *ri;
@@ -2710,7 +2710,7 @@
 {
   struct rte *rte;
   struct rip_packet rip_packet;
-  listnode node;
+  struct listnode *node;
 
   memset (&rip_packet, 0, sizeof (rip_packet));
 
@@ -3485,7 +3485,7 @@
        "Show RIP routes\n"
        "IP routing protocol process parameters and statistics\n")
 {
-  listnode node;
+  struct listnode *node;
   struct interface *ifp;
   struct rip_interface *ri;
   extern struct message ri_version_msg[];
@@ -3755,7 +3755,7 @@
 rip_distribute_update_all (struct prefix_list *notused)
 {
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (iflist); node; nextnode (node))
     {
@@ -3949,7 +3949,7 @@
 rip_routemap_update (char *notused)
 {
   struct interface *ifp;
-  listnode node;
+  struct listnode *node;
 
   for (node = listhead (iflist); node; nextnode (node))
     {
