private void RemoveEntry(string text) { if (_entries.ContainsKey(text)) { XmlNodeList entryNodes = glossaryDocument.SelectNodes("//glossary/entry/text"); bool removedXmlEntry = false; if (entryNodes != null) { foreach (XmlNode node in entryNodes) { if (text.Equals(NodeText(node), StringComparison.CurrentCultureIgnoreCase)) { mainNode.RemoveChild(node.ParentNode); removedXmlEntry = true; } } } Debug.Assert(removedXmlEntry, "Glossary entry existed in Hashtable but not the XML file!"); _entries.Remove(text); SaveGlossary(); finder = new GlossaryUrlSuggester(); foreach (DictionaryEntry entry in _entries) { finder.Add((string)entry.Key, (GlossaryLinkItem)entry.Value); } } }