diff --git a/bgpd/bgp_fsm.c b/bgpd/bgp_fsm.c
index d84a865..2e07d93 100644
--- a/bgpd/bgp_fsm.c
+++ b/bgpd/bgp_fsm.c
@@ -947,45 +947,6 @@
   return 0;
 }
 
-void
-bgp_fsm_nht_update(struct peer *peer, int valid)
-{
-  int ret = 0;
-
-  if (!peer)
-    return;
-
-  switch (peer->status)
-    {
-    case Idle:
-      if (valid)
-	BGP_EVENT_ADD(peer, BGP_Start);
-      break;
-    case Connect:
-      ret = bgp_connect_check(peer, 0);
-      if (!ret && valid)
-	{
-	  BGP_TIMER_OFF(peer->t_connect);
-	  BGP_EVENT_ADD(peer, ConnectRetry_timer_expired);
-	}
-      break;
-    case Active:
-      if (valid)
-	{
-	  BGP_TIMER_OFF(peer->t_connect);
-	  BGP_EVENT_ADD(peer, ConnectRetry_timer_expired);
-	}
-    case OpenSent:
-    case OpenConfirm:
-    case Established:
-    case Clearing:
-    case Deleted:
-    default:
-      break;
-    }
-}
-
-
 /* Finite State Machine structure */
 static const struct {
   int (*func) (struct peer *);
@@ -1010,6 +971,7 @@
     {bgp_ignore, Idle},		/* Receive_UPDATE_message       */
     {bgp_ignore, Idle},		/* Receive_NOTIFICATION_message */
     {bgp_ignore, Idle},         /* Clearing_Completed           */
+    {bgp_start,  Connect},      /* NHT_Update                   */
   },
   {
     /* Connect */
@@ -1027,6 +989,7 @@
     {bgp_ignore,  Idle},	/* Receive_UPDATE_message       */
     {bgp_stop,    Idle},	/* Receive_NOTIFICATION_message */
     {bgp_ignore,  Idle},         /* Clearing_Completed           */
+    {bgp_reconnect,    Connect},/* NHT_Update                   */
   },
   {
     /* Active, */
@@ -1044,6 +1007,7 @@
     {bgp_ignore,  Idle},	/* Receive_UPDATE_message       */
     {bgp_stop_with_error, Idle}, /* Receive_NOTIFICATION_message */
     {bgp_ignore, Idle},         /* Clearing_Completed           */
+    {bgp_start,   Connect},     /* NHT_Update                   */
   },
   {
     /* OpenSent, */
@@ -1061,6 +1025,7 @@
     {bgp_fsm_event_error, Idle}, /* Receive_UPDATE_message       */
     {bgp_stop_with_error, Idle}, /* Receive_NOTIFICATION_message */
     {bgp_ignore, Idle},         /* Clearing_Completed           */
+    {bgp_ignore, OpenSent},     /* NHT_Update                   */
   },
   {
     /* OpenConfirm, */
@@ -1078,6 +1043,7 @@
     {bgp_ignore,  Idle},	/* Receive_UPDATE_message       */
     {bgp_stop_with_error, Idle}, /* Receive_NOTIFICATION_message */
     {bgp_ignore, Idle},         /* Clearing_Completed           */
+    {bgp_ignore, OpenConfirm},  /* NHT_Update                   */
   },
   {
     /* Established, */
@@ -1095,6 +1061,7 @@
     {bgp_fsm_update,           Established}, /* Receive_UPDATE_message       */
     {bgp_stop_with_error,         Clearing}, /* Receive_NOTIFICATION_message */
     {bgp_ignore,                      Idle}, /* Clearing_Completed           */
+    {bgp_ignore,               Established}, /* NHT_Update                   */
   },
   {
     /* Clearing, */
@@ -1112,6 +1079,7 @@
     {bgp_stop,			Clearing},	/* Receive_UPDATE_message       */
     {bgp_stop,			Clearing},	/* Receive_NOTIFICATION_message */
     {bgp_clearing_completed,    Idle},		/* Clearing_Completed           */
+    {bgp_ignore,                Clearing},      /* NHT_Update                   */
   },
   {
     /* Deleted, */
@@ -1129,6 +1097,7 @@
     {bgp_ignore,  Deleted},	/* Receive_UPDATE_message       */
     {bgp_ignore,  Deleted},	/* Receive_NOTIFICATION_message */
     {bgp_ignore,  Deleted},	/* Clearing_Completed           */
+    {bgp_ignore,  Deleted},     /* NHT_Update                   */
   },
 };
 
@@ -1149,6 +1118,7 @@
   "Receive_UPDATE_message",
   "Receive_NOTIFICATION_message",
   "Clearing_Completed",
+  "NHT_Update",
 };
 
 /* Execute event process. */
