Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.cpp	(revision 1225)
@@ -2182,5 +2182,5 @@
       xCodePredWeightTable( pcSlice );
     }
-#if H_3D_IC
+#if NH_3D_IC
     else if( pcSlice->getViewIndex() && ( pcSlice->getSliceType() == P_SLICE || pcSlice->getSliceType() == B_SLICE )
       && !pcSlice->getIsDepth() && vps->getNumRefListLayers( layerId ) > 0 
@@ -2191,5 +2191,5 @@
       if( pcSlice->getApplyIC() )
       {
-        WRITE_FLAG( pcSlice->getIcSkipParseFlag() ? 1 : 0, "ic_skip_mergeidx0" );
+        WRITE_FLAG( pcSlice->getIcSkipParseFlag() ? 1 : 0, "slice_ic_disabled_merge_zero_idx_flag" );
       }
     }
@@ -2585,5 +2585,5 @@
 #endif
 
-#if H_3D_IC
+#if NH_3D_IC
 Void TEncCavlc::codeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx )
 {
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCavlc.h	(revision 1225)
@@ -129,5 +129,5 @@
   Void codeARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCfg.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCfg.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCfg.h	(revision 1225)
@@ -572,5 +572,5 @@
   Void      setMaxTotalCUDepth              ( UInt  u )      { m_maxTotalCUDepth = u; }
   Void      setLog2DiffMaxMinCodingBlockSize( UInt  u )      { m_log2DiffMaxMinCodingBlockSize = u; }
-#if H_3D_IC
+#if NH_3D_IC
   Void       setUseIC                       ( Bool bVal )    { m_bUseIC = bVal; }
   Bool       getUseIC                       ()               { return m_bUseIC; }
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCu.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncCu.cpp	(revision 1225)
@@ -505,5 +505,5 @@
   }
 
-#if H_3D_IC
+#if NH_3D_IC
   Bool bICEnabled = rpcTempCU->getSlice()->getViewIndex() && ( rpcTempCU->getSlice()->getSliceType() == P_SLICE || rpcTempCU->getSlice()->getSliceType() == B_SLICE ) && !rpcTempCU->getSlice()->getIsDepth();
   bICEnabled = bICEnabled && rpcTempCU->getSlice()->getApplyIC();
@@ -642,5 +642,5 @@
       if( rpcBestCU->getSlice()->getSliceType() != I_SLICE )
       {
-#if H_3D_IC
+#if NH_3D_IC
         for( UInt uiICId = 0; uiICId < ( bICEnabled ? 2 : 1 ); uiICId++ )
         {
@@ -650,5 +650,5 @@
         if(m_pcEncCfg->getUseEarlySkipDetection())
         {
-#if H_3D_IC
+#if NH_3D_IC
             rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
 #endif
@@ -664,5 +664,5 @@
         }
         // SKIP
-#if H_3D_IC
+#if NH_3D_IC
           rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
 #endif
@@ -680,5 +680,5 @@
         {
           // 2Nx2N, NxN
-#if H_3D_IC
+#if NH_3D_IC
             rpcTempCU->setICFlagSubParts(bICFlag, 0, 0, uiDepth);
 #endif
@@ -709,5 +709,5 @@
           }
         }
-#if H_3D_IC
+#if NH_3D_IC
         }
 #endif
@@ -1577,5 +1577,5 @@
     m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
 #endif
@@ -1620,5 +1620,5 @@
   m_pcEntropyCoder->encodeARPW( pcCU , uiAbsPartIdx );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   m_pcEntropyCoder->encodeICFlag  ( pcCU, uiAbsPartIdx );
 #endif
@@ -1777,5 +1777,5 @@
   }
   UChar uhDepth = rpcTempCU->getDepth( 0 );
-#if H_3D_IC
+#if NH_3D_IC
   Bool bICFlag = rpcTempCU->getICFlag( 0 );
 #endif
@@ -1862,5 +1862,5 @@
     rpcTempCU->setPartSizeSubParts( SIZE_2Nx2N, 0, uhDepth ); // interprets depth relative to LCU level
     rpcTempCU->setARPWSubParts( (UChar)nARPW , 0 , uhDepth );
-#if H_3D_IC
+#if NH_3D_IC
     rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
 #endif
@@ -1905,5 +1905,5 @@
     for( UInt uiMergeCand = 0; uiMergeCand < numValidMergeCand; ++uiMergeCand )
     {
-#if H_3D_IC
+#if NH_3D_IC
       if( rpcTempCU->getSlice()->getApplyIC() && rpcTempCU->getSlice()->getIcSkipParseFlag() )
       {
@@ -1922,5 +1922,5 @@
           // set MC parameters
           rpcTempCU->setPredModeSubParts( MODE_INTER, 0, uhDepth ); // interprets depth relative to CTU level
-#if H_3D_IC
+#if NH_3D_IC
           rpcTempCU->setICFlagSubParts( bICFlag, 0, 0, uhDepth );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.cpp	(revision 1225)
@@ -148,8 +148,12 @@
 }
 
-#if H_3D_IC
+#if NH_3D_IC
 Void TEncEntropy::encodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD )
 {
+#if H_3D_ARP
   if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() || pcCU->getARPW( uiAbsPartIdx ) > 0 )
+#else
+  if ( pcCU->isIntra( uiAbsPartIdx ) || ( pcCU->getSlice()->getViewIndex() == 0 ) || pcCU->getSlice()->getIsDepth() )
+#endif
   {
     return;
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncEntropy.h	(revision 1225)
@@ -87,5 +87,5 @@
   virtual Void codeARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   virtual Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx ) = 0;
 #endif
@@ -176,5 +176,5 @@
   Void encodeARPW         ( TComDataCU* pcCU, UInt uiAbspartIdx );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void encodeICFlag       ( TComDataCU* pcCU, UInt uiAbsPartIdx, Bool bRD = false );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.cpp	(revision 1225)
@@ -155,5 +155,5 @@
 #endif
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   m_aICEnableCandidate   = pcTEncTop->getICEnableCandidate(); 
   m_aICEnableNum         = pcTEncTop->getICEnableNum(); 
@@ -1490,5 +1490,5 @@
     }
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     pcSlice->setICEnableCandidate( m_aICEnableCandidate );         
     pcSlice->setICEnableNum( m_aICEnableNum );         
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncGOP.h	(revision 1225)
@@ -132,5 +132,5 @@
 #endif
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Int*                    m_aICEnableCandidate; 
   Int*                    m_aICEnableNum; 
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.cpp	(revision 1225)
@@ -71,5 +71,5 @@
 , m_cCUPUARPWSCModel                   ( 1,             1,                      NUM_ARPW_CTX                         , m_contextModels + m_numContextModels, m_numContextModels)
 #endif                                                                                                               
-#if H_3D_IC                                                                                                          
+#if NH_3D_IC                                                                                                          
 , m_cCUICFlagSCModel                   ( 1,             1,                      NUM_IC_FLAG_CTX                      , m_contextModels + m_numContextModels, m_numContextModels)
 #endif
@@ -151,5 +151,5 @@
   m_cCUPUARPWSCModel.initBuffer                   ( eSliceType, iQp, (UChar*)INIT_ARPW );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   m_cCUICFlagSCModel.initBuffer                   ( eSliceType, iQp, (UChar*)INIT_IC_FLAG );
 #endif
@@ -238,5 +238,5 @@
       curCost += m_cCUPUARPWSCModel.calcCost                   ( curSliceType, qp, (UChar*)INIT_ARPW );
 #endif                                                     
-#if H_3D_IC                                                
+#if NH_3D_IC                                                
       curCost += m_cCUICFlagSCModel.calcCost                   ( curSliceType, qp, (UChar*)INIT_IC_FLAG );
 #endif                                                     
@@ -305,7 +305,4 @@
   m_cCUPUARPWSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_ARPW );
 #endif
-#if H_3D_IC
-  m_cCUICFlagSCModel.initBuffer          ( eSliceType, iQp, (UChar*)INIT_IC_FLAG );
-#endif
 #if H_3D_DIM
   m_cDepthIntraModeSCModel.initBuffer    ( eSliceType, iQp, (UChar*)INIT_DEPTH_INTRA_MODE );
@@ -994,5 +991,5 @@
 #endif
 
-#if H_3D_IC
+#if NH_3D_IC
 /** code Illumination Compensation flag
  * \param pcCU
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSbac.h	(revision 1225)
@@ -143,5 +143,5 @@
   Void codeARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void codeICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx );
 #endif
@@ -215,5 +215,5 @@
   ContextModel3DBuffer m_cCUPUARPWSCModel;
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   ContextModel3DBuffer m_cCUICFlagSCModel;
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSearch.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSearch.cpp	(revision 1225)
@@ -340,5 +340,5 @@
 
   piRefSrch = rcStruct.piRefY + iSearchY * rcStruct.iYStride + iSearchX;
-#if H_3D_IC
+#if NH_3D_IC
   m_cDistParam.bUseIC = pcPatternKey->getICFlag();
 #endif
@@ -851,5 +851,5 @@
 
     setDistParamComp(COMPONENT_Y);
-#if H_3D_IC
+#if NH_3D_IC
     m_cDistParam.bUseIC = pcPatternKey->getICFlag();
 #endif
@@ -3857,5 +3857,5 @@
                             iWidth, iHeight, m_pcEncCfg->getUseHADME() && (pcCU->getCUTransquantBypass(iPartIdx) == 0) );
 
-#if H_3D_IC
+#if NH_3D_IC
   cDistParam.bUseIC = false;
 #endif
@@ -5000,5 +5000,5 @@
   pcCU->clipMv( cMvCand );
 
-#if H_3D_IC
+#if NH_3D_IC
   Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eRefPicList, iRefIdx )->getViewIndex() );
 #endif
@@ -5015,5 +5015,5 @@
       , false
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     , bICFlag
 #endif
@@ -5060,5 +5060,5 @@
   pcCU->getPartIndexAndSize( iPartIdx, uiPartAddr, iRoiWidth, iRoiHeight );
 
-#if H_3D_IC
+#if NH_3D_IC
   Bool bICFlag = pcCU->getICFlag( uiPartAddr ) && ( pcCU->getSlice()->getViewIndex() != pcCU->getSlice()->getRefPic( eRefPicList, iRefIdxPred )->getViewIndex() );
   pcPatternKey->setICFlag( bICFlag );
@@ -5250,5 +5250,5 @@
       m_cDistParam.bitDepth = pcPatternKey->getBitDepthY();
 
-#if H_3D_IC
+#if NH_3D_IC
       m_cDistParam.bUseIC = pcPatternKey->getICFlag();
 #endif
@@ -5784,5 +5784,5 @@
     m_pcEntropyCoder->encodeARPW( pcCU, 0 );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
 #endif
@@ -7100,5 +7100,5 @@
     m_pcEntropyCoder->encodeARPW( pcCU, 0 );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
 #endif
@@ -7127,5 +7127,5 @@
     m_pcEntropyCoder->encodeARPW( pcCU , 0  );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     m_pcEntropyCoder->encodeICFlag( pcCU, 0, true );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSlice.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncSlice.cpp	(revision 1225)
@@ -226,5 +226,5 @@
   rpcSlice->setPicOutputFlag( true );
   rpcSlice->setPOC( pocCurr );
-#if H_3D_IC
+#if NH_3D_IC
   rpcSlice->setApplyIC( false );
 #endif
@@ -823,10 +823,10 @@
 #endif
 
-#if H_3D_IC
-  if ( pcEncTop->getViewIndex() && pcEncTop->getUseIC() &&
+#if NH_3D_IC
+  if ( m_pcCfg->getViewIndex() && m_pcCfg->getUseIC() &&
        !( ( pcSlice->getSliceType() == P_SLICE && pcSlice->getPPS()->getUseWP() ) || ( pcSlice->getSliceType() == B_SLICE && pcSlice->getPPS()->getWPBiPred() ) )
      )
   {
-    pcSlice ->xSetApplyIC(pcEncTop->getUseICLowLatencyEnc());
+    pcSlice ->xSetApplyIC(m_pcCfg->getUseICLowLatencyEnc());
     if ( pcSlice->getApplyIC() )
     {
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.cpp	(revision 1225)
@@ -79,5 +79,5 @@
   m_ivPicLists = NULL;
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   m_aICEnableCandidate = NULL;
   m_aICEnableNum = NULL;
@@ -227,5 +227,5 @@
 
   xInitPPSforTiles();
-#if H_3D_IC
+#if NH_3D_IC
   m_aICEnableCandidate = new Int[ 10 ];
   m_aICEnableNum = new Int[ 10 ];
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibEncoder/TEncTop.h	(revision 1225)
@@ -81,5 +81,5 @@
   TComPicLists*           m_ivPicLists;                   ///< access to picture lists of other layers 
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Int *m_aICEnableCandidate;
   Int *m_aICEnableNum;
@@ -158,5 +158,5 @@
   TComPicLists* getIvPicLists() { return m_ivPicLists; }
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Int*      getICEnableCandidate() { return m_aICEnableCandidate; }
   Int*      getICEnableNum() { return m_aICEnableNum; }
@@ -208,5 +208,5 @@
   Void                    setSps3dExtension     ( TComSps3dExtension sps3dExtension ) { m_cSPS.setSps3dExtension( sps3dExtension );  };
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void                    setICEnableCandidate         ( Int* ICEnableCandidate) { m_aICEnableCandidate = ICEnableCandidate; }
   Void                    setICEnableNum         ( Int* ICEnableNum) { m_aICEnableNum = ICEnableNum; }
