Index: branches/HTM-6.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp
===================================================================
--- branches/HTM-6.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp	(revision 311)
+++ branches/HTM-6.0-dev0/source/Lib/TLibCommon/TComDataCU.cpp	(revision 312)
@@ -5174,8 +5174,11 @@
   Int width  = pcBaseViewDepthPicYuv->getWidth();
   Int height = pcBaseViewDepthPicYuv->getHeight();
-
+#if MTK_DVPREFINE_BVSP_BUG_FIX
+  Int depthPosX = Clip3(0,   width - iWidth,  iBlkX + (mv->getHor()>>2));
+  Int depthPosY = Clip3(0,   height - iHeight,  iBlkY + (mv->getVer()>>2));
+#else
   Int depthPosX = Clip3(0,   width - iWidth  - 1,  iBlkX + (mv->getHor()>>2));
   Int depthPosY = Clip3(0,   height- iHeight - 1,  iBlkY + (mv->getVer()>>2));
-
+#endif
   Pel *depth  = pcBaseViewDepthPicYuv->getLumaAddr() + depthPosX + depthPosY * depStride;
   Pel  maxDepth = 0;
@@ -5183,8 +5186,15 @@
   if ( bSimpleDvpRefine )
   {
+#if MTK_DVPREFINE_BVSP_BUG_FIX
+    Int depthStartPosX = Clip3(0,   width - iWidth,  iBlkX + (mv->getHor()>>2));
+    Int depthStartPosY = Clip3(0,   height - iHeight,  iBlkY + (mv->getVer()>>2));
+    Int depthEndPosX = Clip3(0,   width - 1,  iBlkX + iWidth - 1  + (mv->getHor()>>2));
+    Int depthEndPosY = Clip3(0,   height - 1,  iBlkY + iHeight - 1 + (mv->getVer()>>2));
+#else
     Int depthStartPosX = Clip3(0,   width - iWidth  - 1,  iBlkX + (mv->getHor()>>2));
     Int depthStartPosY = Clip3(0,   height- iHeight - 1,  iBlkY + (mv->getVer()>>2));
     Int depthEndPosX = Clip3(0,   width - iWidth  - 1,  iBlkX + iWidth  + (mv->getHor()>>2));
     Int depthEndPosY = Clip3(0,   height- iHeight - 1,  iBlkY + iHeight + (mv->getVer()>>2));
+#endif
     Int iCenterX = (depthStartPosX + depthEndPosX) >> 1;
     Int iCenterY = (depthStartPosY + depthEndPosY) >> 1;
Index: branches/HTM-6.0-dev0/source/Lib/TLibCommon/TComPrediction.cpp
===================================================================
--- branches/HTM-6.0-dev0/source/Lib/TLibCommon/TComPrediction.cpp	(revision 311)
+++ branches/HTM-6.0-dev0/source/Lib/TLibCommon/TComPrediction.cpp	(revision 312)
@@ -1454,7 +1454,11 @@
   Int dstStride = dstPic->getStride();
   Int depStride =  pPicBaseDepth->getStride();
+#if MTK_DVPREFINE_BVSP_BUG_FIX
+  Int depthPosX = Clip3(0,   widthLuma - size_x,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
+  Int depthPosY = Clip3(0,   heightLuma- size_y,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
+#else
   Int depthPosX = Clip3(0,   widthLuma - size_x - 1,  (posX/nTxtPerDepthX) + (mv->getHor()>>2));
   Int depthPosY = Clip3(0,   heightLuma- size_y - 1,  (posY/nTxtPerDepthY) + (mv->getVer()>>2));
-
+#endif
   Pel *ref    = refPic->getLumaAddr() + posX + posY * refStride;
   Pel *dst    = dstPic->getLumaAddr(partAddr);
@@ -1614,6 +1618,9 @@
     depthPosX = posX * nDepthPerTxtX + (mv->getHor()>>2);        //mv denotes the disparity for VSP
   }
+#if MTK_DVPREFINE_BVSP_BUG_FIX
+  depthPosX = Clip3(0, widthDepth - (size_x<<1), depthPosX);
+#else
   depthPosX = Clip3(0, widthDepth - (size_x<<1) - 1, depthPosX);
-  
+#endif
   if ( heightChroma > heightDepth )
   {
@@ -1628,5 +1635,9 @@
     depthPosY = posY * nDepthPerTxtY + (mv->getVer()>>2);     //mv denotes the disparity for VSP
   }
+#if MTK_DVPREFINE_BVSP_BUG_FIX
+  depthPosY = Clip3(0, heightDepth - (size_y<<1), depthPosY);
+#else
   depthPosY = Clip3(0, heightDepth - (size_y<<1) - 1, depthPosY);
+#endif
 
   Pel *refCb  = refPic->getCbAddr() + posX + posY * refStride;
Index: branches/HTM-6.0-dev0/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-6.0-dev0/source/Lib/TLibCommon/TypeDef.h	(revision 311)
+++ branches/HTM-6.0-dev0/source/Lib/TLibCommon/TypeDef.h	(revision 312)
@@ -210,4 +210,5 @@
 #define VSP_MERGE_POS                        5 // JCT3V-C0152: fixed position of VSP candidate in merge list, supported values: 5.
 #define LGE_SIMP_DVP_REFINE_C0112            1 // JCT3V-C0112: 1: simplification of refining disparity vector using a warped depth block
+#define MTK_DVPREFINE_BVSP_BUG_FIX               1
 
 #else // !MERL_VSP_C0152
