 			_childListCallbacks.runCallbacks(name, null, object);
 
 			// dispose the object AFTER the callbacks know that the object was removed
-			Weave.dispose(object);
+			Weave.dispose(object);
+			
+			resumeCallbacks();
 		}
 
 		public function removeAllObjects():void

			if (Weave.getOwner(object))
				throw new Error("LinkableHashMap cannot accept an object that is already registered with an owner.");
			
			delayCallbacks();
			
			if (object)
			{
				// preserve name order
				var order:Array = _orderedNames.concat();
				if (order.indexOf(name) < 0)
					order.push(name);
				
				// remove any object currently using this name
				removeObject(name);
				// register the object as a child of this LinkableHashMap
				Weave.linkableChild(this, object);
				// save the name-object mappings
				_nameToObjectMap[name] = object;
				_map_objectToNameMap.set(object, name);
				// remember that this name was used.
				_previousNameMap[name] = true;
				
				// preserve name order
				setNameOrder(order);
				// make sure the callback variables signal that the object was added
				_childListCallbacks.runCallbacks(name, object, null);
			}
			else
			{
				removeObject(name);
			}
			
			resumeCallbacks();
		}
		
		public function getName(object:ILinkableObject):String

			var object:ILinkableObject = _nameToObjectMap[name];
			if (object == null)
				return; // do nothing if the name isn't mapped to an object.
			
			delayCallbacks();
			
			//trace(LinkableHashMap, "removeObject",name,object);
			// remove name & associated object
