Looks like bug #320 is finally fixed now.
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index abe8199..fa90cd1 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -3,6 +3,8 @@
 	* ioctl_solaris.c: (if_get_mtu) Don't break things if either
 	  IPv6 was disabled at compile time or the current interface
 	  hasn't it enabled.
+	* kernel_socket.c: (ifm_read) Don't forget to call if_get_mtu()
+	  for updated interfaces.
 
 2007-08-17 Denis Ovsienko
 
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index 9d2310b..ff858bd 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -472,6 +472,15 @@
             if_delete_update (ifp);
           }
 #endif /* RTM_IFANNOUNCE */
+      if (if_is_up (ifp))
+      {
+#if defined(__bsdi__)
+        if_kvm_get_mtu (ifp);
+#else
+        if_get_mtu (ifp);
+#endif /* __bsdi__ */
+        if_get_metric (ifp);
+      }
     }
 
 #ifdef HAVE_NET_RT_IFLIST