diff --git a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs
index 17edb67d18..8f38a2978b 100644
--- a/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs
+++ b/OpenSim/ApplicationPlugins/RegionModulesController/RegionModulesControllerPlugin.cs
@@ -509,6 +509,8 @@ namespace OpenSim.ApplicationPlugins.RegionModulesController
{
module.RegionLoaded(scene);
}
+
+ scene.AllModulesLoaded();
}
public void RemoveRegionFromModules (Scene scene)
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 4e629dafc9..32b45ac85f 100755
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -1243,13 +1243,21 @@ namespace OpenSim.Region.Framework.Scenes
get { return m_sceneGraph; }
}
- protected virtual void RegisterDefaultSceneEvents()
+ ///
+ /// Called by the module loader when all modules are loaded, after each module's
+ /// RegionLoaded hook is called. This is the earliest time where RequestModuleInterface
+ /// may be used.
+ ///
+ public void AllModulesLoaded()
{
IDialogModule dm = RequestModuleInterface();
if (dm != null)
m_eventManager.OnPermissionError += dm.SendAlertToUser;
+ }
+ protected virtual void RegisterDefaultSceneEvents()
+ {
m_eventManager.OnSignificantClientMovement += HandleOnSignificantClientMovement;
}