diff --git a/cpp/particles/lock_free_bool_array.hpp b/cpp/particles/lock_free_bool_array.hpp
index 028191479d5539efe7487c6b88262d5cbceeb135..dbfbfb9da6fbbea4f19a7262cb004457cbddf421 100644
--- a/cpp/particles/lock_free_bool_array.hpp
+++ b/cpp/particles/lock_free_bool_array.hpp
@@ -69,7 +69,7 @@ public:
             int localBusy = Busy;// Intel complains if we pass a const as last param
             int expected = Available;
 #ifdef __INTEL_COMPILER
-            while(!__sync_val_compare_and_swap(&k->lock, &expected, localBusy)){
+            while(!__sync_val_compare_and_swap((int*)&k->lock, &expected, localBusy)){
 #else
             while(!std::atomic_compare_exchange_strong(&k->lock, &expected, localBusy)){
 #endif