diff --git a/src/core/timing/TimingPool.cpp b/src/core/timing/TimingPool.cpp
index 7b64baee12c6d28b88318d007d25ea7125ecd09f..97dfc1a893567ae2b9c6a2be6e5af41a383fb999 100644
--- a/src/core/timing/TimingPool.cpp
+++ b/src/core/timing/TimingPool.cpp
@@ -22,7 +22,7 @@
 #include "TimingPool.h"
 #include "core/Abort.h"
 #include "core/logging/Logging.h"
-#include "core/mpi/Gatherv.h"
+#include "core/mpi/SetReduction.h"
 #include "core/mpi/MPIManager.h"
 
 
@@ -394,7 +394,7 @@ void TimingPool<TP>::unifyRegisteredTimersAcrossProcesses()
    for( auto timer = begin(); timer != end(); ++timer )
       names.push_back( timer->first );
 
-   auto gatheredNames = mpi::allGatherv( names );
+   auto gatheredNames = mpi::allReduceSet( names, mpi::UNION );
    for( auto name = gatheredNames.begin(); name != gatheredNames.end(); ++name )
       if( !timerExists(*name) )
          registerTimer( *name );