diff --git a/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp b/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp index f8cc13daf..d31da5ffc 100644 --- a/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp +++ b/src/core/hle/DSOUND/DirectSound/DSStream_PacketManager.cpp @@ -308,6 +308,8 @@ bool DSStream_Packet_Process( } return 0; } + //the iterator might be invalidated, so we update it again. + packetCurrent = pThis->Host_BufferPacketArray.begin(); #if 0 // Extend debug verification EmuLog(LOG_LEVEL::DEBUG, "nextBuffer: %08X; packetCurrent->bufPlayed: %08X; bufPlayed: %08X;\n", packetCurrent._Ptr,