diff --git a/source/Lib/CommonLib/SEINeuralNetworkPostFiltering.cpp b/source/Lib/CommonLib/SEINeuralNetworkPostFiltering.cpp
index 1af50c12a82c711e6eedecbbc0dc9f1f5cadb962..2bcbb11a81af9899805117c34f589f6b9644ec3b 100644
--- a/source/Lib/CommonLib/SEINeuralNetworkPostFiltering.cpp
+++ b/source/Lib/CommonLib/SEINeuralNetworkPostFiltering.cpp
@@ -238,11 +238,17 @@ void SEINeuralNetworkPostFiltering::checkInputPics(
 
   if (nnpfa != nullptr)
   {
+#if JVET_AE0135_NNPF_PIC_RATE_UPSAMPLING_CONSTRAINT
+    int numPicsCurrLayer = 0;
+#endif
     Picture *lastPic = nullptr;
     for (auto pic : m_picList)
     {
       if (pic->layerId == currCodedPic->layerId)
       {
+#if JVET_AE0135_NNPF_PIC_RATE_UPSAMPLING_CONSTRAINT
+        ++numPicsCurrLayer;
+#endif
         if (lastPic == nullptr || (pic->getPOC() > lastPic->getPOC()))
         {
           lastPic = pic;
@@ -265,6 +271,9 @@ void SEINeuralNetworkPostFiltering::checkInputPics(
           numPostRoll = i;
         }
       }
+#if JVET_AE0135_NNPF_PIC_RATE_UPSAMPLING_CONSTRAINT
+      CHECK( numPicsCurrLayer > numInputPics && greaterThan0count > 1, "Disallow generating NNPF output pictures between any particular pair of consecutive input pictures more than once." );
+#endif
     }
 
     int numInferences;
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 19fb632d293b00050d09755fdbec3f80523c91a2..e879dd349b97a48f887022f900214f4665d05d9e 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -65,6 +65,8 @@
 
 #define JVET_AE0141_NNPFC_BUGFIX_COLOURIZATION            1  // JVET-AE0141: Fix a bug in NNPFC SEI message for colourization
 
+#define JVET_AE0135_NNPF_PIC_RATE_UPSAMPLING_CONSTRAINT   1  // JVET_AE0135 item2: On NNPF picture rate upsampling constraint
+
 //########### place macros to be be kept below this line ###############
 
 #define GDR_ENABLED   1