diff --git a/mechanisms/CMakeLists.txt b/mechanisms/CMakeLists.txt
index 3932382e4efd1336b3767affeef08338f681d613..2ad38b1126ea4025fee0d9a4685b2c937c916c1b 100644
--- a/mechanisms/CMakeLists.txt
+++ b/mechanisms/CMakeLists.txt
@@ -18,10 +18,16 @@ if(ARB_WITH_PROFILING)
     list(APPEND modcc_flags "--profile")
 endif()
 
+set(external_modcc)
+if(ARB_WITH_EXTERNAL_MODCC)
+    set(external_modcc MODCC ${modcc})
+endif()
+
 build_modules(
     ${mechanisms}
     SOURCE_DIR "${mod_srcdir}"
     DEST_DIR "${mech_dir}"
+    ${external_modcc}
     MODCC_FLAGS -t cpu -t gpu ${modcc_flags}
     GENERATES .hpp _cpu.cpp _gpu.cpp _gpu.cu
     TARGET build_all_mods
diff --git a/modcc/CMakeLists.txt b/modcc/CMakeLists.txt
index 85b55cf9a114d67053176b491fce18aa8c37997a..23c0f924d764611ad091c9e6cc9632ad4e74cfea 100644
--- a/modcc/CMakeLists.txt
+++ b/modcc/CMakeLists.txt
@@ -35,5 +35,7 @@ target_link_libraries(modcc libmodcc ext-tclap)
 
 set_target_properties(modcc libmodcc PROPERTIES EXCLUDE_FROM_ALL ${ARB_WITH_EXTERNAL_MODCC})
 
-install(TARGETS modcc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+if (NOT ARB_WITH_EXTERNAL_MODCC)
+    install(TARGETS modcc RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+endif()