diff --git a/GeneralsMD/Code/GameEngine/Source/GameClient/System/ParticleSys.cpp b/GeneralsMD/Code/GameEngine/Source/GameClient/System/ParticleSys.cpp index 7e0be3c505a..f341401d86c 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameClient/System/ParticleSys.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameClient/System/ParticleSys.cpp @@ -1263,10 +1263,16 @@ void ParticleSystem::stop( void ) // ------------------------------------------------------------------------------------------------ void ParticleSystem::destroy( void ) { + if (m_isDestroyed) + { + return; + } + m_isDestroyed = true; if( m_slaveSystem ) { m_slaveSystem->destroy(); // If we don't it will leak forever. We are solely responsible for it. + m_slaveSystem = nullptr; } }