diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index 8fcd67b77fd48ddada3e5feb8e5c0b3ec212cd9f..b6e895e94bd7ba445661e779ac46fafa32a928e3 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -154,7 +154,6 @@
 
 
 
-#define JVET_Q0787_SUBPIC                                 1 // JVET-Q0787: fix subpicture location signalling
 
 #define JVET_Q0400_EXTRA_BITS                             1 // JVET-Q0400: reserved bits for future extensions
 
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index f25aa754820496a80a2ea676b6e10cc6df04522b..31751274277a868963104c40c109a01a183abfdc 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -1358,7 +1358,6 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
     {
     for (int picIdx = 0; picIdx < pcSPS->getNumSubPics(); picIdx++)
     {
-#if JVET_Q0787_SUBPIC
 #if JVET_Q0222_SUBPICTURE_SIGNALLING
       if ((picIdx > 0) && (pcSPS->getMaxPicWidthInLumaSamples() > pcSPS->getCTUSize()))
 #else
@@ -1403,28 +1402,6 @@ void HLSyntaxReader::parseSPS(SPS* pcSPS)
       {
         pcSPS->setSubPicHeight(picIdx, (pcSPS->getMaxPicHeightInLumaSamples() + pcSPS->getCTUSize() - 1) /pcSPS->getCTUSize() - pcSPS->getSubPicCtuTopLeftY(picIdx));
       }
-#else
-#if JVET_Q0222_SUBPICTURE_SIGNALLING
-      if (picIdx > 0)
-      {
-#endif
-      READ_CODE(std::max(1, ceilLog2(((pcSPS->getMaxPicWidthInLumaSamples() + pcSPS->getCTUSize() - 1) >> floorLog2(pcSPS->getCTUSize())))), uiCode, "subpic_ctu_top_left_x[ i ]");
-      pcSPS->setSubPicCtuTopLeftX(picIdx, uiCode);
-      READ_CODE(std::max(1, ceilLog2(((pcSPS->getMaxPicHeightInLumaSamples() + pcSPS->getCTUSize() - 1) >> floorLog2(pcSPS->getCTUSize())))), uiCode, "subpic_ctu_top_left_y[ i ]");
-      pcSPS->setSubPicCtuTopLeftY(picIdx, uiCode);
-#if JVET_Q0222_SUBPICTURE_SIGNALLING
-      }
-      else
-      {
-        pcSPS->setSubPicCtuTopLeftX(picIdx, 0);
-        pcSPS->setSubPicCtuTopLeftY(picIdx, 0);
-      }
-#endif
-      READ_CODE(std::max(1, ceilLog2(((pcSPS->getMaxPicWidthInLumaSamples() + pcSPS->getCTUSize() - 1) >> floorLog2(pcSPS->getCTUSize())))), uiCode, "subpic_width_minus1[ i ]");
-      pcSPS->setSubPicWidth(picIdx, uiCode + 1);
-      READ_CODE(std::max(1, ceilLog2(((pcSPS->getMaxPicHeightInLumaSamples() + pcSPS->getCTUSize() - 1) >> floorLog2(pcSPS->getCTUSize())))), uiCode, "subpic_height_minus1[ i ]");
-      pcSPS->setSubPicHeight(picIdx, uiCode + 1);
-#endif
       READ_FLAG(uiCode, "subpic_treated_as_pic_flag[ i ]");
       pcSPS->setSubPicTreatedAsPicFlag(picIdx, uiCode);
       READ_FLAG(uiCode, "loop_filter_across_subpic_enabled_flag[ i ]");
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index bf0f2b259e2b081397ab07985859c4a5eeed1ec2..82af1c205b4e0d43bcbc5a572d3a7471cb2e422f 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -845,7 +845,6 @@ void HLSWriter::codeSPS( const SPS* pcSPS )
     {
     for (int picIdx = 0; picIdx < pcSPS->getNumSubPics(); picIdx++)
     {
-#if JVET_Q0787_SUBPIC
 #if JVET_Q0222_SUBPICTURE_SIGNALLING
       if ((picIdx > 0) && (pcSPS->getMaxPicWidthInLumaSamples() > pcSPS->getCTUSize()))
 #else
@@ -870,19 +869,6 @@ void HLSWriter::codeSPS( const SPS* pcSPS )
       {
         WRITE_CODE( pcSPS->getSubPicHeight(picIdx) - 1,  ceilLog2(( pcSPS->getMaxPicHeightInLumaSamples() +  pcSPS->getCTUSize() - 1)  / pcSPS->getCTUSize()), "subpic_height_minus1[ i ]"   );
       }
-#else
-#if JVET_Q0222_SUBPICTURE_SIGNALLING
-      if (picIdx > 0)
-      {
-#endif
-      WRITE_CODE( pcSPS->getSubPicCtuTopLeftX(picIdx), std::max(1, ceilLog2((( pcSPS->getMaxPicWidthInLumaSamples()  +  pcSPS->getCTUSize() - 1)  >> floorLog2( pcSPS->getCTUSize())))), "subpic_ctu_top_left_x[ i ]"  );
-      WRITE_CODE( pcSPS->getSubPicCtuTopLeftY(picIdx), std::max(1, ceilLog2((( pcSPS->getMaxPicHeightInLumaSamples() +  pcSPS->getCTUSize() - 1)  >> floorLog2( pcSPS->getCTUSize())))), "subpic_ctu_top_left_y[ i ]"  );
-#if JVET_Q0222_SUBPICTURE_SIGNALLING
-      }
-#endif
-      WRITE_CODE( pcSPS->getSubPicWidth(picIdx) - 1,   std::max(1, ceilLog2((( pcSPS->getMaxPicWidthInLumaSamples()  +  pcSPS->getCTUSize() - 1)  >> floorLog2( pcSPS->getCTUSize())))), "subpic_width_minus1[ i ]"    );
-      WRITE_CODE( pcSPS->getSubPicHeight(picIdx) - 1,  std::max(1, ceilLog2((( pcSPS->getMaxPicHeightInLumaSamples() +  pcSPS->getCTUSize() - 1)  >> floorLog2( pcSPS->getCTUSize())))), "subpic_height_minus1[ i ]"   );
-#endif
       WRITE_FLAG( pcSPS->getSubPicTreatedAsPicFlag(picIdx),  "subpic_treated_as_pic_flag[ i ]" );
       WRITE_FLAG( pcSPS->getLoopFilterAcrossSubpicEnabledFlag(picIdx),  "loop_filter_across_subpic_enabled_flag[ i ]" );
     }