diff --git a/CMakeLists.txt b/CMakeLists.txt
index c20b5f03c1b264e25482cddeb28ce951fb2fb86c..98fcfe25fd09331d038eca318713c80da314fa2c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -306,7 +306,6 @@ endif()
 # If simulation we don't enter in kernel functions so that we don't need to
 # link with concerned libraries
 if(NOT CHAMELEON_SIMULATION)
-
     # CHAMELEON depends on CBLAS
     #---------------------------
     find_package(CBLAS REQUIRED)
@@ -315,10 +314,10 @@ if(NOT CHAMELEON_SIMULATION)
             include_directories(${CBLAS_INCLUDE_DIRS_DEP})
         endif()
         if(CBLAS_CFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_C_FLAGS "${CBLAS_CFLAGS_OTHER_DEP}")
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${CBLAS_CFLAGS_OTHER_DEP}")
         endif()
         if(CBLAS_LDFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_EXE_LINKER_FLAGS "${CBLAS_LDFLAGS_OTHER_DEP}")
+            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CBLAS_LDFLAGS_OTHER_DEP}")
         endif()
         if(CBLAS_LIBRARY_DIRS_DEP)
             list(APPEND CMAKE_INSTALL_RPATH "${CBLAS_LIBRARY_DIRS_DEP}")
@@ -351,10 +350,10 @@ if(NOT CHAMELEON_SIMULATION)
             include_directories(${LAPACKE_INCLUDE_DIRS_DEP})
         endif()
         if(LAPACKE_CFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_C_FLAGS "${LAPACKE_CFLAGS_OTHER_DEP}")
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${LAPACKE_CFLAGS_OTHER_DEP}")
         endif()
         if(LAPACKE_LDFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_EXE_LINKER_FLAGS "${LAPACKE_LDFLAGS_OTHER_DEP}")
+            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${LAPACKE_LDFLAGS_OTHER_DEP}")
         endif()
         if(LAPACKE_LIBRARY_DIRS_DEP)
             list(APPEND CMAKE_INSTALL_RPATH "${LAPACKE_LIBRARY_DIRS_DEP}")
@@ -387,10 +386,10 @@ if(NOT CHAMELEON_SIMULATION)
             include_directories(${TMG_INCLUDE_DIRS_DEP})
         endif()
         if(TMG_CFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_C_FLAGS "${TMG_CFLAGS_OTHER_DEP}")
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${TMG_CFLAGS_OTHER_DEP}")
         endif()
         if(TMG_LDFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_EXE_LINKER_FLAGS "${TMG_LDFLAGS_OTHER_DEP}")
+            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${TMG_LDFLAGS_OTHER_DEP}")
         endif()
         if(TMG_LIBRARY_DIRS_DEP)
             list(APPEND CMAKE_INSTALL_RPATH "${TMG_LIBRARY_DIRS_DEP}")
@@ -476,8 +475,11 @@ if(NOT CHAMELEON_SIMULATION)
             # tests for intel mpi
             #list(APPEND MPI_C_COMPILE_FLAGS "-mt_mpi")
             #list(APPEND MPI_COMPILE_FLAGS "-mt_mpi")
+            if(MPI_C_COMPILE_FLAGS)
+                set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_C_COMPILE_FLAGS}")
+            endif()
             if(MPI_C_LINK_FLAGS)
-                list(APPEND CMAKE_EXE_LINKER_FLAGS "${MPI_C_LINK_FLAGS}")
+                set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MPI_C_LINK_FLAGS}")
             endif()
         endif (MPI_C_FOUND)
 
@@ -575,8 +577,11 @@ else (NOT CHAMELEON_SIMULATION)
             " - Activate MPI in Chameleon${ColourReset}")
             list(APPEND EXTRA_LIBRARIES ${MPI_C_LIBRARIES} )
             include_directories( ${MPI_C_INCLUDE_PATH} )
+            if(MPI_C_COMPILE_FLAGS)
+                set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${MPI_C_COMPILE_FLAGS}")
+            endif()
             if(MPI_C_LINK_FLAGS)
-                list(APPEND CMAKE_EXE_LINKER_FLAGS "${MPI_C_LINK_FLAGS}")
+                set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${MPI_C_LINK_FLAGS}")
             endif()
         endif (MPI_C_FOUND)
 
@@ -619,11 +624,11 @@ if( CHAMELEON_SCHED_STARPU )
             set(CMAKE_REQUIRED_INCLUDES "${STARPU_INCLUDE_DIRS_DEP}")
         endif()
         if(STARPU_CFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_C_FLAGS "${STARPU_CFLAGS_OTHER_DEP}")
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${STARPU_CFLAGS_OTHER_DEP}")
             set(CMAKE_REQUIRED_FLAGS "${STARPU_CFLAGS_OTHER_DEP}")
         endif()
         if(STARPU_LDFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_EXE_LINKER_FLAGS "${STARPU_LDFLAGS_OTHER_DEP}")
+            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${STARPU_LDFLAGS_OTHER_DEP}")
             set(CMAKE_REQUIRED_LDFLAGS "${STARPU_LDFLAGS_OTHER_DEP}")
         endif()
         if(STARPU_LIBRARY_DIRS_DEP)
@@ -783,10 +788,10 @@ if( CHAMELEON_SCHED_PARSEC )
           include_directories(${PARSEC_INCLUDE_DIRS_DEP})
       endif()
       if(PARSEC_CFLAGS_OTHER_DEP)
-          list(APPEND CMAKE_C_FLAGS "${PARSEC_CFLAGS_OTHER_DEP}")
+          set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PARSEC_CFLAGS_OTHER_DEP}")
       endif()
       if(PARSEC_LDFLAGS_OTHER_DEP)
-          list(APPEND CMAKE_EXE_LINKER_FLAGS "${PARSEC_LDFLAGS_OTHER_DEP}")
+          set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PARSEC_LDFLAGS_OTHER_DEP}")
       endif()
       if(PARSEC_LIBRARY_DIRS_DEP)
           list(APPEND CMAKE_INSTALL_RPATH "${PARSEC_LIBRARY_DIRS_DEP}")
@@ -852,10 +857,10 @@ if( CHAMELEON_SCHED_QUARK )
             include_directories(${QUARK_INCLUDE_DIRS_DEP})
         endif()
         if(QUARK_CFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_C_FLAGS "${QUARK_CFLAGS_OTHER_DEP}")
+            set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${QUARK_CFLAGS_OTHER_DEP}")
         endif()
         if(QUARK_LDFLAGS_OTHER_DEP)
-            list(APPEND CMAKE_EXE_LINKER_FLAGS "${QUARK_LDFLAGS_OTHER_DEP}")
+            set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${QUARK_LDFLAGS_OTHER_DEP}")
         endif()
         if(QUARK_LIBRARY_DIRS_DEP)
             list(APPEND CMAKE_INSTALL_RPATH "${QUARK_LIBRARY_DIRS_DEP}")