Index: branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRdCost.cpp
===================================================================
--- branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRdCost.cpp	(revision 1308)
+++ branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRdCost.cpp	(revision 1309)
@@ -133,4 +133,5 @@
   }
 
+  D_PRINT_INDENT( g_traceRDCost,  "Dist: " + n2s(uiDistortion) + " Bits: " + n2s(uiBits) + " RD Cost: " + n2s(dRdCost)); 
   return dRdCost;
 }
@@ -3684,4 +3685,6 @@
   }
 
+  D_PRINT_INDENT( g_traceRDCost, "VSO Dist: " + n2s(uiDistortion) + " Bits: " + n2s(uiBits) + " RD Cost: " + n2s(dRdCost)); 
+
   return dRdCost;
 }
Index: branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.cpp
===================================================================
--- branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.cpp	(revision 1308)
+++ branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.cpp	(revision 1309)
@@ -546,13 +546,19 @@
 Bool g_disableNumbering = false; 
 Bool g_disableHLSTrace = false; 
-UInt64 g_stopAtCounter       = 4660; 
-Bool g_traceCopyBack         = false; 
-Bool g_decTraceDispDer       = false; 
-Bool g_decTraceMvFromMerge   = false; 
-Bool g_decTracePicOutput     = false; 
-Bool g_stopAtPos             = false; 
-Bool g_outputPos             = false;   
-Bool g_traceCameraParameters = false; 
-Bool g_encNumberOfWrittenBits     = false; 
+UInt64 g_stopAtCounter         = 4660; 
+Bool g_traceCopyBack           = false; 
+Bool g_decTraceDispDer         = false; 
+Bool g_decTraceMvFromMerge     = false; 
+Bool g_decTracePicOutput       = false; 
+Bool g_startStopTrace          = true; 
+Bool g_outputPos               = false;   
+Bool g_traceCameraParameters   = false; 
+Bool g_encNumberOfWrittenBits  = false; 
+Bool g_traceEncFracBits        = false; 
+Bool g_traceIntraSearchCost    = false; 
+Bool g_traceRDCost             = false; 
+Bool g_traceSAOCost            = false; 
+Bool g_traceModeCheck          = false; 
+UInt g_indent                  = false; 
 #endif
 #endif
@@ -685,24 +691,35 @@
               << std::endl; 
   }
-  Bool stopFlag = false; 
-  if ( g_stopAtPos && poc == 0 && layerId == 2 )
-  {
-    Bool stopAtCU = true; 
-    if ( stopAtCU )        // Stop at CU with specific size
-    {    
-      stopFlag = ( cuPelX  == 416 ) && ( cuPelY  == 632 ) && ( cuWidth == 8 ) && ( cuHeight == 8 ); 
-    }
-    else
-    {                     // Stop at specific position 
-      Int xPos = 888; 
-      Int yPos = 248; 
-      Int cuPelXEnd = cuPelX + cuWidth  - 1; 
-      Int cuPelYEnd = cuPelY + cuHeight - 1; 
-      stopFlag = (cuPelX <= xPos ) && (cuPelXEnd >= xPos ) && (cuPelY <= yPos ) && (cuPelYEnd >= yPos ); 
-    }
-  }
-  if ( stopFlag )
-  { // Set breakpoint here. 
-    std::cout << "Stop position. Break point here." << std::endl; 
+
+  Bool startTrace = false; 
+  if ( g_startStopTrace && poc == 0 && layerId == 0 )
+  {    
+    startTrace = ( cuPelX  == 0 ) && ( cuPelY  == 0 ) && ( cuWidth == 64 ) && ( cuHeight == 64 ); 
+  }
+  if ( startTrace )
+  { 
+    g_outputPos              = true; 
+    g_traceEncFracBits       = false;   
+    g_traceIntraSearchCost   = false;     
+    g_encNumberOfWrittenBits = false;     
+    g_traceRDCost            = true; 
+    g_traceModeCheck         = true; 
+    g_traceCopyBack          = false; 
+  }  
+
+  Bool stopTrace = false; 
+  if ( g_startStopTrace && poc == 0 && layerId == 0 )
+  {
+    stopTrace = ( cuPelX  == 128 ) && ( cuPelY  == 0 ) && ( cuWidth == 64 ) && ( cuHeight == 64 ); 
+  }
+  if ( stopTrace )
+  { 
+    g_outputPos              = false; 
+    g_traceModeCheck         = false; 
+    g_traceEncFracBits       = false; 
+    g_traceIntraSearchCost   = false;        
+    g_encNumberOfWrittenBits = false; 
+    g_traceRDCost            = false; 
+    g_traceCopyBack          = false;     
   }  
 }
@@ -738,4 +755,37 @@
   }
 }
+Void printStr( std::string str )
+{
+  std::cout << str << std::endl; 
+}
+Void printStrIndent( Bool b, std::string strStr )
+{
+  if ( b )
+  {  
+    std::cout << std::string(g_indent, ' ');
+    printStr( strStr );
+  }
+}
+
+Void prinStrIncIndent( Bool b,  std::string strStr )
+{
+  if ( b )
+  {
+    printStrIndent( true,  strStr );
+    if (g_indent < 50)
+    {
+      g_indent++;
+    }
+  }  
+}
+
+Void decIndent( Bool b )
+{
+  if (b && g_indent > 0)
+  {
+    g_indent--;  
+  }  
+}
+
 #endif
 #endif
Index: branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.h
===================================================================
--- branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.h	(revision 1308)
+++ branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComRom.h	(revision 1309)
@@ -183,8 +183,14 @@
  extern Bool   g_decTraceMvFromMerge;   // Trace motion vectors obtained from merge (decoder only) 
  extern Bool   g_decTracePicOutput;     // Trace output of pictures
- extern Bool   g_stopAtPos;             // Stop at position
+ extern Bool   g_startStopTrace;             // Stop at position
  extern Bool   g_outputPos;             // Output position
  extern Bool   g_traceCameraParameters; // Trace camera parameters
  extern Bool   g_encNumberOfWrittenBits;// Trace number of written bits
+ extern Bool   g_traceEncFracBits;      // Trace fractional bits
+ extern Bool   g_traceIntraSearchCost;  // Trace intra mode cost
+ extern Bool   g_traceRDCost;          
+ extern Bool   g_traceModeCheck; 
+ extern Bool   g_traceSAOCost; 
+ extern UInt   g_indent; 
 #define DTRACE_CU(x,y)             writeToTraceFile( x,y, g_traceCU );
 #define DTRACE_PU(x,y)             writeToTraceFile( x,y, g_tracePU );
@@ -193,4 +199,9 @@
 #define DTRACE_PU_S(x)             writeToTraceFile( x,   g_tracePU );
 #define DTRACE_TU_S(x)             writeToTraceFile( x,   g_traceTU );
+
+#define D_DEC_INDENT( b )            decIndent        ( b );
+#define D_PRINT_INC_INDENT( b, str ) prinStrIncIndent( b, str );
+#define D_PRINT_INDENT( b, str )     printStrIndent   ( b, str);
+
  Void           tracePSHeader   ( const Char* psName, Int layerId ); 
  Void           writeToTraceFile( const Char* symbolName, Int val, Bool doIt );
@@ -198,4 +209,18 @@
  UInt64         incSymbolCounter();          
  Void           stopAtPos       ( Int poc, Int layerId, Int cuPelX, Int cuPelY, Int cuWidth, Int cuHeight );           
+
+ Void           printStr         ( std::string str );
+ Void           printStrIndent   ( Bool b, std::string str );
+ Void           prinStrIncIndent ( Bool b, std::string str );
+ Void           decIndent        ( Bool b );
+
+ template <typename T>
+ std::string n2s ( T Number )
+ {
+   std::ostringstream ss;
+   ss << Number;
+   return ss.str();
+ };
+
 #endif
 #else
@@ -214,4 +239,9 @@
 #define DTRACE_PU_S(x) ;            
 #define DTRACE_TU_S(x) ;            
+
+#define D_DEC_INDENT( b ) ;
+#define D_PRINT_INC_INDENT( b, str );
+#define D_PRINT_INDENT( b, str );
+
 #endif
 #endif
Index: branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComYuv.cpp
===================================================================
--- branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComYuv.cpp	(revision 1308)
+++ branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TComYuv.cpp	(revision 1309)
@@ -125,11 +125,12 @@
     ::memcpy( pDst, pSrc, sizeof(Pel)*iWidth);
 #if ENC_DEC_TRACE && H_MV_ENC_DEC_TRAC
-    if ( g_traceCopyBack && g_nSymbolCounter >= g_stopAtCounter )
+    if ( g_traceCopyBack && compID == COMPONENT_Y)
     { 
+      std::stringstream strStr; 
       for ( Int x = 0; x < iWidth; x++)
       {      
-        std::cout << pSrc[ x ] << " " ; 
-      }
-      std::cout << std::endl;
+        strStr << pSrc[ x ] << " " ; 
+      }
+      printStrIndent( true, strStr.str() );
     }
 #endif
Index: branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TypeDef.h
===================================================================
--- branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TypeDef.h	(revision 1308)
+++ branches/HTM-14.1-update-dev1/source/Lib/TLibCommon/TypeDef.h	(revision 1309)
@@ -66,5 +66,7 @@
 /////////////////////////////////////////////////////////////////////////////////////////
 #if NH_MV
-#define NH_3D_INTRA_SDC_RD_FIX            1 // Fix in RD- decsion of intra sdc.
+#define NH_3D_DIS_FIX                     1
+#define NH_3D_ENC_DEPTH_FIX               1 // Fix Intra TU coding. 
+#define NH_3D_INTRA_SDC_RD_FIX            1 // Fix in RD- decision of intra SDC.
 #define NH_3D_DLT_FIX                     1 // Fixes numbers of parsed DLTs 
 #define NH_3D_VER141_DEC_COMP_FLAG        0 // Makes decoding of this version compatible to HTM-14.1 by re-introducing HTM-14.1 bugs.
