diff --git a/source/Lib/DecoderLib/SEIread.cpp b/source/Lib/DecoderLib/SEIread.cpp
index 235cf10f9f856e7ee6f6828cb88671fd64d800f2..5b649151454bf159ccd0f713786fbb7ae9caaef2 100644
--- a/source/Lib/DecoderLib/SEIread.cpp
+++ b/source/Lib/DecoderLib/SEIread.cpp
@@ -3215,19 +3215,29 @@ void SEIReader::xParseSEINNPostFilterCharacteristics(SEINeuralNetworkPostFilterC
 #if JVET_AF2032_NNPFC_APPLICATION_INFORMATION_SIGNALING
     sei_read_uvlc(pDecodedMessageOutputStream, val, "nnpfc_metadata_extension_num_bits");
     uint32_t metadataExtensionNumBits = val;
-    if (metadataExtensionNumBits > 0 ) 
-    {
+    uint32_t numberExtensionBitsUsed = 0;
+    if ( metadataExtensionNumBits > 0 ) 
+    { 
+      CHECK (val > 4096, "Values of nnpfc_metadata_extension_num_bits greater than 4096 shall not be present in bitstreams");
       if ( sei.m_purpose == 0 )
-      {
+      { 
         sei_read_flag(pDecodedMessageOutputStream, val, "nnpfc_application_purpose_tag_uri_present_flag");
         sei.m_applicationPurposeTagUriPresentFlag = val;
+        numberExtensionBitsUsed++;
         if ( sei.m_applicationPurposeTagUriPresentFlag )
         { 
           std::string val2;
           sei_read_string(pDecodedMessageOutputStream, val2, "nnpfc_application_purpose_tag_uri");
           sei.m_applicationPurposeTagUri = val2;
+          numberExtensionBitsUsed += (static_cast<uint32_t>(sei.m_applicationPurposeTagUri.length() + 1) * 8);
         }
       }
+      uint32_t numberExtensionBitRemaining = metadataExtensionNumBits - numberExtensionBitsUsed;
+      for (uint32_t i = 0; i < numberExtensionBitRemaining; i++)
+      {
+        uint32_t val2;
+        sei_read_code(pDecodedMessageOutputStream, 1, val2, "nnpfc_reserved_metadata_extension");
+      } 
     }
 #else
     sei_read_uvlc(pDecodedMessageOutputStream, val, "nnpfc_metadata_extension_num_bits");  // nnpfc_metadata_extension_num_bits shall be equal to 0 in the current edition
@@ -3551,4 +3561,4 @@ void SEIReader::xParseSEISEIPrefixIndication(SEIPrefixIndication &sei, uint32_t
   }
 }
 
-//! \}
+//! \}
\ No newline at end of file