Index: kernel/arch/mips32/src/drivers/msim.c
===================================================================
--- kernel/arch/mips32/src/drivers/msim.c	(revision f651e80e2ba6968d9e184dd8ca7fa6e5b779caaf)
+++ kernel/arch/mips32/src/drivers/msim.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup mips32	
+/** @addtogroup mips32
  * @{
  */
@@ -59,7 +59,8 @@
 
 /** Putchar that works with MSIM & gxemul */
-void msim_write(chardev_t *dev, const char ch)
+void msim_write(chardev_t *dev, const char ch, bool silent)
 {
-	*((char *) MSIM_VIDEORAM) = ch;
+	if (!silent)
+		*((char *) MSIM_VIDEORAM) = ch;
 }
 
@@ -81,5 +82,5 @@
 {
 	char ch;
-
+	
 	while (1) {
 		ch = *((volatile char *) MSIM_KBD_ADDRESS);
@@ -102,10 +103,10 @@
 		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 f651e80e2ba6968d9e184dd8ca7fa6e5b779caaf)
+++ kernel/arch/mips32/src/drivers/serial.c	(revision 4a10b633a3da1b330c452bb67c605953783841e4)
@@ -27,5 +27,5 @@
  */
 
-/** @addtogroup mips32	
+/** @addtogroup mips32
  * @{
  */
@@ -47,14 +47,16 @@
 static bool kb_enabled;
 
-static void serial_write(chardev_t *d, const char ch)
+static void serial_write(chardev_t *d, const char ch, bool silent)
 {
-	serial_t *sd = (serial_t *)d->data;
-
-	if (ch == '\n')
-		serial_write(d, '\r');
-	/* Wait until transmit buffer empty */
-	while (! (SERIAL_READ_LSR(sd->port) & (1<<TRANSMIT_EMPTY_BIT)))
-		;
-	SERIAL_WRITE(sd->port, ch);
+	if (!silent) {
+		serial_t *sd = (serial_t *)d->data;
+		
+		if (ch == '\n')
+			serial_write(d, '\r');
+		
+		/* Wait until transmit buffer empty */
+		while (!(SERIAL_READ_LSR(sd->port) & (1 << TRANSMIT_EMPTY_BIT)));
+		SERIAL_WRITE(sd->port, ch);
+	}
 }
 
@@ -134,6 +136,5 @@
 {
 	serial_t *sd = &sconf[0];
-
-
+	
 	chardev_initialize("serial_console", &console, &serial_ops);
 	console.data = sd;
@@ -146,8 +147,7 @@
 	serial_irq.handler = serial_irq_handler;
 	irq_register(&serial_irq);
-
+	
 	/* I don't know why, but the serial interrupts simply
-	 * don't work on simics
-	 */
+	   don't work on simics */
 	virtual_timer_fnc = &serial_handler;
 	
