diff --git a/.hgtags b/.hgtags
index f9e78d6809c8c4282af09d323f3f860fa5e53873..3fd685eda0ff2f9175a260a236bf0985553386bb 100644
--- a/.hgtags
+++ b/.hgtags
@@ -342,5 +342,7 @@ eb539c65e6ee26eea2bf373af2d0f4b52dc91289 DRTVWR-177
 4ad8a3afe40e0200309e3ada68932c4295ac2795 DRTVWR-179
 a8057e1b9a1246b434a27405be35e030f7d28b0c 3.3.4-beta3
 4281aa899fb2cedb7a9ca7ce91c5c29d4aa69594 DRTVWR-180
+9cd174d3a54d93d409a7c346a15b8bfb40fc58f4 DRTVWR-184
 5c08e1d8edd871807153603b690e3ee9dbb548aa DRTVWR-183
 6c75f220b103db1420919c8b635fe53e2177f318 3.3.4-beta4
+ab2ffc547c8a8950ff187c4f6c95e5334fab597b 3.3.4-beta5
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index f31f2320ba48a184ef508a9d976125d849847d26..d11f0bc351f842274dcd0a33041278202ee583e3 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -1883,6 +1883,9 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color)
 		if (color.mV[3] != old_alpha)
 		{
 			gPipeline.markTextured(mDrawable);
+			//treat this alpha change as an LoD update since render batches may need to get rebuilt
+			mLODChanged = TRUE;
+			gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
 		}
 		retval = LLPrimitive::setTEColor(te, color);
 		if (mDrawable.notNull() && retval)
@@ -1890,12 +1893,6 @@ S32 LLVOVolume::setTEColor(const U8 te, const LLColor4& color)
 			// These should only happen on updates which are not the initial update.
 			mDrawable->setState(LLDrawable::REBUILD_COLOR);
 			dirtyMesh();
-
-			if (old_alpha >= 1.f || color.mV[3] <= 0.f)
-			{ //treat this alpha change as an LoD update since render batches will need to get rebuilt
-				mLODChanged = TRUE;
-				gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, FALSE);
-			}
 		}
 	}