diff --git a/src/xutf8/fl_wcwidth.c b/src/xutf8/fl_wcwidth.c
index 5e03caddbef3cf34b4f0c71da99dc30fe9d9cbdc..005ade0032216beab63885e45813531092a797c1 100644
--- a/src/xutf8/fl_wcwidth.c
+++ b/src/xutf8/fl_wcwidth.c
@@ -30,7 +30,9 @@
  * forward declare the routines as static to avoid name leakage.
  */
 
-#include <wchar.h>
+#include <stdio.h>              /* for size_t only */
+typedef unsigned int wchar_t;   /* supercede system wchar_t */
+
 static int mk_wcwidth(wchar_t ucs);
 static int mk_wcswidth(const wchar_t *pwcs, size_t n);
 static int mk_wcwidth_cjk(wchar_t ucs);
diff --git a/src/xutf8/mk_wcwidth.c b/src/xutf8/mk_wcwidth.c
index 61e822ad679f7c7c9cc819f5bb24ac4b13a7fbf0..c0bebaecc32eb3c0d97410d0330494b5cdf0d400 100644
--- a/src/xutf8/mk_wcwidth.c
+++ b/src/xutf8/mk_wcwidth.c
@@ -1,3 +1,9 @@
+/*
+ * Important!
+ * This file should remain as close to Markus Kuhn's original source
+ * as possible for easy checking for changes later, however unlikely.
+ * All customisations to work with FLTK shall be annotated!
+ */
 /*
  * This is an implementation of wcwidth() and wcswidth() (defined in
  * IEEE Std 1002.1-2001) for Unicode.
@@ -59,7 +65,14 @@
  * Latest version: http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
  */
 
+/*
+ * FLTK - avoid possible problems on systems with 32-bit wchar_t.
+ *        In the first instance, wchar_t is superceded in calling file
+ *        to avoid any unnecessary changes in this one.
+ */
+#if 0
 #include <wchar.h>
+#endif
 
 struct interval {
   int first;