Assert Failed in class TRangedForIterator : public TIterator

I’m seeing an assert fire in:

class TRangedForIterator : public TIterator

			friend FORCEINLINE bool operator!=(const TRangedForIterator& Lhs, const TRangedForIterator& Rhs)
			{
				// We only need to do the check in this operator, because no other operator will be
				// called until after this one returns.
				//
				// Also, we should only need to check one side of this comparison - if the other iterator isn't
				// even from the same array then the compiler has generated bad code.
----->				ensureMsgf(Lhs.Array.Num() == Lhs.InitialNum, TEXT("Container has changed during ranged-for iteration!"));
				return *(TIterator*)&Lhs != *(TIterator*)&Rhs;
			}

Callstack:

>	[Inline Frame] UE4Editor-Engine.dll!!=::__l2::<lambda_7c1e2813b7c747906f9212ce564a9cb2>::operator()() Line 884	C++
 	[Inline Frame] UE4Editor-Engine.dll!operator!=(const TSparseArray<TSetElement<FActiveSound *>,TSparseArrayAllocator<TSizedDefaultAllocator<32>,FDefaultBitArrayAllocator> >::TRangedForIterator &) Line 884	C++
 	[Inline Frame] UE4Editor-Engine.dll!operator!=(const TSet<FActiveSound *,DefaultKeyFuncs<FActiveSound *,0>,FDefaultSetAllocator>::TBaseIterator<0,1> &) Line 1139	C++
 	UE4Editor-Engine.dll!FAudioDevice::ProcessingPendingActiveSoundStops(bool bForceDelete) Line 4452	C++
 	UE4Editor-Engine.dll!FAudioDevice::Update(bool bGameTicking) Line 3975	C++
 	UE4Editor-Engine.dll!FAudioDeviceManager::UpdateActiveAudioDevices(bool bGameTicking) Line 625	C++
 	UE4Editor-UnrealEd.dll!UEditorEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 1862	C++
 	UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick(float DeltaSeconds, bool bIdleMode) Line 407	C++
 	UE4Editor-Win64-DebugGame.exe!FEngineLoop::Tick() Line 4257	C++
 	[Inline Frame] UE4Editor-Win64-DebugGame.exe!EngineTick() Line 62	C++
 	UE4Editor-Win64-DebugGame.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 173	C++
 	UE4Editor-Win64-DebugGame.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 265	C++
 	[External Code]	

"Container has changed during ranged-for iteration!"

… but as far as I’m able to determine the only place that adds elements to this set is also being run on the same thread (Main Thread), and is within engine code.

I’m at a bit of a loss, I can’t see how this array is being modified outside of the loop… :S

Has anyone suffered the same or can offer some info on how to track that down?

Cheers
P