Index: arch/ia32/src/drivers/ega.c
===================================================================
--- arch/ia32/src/drivers/ega.c	(revision a3ac9a7e277c7bc7d416f4d9ad871db2c430696c)
+++ arch/ia32/src/drivers/ega.c	(revision e8a9dc377795653528971e5e91a41ab7edea3ae2)
@@ -100,11 +100,15 @@
 
 	switch (ch) {
-	    case '\n':
+	case '\n':
 		ega_cursor = (ega_cursor + ROW) - ega_cursor % ROW;
 		break;
-	    case '\t':
+	case '\t':
 		ega_cursor = (ega_cursor + 8) - ega_cursor % 8;
 		break; 
-	    default:
+	case '\b':
+		if (ega_cursor % ROW)
+			ega_cursor--;
+		break;
+	default:
 		ega_display_char(ch);
 		ega_cursor++;
Index: arch/ia32/src/drivers/i8042.c
===================================================================
--- arch/ia32/src/drivers/i8042.c	(revision a3ac9a7e277c7bc7d416f4d9ad871db2c430696c)
+++ arch/ia32/src/drivers/i8042.c	(revision e8a9dc377795653528971e5e91a41ab7edea3ae2)
@@ -82,5 +82,5 @@
 	SPECIAL, /* 0x01 - Esc */
 	'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', '-', '=',
-	SPECIAL, /* 0x0e - Backspace */
+	'\b', /* 0x0e - Backspace */
 	'\t', 'q', 'w', 'e', 'r', 't', 'y', 'u', 'i', 'o', 'p', '[', ']', '\n',
 	SPECIAL, /* 0x1d - LCtrl */
