      *  For a faster deceleration, you can switch this to 0.990.
      */
     mx_internal var throwEffectDecelFactor:Number = 0.998;
+    
+    /**
+     *  @private
+     *  Screen DPI to use in pixels/distance calculations  
+     */
+    mx_internal static var effectiveScreenDPI:Number = 0; 
     
     /**
      *  @private

            return new Point(0,0);
        
        // Limit the velocity to an absolute maximum
        var maxPixelsPerMS:Number = MAX_THROW_VELOCITY_IPS * flash.system.Capabilities.screenDPI / 1000;
        var velX:Number = Math.min(maxPixelsPerMS,Math.max(-maxPixelsPerMS,weightedSumX/totalWeight));
        var velY:Number = Math.min(maxPixelsPerMS,Math.max(-maxPixelsPerMS,weightedSumY/totalWeight));
        

        hasFocusableChildren = true;
        focusEnabled = false;
        
        // Store the screen DPI.  If it's zero (probably due to a bug in the runtime), 
        // substitute the runtimeDPI instead.
        if (effectiveScreenDPI == 0)
        {
            effectiveScreenDPI = flash.system.Capabilities.screenDPI;
            if (effectiveScreenDPI == 0 && "runtimeDPI" in FlexGlobals.topLevelApplication)
                effectiveScreenDPI = FlexGlobals.topLevelApplication.runtimeDPI as Number;
        }
        
        addEventListener(Event.ADDED_TO_STAGE, addedToStageHandler);
        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStageHandler);
    }
