diff --git a/apps/opencs/view/render/cell.cpp b/apps/opencs/view/render/cell.cpp
index a0d0f6e71b..ae2fad95ad 100644
--- a/apps/opencs/view/render/cell.cpp
+++ b/apps/opencs/view/render/cell.cpp
@@ -78,7 +78,7 @@ CSVRender::Cell::Cell (CSMWorld::Data& data, Ogre::SceneManager *sceneManager,
     if (landIndex != -1)
     {
         const ESM::Land* esmLand = land.getRecord(mId).get().mLand.get();
-        if(esmLand)
+        if(esmLand && esmLand->mDataTypes&ESM::Land::DATA_VHGT)
         {
             mTerrain.reset(new Terrain::TerrainGrid(sceneManager, new TerrainStorage(mData), Element_Terrain, true,
                                                     Terrain::Align_XY));
diff --git a/components/esmterrain/storage.cpp b/components/esmterrain/storage.cpp
index d4a0a0df2c..e925a1e17d 100644
--- a/components/esmterrain/storage.cpp
+++ b/components/esmterrain/storage.cpp
@@ -383,7 +383,7 @@ namespace ESMTerrain
         int cellY = std::floor(worldPos.y / 8192.f);
 
         ESM::Land* land = getLand(cellX, cellY);
-        if (!land)
+        if (!land || !(land->mDataTypes&ESM::Land::DATA_VHGT))
             return -2048;
 
         // Mostly lifted from Ogre::Terrain::getHeightAtTerrainPosition