diff --git a/ospf6d/ChangeLog b/ospf6d/ChangeLog
index 0d5ea9a..b9181d0 100644
--- a/ospf6d/ChangeLog
+++ b/ospf6d/ChangeLog
@@ -1,3 +1,7 @@
+2004-08-28  Hasso Tepper  <hasso at quagga.net>
+
+	* ospf6_main.c: Modify for sigevents.
+
 2004-08-26  Hasso Tepper  <hasso@estpak.ee>
 
 	* ospf6_interface.c, ospf6_top.c, ospf6d.c: for vtysh.
diff --git a/ospf6d/ospf6_main.c b/ospf6d/ospf6_main.c
index 2a0b2dc..b5e6403 100644
--- a/ospf6d/ospf6_main.c
+++ b/ospf6d/ospf6_main.c
@@ -33,6 +33,7 @@
 #include "prefix.h"
 #include "plist.h"
 #include "privs.h"
+#include "sigevent.h"
 
 #include "ospf6d.h"
 
@@ -119,14 +120,14 @@
 
 /* SIGHUP handler. */
 void 
-sighup (int sig)
+sighup (void)
 {
   zlog_info ("SIGHUP received");
 }
 
 /* SIGINT handler. */
 void
-sigint (int sig)
+sigint (void)
 {
   zlog_info ("SIGINT received");
   exit (0);
@@ -134,7 +135,7 @@
 
 /* SIGTERM handler. */
 void
-sigterm (int sig)
+sigterm (void)
 {
   zlog_info ("SIGTERM received");
   exit (0);
@@ -142,54 +143,31 @@
 
 /* SIGUSR1 handler. */
 void
-sigusr1 (int sig)
+sigusr1 (void)
 {
   zlog_info ("SIGUSR1 received");
   zlog_rotate (NULL);
 }
 
-/* Signale wrapper. */
-RETSIGTYPE *
-signal_set (int signo, void (*func)(int))
+struct quagga_signal_t ospf6_signals[] =
 {
-  int ret;
-  struct sigaction sig;
-  struct sigaction osig;
-
-  sig.sa_handler = func;
-  sigemptyset (&sig.sa_mask);
-  sig.sa_flags = 0;
-#ifdef SA_RESTART
-  sig.sa_flags |= SA_RESTART;
-#endif /* SA_RESTART */
-
-  ret = sigaction (signo, &sig, &osig);
-
-  if (ret < 0) 
-    return (SIG_ERR);
-  else
-    return (osig.sa_handler);
-}
-
-/* Initialization of signal handles. */
-void
-signal_init ()
-{
-  signal_set (SIGHUP, sighup);
-  signal_set (SIGINT, sigint);
-  signal_set (SIGTERM, sigterm);
-  signal_set (SIGPIPE, SIG_IGN);
-#ifdef SIGTSTP
-  signal_set (SIGTSTP, SIG_IGN);
-#endif
-#ifdef SIGTTIN
-  signal_set (SIGTTIN, SIG_IGN);
-#endif
-#ifdef SIGTTOU
-  signal_set (SIGTTOU, SIG_IGN);
-#endif
-  signal_set (SIGUSR1, sigusr1);
-}
+  {
+    .signal = SIGHUP,
+    .handler = &sighup,
+  },
+  {
+    .signal = SIGINT,
+    .handler = &sigint,
+  },
+  {
+    .signal = SIGTERM,
+    .handler = &sigterm,
+  },
+  {
+    .signal = SIGUSR1,
+    .handler = &sigusr1,
+  },
+};
 
 /* Main routine of ospf6d. Treatment of argument and starting ospf finite
    state machine is handled here. */
@@ -275,7 +253,7 @@
                            LOG_DAEMON);
   zprivs_init (&ospf6d_privs);
   /* initialize zebra libraries */
-  signal_init ();
+  signal_init (master, Q_SIGC(ospf6_signals), ospf6_signals);
   cmd_init (1);
   vty_init (master);
   memory_init ();
diff --git a/vtysh/ChangeLog b/vtysh/ChangeLog
index aab737b..0dbcb0d 100644
--- a/vtysh/ChangeLog
+++ b/vtysh/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-28 Hasso Tepper <hasso at quagga.net>
+
+	* vtysh_main.c: Rename signal handling functions not to conflict
+	  with functions from lib/sigevent.c.
+
 2004-08-27 Hasso Tepper <hasso at quagga.net>
 
 	* vtysh.c: Make "terminal length <0-512>" command work in vtysh.
diff --git a/vtysh/vtysh_main.c b/vtysh/vtysh_main.c
index e862efd..223f0c6 100644
--- a/vtysh/vtysh_main.c
+++ b/vtysh/vtysh_main.c
@@ -99,9 +99,10 @@
     }
 }
 
-/* Signale wrapper. */
+/* Signale wrapper for vtysh. We don't use sigevent because
+ * vtysh doesn't use threads. TODO */
 RETSIGTYPE *
-signal_set (int signo, void (*func)(int))
+vtysh_signal_set (int signo, void (*func)(int))
 {
   int ret;
   struct sigaction sig;
@@ -124,11 +125,11 @@
 
 /* Initialization of signal handles. */
 void
-signal_init ()
+vtysh_signal_init ()
 {
-  signal_set (SIGINT, sigint);
-  signal_set (SIGTSTP, sigtstp);
-  signal_set (SIGPIPE, SIG_IGN);
+  vtysh_signal_set (SIGINT, sigint);
+  vtysh_signal_set (SIGTSTP, sigtstp);
+  vtysh_signal_set (SIGPIPE, SIG_IGN);
 }
 
 /* Help information display. */
@@ -243,7 +244,7 @@
   line_read = NULL;
 
   /* Signal and others. */
-  signal_init ();
+  vtysh_signal_init ();
 
   /* Make vty structure and register commands. */
   vtysh_init_vty ();
