Index: arch/ia32/include/ega.h
===================================================================
--- arch/ia32/include/ega.h	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ arch/ia32/include/ega.h	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -36,5 +36,5 @@
 
 extern void ega_init(void);
-extern void ega_putchar(char ch);
+extern void ega_putchar(const char ch);
 
 static void ega_check_cursor(void);
Index: arch/ia32/src/drivers/ega.c
===================================================================
--- arch/ia32/src/drivers/ega.c	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ arch/ia32/src/drivers/ega.c	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -77,5 +77,5 @@
 }
 
-void ega_putchar(char ch)
+void ega_putchar(const char ch)
 {
 	pri_t pri;
@@ -111,5 +111,5 @@
 }
 
-void putchar(char ch)
+void putchar(const char ch)
 {
 	ega_putchar(ch);
Index: arch/ia64/src/putchar.c
===================================================================
--- arch/ia64/src/putchar.c	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ arch/ia64/src/putchar.c	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -31,5 +31,5 @@
 #include <arch/ski/ski.h>
 
-void putchar(char ch)
+void putchar(const char ch)
 {
 	__asm__ (
Index: arch/mips/src/putchar.c
===================================================================
--- arch/mips/src/putchar.c	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ arch/mips/src/putchar.c	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -33,5 +33,5 @@
 #define VIDEORAM	0xA000000
 
-void putchar(char ch)
+void putchar(const char ch)
 {
 	__u32 status = cp0_status_read();
Index: include/print.h
===================================================================
--- include/print.h	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ include/print.h	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -36,10 +36,10 @@
 #define INT32	4
 
-static void print_str(char *str);
-static void print_fixed_hex(__native num, int width);
-static  void print_number(__native num, int base);
+static void print_str(const char *str);
+static void print_fixed_hex(const __native num, const int width);
+static void print_number(const __native num, const int base);
 
-extern void putchar(char c);
-extern void printf(char *fmt, ...);
+extern void putchar(const char c);
+extern void printf(const char *fmt, ...);
 
 #endif
Index: include/putchar.h
===================================================================
--- include/putchar.h	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ include/putchar.h	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -30,5 +30,5 @@
 #define __PUTCHAR_H__
 
-extern void putchar(char ch);
+extern void putchar(const char ch);
 
 #endif
Index: src/debug/print.c
===================================================================
--- src/debug/print.c	(revision d34657e232b5e08d3b93e10a300058c30aea7805)
+++ src/debug/print.c	(revision 27dc170d4c2e2260fb8798d8d1ee4d13d15e345e)
@@ -45,5 +45,5 @@
  *
  */
-void print_str(char *str)
+void print_str(const char *str)
 {
         int i = 0;
@@ -66,5 +66,5 @@
  *
  */
-void print_fixed_hex(__native num, int width)
+void print_fixed_hex(const __native num, const int width)
 {
 	int i;
@@ -85,12 +85,13 @@
  *
  */
-void print_number(__native num, int base)
-{ 
+void print_number(const __native num, const int base)
+{
+	int val = num;
 	char d[sizeof(__native)*8+1];		/* this is good enough even for base == 2 */
         int i = sizeof(__native)*8-1;
     
 	do {
-		d[i--] = digits[num % base];
-	} while (num /= base);
+		d[i--] = digits[val % base];
+	} while (val /= base);
 	
 	d[sizeof(__native)*8] = 0;	
@@ -133,5 +134,5 @@
  *
  */
-void printf(char *fmt, ...)
+void printf(const char *fmt, ...)
 {
 	int irqpri, i = 0;
