diff --git a/source/Lib/CommonLib/UnitTools.cpp b/source/Lib/CommonLib/UnitTools.cpp
index 6dda51cbfa0bb4e6ffced8d8462d7760baf02f60..2bff868d192f9aeae18421988a6fce0ae9cb7831 100644
--- a/source/Lib/CommonLib/UnitTools.cpp
+++ b/source/Lib/CommonLib/UnitTools.cpp
@@ -2613,14 +2613,13 @@ void PU::fillIBCMvpCand(PredictionUnit &pu, AMVPInfo &amvpInfo)
   Position posLB = pu.Y().bottomLeft();
 
   bool isScaledFlagLX = false; /// variable name from specification; true when the PUs below left or left are available (availableA0 || availableA1).
+
+  const PredictionUnit* tmpPU = cs.getPURestricted(posLB.offset(-1, 1), pu, pu.chType); // getPUBelowLeft(idx, partIdxLB);
+  isScaledFlagLX = tmpPU != NULL && CU::isIBC(*tmpPU->cu);
+  if (!isScaledFlagLX)
   {
-    const PredictionUnit* tmpPU = cs.getPURestricted(posLB.offset(-1, 1), pu, pu.chType); // getPUBelowLeft(idx, partIdxLB);
+    tmpPU = cs.getPURestricted(posLB.offset(-1, 0), pu, pu.chType);
     isScaledFlagLX = tmpPU != NULL && CU::isIBC(*tmpPU->cu);
-    if (!isScaledFlagLX)
-    {
-      tmpPU = cs.getPURestricted(posLB.offset(-1, 0), pu, pu.chType);
-      isScaledFlagLX = tmpPU != NULL && CU::isIBC(*tmpPU->cu);
-    }
   }
 
   // Left predictor search
@@ -2635,20 +2634,24 @@ void PU::fillIBCMvpCand(PredictionUnit &pu, AMVPInfo &amvpInfo)
   }
 
   // Above predictor search
+  bool isAdded = addIBCMVPCand(pu, posRT, MD_ABOVE_RIGHT, *pInfo);
+
+  if (!isAdded)
   {
-    bool isAdded = addIBCMVPCand(pu, posRT, MD_ABOVE_RIGHT, *pInfo);
+    isAdded = addIBCMVPCand(pu, posRT, MD_ABOVE, *pInfo);
 
     if (!isAdded)
     {
-      isAdded = addIBCMVPCand(pu, posRT, MD_ABOVE, *pInfo);
-
-      if (!isAdded)
-      {
-        addIBCMVPCand(pu, posLT, MD_ABOVE_LEFT, *pInfo);
-      }
+      addIBCMVPCand(pu, posLT, MD_ABOVE_LEFT, *pInfo);
     }
   }
 
+#if JVET_M0281_AMVP_ROUNDING || JVET_M0117_AMVP_LIST_GEN
+  for( int i = 0; i < pInfo->numCand; i++ )
+  {
+    pInfo->mvCand[i].roundToAmvrSignalPrecision(MV_PRECISION_INTERNAL, pu.cu->imv);
+  }
+#else
   if (pu.cu->imv != 0)
   {
     for (int i = 0; i < pInfo->numCand; i++)
@@ -2656,6 +2659,7 @@ void PU::fillIBCMvpCand(PredictionUnit &pu, AMVPInfo &amvpInfo)
       pInfo->mvCand[i].roundToAmvrSignalPrecision(MV_PRECISION_INTERNAL, pu.cu->imv);
     }
   }
+#endif
 
   if (pInfo->numCand == 2)
   {
@@ -2684,7 +2688,9 @@ void PU::fillIBCMvpCand(PredictionUnit &pu, AMVPInfo &amvpInfo)
   for (Mv &mv : pInfo->mvCand)
   {
     mv.changePrecision(MV_PRECISION_INTERNAL, MV_PRECISION_QUARTER);
+#if !JVET_M0281_AMVP_ROUNDING && !JVET_M0117_AMVP_LIST_GEN
     mv.roundToAmvrSignalPrecision(MV_PRECISION_QUARTER, pu.cu->imv);
+#endif
   }
 }
 
diff --git a/source/Lib/EncoderLib/InterSearch.cpp b/source/Lib/EncoderLib/InterSearch.cpp
index 8e80e7c12d477fecccbc5ee7057f323f206551bd..c7425aab0e3508fa21a7109d08ba79f80e38e0e0 100644
--- a/source/Lib/EncoderLib/InterSearch.cpp
+++ b/source/Lib/EncoderLib/InterSearch.cpp
@@ -2054,7 +2054,7 @@ void InterSearch::predInterSearch(CodingUnit& cu, Partitioner& partitioner)
       {
         RefPicList  eRefPicList = ( iRefList ? REF_PIC_LIST_1 : REF_PIC_LIST_0 );
 #if JVET_M0483_IBC==0
-        int refPicNumber = cs.sl#ice->getNumRefIdx(eRefPicList);
+        int refPicNumber = cs.slice->getNumRefIdx(eRefPicList);
         if (cs.slice->getSPS()->getIBCMode() && eRefPicList == REF_PIC_LIST_0)
         {
           refPicNumber--;
@@ -4265,7 +4265,7 @@ void InterSearch::xPredAffineInterSearch( PredictionUnit&       pu,
   {
     RefPicList  eRefPicList = ( iRefList ? REF_PIC_LIST_1 : REF_PIC_LIST_0 );
 #if JVET_M0483_IBC==0
-    int refPicNumber = s#lice.getNumRefIdx(eRefPicList);
+    int refPicNumber = slice.getNumRefIdx(eRefPicList);
     if (slice.getSPS()->getIBCMode() && eRefPicList == REF_PIC_LIST_0)
     {
       refPicNumber--;