     {
         if (!event.isResourceModule && event.loaderInfo)
         {
-            var rsl:Array = rslDataList[event.rslIndex];
+            var rsl:Vector.<RSLData> = Vector.<RSLData>(rslDataList[event.rslIndex]);
             var moduleFactory:IFlexModuleFactory = this;
             if (rsl && rsl[0].moduleFactory)
                 moduleFactory = rsl[0].moduleFactory; 
 
             if (moduleFactory == this)
                 preloadedRSLs[event.loaderInfo] =  rsl;
-            else if ("addPreloadedRSL" in moduleFactory)
-                moduleFactory["addPreloadedRSL"](event.loaderInfo, rsl);
+            else
+                moduleFactory.addPreloadedRSL(event.loaderInfo, rsl);
         }
     }
     

    //----------------------------------
    
    /**
     *  The RSLs loaded by this SystemManager or FlexModuleFactory before the
     *  application starts. RSLs loaded by the application are not included in 
     *  this list. This dictionary may also include RSLs loaded into this 
     *  module factory's application domain by other modules or 
     *  sub-applications. 
     * 
     *  Information about preloadedRSLs is stored in a Dictionary. The key is
     *  the RSL's LoaderInfo. The value is the RSL's RSLData.
     */
    public function  get preloadedRSLs():Dictionary
    {

    }
    
    /**
     *  @inheritDoc 
     *  
     *  @langversion 3.0
     *  @playerversion Flash 9
     *  @playerversion AIR 1.1
     *  @productversion Flex 4.5
     */ 
    public function addPreloadedRSL(loaderInfo:LoaderInfo, rsl:Vector.<RSLData>):void
    {
        preloadedRSLs[loaderInfo] = rsl;
        if (hasEventListener(RSLEvent.RSL_ADD_PRELOADED))
