Index: branches/HTM-11.2-dev2-Samsung/source/App/TAppEncoder/TAppEncTop.cpp
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/App/TAppEncoder/TAppEncTop.cpp	(revision 1025)
@@ -1837,4 +1837,7 @@
     {
       vps.setIvMvPredFlag    (layer, false);
+#if SEC_HLS_CLEANUP_I0100
+      vps.setIvMvScalingFlag (layer, false); 
+#endif
     }
     else
@@ -1848,4 +1851,7 @@
         vps.setIvMvPredFlag         ( layer, !isLayerZero && m_ivMvPredFlag[0] ); 
       }
+#if SEC_HLS_CLEANUP_I0100
+      vps.setIvMvScalingFlag (layer, m_ivMvScalingFlag); 
+#endif
     }
 #endif
@@ -1875,5 +1881,7 @@
 #endif
 #if H_3D
+#if !SEC_HLS_CLEANUP_I0100
   vps.setIvMvScalingFlag( m_ivMvScalingFlag );   
+#endif
 #endif
 }
Index: branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComDataCU.cpp
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComDataCU.cpp	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComDataCU.cpp	(revision 1025)
@@ -5900,5 +5900,9 @@
     Int iColRefViewId  = pColCU->getSlice()->getRefPic( eColRefPicList, pColCU->getCUMvField(eColRefPicList)->getRefIdx(uiAbsPartAddr))->getViewIndex(); 
     iScale = xGetDistScaleFactor( iCurrViewId, iCurrRefViewId, iColViewId, iColRefViewId );
+#if SEC_HLS_CLEANUP_I0100
+    if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag(getSlice()->getLayerIdInVps()) ) 
+#else
     if ( iScale != 4096 && m_pcSlice->getVPS()->getIvMvScalingFlag() ) 
+#endif
     {
       rcMv = cColMv.scaleMv( iScale );
Index: branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.cpp
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.cpp	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.cpp	(revision 1025)
@@ -1942,5 +1942,9 @@
     m_viewIndex         [i] = -1; 
     m_vpsDepthModesFlag [i] = false;
+#if SEC_HLS_CLEANUP_I0100
+    m_ivMvScalingFlag[i] = true; 
+#else
     m_ivMvScalingFlag = true; 
+#endif
 #endif
 
Index: branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.h
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.h	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TComSlice.h	(revision 1025)
@@ -798,4 +798,7 @@
 #if H_3D_IV_MERGE
   Bool        m_ivMvPredFlag             [ MAX_NUM_LAYERS ]; 
+#if SEC_HLS_CLEANUP_I0100
+  Bool        m_ivMvScalingFlag          [ MAX_NUM_LAYERS ]; 
+#endif
 #if H_3D_SPIVMP
   Int         m_iSubPULog2Size           [MAX_NUM_LAYERS   ];
@@ -824,5 +827,9 @@
   Int         ***m_aaaiCodedScale ;
   Int         ***m_aaaiCodedOffset;
+
+#if !SEC_HLS_CLEANUP_I0100
   Bool        m_ivMvScalingFlag; 
+#endif
+
 #endif
 #if H_3D_INTER_SDC
@@ -1161,6 +1168,12 @@
   Bool    getVpsDepthModesFlag( Int layerIdInVps )                         { return m_vpsDepthModesFlag[ layerIdInVps ]; }
 
+#if SEC_HLS_CLEANUP_I0100
+  Bool    getIvMvScalingFlag   ( Int layerIdInVps )                        { return m_ivMvScalingFlag[ layerIdInVps ]; }
+  Void    setIvMvScalingFlag   (Int layerIdInVps, Bool b )                 { m_ivMvScalingFlag[ layerIdInVps ] = b;    }  
+#else
   Bool    getIvMvScalingFlag   (  )                       { return m_ivMvScalingFlag; }
   Void    setIvMvScalingFlag   ( Bool b )                 { m_ivMvScalingFlag = b;    }  
+#endif
+
 #if H_3D_INTER_SDC
   Bool    getInterSDCFlag      ( Int layerIdInVps )           { return m_bInterSDCFlag[layerIdInVps]; }
Index: branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/Lib/TLibCommon/TypeDef.h	(revision 1025)
@@ -259,4 +259,5 @@
 
 #define SEC_VPS_CLEANUP_I0090             1
+#define SEC_HLS_CLEANUP_I0100             1
 
 #endif // H_3D
Index: branches/HTM-11.2-dev2-Samsung/source/Lib/TLibDecoder/TDecCAVLC.cpp
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1025)
@@ -1777,4 +1777,7 @@
 #if MTK_I0099_VPS_EX2
       READ_FLAG( uiCode, "iv_mv_pred_flag[i]");          pcVPS->setIvMvPredFlag         ( i, uiCode == 1 ? true : false );
+#if SEC_HLS_CLEANUP_I0100
+      READ_FLAG( uiCode, "iv_mv_scaling_flag[i]");       pcVPS->setIvMvScalingFlag         ( i, uiCode == 1 ? true : false );
+#endif
 #endif
       if( !( pcVPS->getDepthId( i ) == 1 ) )
@@ -1884,5 +1887,7 @@
   READ_UVLC (uiCode, "log2_sub_PU_MPI_size_minus3");              pcVPS->setSubPUMPILog2Size( uiCode + 3 ); 
 #endif
+#if !SEC_HLS_CLEANUP_I0100
   READ_FLAG( uiCode, "iv_mv_scaling_flag");                       pcVPS->setIvMvScalingFlag( uiCode == 1 ? true : false ); 
+#endif
 }
 #endif
@@ -2485,5 +2490,9 @@
     }
 #if H_3D_IC
+#if SEC_HLS_CLEANUP_I0100
+    else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
+#else
     else if( rpcSlice->getViewIndex() && ( rpcSlice->getSliceType() == P_SLICE || rpcSlice->getSliceType() == B_SLICE ) && !rpcSlice->getIsDepth())
+#endif
     {
       UInt uiCodeTmp = 0;
Index: branches/HTM-11.2-dev2-Samsung/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- branches/HTM-11.2-dev2-Samsung/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1024)
+++ branches/HTM-11.2-dev2-Samsung/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1025)
@@ -1572,4 +1572,8 @@
 #if MTK_I0099_VPS_EX2
       WRITE_FLAG( pcVPS->getIvMvPredFlag         ( i ) ? 1 : 0 , "iv_mv_pred_flag[i]");
+#if SEC_HLS_CLEANUP_I0100
+      WRITE_FLAG( pcVPS->getIvMvScalingFlag( i ) ? 1 : 0 ,       "iv_mv_scaling_flag[i]" );
+#endif
+
 #endif
       if ( !( pcVPS->getDepthId( i ) == 1 ) )
@@ -1653,5 +1657,7 @@
 #endif
 #if H_3D_TMVP
+#if !SEC_HLS_CLEANUP_I0100
   WRITE_FLAG( pcVPS->getIvMvScalingFlag( ) ? 1 : 0 ,          "iv_mv_scaling_flag" );
+#endif
 #endif
 }
@@ -2039,5 +2045,9 @@
     }
 #if H_3D_IC
-    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth())
+#if SEC_HLS_CLEANUP_I0100
+    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() && vps->getNumDirectRefLayers( layerId ) > 0 )
+#else
+    else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE ) && !pcSlice->getIsDepth() )
+#endif
     {
       WRITE_FLAG( pcSlice->getApplyIC() ? 1 : 0, "slice_ic_enable_flag" );
