--- FTGL/src/FTPixmapGlyph.cpp.orig	2004-12-06 12:34:50.000000000 +0200
+++ FTGL/src/FTPixmapGlyph.cpp	2006-01-29 03:58:45.000000000 +0200
@@ -31,6 +31,19 @@
         unsigned char* dest = data + ((destHeight - 1) * destWidth * 2);
         size_t destStep = destWidth * 2 * 2;
 
+	if (FT_PIXEL_MODE_MONO == bitmap.pixel_mode) {
+	  // convert the bitmap to gray map
+	  for( int y = 0; y < srcHeight; ++y)
+	  {
+	    for( int x = 0; x < srcWidth; ++x)
+	    {
+	      *dest++ = static_cast<unsigned char>(255);
+	      *dest++ = static_cast<unsigned char>((src[x >> 3] & (128 >> (x & 7))) ? 255 : 0);
+	    }
+	    dest -= destStep;
+	    src += bitmap.pitch;
+	  }
+	} else {
         for( int y = 0; y < srcHeight; ++y)
         {
             for( int x = 0; x < srcWidth; ++x)
@@ -40,7 +53,8 @@
             }
             dest -= destStep;
         }
+	}
 
         destHeight = srcHeight;
     }
--- FTGL/include/FTTextureGlyph.h.orig	2004-10-17 03:40:13.000000000 +0300
+++ FTGL/include/FTTextureGlyph.h	2006-03-27 15:28:26.000000000 +0300
@@ -52,7 +52,7 @@
          * Reset the currently active texture to zero to get into a known state before
          * drawing a string. This is to get round possible threading issues.
          */
-        static void FTTextureGlyph::ResetActiveTexture(){ activeTextureID = 0;}
+        static void ResetActiveTexture(){ activeTextureID = 0;}
         
     private:
         /**
