internal IDictionary cloneMap(IDictionary dict)
{
if (dict is Hashtable) return (IDictionary)((Hashtable)dict).Clone();
if (dict is OrderedDictionary)
{
OrderedDictionary dup = new OrderedDictionary();
IDictionaryEnumerator en = dict.GetEnumerator();
while (en.MoveNext()) dup[en.Key] = en.Value;
return dup;
}
throw new Exception(dict.ToString());
}