diff --git a/modules/im/ximcp/imInsClbk.c b/modules/im/ximcp/imInsClbk.c index 95b379cb..c10e347f 100644 --- a/modules/im/ximcp/imInsClbk.c +++ b/modules/im/ximcp/imInsClbk.c @@ -212,6 +212,9 @@ _XimRegisterIMInstantiateCallback( if( xim ) { lock = True; xim->methods->close( (XIM)xim ); + /* XIMs must be freed manually after being opened; close just + does the protocol to deinitialize the IM. */ + XFree( xim ); lock = False; icb->call = True; callback( display, client_data, NULL );