in XalanEXST/XalanEXSLTString.cpp. if (byte2 & 0x80 == 0) ... There are a few of these. This comes out as: if (byte2 & (0x80 == 0)) if (byte2 & 0) if (0) which is presumably not was intended. The compiler picked this one up, not me :) cvs diff attached.