diff --git a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs
index 5947afb927..4e2f4e1ba5 100644
--- a/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs
+++ b/OpenSim/Region/Framework/Interfaces/ITerrainModule.cs
@@ -27,6 +27,7 @@
using System.IO;
+using OpenSim.Framework;
using OpenMetaverse;
namespace OpenSim.Region.Framework.Interfaces
@@ -42,7 +43,13 @@ namespace OpenSim.Region.Framework.Interfaces
/// Use this if you change terrain data outside of the terrain module (e.g. in osTerrainSetHeight)
///
void TaintTerrain();
-
+
+ ///
+ /// When a client initially connects, all the terrain must be pushed to the viewer.
+ /// This call causes all the terrain patches to be sent to the client.
+ ///
+ void PushTerrain(IClientAPI pClient);
+
///
/// Load a terrain from a stream.
///
diff --git a/OpenSim/Region/Framework/Scenes/SceneBase.cs b/OpenSim/Region/Framework/Scenes/SceneBase.cs
index f5be7a7c64..9648030206 100644
--- a/OpenSim/Region/Framework/Scenes/SceneBase.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneBase.cs
@@ -211,7 +211,12 @@ namespace OpenSim.Region.Framework.Scenes
/// Client to send to
public virtual void SendLayerData(IClientAPI RemoteClient)
{
- RemoteClient.SendLayerData(Heightmap.GetFloatsSerialised());
+// RemoteClient.SendLayerData(Heightmap.GetFloatsSerialised());
+ ITerrainModule terrModule = RequestModuleInterface();
+ if (terrModule != null)
+ {
+ terrModule.PushTerrain(RemoteClient);
+ }
}
#endregion