diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 3e67660865880ffe9176c732b6525808d3e83468..5ad832f6cf439586198ed84295605f35dbdba21b 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -279,6 +279,8 @@
 
 #define JVET_Q0216                                        1 // JVET-Q0216: modification to picture timing SEI message
 
+#define JVET_Q0218_PROPOSAL3                              1 // JVET-Q0218_PROPOSAL3: fix missing inference rule for single_slice_per_subpic_flag
+
 #define APPLY_SBT_SL_ON_MTS                               1 // apply save & load fast algorithm on inter MTS when SBT is on
 
 #define REMOVE_PPS_REXT                                   1  // remove RExt PPS extension
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index cc03904d9e2726e1b8a103e3a6ec8abedee72713..4eb77a6f9dc627e65e40dac520da5688e822c476 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -529,6 +529,12 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS )
     {
       READ_FLAG(uiCode, "single_slice_per_subpic_flag");            pcPPS->setSingleSlicePerSubPicFlag(uiCode == 1);
     }
+#if JVET_Q0218_PROPOSAL3
+    else
+    {
+      pcPPS->setSingleSlicePerSubPicFlag(0);
+    }
+#endif
     if (pcPPS->getRectSliceFlag() & !(pcPPS->getSingleSlicePerSubPicFlag()))
     {
       int32_t tileIdx = 0;