diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index a695800..139985e 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,3 +1,9 @@
+2005-09-26 Hasso Tepper <hasso at quagga.net>
+
+	* isisd.[ch]: Introduce oldmetric flag for area and transition
+	  metricstyle command. With metricstyle wide only extended TLVs
+	  should be used.
+
 2005-09-25 Hasso Tepper <hasso at quagga.net>
 
 	* dict.[ch]: Revert all nonfunctional changes. It's external module
diff --git a/isisd/isisd.c b/isisd/isisd.c
index 1f0167b..2a60b88 100644
--- a/isisd/isisd.c
+++ b/isisd/isisd.c
@@ -126,6 +126,7 @@
   area->min_spf_interval[0] = MINIMUM_SPF_INTERVAL;
   area->min_spf_interval[1] = MINIMUM_SPF_INTERVAL;
   area->dynhostname = 1;
+  area->oldmetric = 1;
   area->lsp_frag_threshold = 90;
 #ifdef TOPOLOGY_GENERATE
   memcpy (area->topology_baseis, DEFAULT_TOPOLOGY_BASEIS, ISIS_SYS_ID_LEN);
@@ -1356,40 +1357,50 @@
 
 DEFUN (metric_style,
        metric_style_cmd,
-       "metric-style (narrow|wide)",
+       "metric-style (narrow|transition|wide)",
        "Use old-style (ISO 10589) or new-style packet formats\n"
        "Use old style of TLVs with narrow metric\n"
+       "Send and accept both styles of TLVs during transition\n"
        "Use new style of TLVs to carry wider metric\n")
 {
   struct isis_area *area;
 
   area = vty->index;
   assert (area);
-  if (!strcmp (argv[0], "wide"))
-    area->newmetric = 1;
-  else
-    area->newmetric = 0;
+
+  if (strncmp (argv[0], "w", 1) == 0)
+    {
+      area->newmetric = 1;
+      area->oldmetric = 0;
+    }
+  else if (strncmp (argv[0], "t", 1) == 0)
+    {
+      area->newmetric = 1;
+      area->oldmetric = 1;
+    }
+  else if (strncmp (argv[0], "n", 1) == 0)
+    {
+      area->newmetric = 0;
+      area->oldmetric = 1;
+    }
 
   return CMD_SUCCESS;
 }
 
 DEFUN (no_metric_style,
        no_metric_style_cmd,
-       "no metric-style (narrow|wide)",
+       "no metric-style",
        NO_STR
-       "Use old-style (ISO 10589) or new-style packet formats\n"
-       "Use old style of TLVs with narrow metric\n"
-       "Use new style of TLVs to carry wider metric\n")
+       "Use old-style (ISO 10589) or new-style packet formats\n")
 {
   struct isis_area *area;
 
   area = vty->index;
   assert (area);
 
-  if (!strcmp (argv[0], "wide"))
-    area->newmetric = 0;
-  else
-    area->newmetric = 1;
+  /* Default is narrow metric. */
+  area->newmetric = 0;
+  area->oldmetric = 1;
 
   return CMD_SUCCESS;
 }
@@ -1891,9 +1902,13 @@
 	/* ISIS - Metric-Style - when true displays wide */
 	if (area->newmetric)
 	  {
-	    vty_out (vty, " metric-style wide%s", VTY_NEWLINE);
+	    if (!area->oldmetric)
+	      vty_out (vty, " metric-style wide%s", VTY_NEWLINE);
+	    else
+	      vty_out (vty, " metric-style transition%s", VTY_NEWLINE);
 	    write++;
 	  }
+
 	/* ISIS - Area is-type (level-1-2 is default) */
 	if (area->is_type == IS_LEVEL_1)
 	  {
diff --git a/isisd/isisd.h b/isisd/isisd.h
index e66f60e..e61376e 100644
--- a/isisd/isisd.h
+++ b/isisd/isisd.h
@@ -104,6 +104,7 @@
   char dynhostname;
   /* do we support new style metrics?  */
   char newmetric;
+  char oldmetric;
   /* identifies the routing instance   */
   char *area_tag;
   /* area addresses for this area      */
