diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp
index 333c7b98ca..028c82c1ce 100644
--- a/indra/newview/llviewerpartsim.cpp
+++ b/indra/newview/llviewerpartsim.cpp
@@ -279,11 +279,15 @@ void LLViewerPartGroup::updateParticles(const F32 lastdt)
LLVector3 gravity(0.f, 0.f, GRAVITY);
+ // FIRE-34600 off by one particle count triggering bugsplat (LL_ERR)
+ S32 end = (S32) mParticles.size();
LLViewerPartSim::checkParticleCount(static_cast(mParticles.size()));
+ std::atomic_signal_fence(std::memory_order_seq_cst);
+ //
LLViewerCamera* camera = LLViewerCamera::getInstance();
LLViewerRegion *regionp = getRegion();
- S32 end = (S32) mParticles.size();
+ //S32 end = (S32) mParticles.size();// FIRE-34600 off by one particle count triggering bugsplat (LL_ERR)
for (S32 i = 0 ; i < (S32)mParticles.size();)
{
LLVector3 a(0.f, 0.f, 0.f);