Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.cpp	(revision 1225)
@@ -2783,5 +2783,5 @@
     }
 
-#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 
@@ -2796,5 +2796,5 @@
       if ( uiCodeTmp )
       {
-        READ_FLAG ( uiCodeTmp, "ic_skip_mergeidx0" );
+        READ_FLAG ( uiCodeTmp, "slice_ic_disabled_merge_zero_idx_flag" );
         pcSlice->setIcSkipParseFlag( uiCodeTmp );
       }
@@ -3382,5 +3382,5 @@
 }
 #endif
-#if H_3D_IC
+#if NH_3D_IC
 Void TDecCavlc::parseICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
 {
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCAVLC.h	(revision 1225)
@@ -120,5 +120,5 @@
   Void parseARPW            ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void  parseICFlag         ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCu.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCu.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecCu.cpp	(revision 1225)
@@ -399,5 +399,5 @@
     m_pcEntropyDecoder->decodeARPW( pcCU , uiAbsPartIdx , uiDepth );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
     m_pcEntropyDecoder->decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.cpp	(revision 1225)
@@ -124,10 +124,14 @@
 #endif
 
-#if H_3D_IC
+#if NH_3D_IC
 Void TDecEntropy::decodeICFlag( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth )
 {
   pcCU->setICFlagSubParts( false , uiAbsPartIdx, 0, uiDepth );
 
+#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;
@@ -475,4 +479,7 @@
         std::cout << " merge index: " << (UInt)pcCU->getMergeIndex(uiSubPartIdx) << std::endl;
       }
+#endif
+#if NH_3D_IC
+      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
 #endif
 
@@ -531,4 +538,7 @@
         }
       }
+#if NH_3D_IC
+      decodeICFlag( pcCU, uiAbsPartIdx, uiDepth );
+#endif
     }
 
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecEntropy.h	(revision 1225)
@@ -88,5 +88,5 @@
   virtual Void parseARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   virtual Void parseICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth ) = 0;
 #endif
@@ -177,5 +177,5 @@
   Void decodeARPW              ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void decodeICFlag            ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.cpp	(revision 1225)
@@ -76,5 +76,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
@@ -167,5 +167,5 @@
   m_cCUPUARPWSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_ARPW );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   m_cCUICFlagSCModel.initBuffer          ( sliceType, qp, (UChar*)INIT_IC_FLAG );
 #endif
@@ -243,7 +243,4 @@
 #if H_3D_ARP
   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
@@ -2445,5 +2442,5 @@
 #endif
 
-#if H_3D_IC
+#if NH_3D_IC
 /** parse illumination compensation flag
  * \param pcCU
@@ -2455,5 +2452,6 @@
 { 
   UInt uiSymbol = 0;
-  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) );
+  m_pcTDecBinIf->decodeBin( uiSymbol, m_cCUICFlagSCModel.get( 0, 0, 0 ) RExt__DECODER_DEBUG_BIT_STATISTICS_PASS_OPT_ARG(STATS__CABAC_BITS__3D_IC) );
+
 #if !H_MV_ENC_DEC_TRAC 
   DTRACE_CABAC_VL( g_nSymbolCounter++ );
Index: branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.h
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.h	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecSbac.h	(revision 1225)
@@ -142,5 +142,5 @@
   Void parseARPW          ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
-#if H_3D_IC
+#if NH_3D_IC
   Void parseICFlag        ( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth );
 #endif
@@ -193,5 +193,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/TLibDecoder/TDecTop.cpp
===================================================================
--- branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecTop.cpp	(revision 1215)
+++ branches/HTM-14.1-update-dev2-Sharp/source/Lib/TLibDecoder/TDecTop.cpp	(revision 1225)
@@ -423,7 +423,14 @@
 {
 #if ENC_DEC_TRACE
+#if H_MV_ENC_DEC_TRAC_FIX
+  if (g_hTrace != stdout && g_hTrace != NULL)
+#else
   if (g_hTrace != stdout)
+#endif
   {
     fclose( g_hTrace );
+#if H_MV_ENC_DEC_TRAC_FIX
+    g_hTrace = NULL;
+#endif
   }
 #endif
