diff --git a/ospfd/ChangeLog b/ospfd/ChangeLog
index fbffe6a..98cabbd 100644
--- a/ospfd/ChangeLog
+++ b/ospfd/ChangeLog
@@ -1,5 +1,14 @@
 2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
+	* ospf_zebra.c: (ospf_interface_state_up) If the MTU of an operative
+	  interface changes, print a debug message and call ospf_if_reset()
+	  to simulate down/up on the interface.
+	* ospf_interface.h: Declare new function ospf_if_reset().
+	* ospf_interface.c: (ospf_if_reset) New function to call ospf_if_down
+	  and ospf_if_up for all ospf interfaces attached to an interface.
+
+2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
 	* ospf_packet.c: (ospf_write_frags) Enhance error message to
 	  show MTU.  Also make function static.
 	  (ospf_write) Enhance error message to show interface name and MTU.
diff --git a/ospfd/ospf_interface.c b/ospfd/ospf_interface.c
index df71fad..b76abe5 100644
--- a/ospfd/ospf_interface.c
+++ b/ospfd/ospf_interface.c
@@ -102,6 +102,25 @@
     }
 }
 
+/* Simulate down/up on the interface.  This is needed, for example, when 
+   the MTU changes. */
+void
+ospf_if_reset(struct interface *ifp)
+{
+  struct route_node *rn;
+  
+  for (rn = route_top (IF_OIFS (ifp)); rn; rn = route_next (rn))
+    {
+      struct ospf_interface *oi;
+      
+      if ( (oi = rn->info) == NULL)
+	continue;
+
+      ospf_if_down(oi);
+      ospf_if_up(oi);
+    }
+}
+
 void
 ospf_if_reset_variables (struct ospf_interface *oi)
 {
diff --git a/ospfd/ospf_interface.h b/ospfd/ospf_interface.h
index b49a351..b3fb3ba 100644
--- a/ospfd/ospf_interface.h
+++ b/ospfd/ospf_interface.h
@@ -234,6 +234,9 @@
 int ospf_if_get_output_cost (struct ospf_interface *);
 void ospf_if_recalculate_output_cost (struct interface *);
 
+/* Simulate down/up on the interface. */
+extern void ospf_if_reset (struct interface *);
+
 struct ospf_interface *ospf_vl_new (struct ospf *, struct ospf_vl_data *);
 struct ospf_vl_data *ospf_vl_data_new (struct ospf_area *, struct in_addr);
 struct ospf_vl_data *ospf_vl_lookup (struct ospf_area *, struct in_addr);
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c
index 8468aed..300103e 100644
--- a/ospfd/ospf_zebra.c
+++ b/ospfd/ospf_zebra.c
@@ -168,7 +168,6 @@
                          zebra_size_t length)
 {
   struct interface *ifp;
-  struct interface if_tmp;
   struct ospf_interface *oi;
   struct route_node *rn;
 
@@ -181,6 +180,7 @@
   if (if_is_operative (ifp))
     {
       /* Temporarily keep ifp values. */
+      struct interface if_tmp;
       memcpy (&if_tmp, ifp, sizeof (struct interface));
 
       zebra_interface_if_set_value (zclient->ibuf, ifp);
@@ -196,6 +196,16 @@
 
           ospf_if_recalculate_output_cost (ifp);
         }
+
+      if (if_tmp.mtu != ifp->mtu)
+        {
+          if (IS_DEBUG_OSPF (zebra, ZEBRA_INTERFACE))
+            zlog_debug ("Zebra: Interface[%s] MTU change %u -> %u.",
+                       ifp->name, if_tmp.mtu, ifp->mtu);
+
+	  /* Must reset the interface (simulate down/up) when MTU changes. */
+          ospf_if_reset(ifp);
+	}
       return 0;
     }
 
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index bc3c738..59c154d 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,12 @@
+2005-03-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
+	* rt_netlink.c: (netlink_link_change) If the status of an
+	  operative interface changes (e.g. MTU changes), the client
+	  daemons should be notified by calling zebra_interface_up_update.
+	  Previously, the information was being updated in zebra's
+	  interface structure, but the clients were not notified of
+	  changes to an operative interface.
+
 2005-03-25 Jean-Mickael Guerin <jean-mickael.guerin@6wind.com>
 	* interface.c, interface.h, rtadv.c, rtadv.h: modifications to 
 	  IPv6 Neighbor Discovery according to RFC3775, section 7:
diff --git a/zebra/rt_netlink.c b/zebra/rt_netlink.c
index 43f687d..7a78602 100644
--- a/zebra/rt_netlink.c
+++ b/zebra/rt_netlink.c
@@ -1001,6 +1001,9 @@
               ifp->flags = ifi->ifi_flags & 0x0000fffff;
               if (!if_is_operative (ifp))
                 if_down (ifp);
+	      else
+		/* Must notify client daemons of new interface status. */
+	        zebra_interface_up_update (ifp);
             }
           else
             {
