diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index e9e13a403f9e00a6059ccf563e741a9add7985e1..7c1e7f15279d1a55efee0b984db5d137c73adf2d 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -91,7 +91,7 @@
 
 #define JVET_R0371_MAX_NUM_SUB_BLK_MRG_CAND               1 // JVET-R0371: set the range of max number of subblock based merge candidate to 0 to 5 - sps_sbtmvp_enabled_flag. 
 
-#define JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP          1 // JVET-R0113: Conditional signaling of loop_filter_across_tiles_enabled_flag and the 6 PPS PH/SH location flags
+#define JVET_R0113_AND_JVET_R0106_PPS_CLEANUP             1 // JVET-R0113 and JVET-R0106: Cleanup in Picture Parameter Set
 
 #define JVET_R0233_CCALF_LINE_BUFFER_REDUCTION            1 // JVET-R0233 method 2: Line buffer reduction for CCALF
 
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index 4298e0aedfe072571aa692838c19167b44f78b58..5ce2ea83f0d8e2b26443915eb1aa735ead42f242 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -538,14 +538,14 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS )
     // rectangular slice signalling
     if (pcPPS->getNumTiles() > 1)
     {
-#if JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
       READ_CODE(1, uiCode, "pps_loop_filter_across_tiles_enabled_flag");    pcPPS->setLoopFilterAcrossTilesEnabledFlag(uiCode == 1);
 #endif
       READ_CODE(1, uiCode, "rect_slice_flag");
     }
     else
     {
-#if JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
       pcPPS->setLoopFilterAcrossTilesEnabledFlag(true);
 #endif
       uiCode = 1;
@@ -679,7 +679,7 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS )
       pcPPS->setSliceTileIdx(pcPPS->getNumSlicesInPic()-1, tileIdx );
     }
 
-#if !JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if !JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
     // loop filtering across slice/tile controls
     READ_CODE(1, uiCode, "loop_filter_across_tiles_enabled_flag");    pcPPS->setLoopFilterAcrossTilesEnabledFlag( uiCode == 1 );
 #endif
@@ -808,6 +808,17 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS )
   {
     READ_FLAG( uiCode, "deblocking_filter_override_enabled_flag" );    pcPPS->setDeblockingFilterOverrideEnabledFlag( uiCode ? true : false );
     READ_FLAG( uiCode, "pps_deblocking_filter_disabled_flag" );        pcPPS->setPPSDeblockingFilterDisabledFlag(uiCode ? true : false );
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
+    if (!pcPPS->getNoPicPartitionFlag() && pcPPS->getDeblockingFilterOverrideEnabledFlag())
+    {
+      READ_FLAG(uiCode, "pps_dbf_info_in_ph_flag");
+      pcPPS->setDbfInfoInPhFlag(uiCode ? true : false);
+    }
+    else
+    {
+      pcPPS->setDbfInfoInPhFlag(false);
+    }
+#endif
     if(!pcPPS->getPPSDeblockingFilterDisabledFlag())
     {
       READ_SVLC( iCode, "pps_beta_offset_div2" );                    pcPPS->setDeblockingFilterBetaOffsetDiv2( iCode );
@@ -838,9 +849,12 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS )
   else
   {
     pcPPS->setDeblockingFilterOverrideEnabledFlag(false);
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
+    pcPPS->setDbfInfoInPhFlag(false);
+#endif
   }
 
-#if JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
   if (!pcPPS->getNoPicPartitionFlag())
   {
     READ_FLAG(uiCode, "pps_rpl_info_in_ph_flag");                    pcPPS->setRplInfoInPhFlag(uiCode ? true : false);
@@ -849,15 +863,6 @@ void HLSyntaxReader::parsePPS( PPS* pcPPS )
   {
     pcPPS->setRplInfoInPhFlag(false);
   }
-  if(!pcPPS->getNoPicPartitionFlag() && pcPPS->getDeblockingFilterOverrideEnabledFlag())
-  {
-    READ_FLAG(uiCode, "pps_dbf_info_in_ph_flag");
-    pcPPS->setDbfInfoInPhFlag(uiCode ? true : false);
-  }
-  else
-  {
-    pcPPS->setDbfInfoInPhFlag(false);
-  }
   if (!pcPPS->getNoPicPartitionFlag())
   {
     READ_FLAG(uiCode, "pps_sao_info_in_ph_flag");                    pcPPS->setSaoInfoInPhFlag(uiCode ? true : false);
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index 9f2c3621191d332b20625c8179c700731a499a00..0be46d5ce044fa306753e3a1862ee937b6a8dbd6 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -342,7 +342,7 @@ void HLSWriter::codePPS( const PPS* pcPPS )
     // rectangular slice signalling
     if (pcPPS->getNumTiles() > 1)
     {
-#if JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
       WRITE_FLAG(pcPPS->getLoopFilterAcrossTilesEnabledFlag(), "pps_loop_filter_across_tiles_enabled_flag");
 #endif
       WRITE_FLAG(pcPPS->getRectSliceFlag() ? 1 : 0, "rect_slice_flag");
@@ -409,7 +409,7 @@ void HLSWriter::codePPS( const PPS* pcPPS )
       }
     }
 
-#if !JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if !JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
     // loop filtering across slice/tile controls
     WRITE_FLAG( pcPPS->getLoopFilterAcrossTilesEnabledFlag(), "loop_filter_across_tiles_enabled_flag");
 #endif
@@ -469,6 +469,12 @@ void HLSWriter::codePPS( const PPS* pcPPS )
   {
     WRITE_FLAG( pcPPS->getDeblockingFilterOverrideEnabledFlag() ? 1 : 0,  "deblocking_filter_override_enabled_flag" );
     WRITE_FLAG( pcPPS->getPPSDeblockingFilterDisabledFlag() ? 1 : 0,      "pps_deblocking_filter_disabled_flag" );
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
+    if (!pcPPS->getNoPicPartitionFlag() && pcPPS->getDeblockingFilterOverrideEnabledFlag())
+    {
+      WRITE_FLAG(pcPPS->getDbfInfoInPhFlag() ? 1 : 0, "pps_dbf_info_in_ph_flag");
+    }
+#endif
     if(!pcPPS->getPPSDeblockingFilterDisabledFlag())
     {
       WRITE_SVLC( pcPPS->getDeblockingFilterBetaOffsetDiv2(),             "pps_beta_offset_div2" );
@@ -480,14 +486,10 @@ void HLSWriter::codePPS( const PPS* pcPPS )
     }
   }
 
-#if JVET_R0113_PICTURE_PARAMETER_SET_CLEANUP
+#if JVET_R0113_AND_JVET_R0106_PPS_CLEANUP
   if (!pcPPS->getNoPicPartitionFlag())
   {
     WRITE_FLAG(pcPPS->getRplInfoInPhFlag() ? 1 : 0, "pps_rpl_info_in_ph_flag");
-    if (pcPPS->getDeblockingFilterOverrideEnabledFlag())
-    {
-      WRITE_FLAG(pcPPS->getDbfInfoInPhFlag() ? 1 : 0, "pps_dbf_info_in_ph_flag");
-    }
     WRITE_FLAG(pcPPS->getSaoInfoInPhFlag() ? 1 : 0, "pps_sao_info_in_ph_flag");
     WRITE_FLAG(pcPPS->getAlfInfoInPhFlag() ? 1 : 0, "pps_alf_info_in_ph_flag");
     if ((pcPPS->getUseWP() || pcPPS->getWPBiPred()) && pcPPS->getRplInfoInPhFlag())