diff --git a/build/with_fcm/fcm-make.cfg b/build/with_fcm/fcm-make.cfg
index ec0b1d1c141a62c1059c939bb623ae2a71b97a75..cf2f0909ab554fddf2567ad1f23cb3b68a29a85a 100644
--- a/build/with_fcm/fcm-make.cfg
+++ b/build/with_fcm/fcm-make.cfg
@@ -55,7 +55,7 @@ build.prop{fc.defs}[testprogs] = $FPP_FLAGS WITHOUT_CXXDEMANGLE USE_OPENMP
 $util = util1 util2 util3 util4 util5 util6 util7 util8 util9 util10 util11 util12 util13 util14 util15 util16
 $mpi = mpi2 mpi3 mpi4 mpi5 mpi6 mpi7 mpi8 mpi9 mpi10 mpi11 mpi12 mpi13 mpi14 mpi15 mpi16 mpi17 mpi18 mpi19
 $system = system1 system2 system3 system4 system5 system6 system7 system8 system10 system11 system12 system13 system14
-build.prop{ns-dep.o} = common parkind drhook $util $mpi oml mpl gstats1 $system
+build.prop{ns-dep.o} = param parkind drhook $util $mpi oml mpl gstats1 $system
 build.prop{fc.libs} = $LIBS
 
 ################################################################################################
@@ -64,11 +64,11 @@ build.prop{fc.libs} = $LIBS
 #############################
 # 4.1 Programs and dummy programm to force linking
 build.source[dummyprog] = src/dummyprog.F90
-build.source[testprogs] = src/testprogs
+build.source[testprogs] = src/ice_adjust/ src/rain_ice/ src/support/
 
 #############################
 # 4.2 Main directory
-build.source[common] = src/common/
+build.source[param] = src/aux/ src/turb/ src/micro/
 
 #############################
 # 4.3 Fiat directory
diff --git a/build/with_fcm/make_fcm.sh b/build/with_fcm/make_fcm.sh
index df2d7cd9efab89d42d69d7c86f23aa836e450852..4402641c5e2c49cbdc88c847a0fc9114d09510f7 100755
--- a/build/with_fcm/make_fcm.sh
+++ b/build/with_fcm/make_fcm.sh
@@ -183,8 +183,14 @@ cp fcm-make.cfg $builddir
 cd $builddir
 mkdir src
 cd src
-ln -s ../../../../src/common .
-ln -s ../../../../src/testprogs .
+if [ -d ../../../../src/common ]; then
+  #We compile directly from a PHYEX repository
+  ln -s ../../../../src/common/* .
+  ln -s ../../../../src/testprogs/* .
+else
+  #We compile after an execution of prep_code
+  ln -s ../../../../src/* .
+fi
 ln -s ../../fiat/src fiat
 cat <<EOF > dummyprog.F90
 PROGRAM DUMMYPROG
diff --git a/tools/check_commit_testprogs.sh b/tools/check_commit_testprogs.sh
index e663e0550e3ea73502696b772bdfb32001432a05..e626568646e92567d474b6c3c38ce06c8527b47f 100755
--- a/tools/check_commit_testprogs.sh
+++ b/tools/check_commit_testprogs.sh
@@ -171,23 +171,25 @@ if [ $compilation -eq 1 ]; then
   else
     expand_options=""
   fi
-  subs="$subs -s turb -s micro -s aux -s ice_adjust"
+  subs="$subs -s turb -s micro -s aux -s ice_adjust -s rain_ice -s support"
   prep_code=$PHYEXTOOLSDIR/prep_code.sh
+
   if [ "$fromdir" == '' ]; then
     echo "Clone repository, and checkout commit $commit (using prep_code.sh)"
-    $prep_code -c $commit $expand_options $subs src
-    mv src/build src/build_from_commit #We do not use the compilation system as it used to be when commiting
-    cp -r $PHYEXTOOLSDIR/../build src/ #We use the compilation system from the same commit as the current script
+    if [[ $commit == testprogs${separator}* ]]; then
+      $prep_code -c $commit src #This commit is ready for inclusion
+    else
+      $prep_code -c $commit $expand_options $subs -m testprogs src
+    fi
   else
     echo "Copy $fromdir"
     mkdir src
     scp -q -r $fromdir/src src/
-    #scp -q -r $fromdir/build src/ #We do not use the compilation system present with the source code
-    cp -r $PHYEXTOOLSDIR/../build src/ #We use the compilation system from the same commit as the current script
-    $prep_code $expand_options $subs src
+    $prep_code $expand_options $subs -m testprogs src
   fi
+  cp -r $PHYEXTOOLSDIR/../build . #We use the compilation system from the same commit as the current script
 
-  cd $TESTDIR/$name/src/build/with_fcm/
+  cd $TESTDIR/$name/build/with_fcm/
   rm -rf arch_*
   ./make_fcm.sh --arch $archfile 2>&1 | tee Output_compilation
 fi
@@ -196,7 +198,7 @@ if [ $run -ge 1 ]; then
   echo "### Running of commit $commit"
 
   for t in $(echo $tests | sed 's/,/ /g'); do
-    if [ ! -f $TESTDIR/$name/src/build/with_fcm/arch_${archfile}/build/bin/main_${t}.exe ]; then
+    if [ ! -f $TESTDIR/$name/build/with_fcm/arch_${archfile}/build/bin/main_${t}.exe ]; then
       echo "Pack does not exist ($TESTDIR/$name) or compilation has failed, please check"
       exit 6
     fi
@@ -216,7 +218,7 @@ if [ $run -ge 1 ]; then
     mkdir -p tests/$t
     cd tests/$t
     ln -s $dirdata/$t data
-    $TESTDIR/$name/src/build/with_fcm/arch_${archfile}/build/bin/main_${t}.exe --check 2>&1 > Output_run
+    $TESTDIR/$name/build/with_fcm/arch_${archfile}/build/bin/main_${t}.exe --check 2>&1 > Output_run
   done
 fi