diff --git a/OpenSim/Region/Environment/Scenes/Scene.cs b/OpenSim/Region/Environment/Scenes/Scene.cs
index d75a7f374f..f9fbe875fd 100644
--- a/OpenSim/Region/Environment/Scenes/Scene.cs
+++ b/OpenSim/Region/Environment/Scenes/Scene.cs
@@ -157,7 +157,7 @@ namespace OpenSim.Region.Environment.Scenes
MainLog.Instance.Verbose("Creating LandMap");
- Terrain = new TerrainEngine();
+ Terrain = new TerrainEngine((int)this.RegionInfo.RegionLocX, (int)this.RegionInfo.RegionLocY);
ScenePresence.LoadAnims();
diff --git a/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs b/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs
index f37d625afd..b54f4fe263 100644
--- a/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs
+++ b/OpenSim/Region/Terrain.BasicTerrain/TerrainEngine.cs
@@ -87,15 +87,25 @@ namespace OpenSim.Region.Terrain
int w, h;
+ ///
+ /// Used to determine what offset to use when loading singular heightmaps across multiple sims
+ ///
+ private int offsetX;
+ private int offsetY;
+
+
///
/// Generate a new TerrainEngine instance and creates a new heightmap
///
- public TerrainEngine()
+ public TerrainEngine(int X, int Y)
{
w = 256;
h = 256;
heightmap = new Channel(w, h);
+ offsetX = X;
+ offsetY = Y;
+
tainted++;
}