In libldap/utf-8-conv.c:194 if( wchar < 0x80000000 ) I get a warning about signed/unsigned comparison. What seems to happen is that wchar (which is of type wchar_t) is a signed integer (on my i386,it's a 4 byte int) and thus it's always < 0x80000000 by definition. ANSI C converts 0x80000000 to unsigned, thus the warning. p.