diff --git a/isisd/ChangeLog b/isisd/ChangeLog
index 1d2e22f..4c119e2 100644
--- a/isisd/ChangeLog
+++ b/isisd/ChangeLog
@@ -1,3 +1,12 @@
+2004-05-19 Laurent Rabret <laurent.rabret at francetelecom.com>
+
+	* isis_constants.h: change the ISIS Hello interval from 1 to 10 (cisco's
+	  default value).
+	* isis_main.c: suppress a bad "#if 0 #endif" block for isis to be
+	  activated on startup.
+	* isis_tlv.[c|h]: LSP recognition of the ISIS Graceful Restart LSP (not
+	  implemented yet).
+
 2004-05-19 Rivo Nurges <rix at estpak.ee>
 
 	* *.c: Removing many useless net/ethernet.h includes and some tiny
diff --git a/isisd/isis_constants.h b/isisd/isis_constants.h
index 852b8a1..c732bfc 100644
--- a/isisd/isis_constants.h
+++ b/isisd/isis_constants.h
@@ -65,7 +65,7 @@
 #define ISIS_LEVEL1                   1
 #define ISIS_LEVEL2                   2
 
-#define HELLO_INTERVAL                1
+#define HELLO_INTERVAL                10
 #define HELLO_MINIMAL HELLO_INTERVAL
 #define HELLO_MULTIPLIER              3
 #define DEFAULT_PRIORITY              64
diff --git a/isisd/isis_main.c b/isisd/isis_main.c
index 0d9cf3e..e763a9e 100644
--- a/isisd/isis_main.c
+++ b/isisd/isis_main.c
@@ -312,10 +312,9 @@
   /* parse config file */ 
   /* this is needed three times! because we have interfaces before the areas */
   vty_read_config (config_file, config_current, config_default);
-#if 0
   vty_read_config (config_file, config_current, config_default);
   vty_read_config (config_file, config_current, config_default);
-#endif
+
   /* demonize */
   if (daemon_mode)
     daemon (0, 0);
diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c
index 03f724f..1987e0d 100644
--- a/isisd/isis_spf.c
+++ b/isisd/isis_spf.c
@@ -1037,7 +1037,9 @@
     spftree->pending = 1;
     return retval;
   }
-  THREAD_TIMER_OFF(spftree->t_spf_periodic);
+  /* FIXME: This stuff is just mess. All spf thread add/cancel
+     logic should be reviewed. */
+  /* THREAD_TIMER_OFF(spftree->t_spf_periodic); */
 
   if (diff < MINIMUM_SPF_INTERVAL) {
     if (level == 1)
diff --git a/isisd/isis_tlv.c b/isisd/isis_tlv.c
index ab39ceb..d7bbb91 100644
--- a/isisd/isis_tlv.c
+++ b/isisd/isis_tlv.c
@@ -651,6 +651,21 @@
       }
 
       break;
+    case GRACEFUL_RESTART:
+      /* +-------+-------+-------+-------+-------+-------+-------+-------+
+       * |         Reserved                      |  SA   |  RA   |  RR   | 1
+       * +-------+-------+-------+-------+-------+-------+-------+-------+
+       * |                          Remaining Time                       | 2
+       * +---------------------------------------------------------------+
+       * |                Restarting Neighbor ID (If known)              | 0-8
+       * +---------------------------------------------------------------+
+       */
+      *found |= TLVFLAG_GRACEFUL_RESTART;
+      if (*expected & TLVFLAG_GRACEFUL_RESTART) {
+        /* FIXME: make this work */
+      }
+      pnt += length;
+      break;
 
     default:
       zlog_warn ("ISIS-TLV (%s): unsupported TLV type %d, length %d",
diff --git a/isisd/isis_tlv.h b/isisd/isis_tlv.h
index 79c0c46..e030385 100644
--- a/isisd/isis_tlv.h
+++ b/isisd/isis_tlv.h
@@ -27,7 +27,7 @@
 /*
  * Structures found in TLV's.
  * this header is fully complient with
- * draft-ietf-isis-wg-tlv-codepoints-02.txt
+ * RFC 3359
  1.  TLV Codepoints reserved
      ____________________________________________________
      Name                 Value   IIH   LSP  SNP   Status
@@ -46,6 +46,7 @@
      LSPBufferSize            14  n     y    n  ISO 10589 Rev 2 Draft
      TE IIS Neigh.            22  n     y    n  IETF-draft
      DECnet Phase IV          42  y     n    n  DEC (ancient)
+     Lucent Proprietary       66  n     y    n
      IP Int. Reach           128  n     y    n  RFC 1195
      Prot. Supported         129  y     y    n  RFC 1195
      IP Ext. Address         130  n     y    n  RFC 1195
@@ -87,6 +88,7 @@
 #define TE_ROUTER_ID              134
 #define TE_IPV4_REACHABILITY      135
 #define DYNAMIC_HOSTNAME          137
+#define GRACEFUL_RESTART          211
 #define IPV6_REACHABILITY         236
 #define IPV6_ADDR                 232
 #define WAY3_HELLO                240
@@ -236,6 +238,7 @@
 #define TLVFLAG_3WAY_HELLO                (1<<18)
 #define TLVFLAG_TE_ROUTER_ID              (1<<19)
 #define TLVFLAG_CHECKSUM                  (1<<20)
+#define TLVFLAG_GRACEFUL_RESTART          (1<<21)
 
 void init_tlvs  (struct tlvs *tlvs, uint32_t expected);
 void free_tlvs  (struct tlvs *tlvs);
