 		public function destroy() : void
 		{
 			m_bitmapDataReference.dispose();
+			m_loader = null;
+			m_targets = null;
 		}
 		
 		public function addTarget(target : BitmapResource) : void

			m_loader.setRetryTimes(Math.max(m_loader.retryTimes(), target.retryTimes()));
			m_loader.setTimeout(Math.max(m_loader.timeout(), target.timeout()));
			m_loader.setForceReload(m_loader.forceReload() || target.forceReload());
			target.addEventListener(Event.CANCEL, target_cancel);
			
			if (target.cacheBitmap() && !target.forceReload())
			{

			}
			m_targets = null;
			
			dispatchEvent(e);
		}
		
		protected function loader_progress(e:ResourceEvent) : void
		{
			if (!m_targets || !m_loader)
			{
				return;
			}
			var i : int = m_targets.length;
			while (i--)
			{
				var target : BitmapResource = BitmapResource(m_targets[i]);
				target.setBytesLoaded(m_loader.bytesLoaded());
				target.setBytesTotal(m_loader.bytesTotal());
				target.updateProgress();
