             
             // Set the default measured size depending on the
             // applicationDPI
-            if (applicationDPI == DPIClassification.DPI_640)
-            {
-                measuredWidth = 104;
-                measuredHeight = 104;
-            }
-            else if (applicationDPI == DPIClassification.DPI_480)
-            {
-                measuredWidth = 80;
-                measuredHeight = 80;
-            }
-            else if (applicationDPI == DPIClassification.DPI_320)
-            {
-                measuredWidth = 52;
-                measuredHeight = 52;
-            }
-            else if (applicationDPI == DPIClassification.DPI_240)
-            {
-                measuredWidth = 40;
-                measuredHeight = 40;
-            }
-            else if (applicationDPI == DPIClassification.DPI_160)
-            {
-                measuredWidth = 26;
-                measuredHeight = 26;
-            }
-            else if (applicationDPI == DPIClassification.DPI_120)
-            {
-                measuredWidth = 20;
-                measuredHeight = 20;
-            }
-            else
-            {
-                measuredWidth = DEFAULT_MINIMUM_SIZE;
-                measuredHeight = DEFAULT_MINIMUM_SIZE;
-            }
+			//mx:Application does not have an applicationDPI property
+			//In that case, use a default value
+			var dpi:Number;
+			if(FlexGlobals.topLevelApplication.hasOwnProperty("applicationDPI"))
+			{
+				dpi = FlexGlobals.topLevelApplication["applicationDPI"];
+			}
+			if(dpi)
+			{
+				if (dpi == DPIClassification.DPI_640)
+				{
+					measuredWidth = 104;
+					measuredHeight = 104;
+				}
+				else if (dpi == DPIClassification.DPI_480)
+				{
+					measuredWidth = 80;
+					measuredHeight = 80;
+				}
+				else if (dpi == DPIClassification.DPI_320)
+				{
+					measuredWidth = 52;
+					measuredHeight = 52;
+				}
+				else if (dpi == DPIClassification.DPI_240)
+				{
+					measuredWidth = 40;
+					measuredHeight = 40;
+				}
+				else if (dpi == DPIClassification.DPI_160)
+				{
+					measuredWidth = 26;
+					measuredHeight = 26;
+				}
+				else if (dpi == DPIClassification.DPI_120)
+				{
+					measuredWidth = 20;
+					measuredHeight = 20;
+				}
+				else
+				{
+					measuredWidth = DEFAULT_MINIMUM_SIZE;
+					measuredHeight = DEFAULT_MINIMUM_SIZE;
+				}
+			}
+			else
+			{
+				measuredWidth = 20;
+				measuredHeight = 20;
+			}
             
             measuredMinWidth = DEFAULT_MINIMUM_SIZE;
             measuredMinHeight = DEFAULT_MINIMUM_SIZE;

	import flash.utils.Timer;
	
	import mx.core.DPIClassification;
	
	import spark.components.BusyIndicator;
	import spark.skins.ActionScriptSkinBase;

				rotationInterval = 30;
			rotationSpeed = 60;
			
			//mx:Application does not have an applicationDPI property
			//In that case, use a default value
			var dpi:Number;
			if(FlexGlobals.topLevelApplication.hasOwnProperty("applicationDPI"))
			{
				dpi = FlexGlobals.topLevelApplication["applicationDPI"];
			}
			
			if(dpi)
			{
				switch(dpi) 
				{	
					case DPIClassification.DPI_640:
					{
						busyIndicatorDiameter = 144;
						break;
					}
					case DPIClassification.DPI_480:
					{
						busyIndicatorDiameter = 108;
						break;
					}		
					case DPIClassification.DPI_320:
					{
						busyIndicatorDiameter = 72;
						break;
					}
					case DPIClassification.DPI_240:
					{
						busyIndicatorDiameter = 54;
						break;
					}
					case DPIClassification.DPI_120:
					{
						busyIndicatorDiameter = 27;
						break;
					}
					default://160 DPI
					{
						busyIndicatorDiameter = 36;
						break;
					}
				}
			}
			else
			{
				busyIndicatorDiameter = 27;
			}
		}

		private var _hostComponent:spark.components.BusyIndicator;
		
		public function get hostComponent():spark.components.BusyIndicator
