This patch corrects a couple of bugs in the gtkpixmap.c file which have been introduced in the 971109 version. if (mask) { GdkColor tmp_color; *mask = gdk_pixmap_new (window, width, height, 1); gc = gdk_gc_new (*mask); tmp_color.pixel = 0; ~~~ gdk_gc_set_foreground (gc, &tmp_color); gdk_draw_rectangle (*mask, gc, TRUE, 0, 0, -1, -1); tmp_color.pixel = ~((gulong) 0); ~~~~~~~~~~~~~~~ gdk_gc_set_foreground (gc, &tmp_color); } The author suppose that the black color is the first in the colormap and that the white color is the last one. This is be true for linux in true-color (depth 15-32). If you're in pseudo-color (256 colors) the black color is the entry 0 (right), and white the entry 1 (oops). Maybe X can handle this for a bitmap (1 plane). But he real problem is that on a SUN (or HP, I don't remember), these 2 entries are swapped: 0 is white, and black is 1. So your mask is inverted... I don't like gdk_color_white/black() either, but unfortunatly we'll have to stick to this solution until we find a better one :(. I also added a default transparent color for the creat_from_xpm* functions. The user must provide a color for the transparent one (what for? it's transparent) and the function does not test if this parameter is valid (seg. fault if it's NULL). So, now if s.o doesn't provide a transparent color (NULL pointer), a default color is used (white). Patrice Fortier.