diff --git a/tools/modelsim/commands.do b/tools/modelsim/commands.do
index a4bcea8e1ff9489e2c69c6583ba26b7133ae9362..6ca17908627b435c8dec05c684b6ba84a3a6a83f 100644
--- a/tools/modelsim/commands.do
+++ b/tools/modelsim/commands.do
@@ -59,6 +59,11 @@ proc hdl_build {} {
     return $env(HDL_BUILD_DIR)
 }
 
+proc hdl_toolset {} {
+    global env
+    return $env(TOOLSET)
+}
+
 #-------------------------------------------------------------------------------
 # LP = Load project
 #-------------------------------------------------------------------------------
@@ -324,7 +329,7 @@ proc mk_test {arg_lib} {
 #-------------------------------------------------------------------------------
 
 proc read_modelsim_project_files_file {} {
-    set fp [open [hdl_build]/modelsim/modelsim_project_files.txt]
+    set fp [open [hdl_build]/[hdl_toolset]/modelsim/modelsim_project_files.txt]
     set data [read $fp]
     close $fp
     set lines [split $data \n]
diff --git a/tools/quartus/run_all_qsys b/tools/quartus/run_all_qsys
index f4e4d8851b1d357c8a058780f9b03d6330fad864..05056ff9b567a3a31fee13a8fc74a17fda943f22 100755
--- a/tools/quartus/run_all_qsys
+++ b/tools/quartus/run_all_qsys
@@ -75,7 +75,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
diff --git a/tools/quartus/run_all_sopc b/tools/quartus/run_all_sopc
index c1f22de4c73940c55fb8e6466652820e5ea1b60b..bc880f4a67d1b4a03de8d76a5cb9d76485cc6138 100755
--- a/tools/quartus/run_all_sopc
+++ b/tools/quartus/run_all_sopc
@@ -76,7 +76,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
diff --git a/tools/quartus/run_app b/tools/quartus/run_app
index 7470467d97473b064016711d279b44d3e8f661a7..2d87cb81040b59c0c35b234856d2a63e34c0463b 100755
--- a/tools/quartus/run_app
+++ b/tools/quartus/run_app
@@ -123,7 +123,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -138,7 +138,7 @@ if [ -z "${app}" ]; then
 fi
 
 # Generate the paths we need
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 builddir="${quartusdir}/software"
 bspdstdir="${builddir}/bsp"
 unbsrcdir="${UNB}/Firmware/software/modules/src"
diff --git a/tools/quartus/run_app_clean b/tools/quartus/run_app_clean
index 781eb7dd3854b729d5c7e69347af983666bd8bfe..8f194ec833dd2ae1041bc47a7059f87b6a7c8ce6 100755
--- a/tools/quartus/run_app_clean
+++ b/tools/quartus/run_app_clean
@@ -83,7 +83,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -103,7 +103,7 @@ fi
 #            situations (exist + clean) vs (!exist + !clean).
 # For now I (H. Verkouter) lean towards the logical clause since I think
 # a non-fatal failure at this stage should not break other scripts
-appdir="${PRJ}/build/quartus/${project}/software/${app}"
+appdir="${PRJ}/build/${toolset}/quartus/${project}/software/${app}"
 
 if [ -d "${appdir}" ]; then
     unb_exec $0 msg=no rm -Rf ${appdir}
diff --git a/tools/quartus/run_bsp b/tools/quartus/run_bsp
index 848ba550167fe3a7d926fb68e291cdaa793bd891..55b1ef7d700d4fdbd91632dc6581d54c41aa01b0 100755
--- a/tools/quartus/run_bsp
+++ b/tools/quartus/run_bsp
@@ -81,7 +81,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -90,7 +90,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
 fi
 
 # now we can generate paths
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 builddir="${quartusdir}/software"
 bspdir="${builddir}/bsp"
 
diff --git a/tools/quartus/run_mif b/tools/quartus/run_mif
index bd955e5f0a5e8a3fed74d083beda3b588c710505..244879681e39b95e0b9f650c6db407c4c446d9da 100755
--- a/tools/quartus/run_mif
+++ b/tools/quartus/run_mif
@@ -83,7 +83,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -91,7 +91,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
     unb_error $0 "Please enter a valid project name as parameter"
 fi
 
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 builddir="${quartusdir}/software"
 bspdstdir="${builddir}/bsp"
 
diff --git a/tools/quartus/run_qcomp b/tools/quartus/run_qcomp
index 2916642d7f0ce721b463b5374ea8d6854e7d244e..087a0d3fb9db08c1f0239b1bbb0349b8d33a5b47 100755
--- a/tools/quartus/run_qcomp
+++ b/tools/quartus/run_qcomp
@@ -86,7 +86,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -95,7 +95,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
 fi
 
 # check if the quartus project directory is there
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 unb_exec $0 msg=no test -d ${quartusdir}
 
 if [ -z "${rev}" ]; then
diff --git a/tools/quartus/run_qsys b/tools/quartus/run_qsys
index f9a8c01c5db5d2e088ec511274c899678059aed3..08e57f2211da11845db9ed819391c34b9dcfb37f 100755
--- a/tools/quartus/run_qsys
+++ b/tools/quartus/run_qsys
@@ -72,7 +72,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -81,7 +81,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
 fi
 
 # Form name of quartusdir and check if it indeed exists
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 unb_exec $0 msg=no test -d ${quartusdir}
 
 # the QSYS file is optional. If it is omitted choose the first
diff --git a/tools/quartus/run_rbf b/tools/quartus/run_rbf
index 731e7155cbe56d9a2f41f3daee7113ab27f6ccda..13c7a1822d15e806285090d16a1db8757562cc1d 100755
--- a/tools/quartus/run_rbf
+++ b/tools/quartus/run_rbf
@@ -78,7 +78,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -86,7 +86,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
     unb_error $0 "Please enter a valid project name as parameter"
 fi
 
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 
 if [ -z "${rev}" ]; then
   project_rev="${project}"
diff --git a/tools/quartus/run_reg b/tools/quartus/run_reg
index 98a341176ed01cb187fbc530d9e0cd7c2dfa4568..f96f36f8a48bb648f83435b36f2ec486e4e68352 100755
--- a/tools/quartus/run_reg
+++ b/tools/quartus/run_reg
@@ -78,7 +78,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -86,7 +86,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
     unb_error $0 "Please enter a valid project name as parameter"
 fi
 
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 builddir="${quartusdir}/software"
 bspdstdir="${builddir}/bsp"
 
diff --git a/tools/quartus/run_sof b/tools/quartus/run_sof
index 89d7670aa846195ed41efa0936251f69a433619e..faf276d20b2fd6a6b4db66219731d4e00073740b 100755
--- a/tools/quartus/run_sof
+++ b/tools/quartus/run_sof
@@ -147,7 +147,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -162,7 +162,7 @@ fi
 # check if the quartusdirectory does exist 
 # (such that it won't fail with a cryptic error but with
 #  a readable one
-quartusdir[1]="${PRJ}/build/quartus/${project}"
+quartusdir[1]="${PRJ}/build/${toolset}/quartus/${project}"
 unb_exec $0 msg=no test -d ${quartusdir[1]}
 
 if [ -z "${rev}" ]; then
diff --git a/tools/quartus/run_sopc b/tools/quartus/run_sopc
index 7ecfe807afd08f601d0d97629a08838887511df2..651669bf87d419748ea503ec3b5af5ac7e9f6d30 100755
--- a/tools/quartus/run_sopc
+++ b/tools/quartus/run_sopc
@@ -74,7 +74,7 @@ PRJS="${RADIOHDL}"
 PRJ=
 for prj in ${PRJS}
     do
-        if [ -d "${prj}/build/quartus/${project}" ]; then
+        if [ -d "${prj}/build/${toolset}/quartus/${project}" ]; then
             PRJ=${prj}
         fi  
     done  
@@ -83,7 +83,7 @@ if [ -z "${project}" -o -z "${PRJ}" ]; then
 fi
 
 # Form name of quartusdir and check if it indeed exists
-quartusdir="${PRJ}/build/quartus/${project}"
+quartusdir="${PRJ}/build/${toolset}/quartus/${project}"
 unb_exec $0 msg=no test -d ${quartusdir}
 
 # the SOPC file is optional. If it is omitted choose the first