diff --git a/source/Lib/DecoderLib/SEIread.cpp b/source/Lib/DecoderLib/SEIread.cpp
index e685c013b8753dd9b484035c9e71dd33e7b2cd0e..c23f7891ede80a5311330751a9d0905524aef336 100644
--- a/source/Lib/DecoderLib/SEIread.cpp
+++ b/source/Lib/DecoderLib/SEIread.cpp
@@ -675,12 +675,12 @@ void SEIReader::xParseSEIProcessingOrder(SEIProcessingOrderInfo& sei, uint32_t p
       sei_read_code(decodedMessageOutputStream, 8, val, "po_num_t35_byte[i]");
       sei.m_posPrefixByte[i].resize(val);
       b ++;
-      for (uint32_t j = 0; j < val; j++)
+      for (uint32_t j = 0; j < sei.m_posPrefixByte[i].size(); j++)
       {
         sei_read_code(decodedMessageOutputStream, 8, val, "po_t35_byte[i][j]");
         sei.m_posPrefixByte[i][j] = val;
       }
-      b += val;
+      b += (uint32_t)sei.m_posPrefixByte[i].size();
     }
     sei_read_code(decodedMessageOutputStream, 16, val, "po_sei_processing_order[i]");
     sei.m_posProcessingOrder[i] = val;