diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 024fa403de..b1224e1a8a 100755
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -4922,7 +4922,10 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
const LLTextureEntry* te = facep->getTextureEntry();
LLViewerTexture* tex = facep->getTexture();
- if (te->getGlow() >= 1.f/255.f)
+ // More crash avoding ...
+ // if (te->getGlow() >= 1.f/255.f)
+ if (te && te->getGlow() >= 1.f/255.f)
+ //
{
emissive = true;
}
@@ -4983,7 +4986,10 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
}
else
{
- if (te->getColor().mV[3] > 0.f)
+ // Even more crash avoidance ...
+ // if (te->getColor().mV[3] > 0.f)
+ if (te && te->getColor().mV[3] > 0.f)
+ //
{ //only treat as alpha in the pipeline if < 100% transparent
drawablep->setState(LLDrawable::HAS_ALPHA);
}
@@ -5003,7 +5009,10 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
if (gPipeline.canUseWindLightShadersOnObjects()
&& LLPipeline::sRenderBump)
{
- if (LLPipeline::sRenderDeferred && te->getMaterialParams().notNull() && !te->getMaterialID().isNull())
+ // We just skip all of this is there is no te entry. This might get some funny results (which would be a face without te anyway).
+ // if (LLPipeline::sRenderDeferred && te->getMaterialParams().notNull() && !te->getMaterialID().isNull())
+ if (LLPipeline::sRenderDeferred && te && te->getMaterialParams().notNull() && !te->getMaterialID().isNull())
+ //
{
LLMaterial* mat = te->getMaterialParams().get();
if (mat->getNormalID().notNull())