Index: uspace/lib/c/include/io/chargrid.h
===================================================================
--- uspace/lib/c/include/io/chargrid.h	(revision 7c3fb9bd77e4d2f6c10517a052e567f176fa91ee)
+++ uspace/lib/c/include/io/chargrid.h	(revision fc0b2a8b439bd4294aa93f37af1e7fe305fbee77)
@@ -79,5 +79,5 @@
 extern sysarg_t chargrid_get_top_row(chargrid_t *);
 
-extern sysarg_t chargrid_putchar(chargrid_t *, wchar_t, bool);
+extern sysarg_t chargrid_putwchar(chargrid_t *, wchar_t, bool);
 extern sysarg_t chargrid_newline(chargrid_t *);
 extern sysarg_t chargrid_tabstop(chargrid_t *, sysarg_t);
Index: uspace/lib/c/include/stdio.h
===================================================================
--- uspace/lib/c/include/stdio.h	(revision 7c3fb9bd77e4d2f6c10517a052e567f176fa91ee)
+++ uspace/lib/c/include/stdio.h	(revision fc0b2a8b439bd4294aa93f37af1e7fe305fbee77)
@@ -40,4 +40,5 @@
 #include <_bits/size_t.h>
 #include <_bits/wchar_t.h>
+#include <_bits/wint_t.h>
 
 #define EOF  (-1)
@@ -73,13 +74,14 @@
 
 /* Character and string output functions */
-extern int fputc(wchar_t, FILE *);
+extern int fputc(int, FILE *);
 extern int fputs(const char *, FILE *);
 
-// FIXME: putchar and fputc are byte-oriented.
-// They shouldn't accept wide characters.
-extern int putchar(wchar_t);
+extern int putchar(int);
 extern int puts(const char *);
 
 extern int ungetc(int, FILE *);
+
+extern wint_t fputwc(wchar_t, FILE *);
+extern wint_t putwchar(wchar_t);
 
 /* Formatted string output functions */
Index: uspace/lib/c/include/wchar.h
===================================================================
--- uspace/lib/c/include/wchar.h	(revision 7c3fb9bd77e4d2f6c10517a052e567f176fa91ee)
+++ uspace/lib/c/include/wchar.h	(revision fc0b2a8b439bd4294aa93f37af1e7fe305fbee77)
@@ -44,4 +44,5 @@
 #include <_bits/wchar_t.h>
 #include <_bits/wint_t.h>
+#include <_bits/WEOF.h>
 
 #include <_bits/NULL.h>
