 		{
 			var count:int = 1;
 			var name:String = baseName;
-			while (_nameToObjectMap[name] != undefined)
+			while (_previousNameMap[name] != undefined)
 				name = baseName + (++count);
 			return name;
 		}

		}
		private const _childListCallbacks:ChildListCallbackInterface = newLinkableChild(this, ChildListCallbackInterface);
		private const _orderedNames:Array = []; // an ordered list of names appearing in _nameToObjectMap
		private const _nameToObjectMap:Object = new Object(); // maps an identifying name to an object
		private const _objectToNameMap:Dictionary = new Dictionary(true); // maps an object to an identifying name
		private const _nameIsLocked:Object = new Object(); // maps an identifying name to a value of true if that name is locked.
		private var _hashMapIsLocked:Boolean = false; // true if the LinkableHashMap is locked.
		private var _typeRestriction:Class = null; // restricts the type of object that can be stored
		private var _typeRestrictionClassName:String = null; // qualified class name of _typeRestriction
		
		/**
		 * This is an interface for adding and removing callbacks that will get triggered immediately

			var name:String;
			var i:int;
			var originalNameCount:int = _orderedNames.length; // remembers how many names existed before appending
			var haveSeen:Object = {}; // to remember which names have been seen in newOrder
			// append each name in newOrder to the end of _orderedNames
			for (i = 0; i < newOrder.length; i++)
			{
