diff --git a/OpenSim/Region/Application/OpenSimMain.cs b/OpenSim/Region/Application/OpenSimMain.cs index fd8b941d1c..ed16cd4ca8 100644 --- a/OpenSim/Region/Application/OpenSimMain.cs +++ b/OpenSim/Region/Application/OpenSimMain.cs @@ -346,12 +346,12 @@ namespace OpenSim UDPServer udpServer; Scene scene = SetupScene(regionInfo, out udpServer); - m_moduleLoader.InitialiseSharedModules(scene); MainLog.Instance.Verbose("MODULES", "Loading Region's Modules"); m_moduleLoader.PickupModules(scene, "."); m_moduleLoader.PickupModules(scene, "ScriptEngines"); + m_moduleLoader.InitialiseSharedModules(scene); scene.SetModuleInterfaces(); //Server side object editing permissions checking diff --git a/OpenSim/Region/Environment/ModuleLoader.cs b/OpenSim/Region/Environment/ModuleLoader.cs index fc11a502e9..1bab2e5aee 100644 --- a/OpenSim/Region/Environment/ModuleLoader.cs +++ b/OpenSim/Region/Environment/ModuleLoader.cs @@ -121,7 +121,10 @@ namespace OpenSim.Region.Environment IRegionModule module = LoadModule(dllName, moduleName); if (module != null) { - m_loadedSharedModules.Add(module.Name, module); + if (!m_loadedSharedModules.ContainsKey(module.Name)) + { + m_loadedSharedModules.Add(module.Name, module); + } } } @@ -139,6 +142,11 @@ namespace OpenSim.Region.Environment m_log.Verbose("MODULES", " [{0}]: Initializing.", module.Name); InitializeModule(module, scene); } + else + { + m_log.Verbose("MODULES", " [{0}]: Loading Shared Module.", module.Name); + LoadSharedModule(dllName, module.Name); + } } } }