diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c9accb9623c023ac41a8640e54b5912ffd65ea4e..000878be151eb9c5d0309d5f27c48a1e27a3a199 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -31,7 +31,7 @@ simulate-nanosoc:
   script:
     - echo "Simulation phase started"
     - git submodule foreach --recursive git submodule init
-    # - git pull --recurse-submodules
+    - git fetch --recurse-submodules
     - source set_env.sh
     - sleep 5
   tags:
diff --git a/set_env.sh b/set_env.sh
index 0b3fcdd2f183c6f66a7a6297405d97d25208844c..2b5831e341a0b16fa4d95b980af2224a259b229e 100755
--- a/set_env.sh
+++ b/set_env.sh
@@ -64,9 +64,10 @@ if [ ! -f $SOCLABS_PROJECT_DIR/.socinit ]; then
     # Source environment variables for all submodules
     cd $SOCLABS_DESIGN_ROOT
     git submodule update --remote --recursive
+    python3 $SOCLABS_SOCTOOLS_FLOW_DIR/bin/subrepo_checkout.py -b proj-branch -t $SOCLABS_DESIGN_ROOT
     #git submodule foreach --recursive git checkout main # TODO: Bug on this line - need to checkout to correct branch
     # Read proj-branch file to find out which branch each subrepo needs to be on
-    git config --file .gitmodules --get-regexp path | awk '{ print $2 }' | while read line; do cd $SOCLABS_PROJECT_DIR/$line && git checkout `grep $line $SOCLABS_PROJECT_DIR/proj-branch | awk '{ print $2 }'` && git pull; done
+    # git config --file .gitmodules --get-regexp path | awk '{ print $2 }' | while read line; do cd $SOCLABS_PROJECT_DIR/$line && git checkout `grep $line $SOCLABS_PROJECT_DIR/proj-branch | awk '{ print $2 }'` && git pull; done
     git restore $SOCLABS_DESIGN_ROOT/.gitmodules
     touch $SOCLABS_PROJECT_DIR/.socinit
 fi
diff --git a/soctools_flow b/soctools_flow
index ddb82138ed9628b4dc011e7a156555fb6c23399a..3b98954095dd0e7b62f520751fd148a16c9f4d03 160000
--- a/soctools_flow
+++ b/soctools_flow
@@ -1 +1 @@
-Subproject commit ddb82138ed9628b4dc011e7a156555fb6c23399a
+Subproject commit 3b98954095dd0e7b62f520751fd148a16c9f4d03