diff -up libxklavier-3.7/libxklavier/xklavier_config.c.sax-leak libxklavier-3.7/libxklavier/xklavier_config.c --- libxklavier-3.7/libxklavier/xklavier_config.c.sax-leak 2008-09-19 00:25:10.000000000 -0400 +++ libxklavier-3.7/libxklavier/xklavier_config.c 2008-09-19 00:25:41.000000000 -0400 @@ -480,15 +480,13 @@ xkl_config_registry_load_from_file(XklCo const gchar * file_name) { xmlParserCtxtPtr ctxt = xmlNewParserCtxt(); - xmlSAXHandler *saxh = g_new0(xmlSAXHandler, 1); xkl_debug(100, "Loading XML registry from file %s\n", file_name); /* Filter out all unneeded languages! */ - xmlSAX2InitDefaultSAXHandler(saxh, TRUE); - saxh->startElementNs = xkl_xml_sax_start_element_ns; - saxh->endElementNs = xkl_xml_sax_end_element_ns; - saxh->characters = xkl_xml_sax_characters; - ctxt->sax = saxh; + xmlSAX2InitDefaultSAXHandler(ctxt->sax, TRUE); + ctxt->sax->startElementNs = xkl_xml_sax_start_element_ns; + ctxt->sax->endElementNs = xkl_xml_sax_end_element_ns; + ctxt->sax->characters = xkl_xml_sax_characters; xkl_config_registry_priv(config, doc) = xmlCtxtReadFile(ctxt, file_name, NULL, XML_PARSE_NOBLANKS);