diff --git a/CMakeLists.txt b/CMakeLists.txt
index 362887d43499da97c4a7730caf82b71cfde8ee3c..2478eeed9f0791841f783e8ae0b3b3a1eeb2d4a9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -657,7 +657,7 @@ if (MORSE_DISTRIB_DIR OR EXISTS "${CMAKE_SOURCE_DIR}/CMakeModules/morse/")
         link_directories(${EZTrace_LIBRARY_DIRS})
         link_libraries( ${EZTrace_LIBRARIES})
         IF( SCALFMM_USE_MPI )
-          link_libraries(-leztrace-mpi)
+          link_libraries(-leztrace-autostart-mpi)
 	ENDIF(SCALFMM_USE_MPI)     
 	include_directories(${EZTrace_INCLUDE_DIRS})
 	MESSAGE(STATUS "EZTRACE:  ${EZTrace_INCLUDE_DIRS}   ${EZTrace_LIBRARY_DIRS}  ${EZTrace_LIBRARIES}")
diff --git a/Examples/ChebyshevInterpolationMPIFMM.cpp b/Examples/ChebyshevInterpolationMPIFMM.cpp
index da8bdf0212049b276310d1d29dc55adc1c6a7a23..bc0faf8f95268cfe6974475fbe17eda750d85cb7 100644
--- a/Examples/ChebyshevInterpolationMPIFMM.cpp
+++ b/Examples/ChebyshevInterpolationMPIFMM.cpp
@@ -46,7 +46,9 @@
 #include "Utils/FParameters.hpp"
 #include "Utils/FParameterNames.hpp"
 
-
+#ifdef SCALFMM_USE_EZTRACE
+#include "eztrace.h"
+#endif
 /// \file
 //!
 //! \brief This program runs the MPI FMM with Chebyshev interpolation of 1/r kernel
@@ -87,7 +89,13 @@ int main(int argc, char* argv[])
     ///////// VAR INIT /////////////////////////////////////////////////
 
     // Initialize values for MPI
+#ifdef SCALFMM_USE_EZTRACE
+   eztrace_start();
+#endif
     FMpi app(argc,argv);
+#ifdef SCALFMM_USE_EZTRACE
+   eztrace_pause();
+#endif  
     //
     // Initialize timer
     FTic time;
diff --git a/Src/Core/FFmmAlgorithmThreadProc.hpp b/Src/Core/FFmmAlgorithmThreadProc.hpp
index 2218a1282aab1b6bee527817ef498115316b5583..dee7f4cfcc6adba519a438343e5f3143caba8b2e 100644
--- a/Src/Core/FFmmAlgorithmThreadProc.hpp
+++ b/Src/Core/FFmmAlgorithmThreadProc.hpp
@@ -191,7 +191,7 @@ protected:
     void executeCore(const unsigned operationsToProceed) override {
         // Count leaf
 #ifdef SCALFMM_TRACE_ALGO
-    	eztrace_start();
+    	eztrace_resume();
 #endif
 	this->numberOfLeafs = 0;
         {
@@ -264,17 +264,16 @@ protected:
             FMpi::MpiAssert( MPI_Allgather( myIntervals.get(), int(sizeof(Interval)) * OctreeHeight, MPI_BYTE,
                                             workingIntervalsPerLevel, int(sizeof(Interval)) * OctreeHeight, MPI_BYTE, comm.getComm()),  __LINE__ );
         }
-
 #ifdef SCALFMM_TRACE_ALGO
-        Timers[P2MTimer].tic();
 	    eztrace_enter_event("P2M", EZTRACE_YELLOW);
 #endif
+        Timers[P2MTimer].tic();
         if(operationsToProceed & FFmmP2M) bottomPass();
         Timers[P2MTimer].tac();
 
 #ifdef SSCALFMM_TRACE_ALGO
-		eztrace_leave_event();
-	    eztrace_enter_event("M2M", EZTRACE_PINK);
+	eztrace_leave_event();
+	eztrace_enter_event("M2M", EZTRACE_PINK);
 #endif
 
         Timers[M2MTimer].tic();