 				}
 				else
 				{
-					var fqcn : String = getQualifiedClassName(symbol);
-					log('w Unable to use attach:// procotol. Static property ' + pieces.join('/') + ' on Class ' +
-							className + ' has type ' + fqcn + ', which is not supported by ImageResource');
+					logUnsupportedTypeMessage(symbol);
 					onData(false);
 					return;
 				}

			// asset from library
			if (m_url.indexOf('attach://') == 0)
			{
				//remove protocol
				var symbolId:String = m_url.substr(9);
				m_attachMode = true;

				//get FQCN name of assets class that contains the requested symbol
				var pieces:Array = symbolId.split('/');
				var className : String = pieces.shift();
	            try
	            {
	                var symbol : Object = getDefinitionByName(className);
	            }
				catch (e : Error)
				{
					log('w Unable to use attach:// procotol. Symbol ' + symbolId + ' not found or not of type Class');
					onData(false);
	            }
				
				//iterate over remaining path parts, getting nested symbols from the assets class
				for (var i:int = 0; i < pieces.length; i++)
				{
					symbol = symbol[pieces[i]];
					if (!symbol)
					{
						log('w Unable to use attach:// procotol! Static property ' + pieces.join('/') +
								' not found on Class ' + className);
						onData(false);
						return;
					}
				}
				if (!(symbol is Class))
				{
					log('w Unable to use attach:// procotol. Static property ' + pieces.join('/') +
							' on Class ' + className + ' is not of type Class.');
					onData(false);
					return;
				}

	import flash.system.Security;
	import flash.utils.ByteArray;
	import flash.utils.Timer;

	public class ImageResource extends AbstractResource
	{
