CreateDIBitmap creates a monochrome bitmap only when the first color of the
colormap is black followed by white. Otherwise it creates a color bitmap.

diff --git a/objects/dib.c b/objects/dib.c
index d133f60..9fbb0ce 100644
--- a/objects/dib.c
+++ b/objects/dib.c
@@ -800,7 +800,7 @@
 
     /* Check if we should create a monochrome or color bitmap. */
     /* We create a monochrome bitmap only if it has exactly 2  */
-    /* colors, which are either black or white, nothing else.  */
+    /* colors, which are black followed by white, nothing else.  */
     /* In all other cases, we create a color bitmap.           */
 
     if (bpp != 1) fColor = TRUE;
@@ -812,23 +812,29 @@
         {
             RGBQUAD *rgb = data->bmiColors;
             DWORD col = RGB( rgb->rgbRed, rgb->rgbGreen, rgb->rgbBlue );
-            if ((col == RGB(0,0,0)) || (col == RGB(0xff,0xff,0xff)))
+
+	    /* Check if the first color of the colormap is black */ 
+	    if ((col == RGB(0,0,0)))
             {
                 rgb++;
                 col = RGB( rgb->rgbRed, rgb->rgbGreen, rgb->rgbBlue );
-                fColor = ((col != RGB(0,0,0)) && (col != RGB(0xff,0xff,0xff)));
+		/* If the second color is white, create a monochrome bitmap */
+                fColor =  (col != RGB(0xff,0xff,0xff));
             }
+	    /* Note : If the first color of the colormap is white 
+	       followed by black, we have to create a color bitmap. 
+	       If we don't the white will be displayed in black later on!*/ 
             else fColor = TRUE;
         }
         else if (data->bmiHeader.biSize == sizeof(BITMAPCOREHEADER))
         {
             RGBTRIPLE *rgb = ((BITMAPCOREINFO *)data)->bmciColors;
             DWORD col = RGB( rgb->rgbtRed, rgb->rgbtGreen, rgb->rgbtBlue );
-            if ((col == RGB(0,0,0)) || (col == RGB(0xff,0xff,0xff)))
+            if ((col == RGB(0,0,0)))
             {
                 rgb++;
                 col = RGB( rgb->rgbtRed, rgb->rgbtGreen, rgb->rgbtBlue );
-                fColor = ((col != RGB(0,0,0)) && (col != RGB(0xff,0xff,0xff)));
+                fColor = (col != RGB(0xff,0xff,0xff));
             }
             else fColor = TRUE;
         }