diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp
index 71e712d6c9446de4d1d39d735dc42338997d243e..d64337d0800655a68540aa28f700f50e1b71eaa7 100644
--- a/source/Lib/DecoderLib/DecLib.cpp
+++ b/source/Lib/DecoderLib/DecLib.cpp
@@ -1453,6 +1453,18 @@ void DecLib::resetPictureSeiNalus()
   }
 }
 
+/**
+ - Reset list of Prefix SEI NAL units from the current picture
+ */
+void DecLib::resetPrefixSeiNalus()
+{
+  while (!m_prefixSEINALUs.empty())
+  {
+    delete m_prefixSEINALUs.front();
+    m_prefixSEINALUs.pop_front();
+  }
+}
+
 void DecLib::checkSeiContentInAccessUnit()
 {
   if (m_accessUnitSeiNalus.empty())
@@ -2926,6 +2938,7 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
     resetAccessUnitApsNals();
     resetAccessUnitPicInfo();
     resetPictureUnitNals();
+    resetPrefixSeiNalus();
     m_maxDecSubPicIdx = 0;
     m_maxDecSliceAddrInSubPic = -1;
     return false;
diff --git a/source/Lib/DecoderLib/DecLib.h b/source/Lib/DecoderLib/DecLib.h
index 1f38522bfeb22a8d1c7ce39ab0896c9911224560..ca18d1ed490c0b28be58e430c2c9a1e04b8aacd8 100644
--- a/source/Lib/DecoderLib/DecLib.h
+++ b/source/Lib/DecoderLib/DecLib.h
@@ -291,6 +291,7 @@ public:
   void resetIsFirstAuInCvs();
   void checkSeiInPictureUnit();
   void resetPictureSeiNalus();
+  void resetPrefixSeiNalus();
   bool isSliceNaluFirstInAU( bool newPicture, InputNALUnit &nalu );
   void processSuffixApsNalus();