 		/**
 		 * Called when the hierarchy is downloaded from a URL.
 		 */
-		private function handleHierarchyURLDownload(event:ResultEvent, token:Object = null):void
-		{
-			if (objectWasDisposed(this))
+		private function handleHierarchyURLDownload(event:ResultEvent, url:String):void
+		{
+			if (objectWasDisposed(this) || url != hierarchyURL.value)
 				return;
 			_attributeHierarchy.value = XML(event.result); // this will run callbacks
 		}

		/**
		 * Called when the hierarchy fails to download from a URL.
		 */
		private function handleHierarchyURLDownloadError(event:FaultEvent, token:Object = null):void
		{
			reportError(event, null, token);
		}
		
		public static const ENTITY_ID:String = 'weaveEntityId';

	import weave.api.data.IDataRowSource;
	import weave.api.data.IDataSource;
	import weave.api.data.IQualifiedKey;
	import weave.api.detectLinkableObjectChange;
	import weave.api.disposeObjects;
	import weave.api.newLinkableChild;
	import weave.api.objectWasDisposed;
