Index: /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp
===================================================================
--- /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp	(revision 818)
+++ /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecCu.cpp	(revision 819)
@@ -801,21 +801,5 @@
     {
       RefPicList eRefList = (RefPicList)uiRefListIdx;
-#if NTT_STORE_SPDV_VSP_G0148
-      if( pcCU->getVSPFlag( 0 ) != 0 )
-      {
-        if ( pcCU->getInterDir(0) & (1<<uiRefListIdx) )
-        {
-          UInt dummy;
-          Int vspSize;
-          Int width, height;
-          pcCU->getPartIndexAndSize( 0, dummy, width, height, 0, pcCU->getTotalNumPart()==256 );
-          AOF( dummy == 0 );
-          AOF( width == height );
-          pcCU->setMvFieldPUForVSP( pcCU, 0, width, height, eRefList, pDBBPTmpData->acMvField[uiSegment][eRefList].getRefIdx(), vspSize );
-          pcCU->setVSPFlag( 0, vspSize );
-        }
-      }
-      else
-#endif
+
       pcCU->getCUMvField( eRefList )->setAllMvField( pDBBPTmpData->acMvField[uiSegment][eRefList], SIZE_2Nx2N, 0, 0 );
     }
@@ -842,20 +826,5 @@
     {
       RefPicList eRefList = (RefPicList)uiRefListIdx;
-#if NTT_STORE_SPDV_VSP_G0148
-      if( pcCU->getVSPFlag( uiPartAddr ) != 0 )
-      {
-        if ( pcCU->getInterDir(uiPartAddr) & (1<<uiRefListIdx) )
-        {
-          UInt dummy;
-          Int vspSize;
-          Int width, height;
-          pcCU->getPartIndexAndSize( uiSegment, dummy, width, height, 0, pcCU->getTotalNumPart()==256 );
-          AOF( dummy == uiPartAddr );
-          pcCU->setMvFieldPUForVSP( pcCU, uiPartAddr, width, height, RefPicList( uiRefListIdx ), pcCU->getMVPIdx(eRefList, uiPartAddr), vspSize );
-          pcCU->setVSPFlag( uiPartAddr, vspSize );
-        }
-      }
-      else
-#endif
+
       pcCU->getCUMvField( eRefList )->setAllMvField( pDBBPTmpData->acMvField[uiSegment][eRefList], ePartSize, uiPartAddr, 0, uiSegment ); // interprets depth relative to rpcTempCU level
     }
Index: /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp
===================================================================
--- /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp	(revision 818)
+++ /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibDecoder/TDecEntropy.cpp	(revision 819)
@@ -375,5 +375,9 @@
           pcCU->getCUMvField( RefPicList( uiRefListIdx ) )->setAllMvField( cMvFieldNeighbours[ 2*uiMergeIndex + uiRefListIdx ], ePartSize, uiSubPartIdx, uiDepth, uiPartIdx );
 #if NTT_STORE_SPDV_VSP_G0148
+#if H_3D_DBBP
+          if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 && !pcCU->getDBBPFlag( uiAbsPartIdx ) )
+#else
           if( pcCU->getVSPFlag( uiSubPartIdx ) != 0 )
+#endif
           {
             if ( uhInterDirNeighbours[ uiMergeIndex ] & (1<<uiRefListIdx) )
Index: /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibEncoder/TEncCu.cpp	(revision 818)
+++ /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibEncoder/TEncCu.cpp	(revision 819)
@@ -2514,20 +2514,4 @@
       rpcTempCU->setMVPIdx(eRefList, uiPartAddr, pDBBPTmpData->aiMvpIdx[uiSegment][eRefList]);
       
-#if NTT_STORE_SPDV_VSP_G0148
-      if( rpcTempCU->getVSPFlag( uiPartAddr ) != 0 )
-      {
-        if ( rpcTempCU->getInterDir(uiPartAddr) & (1<<uiRefListIdx) )
-        {
-          UInt dummy;
-          Int vspSize;
-          Int width, height;
-          rpcTempCU->getPartIndexAndSize( uiSegment, dummy, width, height, uiPartAddr, rpcTempCU->getTotalNumPart()==256 );
-          AOF( dummy == uiPartAddr );
-          rpcTempCU->setMvFieldPUForVSP( rpcTempCU, uiPartAddr, width, height, eRefList, pDBBPTmpData->acMvField[uiSegment][eRefList].getRefIdx(), vspSize );
-          rpcTempCU->setVSPFlag( uiPartAddr, vspSize );
-        }
-      }
-      else
-#endif
       rpcTempCU->getCUMvField( eRefList )->setAllMvField( pDBBPTmpData->acMvField[uiSegment][eRefList], eVirtualPartSize, uiPartAddr, 0, uiSegment ); // interprets depth relative to rpcTempCU level
     }
Index: /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 818)
+++ /branches/HTM-9.3-dev1-RWTH/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 819)
@@ -3609,20 +3609,4 @@
         RefPicList eRefList = (RefPicList)uiRefListIdx;
         
-#if NTT_STORE_SPDV_VSP_G0148
-        if( pcCU->getVSPFlag( 0 ) != 0 )
-        {
-          if ( pcCU->getInterDir(0) & (1<<uiRefListIdx) )
-          {
-            UInt dummy;
-            Int vspSize;
-            Int width, height;
-            pcCU->getPartIndexAndSize( 0, dummy, width, height, 0, pcCU->getTotalNumPart()==256 );
-            AOF( dummy == 0 );
-            pcCU->setMvFieldPUForVSP( pcCU, 0, width, height, eRefList, pDBBPTmpData->acMvField[0][eRefList].getRefIdx(), vspSize );
-            pcCU->setVSPFlag( 0, vspSize );
-          }
-        }
-        else
-#endif
         pcCU->getCUMvField( eRefList )->setAllMvField( pDBBPTmpData->acMvField[0][eRefList], pDBBPTmpData->eVirtualPartSize, 0, 0, 0 ); // interprets depth relative to rpcTempCU level
       }
@@ -3739,5 +3723,9 @@
 #endif
 #if NTT_STORE_SPDV_VSP_G0148
+#if H_3D_DBBP
+      if ( vspFlag[uiMergeCand] && !pcCU->getDBBPFlag(0) )
+#else
       if ( vspFlag[uiMergeCand] )
+#endif
       {
         UInt partAddr;
@@ -4535,5 +4523,9 @@
 #endif
 #if NTT_STORE_SPDV_VSP_G0148
+#if H_3D_DBBP
+        if ( vspFlag[uiMRGIndex] && !pcCU->getDBBPFlag(uiPartAddr) )
+#else
         if ( vspFlag[uiMRGIndex] )
+#endif
         {
           UInt partAddrTemp;
