diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 2969439..d4c5678 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,9 @@
+2007-10-03 Denis Ovsienko
+
+	* zebra_rib.c: (rib_process, rib_link, rib_addnode,
+	  rib_unlink, rib_delnode) log IPv6 prefixes same well
+	  as IPv4 ones are logged.
+
 2007-09-14 Denis Ovsienko
 
 	* rt_socket.c: (kernel_rtm_ipv4) Use lookup() instead of
@@ -40,7 +46,7 @@
 2007-08-14 Denis Ovsienko
 
 	* zebra_rib.c: (nexthop_active_update) Added a comment
-          and rewrote nexthop iteration.
+	  and rewrote nexthop iteration.
 
 2007-08-13 Denis Ovsienko
 
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index e5cce1e..67dc810 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -992,12 +992,12 @@
   struct route_node *rn = data;
   int installed = 0;
   struct nexthop *nexthop = NULL;
-  char buf[INET_ADDRSTRLEN];
+  char buf[INET6_ADDRSTRLEN];
   
   assert (rn);
   
   if (IS_ZEBRA_DEBUG_RIB || IS_ZEBRA_DEBUG_RIB_Q)
-    inet_ntop (AF_INET, &rn->p.u.prefix, buf, INET_ADDRSTRLEN);
+    inet_ntop (rn->p.family, &rn->p.u.prefix, buf, INET6_ADDRSTRLEN);
 
   for (rib = rn->info; rib; rib = next)
     {
@@ -1300,7 +1300,7 @@
 rib_link (struct route_node *rn, struct rib *rib)
 {
   struct rib *head;
-  char buf[INET_ADDRSTRLEN];
+  char buf[INET6_ADDRSTRLEN];
   
   assert (rib && rn);
   
@@ -1308,7 +1308,7 @@
 
   if (IS_ZEBRA_DEBUG_RIB)
   {
-    inet_ntop (AF_INET, &rn->p.u.prefix, buf, INET_ADDRSTRLEN);
+    inet_ntop (rn->p.family, &rn->p.u.prefix, buf, INET6_ADDRSTRLEN);
     zlog_debug ("%s: %s/%d: rn %p, rib %p", __func__,
       buf, rn->p.prefixlen, rn, rib);
   }
@@ -1338,8 +1338,8 @@
     {
       if (IS_ZEBRA_DEBUG_RIB)
       {
-        char buf[INET_ADDRSTRLEN];
-        inet_ntop (AF_INET, &rn->p.u.prefix, buf, INET_ADDRSTRLEN);
+        char buf[INET6_ADDRSTRLEN];
+        inet_ntop (rn->p.family, &rn->p.u.prefix, buf, INET6_ADDRSTRLEN);
         zlog_debug ("%s: %s/%d: rn %p, un-removed rib %p",
                     __func__, buf, rn->p.prefixlen, rn, rib);
       }
@@ -1353,13 +1353,13 @@
 rib_unlink (struct route_node *rn, struct rib *rib)
 {
   struct nexthop *nexthop, *next;
-  char buf[INET_ADDRSTRLEN];
+  char buf[INET6_ADDRSTRLEN];
 
   assert (rn && rib);
 
   if (IS_ZEBRA_DEBUG_RIB)
   {
-    inet_ntop (AF_INET, &rn->p.u.prefix, buf, INET_ADDRSTRLEN);
+    inet_ntop (rn->p.family, &rn->p.u.prefix, buf, INET6_ADDRSTRLEN);
     zlog_debug ("%s: %s/%d: rn %p, rib %p",
                 __func__, buf, rn->p.prefixlen, rn, rib);
   }
@@ -1398,8 +1398,8 @@
 {
   if (IS_ZEBRA_DEBUG_RIB)
   {
-    char buf[INET_ADDRSTRLEN];
-    inet_ntop (AF_INET, &rn->p.u.prefix, buf, INET_ADDRSTRLEN);
+    char buf[INET6_ADDRSTRLEN];
+    inet_ntop (rn->p.family, &rn->p.u.prefix, buf, INET6_ADDRSTRLEN);
     zlog_debug ("%s: %s/%d: rn %p, rib %p, removing", __func__,
       buf, rn->p.prefixlen, rn, rib);
   }
