diff --git a/README.md b/README.md
index e65d3f5e33a0c8583a768224b2adfd79e653f123..d3fc8f1b271605cfac54fd85bfddbe471220b286 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@ Several presentations were done, the materials can be found on the [wiki](https:
 
 Prerequisites:
   - an internet connexion (with access to the github servers) is needed only for the installation
+    and, for testprogs, when the fiat version to use change
   - python > 3.8 (but only tested with version 3.10)
   - some python packages:
     - numpy and pandas for the testprogs
diff --git a/build/with_fcm/fcm-make.cfg b/build/with_fcm/fcm-make.cfg
index e09c3ec573429dcc4d6205dc0ea3dbcf937450e6..5f3fb54972d38e6082355712078d2a3aab4d0397 100644
--- a/build/with_fcm/fcm-make.cfg
+++ b/build/with_fcm/fcm-make.cfg
@@ -155,3 +155,7 @@ build.source[system13] = $FIAT/fiat/system/internal/linux_bind.c
 build.source[system14] = $FIAT/fiat/system/internal/gentrbk.F90
 #ifcore module is external to fiat (intel)
 build.prop{no-dep.f.module}[system14] = ifcore
+
+# 4.3.c Other dependencies
+build.source[nvtxdummy] = src/nvtx_dummy.F90
+# After preprocessing, dr_hook_util does not depend anymore on nvtx
diff --git a/build/with_fcm/make_fcm.sh b/build/with_fcm/make_fcm.sh
index 0cc4b4d7140a3f760ad4965c9e76afb8cd63adb2..ac7d03ce6b9192ace78a038c60bab64fc988dca5 100755
--- a/build/with_fcm/make_fcm.sh
+++ b/build/with_fcm/make_fcm.sh
@@ -4,7 +4,8 @@ set -e
 #set -x
 
 fcm_version=tags/2021.05.0
-fiat_version=tags/1.2.0
+fiat_version=5eef5552c3002aa962caef56c6bdc88932739e77 #this specific version is needed for NEC
+fiat_gh_user=ACCORD-NWP #for official repo, use ecmwf-ifs
 
 function parse_args() {
   # default values
@@ -109,21 +110,40 @@ function check_install_fcm() {
 }
 
 function check_install_fiat() {
-  if [ ! -d fiat/src ]; then
+  if [ $ssh -eq 1 ]; then
+    repo=git@github.com:$fiat_gh_user/fiat.git
+    remote=ssh_$fiat_gh_user
+  else
+    repo=https://github.com/$fiat_gh_user/fiat.git
+    remote=https_$fiat_gh_user
+  fi
+  cd fiat
+  if [ ! -d src ]; then
     echo "Performing fiat cloning..."
-    cd fiat
     rm -f .gitkeep
-    if [ $ssh -eq 1 ]; then
-      git clone git@github.com:ecmwf-ifs/fiat.git .
-    else
-      git clone https://github.com/ecmwf-ifs/fiat.git .
-    fi
-    git checkout $fiat_version
+    git clone $repo .
+    git remote rename origin $remote
     touch .gitkeep
-    cd ..
     echo "...fiat cloning done"
   fi
-echo
+  if [ $(git remote -v | grep -e "^$remote\s" | wc -l) -eq 0 ]; then
+    #the repository and/or the protocol is new
+    git remote add $remote $repo
+  fi
+  #Checkout the right version
+  set +e
+  #try to directly checkout to reduce network need
+  git checkout $fiat_version 2> /dev/null
+  stat=$?
+  set -e
+  if [ $stat -ne 0 ]; then
+    echo "Performing fiat fetching..."
+    git fetch $remote
+    git checkout $fiat_version
+    echo "...fiat fetching done"
+  fi
+  cd ..
+  echo
 }
 
 function gmkfile2arch() {
@@ -386,6 +406,14 @@ if [ $packcreation -eq 1 ]; then
   PROGRAM DUMMYPROG
     PRINT*, "CREATED TO FORCE FCM TO LINK SOMETHING"
   END PROGRAM DUMMYPROG
+..EOF
+  #needed with commit 6b9b61b3d17228fcb5c0186e38d72aea987acd10 by P. Marguinaud
+  #due to a weakness of fcm
+  cat <<..EOF > nvtx_dummy.F90
+  MODULE NVTX
+    !Unused module but wrongly detected as dependency by fcm
+    !whereas it is within an ifdef directive
+  END MODULE NVTX
 ..EOF
 fi