 		}
 		
 		private var _requestedConfigFile:String;
-		private var _loadFileCallback:Function;
+		private function setRequestedConfigFile(value:String):void
+		{
+			if (_requestedConfigFile == value)
+				return;
+			_requestedConfigFile = value;
+			_loadFileCallbacks.length = 0;
+		}
+		private var _loadFileCallbacks:Array = [];
 		/**
 		 * Loads a session state file from a URL.
 		 * @param url The URL to the session state file (.weave or .xml) specified as a String, a URLRequest, or an Object containing properties "url", "requestHeaders", "method".

				var headers:Object = url['requestHeaders'];
				for (var k:String in headers)
					request.requestHeaders.push(new URLRequestHeader(k, headers[k]));
				_requestedConfigFile = request.url;
			}
			
			_loadFileCallback = callback as Function;
			
			WeaveAPI.URLRequestUtils.getURL(null, request, handleConfigFileDownloaded, handleConfigFileFault, _requestedConfigFile);
		}
		
		private function downloadConfigFile():void
		{
			_loadFileCallback = null;
			if (getFlashVarRecover() || Weave.handleWeaveReload())
			{
				handleConfigFileDownloaded();

				Weave.properties.enableMenuBar.value = false;
				Weave.properties.dashboardMode.value = true;
			}
			WeaveAPI.callExternalWeaveReady();
			while (_loadFileCallbacks.length)
				(_loadFileCallbacks.shift() as Function)();
		}
		private function handleConfigFileFault(event:FaultEvent, fileName:String):void
		{
