Index: libc/generic/io/io.c
===================================================================
--- libc/generic/io/io.c	(revision 56972c815c04963f23b5e9d18768b2d4f7ddf630)
+++ libc/generic/io/io.c	(revision aa59fa038704679a25298dc08da7b9f8dac2e27d)
@@ -68,4 +68,8 @@
 	size_t count;
 	
+	if (str == NULL) {
+		return putnchars("(NULL)",6 );
+	}
+
 	for (count = 0; str[count] != 0; count++);
 	if (write(1, (void * ) str, count) == count) {
Index: libc/generic/io/print.c
===================================================================
--- libc/generic/io/print.c	(revision 56972c815c04963f23b5e9d18768b2d4f7ddf630)
+++ libc/generic/io/print.c	(revision aa59fa038704679a25298dc08da7b9f8dac2e27d)
@@ -204,5 +204,6 @@
 					break;
 				case 'c':
-					if ((retval = putnchars((char *)&va_arg(ap, unsigned long), sizeof(char))) == EOF) {
+					c = va_arg(ap, unsigned long);
+					if ((retval = putnchars(&c, sizeof(char))) == EOF) {
 						return -counter;
 					};
