diff --git a/ripd/rip_interface.c b/ripd/rip_interface.c
index 00612df..7bdcf46 100644
--- a/ripd/rip_interface.c
+++ b/ripd/rip_interface.c
@@ -74,7 +74,7 @@
 ipv4_multicast_join (int sock, 
 		     struct in_addr group, 
 		     struct in_addr ifa,
-		     unsigned int ifindex)
+		     ifindex_t ifindex)
 {
   int ret;
 
@@ -95,7 +95,7 @@
 ipv4_multicast_leave (int sock, 
 		      struct in_addr group, 
 		      struct in_addr ifa,
-		      unsigned int ifindex)
+		      ifindex_t ifindex)
 {
   int ret;
 
diff --git a/ripd/ripd.c b/ripd/ripd.c
index 870873d..82b1ada 100644
--- a/ripd/ripd.c
+++ b/ripd/ripd.c
@@ -1577,7 +1577,7 @@
 /* Add redistributed route to RIP table. */
 void
 rip_redistribute_add (int type, int sub_type, struct prefix_ipv4 *p, 
-		      unsigned int ifindex, struct in_addr *nexthop,
+		      ifindex_t ifindex, struct in_addr *nexthop,
                       unsigned int metric, unsigned char distance)
 {
   int ret;
@@ -1651,7 +1651,7 @@
 /* Delete redistributed route from RIP table. */
 void
 rip_redistribute_delete (int type, int sub_type, struct prefix_ipv4 *p, 
-			   unsigned int ifindex)
+			 ifindex_t ifindex)
 {
   int ret;
   struct route_node *rp;
@@ -1793,7 +1793,7 @@
 /* Read RIP packet by recvmsg function. */
 int
 rip_recvmsg (int sock, u_char *buf, int size, struct sockaddr_in *from,
-	     int *ifindex)
+	     ifindex_t *ifindex)
 {
   int ret;
   struct msghdr msg;
@@ -1834,7 +1834,7 @@
   int sock;
   char buf[RIP_PACKET_MAXSIZ];
   struct sockaddr_in from;
-  unsigned int ifindex;
+  ifindex_t ifindex;
   
   /* Fetch socket then register myself. */
   sock = THREAD_FD (t);
diff --git a/ripd/ripd.h b/ripd/ripd.h
index a768ccc..dbed342 100644
--- a/ripd/ripd.h
+++ b/ripd/ripd.h
@@ -198,7 +198,7 @@
   struct in_addr from;
 
   /* Which interface does this route come from. */
-  unsigned int ifindex;
+  ifindex_t ifindex;
 
   /* Metric of this route. */
   u_int32_t metric;
@@ -224,7 +224,7 @@
   u_char metric_set;
   u_int32_t metric_out;
   u_short tag_out;
-  unsigned int ifindex_out;
+  ifindex_t ifindex_out;
 
   struct route_node *rp;
 
@@ -400,9 +400,9 @@
 extern int rip_neighbor_lookup (struct sockaddr_in *);
 
 extern int rip_redistribute_check (int);
-extern void rip_redistribute_add (int, int, struct prefix_ipv4 *, unsigned int, 
+extern void rip_redistribute_add (int, int, struct prefix_ipv4 *, ifindex_t, 
 			   struct in_addr *, unsigned int, unsigned char);
-extern void rip_redistribute_delete (int, int, struct prefix_ipv4 *, unsigned int);
+extern void rip_redistribute_delete (int, int, struct prefix_ipv4 *, ifindex_t);
 extern void rip_redistribute_withdraw (int);
 extern void rip_zebra_ipv4_add (struct route_node *);
 extern void rip_zebra_ipv4_delete (struct route_node *);
