Index: kernel/arch/mips32/src/drivers/msim.c
===================================================================
--- kernel/arch/mips32/src/drivers/msim.c	(revision 21df2e51bc51f79272b1772bdaba4a093f8265f4)
+++ kernel/arch/mips32/src/drivers/msim.c	(revision 0c33687a0010b5f04f4745b1349e77b466511af0)
@@ -34,5 +34,4 @@
 
 #include <interrupt.h>
-#include <ipc/irq.h>
 #include <console/chardev.h>
 #include <arch/drivers/msim.h>
@@ -96,16 +95,12 @@
 static void msim_irq_handler(irq_t *irq)
 {
-	if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox))
-		ipc_irq_send_notif(irq);
-	else {
-		char ch = 0;
+	char ch = 0;
 		
-		ch = *((char *) MSIM_KBD_ADDRESS);
-		if (ch =='\r')
-			ch = '\n';
-		if (ch == 0x7f)
-			ch = '\b';
-		chardev_push_character(&console, ch);
-	}
+	ch = *((char *) MSIM_KBD_ADDRESS);
+	if (ch =='\r')
+		ch = '\n';
+	if (ch == 0x7f)
+		ch = '\b';
+	chardev_push_character(&console, ch);
 }
 
Index: kernel/arch/mips32/src/drivers/serial.c
===================================================================
--- kernel/arch/mips32/src/drivers/serial.c	(revision 21df2e51bc51f79272b1772bdaba4a093f8265f4)
+++ kernel/arch/mips32/src/drivers/serial.c	(revision 0c33687a0010b5f04f4745b1349e77b466511af0)
@@ -35,5 +35,4 @@
 #include <interrupt.h>
 #include <arch/cp0.h>
-#include <ipc/irq.h>
 #include <arch/drivers/serial.h>
 #include <console/chardev.h>
@@ -115,8 +114,5 @@
 static void serial_irq_handler(irq_t *irq)
 {
-	if ((irq->notif_cfg.notify) && (irq->notif_cfg.answerbox))
-		ipc_irq_send_notif(irq);
-	else
-		serial_handler();
+	serial_handler();
 }
 
Index: uspace/srv/kbd/port/msim.c
===================================================================
--- uspace/srv/kbd/port/msim.c	(revision 21df2e51bc51f79272b1772bdaba4a093f8265f4)
+++ uspace/srv/kbd/port/msim.c	(revision 0c33687a0010b5f04f4745b1349e77b466511af0)
@@ -41,10 +41,18 @@
 #include <kbd.h>
 
-irq_cmd_t msim_cmds[1] = {
-	{ CMD_MEM_READ_1, (void *) 0, 0, 2 }
+irq_cmd_t msim_cmds[] = {
+	{
+		.cmd = CMD_PIO_READ_8,
+		.addr = (void *) 0,	/* will be patched in run-time */
+		.dstarg = 2
+	},
+	{
+		.cmd = CMD_ACCEPT
+	}
+	
 };
 
 irq_code_t msim_kbd = {
-	1,
+	sizeof(msim_cmds) / sizeof(irq_cmd_t),
 	msim_cmds
 };
