diff --git a/source/App/DecoderApp/DecApp.cpp b/source/App/DecoderApp/DecApp.cpp
index fac984979b3d6431334c4ad0b38f01438265213b..5a0a44b1dd52d16666896a3b6aa13969dccbc32b 100644
--- a/source/App/DecoderApp/DecApp.cpp
+++ b/source/App/DecoderApp/DecApp.cpp
@@ -230,7 +230,11 @@ uint32_t DecApp::decode()
       {
         xWriteOutput( pcListPic, nalu.m_temporalId );
       }
+#if JVET_N0865_NONSYNTAX
+      if ((bNewPicture || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_GDR) && m_cDecLib.getNoOutputPriorPicsFlag())
+#else
       if ( (bNewPicture || nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA) && m_cDecLib.getNoOutputPriorPicsFlag() )
+#endif
       {
         m_cDecLib.checkNoOutputPriorPics( pcListPic );
         m_cDecLib.setNoOutputPriorPicsFlag (false);
@@ -247,8 +251,13 @@ uint32_t DecApp::decode()
         m_cDecLib.setFirstSliceInPicture (false);
       }
       // write reconstruction to file -- for additional bumping as defined in C.5.2.3
+#if JVET_N0865_GRA2GDR
+      if (!bNewPicture && ((nalu.m_nalUnitType >= NAL_UNIT_CODED_SLICE_TRAIL && nalu.m_nalUnitType <= NAL_UNIT_RESERVED_VCL_15)
+        || (nalu.m_nalUnitType >= NAL_UNIT_CODED_SLICE_IDR_W_RADL && nalu.m_nalUnitType <= NAL_UNIT_CODED_SLICE_GDR)))
+#else
       if (!bNewPicture && ((nalu.m_nalUnitType >= NAL_UNIT_CODED_SLICE_TRAIL && nalu.m_nalUnitType <= NAL_UNIT_RESERVED_VCL_15)
         || (nalu.m_nalUnitType >= NAL_UNIT_CODED_SLICE_IDR_W_RADL && nalu.m_nalUnitType <= NAL_UNIT_CODED_SLICE_GRA)))
+#endif
       {
         xWriteOutput( pcListPic, nalu.m_temporalId );
       }
diff --git a/source/App/EncoderApp/EncApp.cpp b/source/App/EncoderApp/EncApp.cpp
index 666d81a9287e5b713f14229e14c96ad67970eea5..95b3519c1854ae8470fa1413a2dcac51146a0b72 100644
--- a/source/App/EncoderApp/EncApp.cpp
+++ b/source/App/EncoderApp/EncApp.cpp
@@ -956,6 +956,9 @@ void EncApp::rateStatsAccum(const AccessUnit& au, const std::vector<uint32_t>& a
     case NAL_UNIT_CODED_SLICE_IDR_W_RADL:
     case NAL_UNIT_CODED_SLICE_IDR_N_LP:
     case NAL_UNIT_CODED_SLICE_CRA:
+#if JVET_N0865_NONSYNTAX
+    case NAL_UNIT_CODED_SLICE_GDR:
+#endif
     case NAL_UNIT_CODED_SLICE_RADL:
     case NAL_UNIT_CODED_SLICE_RASL:
     case NAL_UNIT_DPS:
diff --git a/source/App/Parcat/parcat.cpp b/source/App/Parcat/parcat.cpp
index f5929cc16e344f95a8fa82925ed0dd905a5b298b..5377084bb0d0d9899b4e333a4f209ec89324cc70 100644
--- a/source/App/Parcat/parcat.cpp
+++ b/source/App/Parcat/parcat.cpp
@@ -218,7 +218,11 @@ const char * NALU_TYPE[] =
     "NAL_UNIT_CODED_SLICE_IDR_W_RADL",
     "NAL_UNIT_CODED_SLICE_IDR_N_LP",
     "NAL_UNIT_CODED_SLICE_CRA",
+#if JVET_N0865_GRA2GDR
+    "NAL_UNIT_CODED_SLICE_GDR",
+#else
     "NAL_UNIT_CODED_SLICE_GRA",
+#endif
     "NAL_UNIT_UNSPECIFIED_28",
     "NAL_UNIT_UNSPECIFIED_29",
     "NAL_UNIT_UNSPECIFIED_30",
diff --git a/source/Lib/CommonLib/NAL.h b/source/Lib/CommonLib/NAL.h
index 475b1d79a86660327c2bba4782f2e67fe937b647..a5beeaabadcb212ac00ed47b3c68ac110d15c2b4 100644
--- a/source/Lib/CommonLib/NAL.h
+++ b/source/Lib/CommonLib/NAL.h
@@ -79,7 +79,11 @@ struct NALUnit
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_W_RADL
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_N_LP
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA
+#if JVET_N0865_GRA2GDR
+        || m_nalUnitType == NAL_UNIT_CODED_SLICE_GDR
+#else
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_GRA
+#endif
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_RADL
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_RASL;
   }
@@ -98,8 +102,11 @@ struct NALUnit
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_W_RADL
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_IDR_N_LP
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_CRA
+#if JVET_N0865_GRA2GDR
+        || m_nalUnitType == NAL_UNIT_CODED_SLICE_GDR;
+#else
         || m_nalUnitType == NAL_UNIT_CODED_SLICE_GRA;
-
+#endif
   }
 };
 
diff --git a/source/Lib/CommonLib/Rom.cpp b/source/Lib/CommonLib/Rom.cpp
index 1f26dd1b538eefef56f835388ec5492efa30023a..780c87e3c8312ffe9143afb566c1015642ace86f 100644
--- a/source/Lib/CommonLib/Rom.cpp
+++ b/source/Lib/CommonLib/Rom.cpp
@@ -79,7 +79,11 @@ const char* nalUnitTypeToString(NalUnitType type)
   case NAL_UNIT_CODED_SLICE_IDR_W_RADL: return "IDR_W_RADL";
   case NAL_UNIT_CODED_SLICE_IDR_N_LP:   return "IDR_N_LP";
   case NAL_UNIT_CODED_SLICE_CRA:        return "CRA";
+#if JVET_N0865_GRA2GDR
+  case NAL_UNIT_CODED_SLICE_GDR:        return "GDR";
+#else
   case NAL_UNIT_CODED_SLICE_GRA:        return "GRA";
+#endif
   default:                              return "UNK";
   }
 }
diff --git a/source/Lib/CommonLib/Slice.cpp b/source/Lib/CommonLib/Slice.cpp
index 25ff505ec5ccf42d50c8005322f8b1f6fa369879..eccce0e69325f31fe6c80a800f9580c084e38cc3 100644
--- a/source/Lib/CommonLib/Slice.cpp
+++ b/source/Lib/CommonLib/Slice.cpp
@@ -76,7 +76,11 @@ Slice::Slice()
 , m_pcPic                         ( NULL )
 , m_colFromL0Flag                 ( true )
 , m_noOutputPriorPicsFlag         ( false )
+#if JVET_N0865_NONSYNTAX
+, m_noIncorrectPicOutputFlag      ( false )
+#else 
 , m_noRaslOutputFlag              ( false )
+#endif
 , m_handleCraAsCvsStartFlag            ( false )
 , m_colRefIdx                     ( 0 )
 , m_maxNumMergeCand               ( 0 )
diff --git a/source/Lib/CommonLib/Slice.h b/source/Lib/CommonLib/Slice.h
index 84431823d571299fce027ce46fdb615aa6bd6375..d5d5476e7bd884c723d433f8010dfc2df3404d43 100644
--- a/source/Lib/CommonLib/Slice.h
+++ b/source/Lib/CommonLib/Slice.h
@@ -1691,7 +1691,11 @@ private:
   bool                       m_colFromL0Flag;  // collocated picture from List0 flag
 
   bool                       m_noOutputPriorPicsFlag;
+#if JVET_N0865_NONSYNTAX
+  bool                       m_noIncorrectPicOutputFlag;
+#else
   bool                       m_noRaslOutputFlag;
+#endif
   bool                       m_handleCraAsCvsStartFlag;
 
   uint32_t                       m_colRefIdx;
@@ -1985,8 +1989,13 @@ public:
   void                        setNoOutputPriorPicsFlag( bool val )                   { m_noOutputPriorPicsFlag = val;                                }
   bool                        getNoOutputPriorPicsFlag() const                       { return m_noOutputPriorPicsFlag;                               }
 
+#if JVET_N0865_NONSYNTAX
+  void                        setNoIncorrectPicOutputFlag(bool val)                  { m_noIncorrectPicOutputFlag = val;                             }
+  bool                        getNoIncorrectPicOutputFlag() const                    { return m_noIncorrectPicOutputFlag;                                    }
+#else
   void                        setNoRaslOutputFlag( bool val )                        { m_noRaslOutputFlag = val;                                     }
   bool                        getNoRaslOutputFlag() const                            { return m_noRaslOutputFlag;                                    }
+#endif
 
   void                        setHandleCraAsCvsStartFlag( bool val )                 { m_handleCraAsCvsStartFlag = val;                                   }
   bool                        getHandleCraAsCvsStartFlag() const                     { return m_handleCraAsCvsStartFlag;                                  }
diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h
index e3bd268c9aabbbc64568cb2a9ba20600a18be462..26a34ac7dbe8e4e3769ec493ba21f398263b5dbb 100644
--- a/source/Lib/CommonLib/TypeDef.h
+++ b/source/Lib/CommonLib/TypeDef.h
@@ -281,6 +281,8 @@
 #define JVET_N0100_PROPOSAL1                              1 // JVET-N0100: ltrp picture signalling
 
 #define JVET_N0865_SYNTAX                                 1 // JVET_N0865 syntax elements
+#define JVET_N0865_NONSYNTAX                              1 // JVET_N0865 other than syntax parts
+#define JVET_N0865_GRA2GDR                                1 // Changing the name of GRA to GDR
 
 #define RPL_IN_IDR_FIX                                    1 // JVET_N0865 syntax elements
 
@@ -1049,7 +1051,11 @@ enum NalUnitType
   NAL_UNIT_CODED_SLICE_IDR_W_RADL,      // 24
   NAL_UNIT_CODED_SLICE_IDR_N_LP,        // 25
   NAL_UNIT_CODED_SLICE_CRA,             // 26
+#if JVET_N0865_GRA2GDR
+  NAL_UNIT_CODED_SLICE_GDR,             // 27
+#else
   NAL_UNIT_CODED_SLICE_GRA,             // 27
+#endif
   NAL_UNIT_UNSPECIFIED_28,              // 29
   NAL_UNIT_UNSPECIFIED_29,              // 30
   NAL_UNIT_UNSPECIFIED_30,              // 31
diff --git a/source/Lib/DecoderLib/DecLib.cpp b/source/Lib/DecoderLib/DecLib.cpp
index 0344af8456a3f221a4474ecb313112fd272209dc..ed55dc0844f1c6132ba947687d49b6ac4308c9ae 100644
--- a/source/Lib/DecoderLib/DecLib.cpp
+++ b/source/Lib/DecoderLib/DecLib.cpp
@@ -406,7 +406,11 @@ DecLib::DecLib()
   , m_bFirstSliceInBitstream(true)
   , m_lastPOCNoOutputPriorPics(-1)
   , m_isNoOutputPriorPics(false)
+#if JVET_N0865_NONSYNTAX
+  , m_lastNoIncorrectPicOutputFlag(false)
+#else
   , m_craNoRaslOutputFlag(false)
+#endif
   , m_pDecodedSEIOutputStream(NULL)
   , m_decodedPictureHashSEIEnabled(false)
   , m_numberOfChecksumErrorsDetected(0)
@@ -1135,6 +1139,11 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
   m_apcSlicePilot->setNalUnitType(nalu.m_nalUnitType);
   m_apcSlicePilot->setTLayer(nalu.m_temporalId);
 
+#if JVET_N0865_NONSYNTAX
+  if (nalu.m_nalUnitType == NAL_UNIT_CODED_SLICE_GDR)
+    CHECK(nalu.m_temporalId != 0, "Current GDR picture has TemporalId not equal to 0");
+#endif
+
   m_HLSReader.setBitstream( &nalu.getBitstream() );
   m_HLSReader.parseSliceHeader( m_apcSlicePilot, &m_parameterSetManager, m_prevTid0POC );
 
@@ -1165,14 +1174,38 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
   m_apcSlicePilot->setAssociatedIRAPType(m_associatedIRAPType);
 
   //For inference of NoOutputOfPriorPicsFlag
+#if JVET_N0865_NONSYNTAX
+  if (m_apcSlicePilot->getRapPicFlag() || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR)
+#else
   if (m_apcSlicePilot->getRapPicFlag())
+#endif
   {
+#if JVET_N0865_NONSYNTAX
+    if ((m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_bFirstSliceInSequence) ||
+        (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_apcSlicePilot->getHandleCraAsCvsStartFlag()) || 
+        (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR && m_bFirstSliceInSequence))
+    {
+      m_apcSlicePilot->setNoIncorrectPicOutputFlag(true);
+    }
+#else
     if ((m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_bFirstSliceInSequence) ||
         (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_apcSlicePilot->getHandleCraAsCvsStartFlag()))
     {
       m_apcSlicePilot->setNoRaslOutputFlag(true);
     }
+#endif
     //the inference for NoOutputPriorPicsFlag
+#if JVET_N0865_NONSYNTAX
+    if (!m_bFirstSliceInBitstream &&
+        (m_apcSlicePilot->getRapPicFlag() || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR) &&
+        m_apcSlicePilot->getNoIncorrectPicOutputFlag())
+    {
+      if (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR)
+      {
+        m_apcSlicePilot->setNoOutputPriorPicsFlag(true);
+      }
+    }
+#else
     if (!m_bFirstSliceInBitstream && m_apcSlicePilot->getRapPicFlag() && m_apcSlicePilot->getNoRaslOutputFlag())
     {
       if (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA)
@@ -1180,17 +1213,29 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
         m_apcSlicePilot->setNoOutputPriorPicsFlag(true);
       }
     }
+#endif
     else
     {
       m_apcSlicePilot->setNoOutputPriorPicsFlag(false);
     }
 
+#if JVET_N0865_NONSYNTAX
+    if (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR)
+    {
+      m_lastNoIncorrectPicOutputFlag = m_apcSlicePilot->getNoIncorrectPicOutputFlag();
+    }
+#else
     if(m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA)
     {
       m_craNoRaslOutputFlag = m_apcSlicePilot->getNoRaslOutputFlag();
     }
+#endif
   }
+#if JVET_N0865_NONSYNTAX
+  if ((m_apcSlicePilot->getRapPicFlag() || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR) && m_apcSlicePilot->getNoOutputPriorPicsFlag())
+#else
   if (m_apcSlicePilot->getRapPicFlag() && m_apcSlicePilot->getNoOutputPriorPicsFlag())
+#endif
   {
     m_lastPOCNoOutputPriorPics = m_apcSlicePilot->getPOC();
     m_isNoOutputPriorPics = true;
@@ -1203,13 +1248,22 @@ bool DecLib::xDecodeSlice(InputNALUnit &nalu, int &iSkipFrame, int iPOCLastDispl
   //For inference of PicOutputFlag
   if (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_RASL)
   {
+#if JVET_N0865_NONSYNTAX
+    if (m_lastNoIncorrectPicOutputFlag)
+#else
     if ( m_craNoRaslOutputFlag )
+#endif
     {
       m_apcSlicePilot->setPicOutputFlag(false);
     }
   }
 
+#if JVET_N0865_NONSYNTAX
+  if ((m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA || m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR) &&
+      m_lastNoIncorrectPicOutputFlag)                     //Reset POC MSB when CRA or GDR has NoIncorrectPicOutputFlag equal to 1
+#else
   if (m_apcSlicePilot->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA && m_craNoRaslOutputFlag) //Reset POC MSB when CRA has NoRaslOutputFlag equal to 1
+#endif
   {
     PPS *pps = m_parameterSetManager.getPPS(m_apcSlicePilot->getPPSId());
     CHECK(pps == 0, "No PPS present");
@@ -1668,6 +1722,9 @@ bool DecLib::decode(InputNALUnit& nalu, int& iSkipFrame, int& iPOCLastDisplay)
     case NAL_UNIT_CODED_SLICE_IDR_W_RADL:
     case NAL_UNIT_CODED_SLICE_IDR_N_LP:
     case NAL_UNIT_CODED_SLICE_CRA:
+#if JVET_N0865_NONSYNTAX
+    case NAL_UNIT_CODED_SLICE_GDR:
+#endif
     case NAL_UNIT_CODED_SLICE_RADL:
     case NAL_UNIT_CODED_SLICE_RASL:
       ret = xDecodeSlice(nalu, iSkipFrame, iPOCLastDisplay);
diff --git a/source/Lib/DecoderLib/DecLib.h b/source/Lib/DecoderLib/DecLib.h
index 737ae6db70f7d495c2a48c4d4b97eacf46c43b83..3646abb4a4d25b599349db9c1071d514f2a27094 100644
--- a/source/Lib/DecoderLib/DecLib.h
+++ b/source/Lib/DecoderLib/DecLib.h
@@ -117,7 +117,11 @@ private:
   bool                    m_bFirstSliceInBitstream;
   int                     m_lastPOCNoOutputPriorPics;
   bool                    m_isNoOutputPriorPics;
+#if JVET_N0865_NONSYNTAX
+  bool                    m_lastNoIncorrectPicOutputFlag;    //value of variable NoIncorrectPicOutputFlag of the last CRA / GDR pic
+#else
   bool                    m_craNoRaslOutputFlag;    //value of variable NoRaslOutputFlag of the last CRA pic
+#endif
   std::ostream           *m_pDecodedSEIOutputStream;
 
   int                     m_decodedPictureHashSEIEnabled;  ///< Checksum(3)/CRC(2)/MD5(1)/disable(0) acting on decoded picture hash SEI message
diff --git a/source/Lib/DecoderLib/VLCReader.cpp b/source/Lib/DecoderLib/VLCReader.cpp
index 107f5ed560de52800cddf78be94a51b942dfd5c1..179b828fb5030620152675c474320b441c45fef0 100644
--- a/source/Lib/DecoderLib/VLCReader.cpp
+++ b/source/Lib/DecoderLib/VLCReader.cpp
@@ -1936,7 +1936,11 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para
       READ_CODE(sps->getBitsForPOC(), uiCode, "slice_pic_order_cnt_lsb");
       pcSlice->setPOC(uiCode);
 #if JVET_N0865_SYNTAX
+#if JVET_N0865_GRA2GDR
+      if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR)
+#else
       if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GRA)
+#endif
       {
         READ_UVLC(uiCode, "recovery_poc_cnt");
         int maxPicOrderCntLsb = (int) pow(2, pcSlice->getSPS()->getBitsForPOC());
@@ -1944,7 +1948,11 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para
         pcSlice->setRecoveryPocCnt(uiCode);
         pcSlice->setRpPicOrderCntVal(pcSlice->getPOC() + pcSlice->getRecoveryPocCnt());
       }
+#if JVET_N0865_GRA2GDR
+      if (pcSlice->getRapPicFlag() || (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR))
+#else
       if (pcSlice->getRapPicFlag() || (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GRA))
+#endif
       {
         READ_FLAG(uiCode, "no_output_of_prior_pics_flag");
         pcSlice->setNoOutputPriorPicsFlag(uiCode);
@@ -1993,7 +2001,11 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para
       }
       pcSlice->setPOC              (iPOCmsb+iPOClsb);
 #if JVET_N0865_SYNTAX
+#if JVET_N0865_GRA2GDR
+      if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR)
+#else
       if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GRA)
+#endif
       {
         READ_UVLC(uiCode, "recovery_poc_cnt");
         int maxPicOrderCntLsb = (int) pow(2, pcSlice->getSPS()->getBitsForPOC());
@@ -2001,7 +2013,11 @@ void HLSyntaxReader::parseSliceHeader (Slice* pcSlice, ParameterSetManager *para
         pcSlice->setRecoveryPocCnt(uiCode);
         pcSlice->setRpPicOrderCntVal(pcSlice->getPOC() + pcSlice->getRecoveryPocCnt());
       }
+#if JVET_N0865_GRA2GDR
+      if (pcSlice->getRapPicFlag() || (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR))
+#else
       if (pcSlice->getRapPicFlag() || (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GRA))
+#endif
       {
         READ_FLAG(uiCode, "no_output_of_prior_pics_flag");
         pcSlice->setNoOutputPriorPicsFlag(uiCode);
diff --git a/source/Lib/EncoderLib/EncGOP.cpp b/source/Lib/EncoderLib/EncGOP.cpp
index 1ab5886f29c0f2dca424b5fc16d0486ead538114..4a71c7412bc9bcc510f5f1c2853764485c82ae03 100644
--- a/source/Lib/EncoderLib/EncGOP.cpp
+++ b/source/Lib/EncoderLib/EncGOP.cpp
@@ -2943,18 +2943,32 @@ void EncGOP::compressGOP( int iPOCLast, int iNumPicRcvd, PicList& rcListPic,
         OutputNALUnit nalu( pcSlice->getNalUnitType(), pcSlice->getTLayer() );
         m_HLSWriter->setBitstream( &nalu.m_Bitstream );
 
+#if JVET_N0865_NONSYNTAX
+        pcSlice->setNoIncorrectPicOutputFlag(false);
+#else
         pcSlice->setNoRaslOutputFlag(false);
+#endif
         if (pcSlice->isIRAP())
         {
           if (pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_IDR_W_RADL && pcSlice->getNalUnitType() <= NAL_UNIT_CODED_SLICE_IDR_N_LP)
           {
+#if JVET_N0865_NONSYNTAX
+            pcSlice->setNoIncorrectPicOutputFlag(true);
+#else
             pcSlice->setNoRaslOutputFlag(true);
+#endif
           }
           //the inference for NoOutputPriorPicsFlag
           // KJS: This cannot happen at the encoder
+#if JVET_N0865_NONSYNTAX
+          if (!m_bFirst && (pcSlice->isIRAP() || pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_GDR) && pcSlice->getNoIncorrectPicOutputFlag())
+          {
+            if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA || pcSlice->getNalUnitType() >= NAL_UNIT_CODED_SLICE_GDR)
+#else
           if (!m_bFirst && pcSlice->isIRAP() && pcSlice->getNoRaslOutputFlag())
           {
             if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_CRA)
+#endif
             {
               pcSlice->setNoOutputPriorPicsFlag(true);
             }
diff --git a/source/Lib/EncoderLib/VLCWriter.cpp b/source/Lib/EncoderLib/VLCWriter.cpp
index 08c98aca64e8dffa03c819c9bf128feee39a05a7..6e4fb930e945df4b956ba3191850480f695747ea 100644
--- a/source/Lib/EncoderLib/VLCWriter.cpp
+++ b/source/Lib/EncoderLib/VLCWriter.cpp
@@ -1330,13 +1330,21 @@ void HLSWriter::codeSliceHeader         ( Slice* pcSlice )
     int pocMask = (1 << pocBits) - 1;
     WRITE_CODE(pcSlice->getPOC() & pocMask, pocBits, "slice_pic_order_cnt_lsb");
 #if JVET_N0865_SYNTAX
+#if JVET_N0865_GRA2GDR
+    if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR)
+#else
     if (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GRA)
+#endif
     {
       int maxPicOrderCntLsb = (int) pow(2, pcSlice->getSPS()->getBitsForPOC());
       CHECK((pcSlice->getRecoveryPocCnt() < maxPicOrderCntLsb), "The value of recovery_poc_cnt exceeds (POC LSB cycle - 1)");
       WRITE_UVLC(pcSlice->getRecoveryPocCnt(), "recovery_poc_cnt");
     }
+#if JVET_N0865_GRA2GDR
+    if (pcSlice->getRapPicFlag() || (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GDR))
+#else
     if (pcSlice->getRapPicFlag() || (pcSlice->getNalUnitType() == NAL_UNIT_CODED_SLICE_GRA))
+#endif
     {
       WRITE_FLAG(pcSlice->getNoOutputPriorPicsFlag() ? 1 : 0, "no_output_of_prior_pics_flag");
     }