         var preloaderDisplayClass:Class = info()["preloader"] as Class;
 
         // Put cross-domain RSL information in the RSL list.
-        var rslList:Array = [];
+        var rslItemList:Array = [];
         var n:int;
         var i:int;
         if (cdRsls && cdRsls.length > 0)
         {
-            var parentModuleFactory:IFlexModuleFactory = null;
-            if (!isTopLevel())
-            {
-                var request:Request = new Request(Request.GET_PARENT_FLEX_MODULE_FACTORY_REQUEST);
-                dispatchEvent(request); 
-                parentModuleFactory = request.value as IFlexModuleFactory;
-            }
+            if (isTopLevel())
+                rslDataList = cdRsls;
+            else
+                rslDataList = LoaderUtil.processRequiredRSLs(this, cdRsls);
             
             var normalizedURL:String = LoaderUtil.normalizeURL(this.loaderInfo);
             var crossDomainRSLItem:Class = Class(getDefinitionByName("mx.core::CrossDomainRSLItem"));
-            n = cdRsls.length;
+            n = rslDataList.length;
             for (i = 0; i < n; i++)
             {
-                var rslWithFailoverArray:Array = cdRsls[i];
-
-                if (parentModuleFactory &&
-                    LoaderUtil.getRSLLoadData(parentModuleFactory, 
-                                              cdRsls[i][0]["digest"]))
-                {
-                    continue; // if the rsl is already loaded then skip loading it.                    
-                }
-              
+                var rslWithFailovers:Array = rslDataList[i];
+
                 // If crossDomainRSLItem is null, then this is a compiler error. It should not be null.
-                var cdNode:Object = new crossDomainRSLItem(rslWithFailoverArray,
+                var cdNode:Object = new crossDomainRSLItem(rslWithFailovers,
                                                     normalizedURL,
                                                     this);
-                rslList.push(cdNode);               
+                rslItemList.push(cdNode);               
             }
         }
 

     */
    private function preloader_rslCompleteHandler(event:RSLEvent):void
    {
        if (event.loaderInfo)
            preloadedRSLs[event.loaderInfo] = event.url.url;
    }
    
    /**

     */
    public var _resourceBundles:Array;

    /**
     *  @private
     *  Array of RSLData objects that represent the list of RSLs this
     *  module factory is loading.
     */ 
    private var rslDataList:Array;
    
    //--------------------------------------------------------------------------
    //
    //  Overridden properties: DisplayObject
