diff --git a/src/gl_draw.cxx b/src/gl_draw.cxx
index 99f7214fac86dbc55609e6e43fd3b50420452120..52222b4fc6e72aadd0804eec3623464b6508bd37 100644
--- a/src/gl_draw.cxx
+++ b/src/gl_draw.cxx
@@ -486,6 +486,9 @@ int gl_texture_fifo::compute_texture(const char* str, int n)
   fl_gc = CGBitmapContextCreate(base, fifo[current].width, fifo[current].height, 8, fifo[current].width*4, lut, kCGImageAlphaPremultipliedLast);
   CGColorSpaceRelease(lut);
   fl_fontsize = gl_fontsize;
+  GLfloat colors[4];
+  glGetFloatv(GL_CURRENT_COLOR, colors);
+  fl_color(colors[0]*255, colors[1]*255, colors[2]*255);
   fl_draw(str, 0, fifo[current].height - fl_descent());
   //put this bitmap in a texture  
   glPushAttrib(GL_TEXTURE_BIT);