Index: kernel/arch/amd64/src/debugger.c
===================================================================
--- kernel/arch/amd64/src/debugger.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/amd64/src/debugger.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -55,4 +55,6 @@
 SPINLOCK_INITIALIZE(bkpoint_lock);
 
+#ifdef CONFIG_KCONSOLE
+
 static int cmd_print_breakpoints(cmd_arg_t *argv);
 static cmd_info_t bkpts_info = {
@@ -100,41 +102,6 @@
 };
 
-#endif
-
-/** Print table of active breakpoints */
-int cmd_print_breakpoints(cmd_arg_t *argv __attribute__((unused)))
-{
-	unsigned int i;
-	char *symbol;
-
-#ifdef __32_BITS__	
-	printf("#  Count Address    In symbol\n");
-	printf("-- ----- ---------- ---------\n");
-#endif
-
-#ifdef __64_BITS__
-	printf("#  Count Address            In symbol\n");
-	printf("-- ----- ------------------ ---------\n");
-#endif
-	
-	for (i = 0; i < BKPOINTS_MAX; i++)
-		if (breakpoints[i].address) {
-			symbol = get_symtab_entry(breakpoints[i].address);
-
-#ifdef __32_BITS__
-			printf("%-2u %-5d %#10zx %s\n", i,
-			    breakpoints[i].counter, breakpoints[i].address,
-			    symbol);
-#endif
-
-#ifdef __64_BITS__
-			printf("%-2u %-5d %#18zx %s\n", i,
-			    breakpoints[i].counter, breakpoints[i].address,
-			    symbol);
-#endif
-
-		}
-	return 1;
-}
+#endif /* CONFIG_DEBUG_AS_WATCHPOINT */
+#endif /* CONFIG_KCONSOLE */
 
 /* Setup DR register according to table */
@@ -268,8 +235,10 @@
 	printf("Reached breakpoint %d:%lx(%s)\n", slot, getip(istate),
 	    get_symtab_entry(getip(istate)));
-	printf("***Type 'exit' to exit kconsole.\n");
-	atomic_set(&haltstate,1);
-	kconsole((void *) "debug");
-	atomic_set(&haltstate,0);
+
+#ifdef CONFIG_KCONSOLE
+	atomic_set(&haltstate, 1);
+	kconsole("debug", "Debug console ready (type 'exit' to continue)\n", false);
+	atomic_set(&haltstate, 0);
+#endif
 }
 
@@ -300,39 +269,5 @@
 }
 
-#ifndef CONFIG_DEBUG_AS_WATCHPOINT
-
-/** Remove breakpoint from table */
-int cmd_del_breakpoint(cmd_arg_t *argv)
-{
-	unative_t bpno = argv->intval;
-	if (bpno > BKPOINTS_MAX) {
-		printf("Invalid breakpoint number.\n");
-		return 0;
-	}
-	breakpoint_del(argv->intval);
-	return 1;
-}
-
-/** Add new breakpoint to table */
-static int cmd_add_breakpoint(cmd_arg_t *argv)
-{
-	int flags;
-	int id;
-
-	if (argv == &add_argv) {
-		flags = BKPOINT_INSTR;
-	} else { /* addwatchp */
-		flags = BKPOINT_WRITE;
-	}
-	printf("Adding breakpoint on address: %p\n", argv->intval);
-	id = breakpoint_add((void *)argv->intval, flags, -1);
-	if (id < 0)
-		printf("Add breakpoint failed.\n");
-	else
-		printf("Added breakpoint %d.\n", id);
-	
-	return 1;
-}
-#endif
+
 
 static void debug_exception(int n __attribute__((unused)), istate_t *istate)
@@ -380,22 +315,24 @@
 	for (i = 0; i < BKPOINTS_MAX; i++)
 		breakpoints[i].address = NULL;
-	
+
+#ifdef CONFIG_KCONSOLE
 	cmd_initialize(&bkpts_info);
 	if (!cmd_register(&bkpts_info))
-		panic("could not register command %s\n", bkpts_info.name);
+		printf("Cannot register command %s\n", bkpts_info.name);
 
 #ifndef CONFIG_DEBUG_AS_WATCHPOINT
 	cmd_initialize(&delbkpt_info);
 	if (!cmd_register(&delbkpt_info))
-		panic("could not register command %s\n", delbkpt_info.name);
+		printf("Cannot register command %s\n", delbkpt_info.name);
 
 	cmd_initialize(&addbkpt_info);
 	if (!cmd_register(&addbkpt_info))
-		panic("could not register command %s\n", addbkpt_info.name);
+		printf("Cannot register command %s\n", addbkpt_info.name);
 
 	cmd_initialize(&addwatchp_info);
 	if (!cmd_register(&addwatchp_info))
-		panic("could not register command %s\n", addwatchp_info.name);
-#endif
+		printf("Cannot register command %s\n", addwatchp_info.name);
+#endif /* CONFIG_DEBUG_AS_WATCHPOINT */
+#endif /* CONFIG_KCONSOLE */
 	
 	exc_register(VECTOR_DEBUG, "debugger", debug_exception);
@@ -405,4 +342,78 @@
 }
 
+#ifdef CONFIG_KCONSOLE
+/** Print table of active breakpoints */
+int cmd_print_breakpoints(cmd_arg_t *argv __attribute__((unused)))
+{
+	unsigned int i;
+	char *symbol;
+
+#ifdef __32_BITS__	
+	printf("#  Count Address    In symbol\n");
+	printf("-- ----- ---------- ---------\n");
+#endif
+
+#ifdef __64_BITS__
+	printf("#  Count Address            In symbol\n");
+	printf("-- ----- ------------------ ---------\n");
+#endif
+	
+	for (i = 0; i < BKPOINTS_MAX; i++)
+		if (breakpoints[i].address) {
+			symbol = get_symtab_entry(breakpoints[i].address);
+
+#ifdef __32_BITS__
+			printf("%-2u %-5d %#10zx %s\n", i,
+			    breakpoints[i].counter, breakpoints[i].address,
+			    symbol);
+#endif
+
+#ifdef __64_BITS__
+			printf("%-2u %-5d %#18zx %s\n", i,
+			    breakpoints[i].counter, breakpoints[i].address,
+			    symbol);
+#endif
+
+		}
+	return 1;
+}
+
+#ifndef CONFIG_DEBUG_AS_WATCHPOINT
+
+/** Remove breakpoint from table */
+int cmd_del_breakpoint(cmd_arg_t *argv)
+{
+	unative_t bpno = argv->intval;
+	if (bpno > BKPOINTS_MAX) {
+		printf("Invalid breakpoint number.\n");
+		return 0;
+	}
+	breakpoint_del(argv->intval);
+	return 1;
+}
+
+/** Add new breakpoint to table */
+static int cmd_add_breakpoint(cmd_arg_t *argv)
+{
+	int flags;
+	int id;
+
+	if (argv == &add_argv) {
+		flags = BKPOINT_INSTR;
+	} else { /* addwatchp */
+		flags = BKPOINT_WRITE;
+	}
+	printf("Adding breakpoint on address: %p\n", argv->intval);
+	id = breakpoint_add((void *)argv->intval, flags, -1);
+	if (id < 0)
+		printf("Add breakpoint failed.\n");
+	else
+		printf("Added breakpoint %d.\n", id);
+	
+	return 1;
+}
+#endif /* CONFIG_DEBUG_AS_WATCHPOINT */
+#endif /* CONFIG_KCONSOLE */
+
 /** @}
  */
Index: kernel/arch/ia32/include/drivers/ega.h
===================================================================
--- kernel/arch/ia32/include/drivers/ega.h	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/ia32/include/drivers/ega.h	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -41,4 +41,5 @@
 #define SCREEN		(ROW * ROWS)
 
+extern void ega_redraw(void);
 extern void ega_init(void);
 
Index: kernel/arch/ia32/include/drivers/vesa.h
===================================================================
--- kernel/arch/ia32/include/drivers/vesa.h	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/ia32/include/drivers/vesa.h	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -37,4 +37,5 @@
 
 extern int vesa_present(void);
+extern void vesa_redraw(void);
 extern void vesa_init(void);
 
Index: kernel/arch/ia32/src/cpu/cpu.c
===================================================================
--- kernel/arch/ia32/src/cpu/cpu.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/ia32/src/cpu/cpu.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -66,6 +66,6 @@
 static char *vendor_str[] = {
 	"Unknown Vendor",
-	"AuthenticAMD",
-	"GenuineIntel"
+	"AMD",
+	"Intel"
 };
 
@@ -78,5 +78,5 @@
 		:
 		:
-		:"%eax"
+		: "%eax"
 	);
 }
@@ -90,5 +90,5 @@
 		:
 		:
-		:"%eax"
+		: "%eax"
 	);	
 }
@@ -141,27 +141,29 @@
 		 * Check for AMD processor.
 		 */
-		if (info.cpuid_ebx==AMD_CPUID_EBX && info.cpuid_ecx==AMD_CPUID_ECX && info.cpuid_edx==AMD_CPUID_EDX) {
+		if ((info.cpuid_ebx == AMD_CPUID_EBX)
+		    && (info.cpuid_ecx == AMD_CPUID_ECX)
+			&& (info.cpuid_edx == AMD_CPUID_EDX))
 			CPU->arch.vendor = VendorAMD;
-		}
-
+		
 		/*
 		 * Check for Intel processor.
 		 */		
-		if (info.cpuid_ebx==INTEL_CPUID_EBX && info.cpuid_ecx==INTEL_CPUID_ECX && info.cpuid_edx==INTEL_CPUID_EDX) {
+		if ((info.cpuid_ebx == INTEL_CPUID_EBX)
+		    && (info.cpuid_ecx == INTEL_CPUID_ECX)
+			&& (info.cpuid_edx == INTEL_CPUID_EDX))
 			CPU->arch.vendor = VendorIntel;
-		}
-				
+		
 		cpuid(1, &info);
-		CPU->arch.family = (info.cpuid_eax>>8)&0xf;
-		CPU->arch.model = (info.cpuid_eax>>4)&0xf;
-		CPU->arch.stepping = (info.cpuid_eax>>0)&0xf;						
+		CPU->arch.family = (info.cpuid_eax >> 8) & 0x0f;
+		CPU->arch.model = (info.cpuid_eax >> 4) & 0x0f;
+		CPU->arch.stepping = (info.cpuid_eax >> 0) & 0x0f;						
 	}
 }
 
-void cpu_print_report(cpu_t* m)
+void cpu_print_report(cpu_t* cpu)
 {
-	printf("cpu%d: (%s family=%d model=%d stepping=%d) %dMHz\n",
-		m->id, vendor_str[m->arch.vendor], m->arch.family, m->arch.model, m->arch.stepping,
-		m->frequency_mhz);
+	printf("cpu%u: (%s family=%u model=%u stepping=%u) %" PRIu16 " MHz\n",
+		cpu->id, vendor_str[cpu->arch.vendor], cpu->arch.family,
+		cpu->arch.model, cpu->arch.stepping, cpu->frequency_mhz);
 }
 
Index: kernel/arch/ia32/src/drivers/vesa.c
===================================================================
--- kernel/arch/ia32/src/drivers/vesa.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/ia32/src/drivers/vesa.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -98,4 +98,9 @@
 }
 
+void vesa_redraw(void)
+{
+	fb_redraw();
+}
+
 #endif
 
Index: kernel/arch/ia32/src/ia32.c
===================================================================
--- kernel/arch/ia32/src/ia32.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/ia32/src/ia32.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -94,5 +94,5 @@
 		else
 #endif
-			ega_init();	/* video */
+			ega_init(); /* video */
 		
 		/* Enable debugger */
@@ -160,6 +160,13 @@
 void arch_grab_console(void)
 {
+#ifdef CONFIG_FB
+	vesa_redraw();
+#else
+	ega_redraw();
+#endif
+	
 	i8042_grab();
 }
+
 /** Return console to userspace
  *
Index: kernel/arch/mips32/src/cpu/cpu.c
===================================================================
--- kernel/arch/mips32/src/cpu/cpu.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/mips32/src/cpu/cpu.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -49,5 +49,5 @@
 	{ "MIPS", "R3000" },		/* 0x02 */
 	{ "MIPS", "R6000" },		/* 0x03 */
-	{ "MIPS", " R4000/R4400" }, 	/* 0x04 */
+	{ "MIPS", "R4000/R4400" }, 	/* 0x04 */
 	{ "LSI Logic", "R3000" },	/* 0x05 */
 	{ "MIPS", "R6000A" },		/* 0x06 */
@@ -124,7 +124,7 @@
 	}
 
-	printf("cpu%d: %s %s (rev=%d.%d, imp=%d)\n",
+	printf("cpu%u: %s %s (rev=%d.%d, imp=%d)\n",
 		m->id, data->vendor, data->model, m->arch.rev_num >> 4, 
-		m->arch.rev_num & 0xf, m->arch.imp_num);
+		m->arch.rev_num & 0x0f, m->arch.imp_num);
 }
 
Index: kernel/arch/mips32/src/debugger.c
===================================================================
--- kernel/arch/mips32/src/debugger.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/mips32/src/debugger.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -47,4 +47,6 @@
 bpinfo_t breakpoints[BKPOINTS_MAX];
 SPINLOCK_INITIALIZE(bkpoint_lock);
+
+#ifdef CONFIG_KCONSOLE
 
 static int cmd_print_breakpoints(cmd_arg_t *argv);
@@ -124,8 +126,10 @@
 };
 
+
 /** Test, if the given instruction is a jump or branch instruction
  *
  * @param instr Instruction code
  * @return true - it is jump instruction, false otherwise
+ *
  */
 static bool is_jump(unative_t instr)
@@ -268,4 +272,6 @@
 }
 
+#endif
+
 /** Initialize debugger */
 void debugger_init()
@@ -275,20 +281,22 @@
 	for (i = 0; i < BKPOINTS_MAX; i++)
 		breakpoints[i].address = NULL;
-	
+
+#ifdef CONFIG_KCONSOLE
 	cmd_initialize(&bkpts_info);
 	if (!cmd_register(&bkpts_info))
-		panic("could not register command %s\n", bkpts_info.name);
+		printf("Cannot register command %s\n", bkpts_info.name);
 
 	cmd_initialize(&delbkpt_info);
 	if (!cmd_register(&delbkpt_info))
-		panic("could not register command %s\n", delbkpt_info.name);
+		printf("Cannot register command %s\n", delbkpt_info.name);
 
 	cmd_initialize(&addbkpt_info);
 	if (!cmd_register(&addbkpt_info))
-		panic("could not register command %s\n", addbkpt_info.name);
+		printf("Cannot register command %s\n", addbkpt_info.name);
 
 	cmd_initialize(&addbkpte_info);
 	if (!cmd_register(&addbkpte_info))
-		panic("could not register command %s\n", addbkpte_info.name);
+		printf("Cannot register command %s\n", addbkpte_info.name);
+#endif
 }
 
@@ -368,5 +376,5 @@
 			cur->bkfunc(cur, istate);
 	} else {
-		printf("***Type 'exit' to exit kconsole.\n");
+#ifdef CONFIG_KCONSOLE
 		/* This disables all other processors - we are not SMP,
 		 * actually this gets us to cpu_halt, if scheduler() is run
@@ -374,11 +382,12 @@
 		 *   so this is a good idea
 		 */	
-		atomic_set(&haltstate,1);
+		atomic_set(&haltstate, 1);
 		spinlock_unlock(&bkpoint_lock);
-
-		kconsole("debug");
-
+		
+		kconsole("debug", "Debug console ready (type 'exit' to continue)\n", false);
+		
 		spinlock_lock(&bkpoint_lock);
-		atomic_set(&haltstate,0);
+		atomic_set(&haltstate, 0);
+#endif
 	}
 	if (cur && cur->address == fireaddr && (cur->flags & BKPOINT_INPROG)) {
Index: kernel/arch/mips32/src/exception.c
===================================================================
--- kernel/arch/mips32/src/exception.c	(revision 8fe5980e42d82b7d2d7e089fc06a6048def9ee08)
+++ kernel/arch/mips32/src/exception.c	(revision 76fca318d723e24d0c79dc1a99d87b0b03dee0f1)
@@ -46,5 +46,4 @@
 #include <interrupt.h>
 #include <func.h>
-#include <console/kconsole.h>
 #include <ddi/irq.h>
 #include <arch/debugger.h>
