diff --git a/indra/llrender/llrender.cpp b/indra/llrender/llrender.cpp
index 0a1053abc2828af475e3d7e0b5345df0fadaedd3..e701b96a1ed3ff35e8cddbdb1b5333461aff83d2 100644
--- a/indra/llrender/llrender.cpp
+++ b/indra/llrender/llrender.cpp
@@ -93,7 +93,9 @@ static GLenum sGLBlendFactor[] =
 	GL_DST_ALPHA,
 	GL_SRC_ALPHA,
 	GL_ONE_MINUS_DST_ALPHA,
-	GL_ONE_MINUS_SRC_ALPHA
+	GL_ONE_MINUS_SRC_ALPHA,
+
+	GL_ZERO // 'BF_UNDEF'
 };
 
 LLTexUnit::LLTexUnit(S32 index)
@@ -765,8 +767,8 @@ LLRender::LLRender()
 	mCurrAlphaFuncVal = 0.01f;
 	mCurrSceneBlendType = BT_ALPHA;
 
-	mCurrBlendSFactor = BF_ONE;
-	mCurrBlendDFactor = BF_ZERO;
+	mCurrBlendSFactor = BF_UNDEF;
+	mCurrBlendDFactor = BF_UNDEF;
 }
 
 LLRender::~LLRender()
@@ -979,6 +981,8 @@ void LLRender::setAlphaRejectSettings(eCompareFunc func, F32 value)
 
 void LLRender::blendFunc(eBlendFactor sfactor, eBlendFactor dfactor)
 {
+	llassert(sfactor < BF_UNDEF);
+	llassert(dfactor < BF_UNDEF);
 	if (mCurrBlendSFactor != sfactor || mCurrBlendDFactor != dfactor)
 	{
 		mCurrBlendSFactor = sfactor;
diff --git a/indra/llrender/llrender.h b/indra/llrender/llrender.h
index ef18b556e6e0dacd40e3303402abc5642391c607..e9ffba9efe2b34af70658cdce763650eeb2be5c4 100644
--- a/indra/llrender/llrender.h
+++ b/indra/llrender/llrender.h
@@ -270,7 +270,9 @@ class LLRender
 		BF_DEST_ALPHA,
 		BF_SOURCE_ALPHA,
 		BF_ONE_MINUS_DEST_ALPHA,
-		BF_ONE_MINUS_SOURCE_ALPHA
+		BF_ONE_MINUS_SOURCE_ALPHA,
+
+		BF_UNDEF
 	} eBlendFactor;
 
 	LLRender();
@@ -364,8 +366,8 @@ class LLRender
 
 	F32				mMaxAnisotropy;
 
-	U32 mCurrBlendSFactor;
-	U32 mCurrBlendDFactor;
+	eBlendFactor mCurrBlendSFactor;
+	eBlendFactor mCurrBlendDFactor;
 
 	std::list<LLVector3> mUIOffset;
 	std::list<LLVector3> mUIScale;