Index: uspace/app/klog/klog.c
===================================================================
--- uspace/app/klog/klog.c	(revision 3fe00ee17c8a02cd852f45c0deca8859fe3cd9ac)
+++ uspace/app/klog/klog.c	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
@@ -43,4 +43,5 @@
 #include <io/stream.h>
 #include <console.h>
+#include <event.h>
 #include <errno.h>
 
@@ -83,9 +84,8 @@
 	}
 	
-//	int inr = sysinfo_value("klog.inr");
-//	if (ipc_register_irq(inr, devno, 0, NULL) != EOK) {
-//		printf(NAME ": Error registering klog notifications\n");
-//		return -1;
-//	}
+	if (event_subscribe(EVENT_KLOG, 0) != EOK) {
+		printf(NAME ": Error registering klog notifications\n");
+		return -1;
+	}
 	
 	async_set_interrupt_received(interrupt_received);
Index: uspace/app/trace/syscalls.c
===================================================================
--- uspace/app/trace/syscalls.c	(revision 3fe00ee17c8a02cd852f45c0deca8859fe3cd9ac)
+++ uspace/app/trace/syscalls.c	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
@@ -66,4 +66,6 @@
     [SYS_IPC_UNREGISTER_IRQ] = { "ipc_unregister_irq",	2,	V_ERRNO },
 
+    [SYS_EVENT_SUBSCRIBE] = { "event_subscribe",	2,	V_ERRNO },
+
     [SYS_CAP_GRANT] = { "cap_grant",			2,	V_ERRNO },
     [SYS_CAP_REVOKE] = { "cap_revoke",			2,	V_ERRNO },
Index: uspace/lib/libc/Makefile
===================================================================
--- uspace/lib/libc/Makefile	(revision 3fe00ee17c8a02cd852f45c0deca8859fe3cd9ac)
+++ uspace/lib/libc/Makefile	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
@@ -48,4 +48,5 @@
 	generic/cap.c \
 	generic/console.c \
+	generic/event.c \
 	generic/mem.c \
 	generic/string.c \
Index: uspace/lib/libc/generic/event.c
===================================================================
--- uspace/lib/libc/generic/event.c	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
+++ uspace/lib/libc/generic/event.c	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2009 Jakub Jermar 
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libc
+ * @{
+ * @}
+ */
+
+/** @addtogroup libc
+ */
+/** @file
+ */ 
+
+#include <libc.h>
+#include <event.h>
+#include <kernel/event/event_types.h>
+#include <ipc/ipc.h>
+
+/** Subscribe for event notifications.
+ *
+ * @param e		Event number.
+ * @param method	Use this method for notifying me.
+ *
+ * @return		Value returned by the kernel.
+ */
+int event_subscribe(event_type_t e, ipcarg_t method)
+{
+	return __SYSCALL2(SYS_EVENT_SUBSCRIBE, (sysarg_t) e, (sysarg_t) method);
+}
+
+/** @}
+ */
Index: uspace/lib/libc/include/event.h
===================================================================
--- uspace/lib/libc/include/event.h	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
+++ uspace/lib/libc/include/event.h	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2009 Jakub Jermar
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * - Redistributions of source code must retain the above copyright
+ *   notice, this list of conditions and the following disclaimer.
+ * - Redistributions in binary form must reproduce the above copyright
+ *   notice, this list of conditions and the following disclaimer in the
+ *   documentation and/or other materials provided with the distribution.
+ * - The name of the author may not be used to endorse or promote products
+ *   derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/** @addtogroup libc
+ * @{
+ */
+/** @file
+ */
+
+#ifndef LIBC_EVENT_H_
+#define LIBC_EVENT_H_
+
+#include <kernel/event/event_types.h>
+#include <ipc/ipc.h>
+
+extern int event_subscribe(event_type_t, ipcarg_t);
+
+#endif
+
+/** @}
+ */
Index: uspace/srv/console/console.c
===================================================================
--- uspace/srv/console/console.c	(revision 3fe00ee17c8a02cd852f45c0deca8859fe3cd9ac)
+++ uspace/srv/console/console.c	(revision eec616bc34e4233a5e002814ad0f802ef63af58d)
@@ -50,4 +50,5 @@
 #include <stdio.h>
 #include <sysinfo.h>
+#include <event.h>
 
 #include "console.h"
@@ -730,11 +731,8 @@
 	
 	/* Receive kernel notifications */
-//	if (sysinfo_value("kconsole.present")) {
-//		int inr = sysinfo_value("kconsole.inr");
-//		if (ipc_register_irq(inr, device_assign_devno(), 0, NULL) != EOK)
-//			printf(NAME ": Error registering kconsole notifications\n");
-//		
-//		async_set_interrupt_received(interrupt_received);
-//	}
+	if (event_subscribe(EVENT_KCONSOLE, 0) != EOK)
+		printf(NAME ": Error registering kconsole notifications\n");
+		
+	async_set_interrupt_received(interrupt_received);
 	
 	// FIXME: avoid connectiong to itself, keep using klog
