diff --git a/jconfig.txt b/jconfig.txt
index b96d312..dda6236 100644
--- a/jconfig.txt
+++ b/jconfig.txt
@@ -48,7 +48,7 @@
  * If you're not sure, leaving it undefined will work at some cost in speed.
  * If you defined HAVE_UNSIGNED_CHAR then the speed difference is minimal.
  */
-#undef CHAR_IS_UNSIGNED
+#undef __CHAR_UNSIGNED__
 
 /* Define this if your system has an ANSI-conforming <stddef.h> file.
  */
diff --git a/rdbmp.c b/rdbmp.c
index ba9f728..7c2e044 100644
--- a/rdbmp.c
+++ b/rdbmp.c
@@ -35,7 +35,7 @@
 typedef unsigned char U_CHAR;
 #define UCH(x)	((int) (x))
 #else /* !HAVE_UNSIGNED_CHAR */
-#ifdef CHAR_IS_UNSIGNED
+#ifdef __CHAR_UNSIGNED__
 typedef char U_CHAR;
 #define UCH(x)	((int) (x))
 #else
diff --git a/rdppm.c b/rdppm.c
index a757022..0f3994d 100644
--- a/rdppm.c
+++ b/rdppm.c
@@ -43,7 +43,7 @@
 typedef unsigned char U_CHAR;
 #define UCH(x)	((int) (x))
 #else /* !HAVE_UNSIGNED_CHAR */
-#ifdef CHAR_IS_UNSIGNED
+#ifdef __CHAR_UNSIGNED__
 typedef char U_CHAR;
 #define UCH(x)	((int) (x))
 #else
diff --git a/rdtarga.c b/rdtarga.c
index 4c2cd26..0ad4642 100644
--- a/rdtarga.c
+++ b/rdtarga.c
@@ -28,7 +28,7 @@
 typedef unsigned char U_CHAR;
 #define UCH(x)	((int) (x))
 #else /* !HAVE_UNSIGNED_CHAR */
-#ifdef CHAR_IS_UNSIGNED
+#ifdef __CHAR_UNSIGNED__
 typedef char U_CHAR;
 #define UCH(x)	((int) (x))
 #else
@@ -177,7 +177,7 @@
   tga_source_ptr source = (tga_source_ptr) sinfo;
   register JSAMPROW ptr;
   register JDIMENSION col;
-  
+
   ptr = source->pub.buffer[0];
   for (col = cinfo->image_width; col > 0; col--) {
     (*source->read_pixel) (source); /* Load next pixel into tga_pixel */
@@ -215,7 +215,7 @@
   register int t;
   register JSAMPROW ptr;
   register JDIMENSION col;
-  
+
   ptr = source->pub.buffer[0];
   for (col = cinfo->image_width; col > 0; col--) {
     (*source->read_pixel) (source); /* Load next pixel into tga_pixel */
@@ -242,7 +242,7 @@
   tga_source_ptr source = (tga_source_ptr) sinfo;
   register JSAMPROW ptr;
   register JDIMENSION col;
-  
+
   ptr = source->pub.buffer[0];
   for (col = cinfo->image_width; col > 0; col--) {
     (*source->read_pixel) (source); /* Load next pixel into tga_pixel */
@@ -365,7 +365,7 @@
       (UCH(targaheader[16]) & 7) != 0 || /* bits/pixel must be multiple of 8 */
       interlace_type != 0)	/* currently don't allow interlaced image */
     ERREXIT(cinfo, JERR_TGA_BADPARMS);
-  
+
   if (subtype > 8) {
     /* It's an RLE-coded file */
     source->read_pixel = read_rle_pixel;
@@ -440,7 +440,7 @@
     source->pub.buffer_height = 1;
     source->pub.get_pixel_rows = source->get_pixel_rows;
   }
-  
+
   while (idlen--)		/* Throw away ID field */
     (void) read_byte(source);
 
diff --git a/win/jconfig.h.in b/win/jconfig.h.in
index ddcf97e..516ca59 100644
--- a/win/jconfig.h.in
+++ b/win/jconfig.h.in
@@ -12,7 +12,7 @@
 #define HAVE_UNSIGNED_SHORT
 /* #define void char */
 /* #define const */
-#undef CHAR_IS_UNSIGNED
+#undef __CHAR_UNSIGNED__
 #define HAVE_STDDEF_H
 #define HAVE_STDLIB_H
 #undef NEED_BSD_STRINGS
