Sorry, I missed I was assigned to this.
I dont know if reverting right away is the right path, did you explore adding XIMStatusCallbacks to the XCreateIC call?
If not, then is there a way to detect that XNPreeditStartCallback is not being utilized? Maybe have a flag or something that gets set in addition to the IME_SetOpenStatus call, then if we go straight into XIMPreEditStartCallback without having seen the PreeditStartCallback we do the opening automatically, like we did before, but without the revert?
-aric