diff --git a/CMakeLists.txt b/CMakeLists.txt
index 87546194392aab8abc5d92b12ddf34e08310ddd6..90819632bcc5e6d028e2a9a553e4a164e4c6b96e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,11 +6,14 @@ if(insource)
     MESSAGE(FATAL_ERROR "${PROJECT_NAME} requires an out of source build. Goto ./Build and tapes cmake ../")
 endif(insource)
 
-# MPI option has to be set before project
-OPTION( SCALFMM_USE_MPI "Set to ON to build ScaFMM with MPI" OFF )
+# MPI option has to be set before project, cannot be changed in the cache!
 if( SCALFMM_USE_MPI )
-	SET(CMAKE_CXX_COMPILER mpicxx)
-endif()
+	include(CMakeForceCompiler)
+	CMAKE_FORCE_C_COMPILER(mpicc "MPI C Compiler") 
+    	CMAKE_FORCE_CXX_COMPILER(mpicxx "MPI C++ Compiler")
+else()
+	MESSAGE(STATUS "Remove CMake cache and run cmake .. -DSCALFMM_USE_MPI=ON to enable MPI" )
+endif(SCALFMM_USE_MPI)
 
 # Project Infos
 project(scalfmm)