diff --git a/lib/ChangeLog b/lib/ChangeLog
index af3841a..26cb686 100644
--- a/lib/ChangeLog
+++ b/lib/ChangeLog
@@ -1,5 +1,9 @@
 2005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
 
+	* {vty.h,vty.c}: Remove vty_finish (duplicate of vty_reset).
+
+2005-02-23 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
+
 	* buffer.h: Make the struct buffer and struct buffer_data structures
 	  private by moving them inside buffer.c.  Add comments for all
 	  functions.  Rename buffer_write as buffer_put (to be more consistent
diff --git a/lib/vty.c b/lib/vty.c
index 887e3ba..9cc5ec4 100644
--- a/lib/vty.c
+++ b/lib/vty.c
@@ -2780,46 +2780,6 @@
     }
 }
 
-/* for ospf6d easy temprary reload function */
-/* vty_reset + close accept socket */
-void
-vty_finish ()
-{
-  unsigned int i;
-  struct vty *vty;
-  struct thread *vty_serv_thread;
-
-  for (i = 0; i < vector_max (vtyvec); i++)
-    if ((vty = vector_slot (vtyvec, i)) != NULL)
-      {
-	buffer_reset (vty->obuf);
-	vty->status = VTY_CLOSE;
-	vty_close (vty);
-      }
-
-  for (i = 0; i < vector_max (Vvty_serv_thread); i++)
-    if ((vty_serv_thread = vector_slot (Vvty_serv_thread, i)) != NULL)
-      {
-	thread_cancel (vty_serv_thread);
-	vector_slot (Vvty_serv_thread, i) = NULL;
-        close (i);
-      }
-
-  vty_timeout_val = VTY_TIMEOUT_DEFAULT;
-
-  if (vty_accesslist_name)
-    {
-      XFREE(MTYPE_VTY, vty_accesslist_name);
-      vty_accesslist_name = NULL;
-    }
-
-  if (vty_ipv6_accesslist_name)
-    {
-      XFREE(MTYPE_VTY, vty_ipv6_accesslist_name);
-      vty_ipv6_accesslist_name = NULL;
-    }
-}
-
 static void
 vty_save_cwd (void)
 {
diff --git a/lib/vty.h b/lib/vty.h
index 0290a83..6faa7d8 100644
--- a/lib/vty.h
+++ b/lib/vty.h
@@ -181,7 +181,6 @@
 void vty_init (struct thread_master *);
 void vty_init_vtysh (void);
 void vty_reset (void);
-void vty_finish (void);
 struct vty *vty_new (void);
 int vty_out (struct vty *, const char *, ...) PRINTF_ATTRIBUTE(2, 3);
 void vty_read_config (char *, char *);
