diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 9e8ff46..f0df6b9 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,3 +1,8 @@
+2004-07-23  Hasso Tepper  <hasso@estpak.ee>
+
+	* ospf6_interface.c, ospf6_zebra.c: use ifp->mtu6 instead of
+	  ifp->mtu.
+
 2004-07-23 Paul Jakma <paul@dishone.st>
 
 	* ospf6_main.c: Delete LOG_PERROR, not portable.
diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c
index aea5f42..3fb3290 100644
--- a/ospf6d/ospf6_interface.c
+++ b/ospf6d/ospf6_interface.c
@@ -142,8 +142,8 @@
   oi->flag = 0;
 
   /* Try to adjust I/O buffer size with IfMtu */
-  oi->ifmtu = ifp->mtu;
-  iobuflen = ospf6_iobuf_size (ifp->mtu);
+  oi->ifmtu = ifp->mtu6;
+  iobuflen = ospf6_iobuf_size (ifp->mtu6);
   if (oi->ifmtu > iobuflen)
     {
       zlog_info ("Interface %s: IfMtu is adjusted to I/O buffer size: %d.",
@@ -271,8 +271,8 @@
 
   /* Try to adjust I/O buffer size with IfMtu */
   if (oi->ifmtu == 0)
-    oi->ifmtu = ifp->mtu;
-  iobuflen = ospf6_iobuf_size (ifp->mtu);
+    oi->ifmtu = ifp->mtu6;
+  iobuflen = ospf6_iobuf_size (ifp->mtu6);
   if (oi->ifmtu > iobuflen)
     {
       zlog_info ("Interface %s: IfMtu is adjusted to I/O buffer size: %d.",
@@ -822,7 +822,7 @@
   if (oi->area)
     {
       vty_out (vty, "  Instance ID %d, Interface MTU %d (autodetect: %d)%s",
-	       oi->instance_id, oi->ifmtu, ifp->mtu, VTY_NEWLINE);
+	       oi->instance_id, oi->ifmtu, ifp->mtu6, VTY_NEWLINE);
       inet_ntop (AF_INET, &oi->area->area_id,
                  strbuf, sizeof (strbuf));
       vty_out (vty, "  Area ID %s, Cost %hu%s", strbuf, oi->cost,
@@ -1068,10 +1068,10 @@
   if (oi->ifmtu == ifmtu)
     return CMD_SUCCESS;
 
-  if (ifp->mtu != 0 && ifp->mtu < ifmtu)
+  if (ifp->mtu6 != 0 && ifp->mtu6 < ifmtu)
     {
       vty_out (vty, "%s's ospf6 ifmtu cannot go beyond physical mtu (%d)%s",
-               ifp->name, ifp->mtu, VTY_NEWLINE);
+               ifp->name, ifp->mtu6, VTY_NEWLINE);
       return CMD_WARNING;
     }
 
@@ -1452,7 +1452,7 @@
       if (ifp->desc)
         vty_out (vty, " description %s%s", ifp->desc, VTY_NEWLINE);
 
-      if (ifp->mtu != oi->ifmtu)
+      if (ifp->mtu6 != oi->ifmtu)
         vty_out (vty, " ipv6 ospf6 ifmtu %d%s", oi->ifmtu, VTY_NEWLINE);
       vty_out (vty, " ipv6 ospf6 cost %d%s",
                oi->cost, VTY_NEWLINE);
diff --git a/ospf6d/ospf6_zebra.c b/ospf6d/ospf6_zebra.c
index b622086..88211bb 100644
--- a/ospf6d/ospf6_zebra.c
+++ b/ospf6d/ospf6_zebra.c
@@ -73,7 +73,7 @@
   ifp = zebra_interface_add_read (zclient->ibuf);
   if (IS_OSPF6_DEBUG_ZEBRA (RECV))
     zlog_info ("Zebra Interface add: %s index %d mtu %d",
-               ifp->name, ifp->ifindex, ifp->mtu);
+               ifp->name, ifp->ifindex, ifp->mtu6);
   ospf6_interface_if_add (ifp);
   return 0;
 }
@@ -87,7 +87,7 @@
   ifp = zebra_interface_delete_read (zclient->ibuf);
   if (IS_OSPF6_DEBUG_ZEBRA (RECV))
     zlog_info ("Zebra Interface delete: %s index %d mtu %d",
-               ifp->name, ifp->ifindex, ifp->mtu);
+               ifp->name, ifp->ifindex, ifp->mtu6);
 
   ospf6_interface_if_del (ifp);
 #endif /*0*/
@@ -104,7 +104,7 @@
   if (IS_OSPF6_DEBUG_ZEBRA (RECV))
     zlog_info ("Zebra Interface state change: "
                  "%s index %d flags %ld metric %d mtu %d",
-               ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu);
+               ifp->name, ifp->ifindex, ifp->flags, ifp->metric, ifp->mtu6);
 
   ospf6_interface_state_update (ifp);
   return 0;
