 		{
 			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

			_nameToObjectMap[name] = object;
			_objectToNameMap[object] = name;
			// add the name to the end of _orderedNames
			_orderedNames.push(name);
			// remember that this name was used
			_previousNameMap[name] = true;

			// make sure the callback variables signal that the object was added
			_childListCallbacks.runCallbacks(name, object, null);
