Doesn't this leak found by Valgrind sound like a bug? For reference, here's how I'm calling XRegisterIMInstantiateCallback:
XSetLocaleModifiers (""); XRegisterIMInstantiateCallback (compositor.display, XrmGetDatabase (compositor.display), (char *) compositor.resource_name, (char *) compositor.app_name, IMInstantiateCallback, NULL); and XMODIFIERS is: @im=ibus and the leak is: ==67186== 408 bytes in 1 blocks are definitely lost in loss record 272 of 344 ==67186== at 0x484A464: calloc (vg_replace_malloc.c:1328) ==67186== by 0x490935F: _XimOpenIM (in /usr/lib64/libX11.so.6.4.0) ==67186== by 0x490F386: _XimRegisterIMInstantiateCallback (in /usr/lib64/libX11.so.6.4.0) ==67186== by 0x48FBDBD: XRegisterIMInstantiateCallback (in /usr/lib64/libX11.so.6.4.0) ==67186== by 0x4456B5: tiInitTextInput (text_input.c:837) ==67186== by 0x4079C5: dlMain (loader.c:205) ==67186== by 0x4079F2: main (loader.c:214) Thanks.