diff --git a/Src/Core/FFmmAlgorithmTask.hpp b/Src/Core/FFmmAlgorithmTask.hpp
index a0325da5f37e6e1950a9b21e4816deea9178c56f..88b11dbd8dfb74050f3202de812086faa71c859b 100644
--- a/Src/Core/FFmmAlgorithmTask.hpp
+++ b/Src/Core/FFmmAlgorithmTask.hpp
@@ -185,7 +185,7 @@ protected:
 					do{
 						// We need the current cell and the child
 						// child is an array (of 8 child) that may be null
-#pragma omp task firstprivate(octreeIterator) shared(idxLevel)
+#pragma omp task firstprivate(octreeIterator,idxLevel)
 						{
 							kernels[omp_get_thread_num()]->M2M( octreeIterator.getCurrentCell() , octreeIterator.getCurrentChild(), idxLevel);
 						}
@@ -243,7 +243,7 @@ protected:
                     const int separationCriteria = (idxLevel != FAbstractAlgorithm::lowerWorkingLevel-1 ? 1 : leafLevelSeparationCriteria);
 					// for each cell we apply the M2L with all cells in the implicit interaction list
 					do{
-#pragma omp task firstprivate(octreeIterator) shared(idxLevel)
+#pragma omp task firstprivate(octreeIterator,idxLevel)
 						{
                             const CellClass* neighbors[343];
 							const int counter = tree->getInteractionNeighbors(neighbors, octreeIterator.getCurrentGlobalCoordinate(), idxLevel, separationCriteria);
@@ -290,7 +290,7 @@ protected:
                     const int separationCriteria = (idxLevel != FAbstractAlgorithm::lowerWorkingLevel-1 ? 1 : leafLevelSeparationCriteria);
 					// for each cells
 					do{
-                        #pragma omp task default(none) firstprivate(octreeIterator,separationCriteria) shared(idxLevel)
+                        #pragma omp task default(none) firstprivate(octreeIterator,separationCriteria,idxLevel)
                         {
                             const CellClass* neighbors[343];
                                 const int counter = tree->getInteractionNeighbors(neighbors, octreeIterator.getCurrentGlobalCoordinate(), idxLevel, separationCriteria);
@@ -347,7 +347,7 @@ protected:
 					FLOG(FTic counterTimeLevel);
 					// for each cells
 					do{
-#pragma omp task firstprivate(octreeIterator) shared(idxLevel)
+#pragma omp task firstprivate(octreeIterator,idxLevel)
 						{
 							kernels[omp_get_thread_num()]->L2L( octreeIterator.getCurrentCell() , octreeIterator.getCurrentChild(), idxLevel);
 						}