diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index 18f314c470bd93dcf9e71057dac12ff1d2cbc913..56cd2438e39e5b16feda2b20e969a73c71a6702e 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -2920,14 +2920,23 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag
     {
       picHeader->setEnableTMVPFlag(false);
     }
-#if R0324_PH_SYNTAX_CONDITION_MODIFY
-    if (picHeader->getEnableTMVPFlag() && pps->getRplInfoInPhFlag() && picHeader->getRPL(1)->getNumRefEntries() > 0)
-#else
+
     if (picHeader->getEnableTMVPFlag() && pps->getRplInfoInPhFlag())
-#endif
     {
+#if R0324_PH_SYNTAX_CONDITION_MODIFY
+      if (picHeader->getRPL(1)->getNumRefEntries() > 0)
+      {
+        READ_CODE(1, uiCode, "ph_collocated_from_l0_flag");
+        picHeader->setPicColFromL0Flag(uiCode);
+      }
+      else
+      {
+        picHeader->setPicColFromL0Flag(1);
+      }
+#else
       READ_CODE( 1, uiCode, "ph_collocated_from_l0_flag");
       picHeader->setPicColFromL0Flag(uiCode);
+#endif
       if ((picHeader->getPicColFromL0Flag() == 1 && picHeader->getRPL(0)->getNumRefEntries() > 1) ||
         (picHeader->getPicColFromL0Flag() == 0 && picHeader->getRPL(1)->getNumRefEntries() > 1))
       {
@@ -2939,20 +2948,13 @@ void HLSyntaxReader::parsePictureHeader( PicHeader* picHeader, ParameterSetManag
         picHeader->setColRefIdx(0);
       }
     }
-#if R0324_PH_SYNTAX_CONDITION_MODIFY
-    else if (picHeader->getEnableTMVPFlag() && pps->getRplInfoInPhFlag() && picHeader->getRPL(1)->getNumRefEntries() == 0)
-    {
-      picHeader->setPicColFromL0Flag(1);
-    }
-#else
     else
     {
       picHeader->setPicColFromL0Flag(0);
     }
-#endif
 
   // mvd L1 zero flag
-    #if R0324_PH_SYNTAX_CONDITION_MODIFY
+#if R0324_PH_SYNTAX_CONDITION_MODIFY
     if (!pps->getRplInfoInPhFlag() || picHeader->getRPL(1)->getNumRefEntries() > 0)
     {
       READ_FLAG(uiCode, "pic_mvd_l1_zero_flag");
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index 76a6a1bc695e3b05b2efec27035edcd67cb00468..fd3581ebe37f3f92c2095d9362e9669a275fd4d8 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -1868,13 +1868,16 @@ void HLSWriter::codePictureHeader( PicHeader* picHeader, bool writeRbspTrailingB
     if (sps->getSPSTemporalMVPEnabledFlag())
     {
       WRITE_FLAG( picHeader->getEnableTMVPFlag(), "ph_temporal_mvp_enabled_flag" );
-#if R0324_PH_SYNTAX_CONDITION_MODIFY
-      if (picHeader->getEnableTMVPFlag() && pps->getRplInfoInPhFlag() && picHeader->getRPL(1)->getNumRefEntries() > 0)
-#else
       if (picHeader->getEnableTMVPFlag() && pps->getRplInfoInPhFlag())
-#endif
       {
+#if R0324_PH_SYNTAX_CONDITION_MODIFY
+        if (picHeader->getRPL(1)->getNumRefEntries() > 0)
+        {
+          WRITE_CODE(picHeader->getPicColFromL0Flag(), 1, "ph_collocated_from_l0_flag");
+        }
+#else
         WRITE_CODE(picHeader->getPicColFromL0Flag(), 1, "ph_collocated_from_l0_flag");
+#endif
         if ((picHeader->getPicColFromL0Flag() && picHeader->getRPL(0)->getNumRefEntries() > 1) ||
           (!picHeader->getPicColFromL0Flag() && picHeader->getRPL(1)->getNumRefEntries() > 1))
         {