diff --git a/Src/Core/FFmmAlgorithmThreadProc.hpp b/Src/Core/FFmmAlgorithmThreadProc.hpp
index 1dc99669f560f04de8e2faf59c19ec9c066435cd..74e0640fdf6b73706c3a6c2139308d931c7458d2 100644
--- a/Src/Core/FFmmAlgorithmThreadProc.hpp
+++ b/Src/Core/FFmmAlgorithmThreadProc.hpp
@@ -294,7 +294,7 @@ private:
                     if( child[idxChild] && getWorkingInterval((idxLevel+1), idProcess).min <= child[idxChild]->getMortonIndex() ){
                         child[idxChild]->serializeUp(&sendBuffer[idxBuff]);
                         idxBuff += CellClass::SerializedSizeUp;
-                        state |= char(0x1 << idxChild);
+                        state |= char(0x1 << char(idxChild));
                     }
                 }
                 sendBuffer[0] = state;
diff --git a/Src/Kernels/FElecForcesKernels.hpp b/Src/Kernels/FElecForcesKernels.hpp
index 32cb78853dce1c738405fe1e08c41a104d724056..bd14ab0642d27b8d5f046e5725b58be7048414a8 100644
--- a/Src/Kernels/FElecForcesKernels.hpp
+++ b/Src/Kernels/FElecForcesKernels.hpp
@@ -444,7 +444,7 @@ private:
         // n from 0 to P
         for(int n = 0 ; n <= devP ; ++n ){
             // l<0 // (-1)^l
-            FReal pow_of_minus_1_for_l = ( n & 1 ? -1.0 : 1.0);
+            FReal pow_of_minus_1_for_l = ( n & 1 ? FReal(-1.0) : FReal(1.0) );
 
             // O_n^l : here points on the source multipole expansion term of degree n and order |l|
             const int index_n = harmonic.getPreExpRedirJ(n);