diff --git a/compiler2/xpather.cc b/compiler2/xpather.cc
index 658be18d97145f050aae629d4ba8b7194cd69baa..d1cbef00863a87feae76305836f832676cdb2823 100644
--- a/compiler2/xpather.cc
+++ b/compiler2/xpather.cc
@@ -903,7 +903,7 @@ static boolean is_circular_dep(const struct config_struct* all_configs, const ch
         }
         // Remove child
         last_list = *list;
-        while(last_list && last_list->str) {
+        while(last_list && last_list->next != NULL && last_list->next->next != NULL) {
           last_list = last_list->next;
         }
         Free(last_list->str);
@@ -953,11 +953,11 @@ static boolean analyse_child(struct config_struct* const all_configs, const char
     // Insert all required config of project_name project's act_config configuration
     struct string2_list* last_proj_config = tmp->requirements;
     while (last_proj_config && last_proj_config->str1 != NULL && last_proj_config->str2 != NULL) {
-      result = insert_to_required_config(all_configs, last_proj_config->str1, last_proj_config->str2, required_configs);
+      insert_to_required_config(all_configs, last_proj_config->str1, last_proj_config->str2, required_configs);
       last_proj_config = last_proj_config->next;
     }
     // Analyse the children of this project too.
-    result = insert_to_tmp_config(tmp_configs, project_name, act_config, TRUE);
+    insert_to_tmp_config(tmp_configs, project_name, act_config, TRUE);
     struct string_list* last_child = tmp->children;
     while (last_child && last_child->str != NULL) {
       result = analyse_child(all_configs, last_child->str, NULL, required_configs, tmp_configs);
@@ -981,14 +981,18 @@ static boolean analyse_child(struct config_struct* const all_configs, const char
         // If someone requires something about project_name project
         if (strcmp(req_config->str1, project_name) == 0) {
           const struct config_struct* tmp = all_configs;
-          // Get the active configuration of project_name project
-          while (tmp && tmp->project_name != NULL && tmp->project_conf != NULL) {
-            if (strcmp(tmp->project_name, project_name) == 0 && tmp->is_active == TRUE) {
-              act_config = tmp->project_conf;
-              is_active = TRUE;
-              break;
+          if (project_config == NULL) {
+            // Get the active configuration of project_name project
+            while (tmp && tmp->project_name != NULL && tmp->project_conf != NULL) {
+              if (strcmp(tmp->project_name, project_name) == 0 && tmp->is_active == TRUE) {
+                act_config = tmp->project_conf;
+                is_active = TRUE;
+                break;
+              }
+              tmp = tmp->next;
             }
-            tmp = tmp->next;
+          } else {
+            act_config = project_config;
           }
           found = TRUE;
           
@@ -1070,7 +1074,7 @@ static boolean analyse_child(struct config_struct* const all_configs, const char
       // Insert the active configuration to the required_configs
       result = insert_to_required_config(all_configs, project_name, act_config, required_configs);
       if (result == FALSE) return result;
-   
+      
       //Insert the project requirements of the project_name project's active configuration
       struct string2_list* last_proj_config = last->requirements;
       while (last_proj_config && last_proj_config->str1 != NULL && last_proj_config->str2 != NULL) {
@@ -1079,12 +1083,44 @@ static boolean analyse_child(struct config_struct* const all_configs, const char
         // project_name is an element of the circle
         struct string_list* list = NULL;
         boolean circular = is_circular_dep(all_configs, last_proj_config->str1, last_proj_config->str1, project_name, &list);
+        boolean need_circular_error = FALSE;
+        // Find the last_proj_config->str1 project in the circle, and 
+        // determine if it has parent projects other than that are in the circle
+        if (circular) {
+          // Find the config struct of last_proj_config->str1
+          struct config_struct* tmp2 = all_configs;
+          while (tmp2 && tmp2->project_name != NULL) {
+            if (strcmp(tmp2->project_name, last_proj_config->str1) == 0) {
+              break;
+            }
+            tmp2 = tmp2->next;
+          }
+          if (list && tmp2 && tmp2->dependencies != NULL) {
+            struct string_list* deps = tmp2->dependencies;
+            while (deps && deps->str != NULL) {
+              struct string_list* tmp_list = list;
+              boolean tmp_error = FALSE;
+              while (tmp_list && tmp_list->str != NULL) {
+                if (strcmp(tmp_list->str, deps->str) == 0) {
+                  tmp_error = TRUE;
+                  break;
+                }
+                tmp_list = tmp_list->next;
+              }
+              if (tmp_error == FALSE) {
+                need_circular_error = TRUE;
+                break;
+              }
+              deps = deps->next;
+            }
+          }
+        }
         free_string_list(list);
         // Go through the tmp_configs to check inconsistency
         while (tmp_tmp && tmp_tmp->str1 != NULL && tmp_tmp->str2 != NULL) {
           if (strcmp(tmp_tmp->str1, last_proj_config->str1) == 0 && 
-             (strcmp(tmp_tmp->str2, last_proj_config->str2) != 0 &&
-             (!tmp_tmp->is_active || circular))) {
+              strcmp(tmp_tmp->str2, last_proj_config->str2) != 0 && 
+              circular && need_circular_error) {
             // Insert the configuration. This will cause an error later.
             insert_to_required_config(all_configs, tmp_tmp->str1, tmp_tmp->str2, required_configs);
             result = FALSE;
@@ -1491,14 +1527,14 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, char *tpdName, co
   { // check if the active configuration exists
     expstring_t xpathActCfg= mprintf(
       "/TITAN_Project_File_Information/Configurations/"
-        "Configuration[@name='%s']/text()", actcfg); // todo
+        "Configuration[@name='%s']/text()", actcfg);
     XPathObject theConfigEx(run_xpath(xpathCtx, xpathActCfg));
     Free(xpathActCfg);
 
     xmlNodeSetPtr nodes = theConfigEx->nodesetval;
     if (nodes == NULL) {
-      ERROR("The active build configuration named '%s' does not exist",
-          actcfg);
+      ERROR("The active build configuration named '%s' of project '%s' does not exist",
+        actcfg, *p_project_name);
       for (size_t i = 0; i < folders.size(); ++i) {
         Free(const_cast<char*>(folders.get_nth_elem(i)));
       }
@@ -1512,7 +1548,25 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, char *tpdName, co
     //                        To ensure that the first elem is checked too if last_elem->next is null
     while (last_elem && last_elem->str1 != NULL && last_elem->str2 != NULL) {
       if (!strcmp(last_elem->str1, *p_project_name) && strcmp(last_elem->str2, actcfg)) {
-        ERROR("Required configuration is inconsistent : Project '%s' cannot have 2 "
+        { // check if the other configuration exists
+          expstring_t xpathActCfg= mprintf(
+            "/TITAN_Project_File_Information/Configurations/"
+              "Configuration[@name='%s']/text()", last_elem->str2);
+          XPathObject theConfigEx(run_xpath(xpathCtx, xpathActCfg));
+          Free(xpathActCfg);
+
+          xmlNodeSetPtr nodes = theConfigEx->nodesetval;
+          if (nodes == NULL) {
+            ERROR("The active build configuration named '%s' of project '%s' does not exist",
+              last_elem->str2, *p_project_name);
+            for (size_t i = 0; i < folders.size(); ++i) {
+              Free(const_cast<char*>(folders.get_nth_elem(i)));
+            }
+            folders.clear();
+            return TPD_FAILED;
+          }
+        }
+        ERROR("Required configuration is inconsistent or circular : Project '%s' cannot have 2 "
               "different configuration '%s' and '%s'",
               last_elem->str1, actcfg, last_elem->str2);
         for (size_t i = 0; i < folders.size(); ++i) {
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile
index d5f4473b22df4a64a531cd179baf51a7266fa57d..7431fed772bc49d5e4c7bbea36cd410185be5054 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile
@@ -34,7 +34,7 @@ BuildHelloTpd:
 	 -t ../HelloTpd.tpd -b notexisting 2>&1 | tee ../output
 
 CheckHelloTpd: BuildHelloTpd
-	if [ `grep -c "error: The active build configuration named 'notexisting' does not exist" ./HelloTpd/output` -ne 1 ]; \
+	if [ `grep -c "error: The active build configuration named 'notexisting' of project 'HelloTpd' does not exist" ./HelloTpd/output` -ne 1 ]; \
 	then exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile
index 0fa7dbb8c00bd9685e8899418fc621ba46d17d7b..88576d93f543c9a28906a71459404c99a02ba36f 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile
@@ -34,7 +34,7 @@ BuildHelloTpd:
 	 -t ../HelloTpd.tpd 2>&1 | tee ../../output
 
 CheckHelloTpd: BuildHelloTpd
-	if [ `grep -c "error: The active build configuration named 'notExistingBuildConfig' does not exist" ./output` -ne 1 ] \
+	if [ `grep -c "error: The active build configuration named 'notExistingBuildConfig' of project 'Hello000' does not exist" ./output` -ne 1 ] \
 	  || [ `grep -c "error: Failed to process .*../Hello000/Hello000.tpd" ./output` -ne 1 ]; \
 	then exit 1; fi
 
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/1/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/1/Makefile
index 5c8a97fe9c9d9016bb4430db0ac5603a98c1da18..3a8a31ecc815a3a81c56d99752764b77dd6e0987 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/1/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/1/Makefile
@@ -21,7 +21,7 @@ endif
 # If we used ${MAKE} in the rules below, 'make -n' would succeed once,
 # then fail on every subsequent invocation until a 'make clean' is done. 
 
-#This tests that the -b badConfig does not exists and an error is produced
+#This tests that the -b goodConfig exists and it is being used.
 
 MAKEPROG := ${MAKE}
 
@@ -29,14 +29,14 @@ all: CheckTpd
 
 BuildTpd:
 	$(TTCN3_DIR)/bin/ttcn3_makefilegen -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
-	-t a.tpd -r -c -b goodConfig  2>&1 | tee output
+	-t a.tpd -r -c -b goodConfig
 
 CheckTpd: BuildTpd
 	if [ `grep -c "EXECUTABLE = binGood" ./binGood/Makefile` -ne 1 ]; \
 	then echo "Makefilegen required config test 1 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
-	-rm -rf binDefault binGood output
+	-rm -rf binGood
 
 distclean: clean
 	-rm -f *.out
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/10/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/10/Makefile
index 8f853e0a8254b1551c227b6bc8549864520f44d6..260bbc3a4667a219f274cf34c46eb4a247cc38ba 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/10/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/10/Makefile
@@ -42,7 +42,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'c' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'c' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 10 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/10/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/10/a.tpd
index 818e6df69c0c4e57b76cc5811949d3cd7093ef7c..e677a0e0ce3f794ce6d81144cee623c611ca5285 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/10/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/10/a.tpd
@@ -26,11 +26,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/10/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/10/b.tpd
index de23eb7e8e296459783063656d2064493e9cf5d0..595ec002383ec108f8bd4e6ef698ae3a66469933 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/10/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/10/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
       </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/11/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/11/Makefile
index 37a194fa37a6c9f49d0ba7f2f6e4749afbb6d939..d9a42390f1afef6d31a351814f8f9260baff1f78 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/11/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/11/Makefile
@@ -43,7 +43,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: The active build configuration named '2' does not exist" ./output` -ne 1 ]; \
+	if [ `grep -c "error: The active build configuration named '2' of project 'c' does not exist" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 11 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/11/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/11/a.tpd
index 818e6df69c0c4e57b76cc5811949d3cd7093ef7c..e677a0e0ce3f794ce6d81144cee623c611ca5285 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/11/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/11/a.tpd
@@ -26,11 +26,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/11/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/11/b.tpd
index de23eb7e8e296459783063656d2064493e9cf5d0..595ec002383ec108f8bd4e6ef698ae3a66469933 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/11/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/11/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
       </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/12/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/12/Makefile
index 7858cbf410163375274c6848435d79a42e948edd..316899e0acb79acb967b93a7e89c467c19d0275f 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/12/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/12/Makefile
@@ -34,7 +34,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'a' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'a' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 12 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/12/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/12/a.tpd
index ae51e64c03148f4d3928234a4ae6d671e99b476e..552898657145d469acdaec48273f15e763e58c0f 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/12/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/12/a.tpd
@@ -25,7 +25,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>a</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/13/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/13/c.tpd
index da949771b54c04557f83c40073a319ba5c3f89ea..036a3cdc40ecffda540caf3c708e16108e22bf74 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/13/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/13/c.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/14/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/14/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/14/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/14/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/14/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/14/c.tpd
index 434052d5e4e676cda4c133e1c5edf86b2f6da022..ee25ecc92a0415bf231cc756f11adefb5d1f1684 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/14/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/14/c.tpd
@@ -27,11 +27,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/15/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/15/Makefile
index c127363b5bd1b8e35e12dd33438599eaef26ef5d..e975b126fdf0463c65110907f7825db4ab991d51 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/15/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/15/Makefile
@@ -40,7 +40,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'd' cannot have 2 different configuration '1' and '2'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'd' cannot have 2 different configuration '1' and '2'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 15 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/15/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/15/b.tpd
index f1652a2ac1b738094ec820a36e42be3a6aad185a..516b97ef59b3a0a69b270977761569f78ca9299f 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/15/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/15/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/15/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/15/c.tpd
index 434052d5e4e676cda4c133e1c5edf86b2f6da022..ee25ecc92a0415bf231cc756f11adefb5d1f1684 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/15/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/15/c.tpd
@@ -27,11 +27,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/16/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/16/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/16/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/16/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/16/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/16/c.tpd
index 5b402657c41679cd3028d88232150e2fd307d94c..d3918bd11f068c7da7e5425ed11b61d419b4d69c 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/16/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/16/c.tpd
@@ -24,13 +24,9 @@
           <workingDirectory>binDefault</workingDirectory>
         </LocalBuildSettings>
         <ConfigurationRequirements>
-          <configurationRequirement>
-            <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
-          </configurationRequirement>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/17/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/17/Makefile
index 134720988de58183b26d85aac1d9c81e9e872179..870ac42dae683c60927bc105ae4d15820ca7602a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/17/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/17/Makefile
@@ -39,7 +39,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 17 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/17/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/17/d.tpd
index 0b56fcd4b4555720706f74d44afe48422b0d79d3..137fc8e34f282f6bfda8a44278758094473f9f50 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/17/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/17/d.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/18/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/18/Makefile
index e4b0847890221abbdb6fe37fa2f8fd386dca1914..aadd0aca0c4d911ecfb5186c51d18203d5ecf2b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/18/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/18/Makefile
@@ -29,21 +29,27 @@ endif
 #            c    |b:1
 #    c:1=>d:1|    |
 #            d>--->
-#Result will be: Error
+#Result will be: a:Default, b:Default, c:1, d:1
 MAKEPROG := ${MAKE}
 
 all: CheckTpd 
 
 BuildTpd:
-	$(TTCN3_DIR)/bin/ttcn3_makefilegen -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
-	-t a.tpd -r -c -W -g 2>&1 | tee output
+	$(TTCN3_DIR)/bin/ttcn3_makefilegen -F $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
+	-t a.tpd -r -c -W -g
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
-	then echo "Makefilegen required config test 18 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./a_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 52 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./b_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 52 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = bin1" ./c_bin1/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 52 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = bin1" ./d_bin1/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 52 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
-	-rm -rf output a_binDefault
+	-rm -rf a_binDefault b_binDefault c_bin1 d_bin1
 
 distclean: clean
 	-rm -f *.out
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/18/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/18/b.tpd
index 56de0488f820e832ce268b5f0784b6d4e45b938f..32d083ff71822a4a229b54360276e5d147ba4468 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/18/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/18/b.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/18/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/18/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/18/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/18/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/18/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/18/d.tpd
index 6e6c91e3ba05b750d7877f4141186cbdca5297dc..35b8333c99c8262fa3534f213e7284d7afdccabd 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/18/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/18/d.tpd
@@ -23,12 +23,6 @@
         <LocalBuildSettings>
           <workingDirectory>binDefault</workingDirectory>
         </LocalBuildSettings>
-        <ConfigurationRequirements>
-          <configurationRequirement>
-            <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
-          </configurationRequirement>
-        </ConfigurationRequirements>
       </ProjectProperties>
     </Configuration>
     <Configuration name="1">
@@ -39,12 +33,6 @@
         <LocalBuildSettings>
           <workingDirectory>bin1</workingDirectory>
         </LocalBuildSettings>
-        <ConfigurationRequirements>
-          <configurationRequirement>
-            <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
-          </configurationRequirement>
-        </ConfigurationRequirements>
       </ProjectProperties>
     </Configuration>
   </Configurations>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/19/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/19/Makefile
index c8c8ae0f958ad0226b6675f45ea8b8a4289e48c7..8fb85bf847674de7d63e7585d7ce0802e4ab3a50 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/19/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/19/Makefile
@@ -39,7 +39,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'c' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 19 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/19/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/19/b.tpd
index 56de0488f820e832ce268b5f0784b6d4e45b938f..32d083ff71822a4a229b54360276e5d147ba4468 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/19/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/19/b.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/19/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/19/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/19/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/19/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/19/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/19/d.tpd
index ee68620411e509ad919ca423a4fc076433f7fc98..a3d6ee0bcc6a1b67922acac49e18b06dd876469d 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/19/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/19/d.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/2/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/2/Makefile
index 9fa5a86d2394b1f341a7115aebed935dda14593a..8b0904fd872790e1851a36e42dcc9536461948fa 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/2/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/2/Makefile
@@ -32,7 +32,7 @@ BuildTpd:
 	-t a.tpd -r -c -b badConfig  2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: The active build configuration named 'badConfig' does not exist" ./output` -ne 1 ]; \
+	if [ `grep -c "error: The active build configuration named 'badConfig' of project 'a' does not exist" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 2 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/20/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/20/a.tpd
index 82101ee12254bb20448b571367fdf135d2a91d19..5ae3a92c55e27f8a2a21a8b9e7014a92ba066555 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/20/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/20/a.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/20/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/20/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/20/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/20/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/20/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/20/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/20/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/20/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/20/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/20/d.tpd
index ee68620411e509ad919ca423a4fc076433f7fc98..a3d6ee0bcc6a1b67922acac49e18b06dd876469d 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/20/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/20/d.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/21/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/21/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/21/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/21/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/21/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/21/d.tpd
index ee68620411e509ad919ca423a4fc076433f7fc98..a3d6ee0bcc6a1b67922acac49e18b06dd876469d 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/21/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/21/d.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/22/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/22/b.tpd
index 56de0488f820e832ce268b5f0784b6d4e45b938f..32d083ff71822a4a229b54360276e5d147ba4468 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/22/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/22/b.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/22/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/22/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/22/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/22/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/23/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/23/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/23/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/23/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/23/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/23/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/23/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/23/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/23/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/23/e.tpd
index aaa5044b02e80f4cad7c175be31fc39452c9f7be..19d60a91e08482a9aff39c4e5eb2830751c3bbd6 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/23/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/23/e.tpd
@@ -25,7 +25,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/24/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/24/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/24/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/24/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/24/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/24/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/24/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/24/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/24/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/24/e.tpd
index 080542cb1dbf7862dcfd8a1cf9a2a6344b968437..91462bdef826d6b4c2bc7a3c17ec2b5b4a5fa25a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/24/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/24/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>Default</rerquiredConfiguration>
+            <requiredConfiguration>Default</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/25/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/25/Makefile
index 07430e19518e02374c5d2c70a5562db0bd0c31b4..a8a02ab12cb2aee4cfc23404f884a1487e807ad3 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/25/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/25/Makefile
@@ -39,11 +39,11 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'e' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 25 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
-	-rm -rf output a_binDefault e_binDefault
+	-rm -rf output a_binDefault b_bin1 c_bin1 d_bin1 e_binDefault
 
 distclean: clean
 	-rm -f *.out
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/25/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/25/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/25/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/25/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/25/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/25/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/25/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/25/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/25/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/25/d.tpd
index 5cd5b377ad76aa0ce5cedf8b115544f6bb1460d9..16f4770a4b7f3a48aafb32fb3897adbaa718ff4b 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/25/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/25/d.tpd
@@ -37,7 +37,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/25/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/25/e.tpd
index 1dc522d70219fb7c461b201377c7228dd549470e..1cf3d44e1ae33ff10d5c7589a54f9f46bf2c9959 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/25/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/25/e.tpd
@@ -26,10 +26,20 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
     </Configuration>
+     <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
   </Configurations>
 </TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/26/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/26/Makefile
index 3dbe349944c822c4c376a4a7cec13b2458c2a709..909f2edd4580943836eef76ae48895d0f5c8d789 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/26/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/26/Makefile
@@ -23,7 +23,7 @@ endif
 
 # Hierarchy
 #            a--->e------<
-#         b:2|    |(b:1) |
+#            |    |(b:1) |
 #            b<---<      |
 #    b:1=>c:1|    |      |
 #            c    |      |d:1=>e:1
@@ -39,11 +39,11 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'e' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 26 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
-	-rm -rf output a_binDefault e_binDefault
+	-rm -rf output a_binDefault b_bin1 c_bin1 d_bin1 e_binDefault
 
 distclean: clean
 	-rm -f *.out
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/26/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/26/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/26/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/26/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/26/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/26/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/26/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/26/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/26/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/26/d.tpd
index 5cd5b377ad76aa0ce5cedf8b115544f6bb1460d9..16f4770a4b7f3a48aafb32fb3897adbaa718ff4b 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/26/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/26/d.tpd
@@ -37,7 +37,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/26/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/26/e.tpd
index bb38f6f902fac8febe40bc63830c4d2bf7d424af..b21b6ecf429a422859e70f1167d0e71a508cbcef 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/26/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/26/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
@@ -42,7 +42,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/27/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/27/Makefile
index 78f78eb44adc4a662230ef17fe65c095c86b407e..48df40fe8e5e97efc3c88d64bc36e52a43d4caaa 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/27/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/27/Makefile
@@ -39,7 +39,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 27 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/27/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/27/a.tpd
index a1587388f1f84e4c2830ff9217be59a50a14ee0c..93d26ed6b841f3b0314628bd64575fceb0d48649 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/27/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/27/a.tpd
@@ -27,7 +27,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>Default</rerquiredConfiguration>
+            <requiredConfiguration>Default</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/27/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/27/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/27/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/27/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/27/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/27/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/27/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/27/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/27/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/27/e.tpd
index 1dc522d70219fb7c461b201377c7228dd549470e..0fad11119832a2c43f6bdd6375a7c8831e34a15c 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/27/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/27/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/28/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/28/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..fe37aaee2483b5640021c8d2b85ab1219670cbee 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/28/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/28/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+             <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/28/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/28/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..47a31d5832b589d426ea001023c0e557e85abaa0 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/28/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/28/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+             <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/28/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/28/e.tpd
index bb38f6f902fac8febe40bc63830c4d2bf7d424af..6bbfb708314beb87b025e5dc514a663068a1e744 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/28/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/28/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+             <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
@@ -42,7 +42,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+             <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/29/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/29/Makefile
index d14c071ce1c1f62f99511bbb1ad400c3e73a7860..aec479f947e23ae6066ce766af99a15995e37a9e 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/29/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/29/Makefile
@@ -35,7 +35,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'a' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'a' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 29 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/29/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/29/a.tpd
index ea703ac61f3696f697411d69d2552b91cbe4576d..d0dd4306591804051eeee2a8b60e18a405238350 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/29/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/29/a.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>a</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/29/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/29/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/29/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/29/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/29/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/29/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/29/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/29/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/29/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/29/d.tpd
index 5cd5b377ad76aa0ce5cedf8b115544f6bb1460d9..16f4770a4b7f3a48aafb32fb3897adbaa718ff4b 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/29/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/29/d.tpd
@@ -37,7 +37,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/29/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/29/e.tpd
index bb38f6f902fac8febe40bc63830c4d2bf7d424af..b21b6ecf429a422859e70f1167d0e71a508cbcef 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/29/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/29/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
@@ -42,7 +42,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/3/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/3/a.tpd
index 82101ee12254bb20448b571367fdf135d2a91d19..5ae3a92c55e27f8a2a21a8b9e7014a92ba066555 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/3/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/3/a.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/30/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/30/Makefile
index 6143ee96f48fc432d6d4ded74097a33110b4c178..5aec3e6d2efec62d431811af63be19422bff5626 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/30/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/30/Makefile
@@ -35,7 +35,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'a' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'a' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 30 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/30/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/30/a.tpd
index 3e9f6be8f93495a1a882029cf3049048b90a2ff1..50bdaf21734ce84f790685d780269b338a7d37a9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/30/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/30/a.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>a</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/30/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/30/d.tpd
index 5cd5b377ad76aa0ce5cedf8b115544f6bb1460d9..16f4770a4b7f3a48aafb32fb3897adbaa718ff4b 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/30/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/30/d.tpd
@@ -37,7 +37,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/30/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/30/e.tpd
index bb38f6f902fac8febe40bc63830c4d2bf7d424af..b21b6ecf429a422859e70f1167d0e71a508cbcef 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/30/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/30/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
@@ -42,7 +42,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/31/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/31/Makefile
index 8239689f1740e1d165c456938677085f15cd791e..af6680ef9ea25809612aeb5b3134c227ecb0a37a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/31/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/31/Makefile
@@ -40,7 +40,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration '1' and '2'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration '1' and '2'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 31 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/31/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/31/d.tpd
index 7e050111850057803f80d53458342aef577bb470..93fac9127d821c9ec6354c189908627a05bead30 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/31/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/31/d.tpd
@@ -12,7 +12,6 @@
   <ProjectName>d</ProjectName>
   <ReferencedProjects>
     <ReferencedProject name="b" projectLocationURI="b.tpd"/>
-    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
   </ReferencedProjects>
   <ActiveConfiguration>Default</ActiveConfiguration>
   <Configurations>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/31/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/31/e.tpd
index ba59b0bc843f21d834a274fc6feb9a46e63cde69..91c59624bbc38180ec86b4ec1aae85c3dae02bc9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/31/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/31/e.tpd
@@ -26,11 +26,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/31/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/31/f.tpd
index 7703f595f51561a5d470a8c80c39aecd0a538255..77673c1929c43a26a9c03487ad801263037c5544 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/31/f.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/31/f.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/32/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/32/a.tpd
index a0323b463ef9ecf5d83b2aefd57ec5c8ed19637e..d4fa7f1734eedf687c8cc79dc3bffd3b5e0299b6 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/32/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/32/a.tpd
@@ -11,8 +11,8 @@
 <TITAN_Project_File_Information version="1.0">
   <ProjectName>a</ProjectName>
   <ReferencedProjects>
-    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
     <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
   </ReferencedProjects>
   <ActiveConfiguration>Default</ActiveConfiguration>
   <Configurations>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/32/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/32/e.tpd
index 8a82700607af80b295064e1052beab679ed85627..e57150df53ec2778bb5a3d4392c175e2d4643a87 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/32/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/32/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/32/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/32/f.tpd
index d6f9140c260aef5fabc5fdff32006eaa52e49086..ee6213825f4644b795eb4077a8f563fc9f3fc4eb 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/32/f.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/32/f.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/33/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/33/Makefile
index 3d1351a052b4dafba97c486c8c0948874c1feb12..ff0656d173bc35c732c64aef9732210d86baadd9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/33/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/33/Makefile
@@ -42,7 +42,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 33 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/33/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/33/d.tpd
index fd47b1ae993a3b7975a2e00996d3b16fb66c9dcc..d6d020a106730d96957d070c1b730577477f3ce6 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/33/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/33/d.tpd
@@ -27,7 +27,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/33/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/33/e.tpd
index 8a82700607af80b295064e1052beab679ed85627..e57150df53ec2778bb5a3d4392c175e2d4643a87 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/33/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/33/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/33/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/33/f.tpd
index 7703f595f51561a5d470a8c80c39aecd0a538255..77673c1929c43a26a9c03487ad801263037c5544 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/33/f.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/33/f.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/34/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/34/Makefile
index 6180210b122029b72fbf190a2933251bb0fbc231..21b98996392b849739d913e3bab080de3d2671af 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/34/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/34/Makefile
@@ -22,14 +22,14 @@ endif
 # then fail on every subsequent invocation until a 'make clean' is done. 
 
 # Hierarchy
-#            a--->e-------->
-#            |    |        |
-#            |    |        |
-#            b<---<---<    |
-#    b:2=>d:1|    |   |    |f:1
-#            c    |   |b:2 |
-#            |    |   |    |
-#            d>--->   <----f
+#            a--->e------------->
+#            |    |             |
+#            |    |             |
+#            b<---<---<         |
+#    b:2=>d:1|    |   |         |f:1
+#            c    |   |f:1=>b:2 |
+#            |    |   |         |
+#            d>--->   <---------f
 #           d:1=>b:1
 #
 #Result will be: Error
@@ -42,7 +42,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 34 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/34/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/34/b.tpd
index 7aa001986f264ec8a735624ff3923aa513e338a4..b0781cf210296794b9728f3677e7b301a249bfba 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/34/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/34/b.tpd
@@ -46,7 +46,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/34/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/34/d.tpd
index b3f629148d584903d7e5e136c14b3286acb6f275..4f634a021600dba65ecb4a1395fd8e955557cfdb 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/34/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/34/d.tpd
@@ -37,7 +37,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/34/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/34/e.tpd
index 8a82700607af80b295064e1052beab679ed85627..e57150df53ec2778bb5a3d4392c175e2d4643a87 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/34/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/34/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/34/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/34/f.tpd
index 7703f595f51561a5d470a8c80c39aecd0a538255..77673c1929c43a26a9c03487ad801263037c5544 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/34/f.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/34/f.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/35/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/35/Makefile
index fed5fab4cc1ba1609fae192cba7d2fa5c150954a..e36940db9380561b6a618041c657b9fdade2f809 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/35/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/35/Makefile
@@ -42,7 +42,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'b' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 35 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/35/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/35/d.tpd
index fd47b1ae993a3b7975a2e00996d3b16fb66c9dcc..d6d020a106730d96957d070c1b730577477f3ce6 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/35/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/35/d.tpd
@@ -27,7 +27,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/35/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/35/e.tpd
index 8a82700607af80b295064e1052beab679ed85627..e57150df53ec2778bb5a3d4392c175e2d4643a87 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/35/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/35/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/36/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/36/d.tpd
index ee68620411e509ad919ca423a4fc076433f7fc98..a3d6ee0bcc6a1b67922acac49e18b06dd876469d 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/36/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/36/d.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/37/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/37/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/37/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/37/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/37/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/37/d.tpd
index ee68620411e509ad919ca423a4fc076433f7fc98..a3d6ee0bcc6a1b67922acac49e18b06dd876469d 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/37/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/37/d.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/38/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/38/Makefile
index 3c9a00c54f6c4bfa99c7d5f23c7364ed5bae401f..c935501a1af11271b68aa211b4d08c249d0a4ff0 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/38/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/38/Makefile
@@ -29,7 +29,7 @@ endif
 #            c    |d:1=>b:1
 #    c:1=>d:1|    |
 #            d>--->
-#Result will be: a:Default, b:Default, c:Default, d:Default
+#Result will be: a:Default, b:1, c:1, d:1
 MAKEPROG := ${MAKE}
 
 all: CheckTpd 
@@ -41,15 +41,15 @@ BuildTpd:
 CheckTpd: BuildTpd
 	if [ `grep -c "EXECUTABLE = binDefault" ./a_binDefault/Makefile` -ne 1 ]; \
 	then echo "Makefilegen required config test 38 failed: Overall verdict: fail" && exit 1; fi
-	if [ `grep -c "EXECUTABLE = binDefault" ./b_binDefault/Makefile` -ne 1 ]; \
+	if [ `grep -c "EXECUTABLE = bin1" ./b_bin1/Makefile` -ne 1 ]; \
 	then echo "Makefilegen required config test 38 failed: Overall verdict: fail" && exit 1; fi
-	if [ `grep -c "EXECUTABLE = binDefault" ./c_binDefault/Makefile` -ne 1 ]; \
+	if [ `grep -c "EXECUTABLE = bin1" ./c_bin1/Makefile` -ne 1 ]; \
 	then echo "Makefilegen required config test 38 failed: Overall verdict: fail" && exit 1; fi
-	if [ `grep -c "EXECUTABLE = binDefault" ./d_binDefault/Makefile` -ne 1 ]; \
+	if [ `grep -c "EXECUTABLE = bin1" ./d_bin1/Makefile` -ne 1 ]; \
 	then echo "Makefilegen required config test 38 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
-	-rm -rf a_binDefault b_binDefault c_binDefault d_binDefault
+	-rm -rf a_binDefault b_bin1 c_bin1 d_bin1
 
 distclean: clean
 	-rm -f *.out
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/38/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/38/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/38/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/38/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/38/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/38/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/38/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/38/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/38/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/38/d.tpd
index ee68620411e509ad919ca423a4fc076433f7fc98..a3d6ee0bcc6a1b67922acac49e18b06dd876469d 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/38/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/38/d.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/39/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/39/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/39/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/39/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/39/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/39/c.tpd
index 352e50fc11f37b4c5c67e872b0e94f934ee76545..d3918bd11f068c7da7e5425ed11b61d419b4d69c 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/39/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/39/c.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/4/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/4/Makefile
index d7695f6041c2b75904477e8d5bc87324400b7b38..7d075a06ecd5dbe1f7c48ae03f968f8bd6a2ac7a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/4/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/4/Makefile
@@ -39,7 +39,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g  2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: The active build configuration named '2' does not exist" ./output` -ne 1 ]; \
+	if [ `grep -c "error: The active build configuration named '2' of project 'b' does not exist" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 4 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/4/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/4/a.tpd
index f68c8336ea10a66f99257f487a9dfeeb037d5245..5d58cf44bf8e5f68bd9978d5217ba68688a16768 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/4/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/4/a.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/40/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/40/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/40/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/40/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/40/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/40/c.tpd
index 67695d80d658d24806340d34f7c8f5b908988bd8..5625db5d12945baf0b64978c4989c28a6c0b947f 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/40/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/40/c.tpd
@@ -25,7 +25,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/41/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/41/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/41/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/41/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/42/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/42/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/42/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/42/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/42/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/42/c.tpd
index 398d1978177e607b0dda94b11af5169e2ea8a19b..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/42/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/42/c.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/42/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/42/e.tpd
index aaa5044b02e80f4cad7c175be31fc39452c9f7be..19d60a91e08482a9aff39c4e5eb2830751c3bbd6 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/42/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/42/e.tpd
@@ -25,7 +25,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/43/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/43/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/43/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/43/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/43/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/43/c.tpd
index c38ac36aca0d98378f585bc02210bb94c5523de7..e45370ad08913d445d48a0507fdc9a0c4fe3d5ee 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/43/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/43/c.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/43/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/43/e.tpd
index ff90c24f63c91bdb33f1a0ab7d351bfaff953543..c740b3f4133b8f647221c1fdfadab37b4f6529d9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/43/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/43/e.tpd
@@ -37,11 +37,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>h</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/43/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/43/f.tpd
index 7cbf7d75e372b3674acdbb01a71a0f68bbbeaadd..59700f0773b326bb139e2ceeb03a239bf34f2158 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/43/f.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/43/f.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>g</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/44/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/44/Makefile
index cf2adff51d0fa61aff260688d6816f8d4fa33185..a7943cd08a549480f4f5aed9563108726a4057f9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/44/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/44/Makefile
@@ -43,7 +43,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'h' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'h' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 44 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/44/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/44/a.tpd
index 95ee41d589646b0e8885462ab6c958694a093b73..8280c6ed073912da579eb8ab8ffc2929bc1816fe 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/44/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/44/a.tpd
@@ -27,7 +27,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>h</projectName>
-            <rerquiredConfiguration>Default</rerquiredConfiguration>
+            <requiredConfiguration>Default</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/44/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/44/b.tpd
index b842d903654161583dec54dd99fe67299de9af8e..b8f382cc0247017c84883d53b6d4b00b803f8734 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/44/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/44/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>d</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/44/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/44/c.tpd
index c38ac36aca0d98378f585bc02210bb94c5523de7..e45370ad08913d445d48a0507fdc9a0c4fe3d5ee 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/44/c.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/44/c.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/44/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/44/e.tpd
index ff90c24f63c91bdb33f1a0ab7d351bfaff953543..c740b3f4133b8f647221c1fdfadab37b4f6529d9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/44/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/44/e.tpd
@@ -37,11 +37,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>f</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>h</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/44/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/44/f.tpd
index 7cbf7d75e372b3674acdbb01a71a0f68bbbeaadd..59700f0773b326bb139e2ceeb03a239bf34f2158 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/44/f.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/44/f.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>g</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/46/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/46/b.tpd
index 025aa6a0065a371c5bea80311ca4117c162ff31e..e206c2d186c678dd63be7015a22f3002c80a110e 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/46/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/46/b.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/47/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/47/Makefile
index ae5284bbbd0e3be667b6decff1997fb51cb7d0ed..8e6268ac47423e81b270519f598294f00629d9aa 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/47/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/47/Makefile
@@ -30,7 +30,7 @@ endif
 #                
 
 
-#Result will be: a:Default, b:Default, c:1, d:Default, e:Default
+#Result will be: a:Default, b:Default, c:Default, d:Default, e:Default
 MAKEPROG := ${MAKE}
 
 all: CheckTpd 
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/47/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/47/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/47/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/47/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/48/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/48/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/48/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/48/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/48/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/48/e.tpd
index 2a02e62f7054e5b7510dcbefe9d2d7c358a26861..2669abb8a45f470b0503a5320c26a444372d34f9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/48/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/48/e.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/49/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/49/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/49/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/49/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/49/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/49/e.tpd
index 352b8d4d270f6a6d5f1125bb57261ac46c0ad428..66b2c0cbfe2aea4a16d8e97f24daeebdbed2bbe9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/49/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/49/e.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/5/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/5/a.tpd
index 5a11e00517dd07166c05d91a915a1720221622ac..37bf5e9c43d51b382fcb5c487c7aa852895cdaf1 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/5/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/5/a.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/50/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/50/b.tpd
index 3cc20cf9f0b5029dd85a75f55b7957c5af9a2161..75a70078fca2779a49c57d09d0145458ba64f262 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/50/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/50/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/50/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/50/d.tpd
index aed3744b9123aed66217331a8c1aa2c24402b281..c44d64ae80e00b8cf22a4e29af9d890c4b43edc1 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/50/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/50/d.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/50/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/50/e.tpd
index 352b8d4d270f6a6d5f1125bb57261ac46c0ad428..66b2c0cbfe2aea4a16d8e97f24daeebdbed2bbe9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/50/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/50/e.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/51/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/51/Makefile
index ea8e67049c9351db69551b3d35456f3f9b13e42f..c6881fcb4919c0faaebb6a8ee07f6845a4f14fc1 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/51/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/51/Makefile
@@ -40,7 +40,7 @@ BuildTpd:
 	-t a.tpd -r -c -W -g 2>&1 | tee output
 
 CheckTpd: BuildTpd
-	if [ `grep -c "error: Required configuration is inconsistent : Project 'c' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
+	if [ `grep -c "error: Required configuration is inconsistent or circular : Project 'c' cannot have 2 different configuration '2' and '1'" ./output` -ne 1 ]; \
 	then echo "Makefilegen required config test 51 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/51/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/51/b.tpd
index 80570a388e1f44e0eede904f4e89ed7ca35ba98e..43ce1a252a35dd3fa62c3ba1b135bd4b153ef3cf 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/51/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/51/b.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/51/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/51/d.tpd
index aed3744b9123aed66217331a8c1aa2c24402b281..c44d64ae80e00b8cf22a4e29af9d890c4b43edc1 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/51/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/51/d.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/51/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/51/e.tpd
index 352b8d4d270f6a6d5f1125bb57261ac46c0ad428..66b2c0cbfe2aea4a16d8e97f24daeebdbed2bbe9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/51/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/51/e.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/52/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/52/b.tpd
index 49295640b07cfbfe8ce29956f437548f38e964c7..20b199fb84a7da1503423b417e1eee342f65808e 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/52/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/52/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/52/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/52/d.tpd
index aed3744b9123aed66217331a8c1aa2c24402b281..c44d64ae80e00b8cf22a4e29af9d890c4b43edc1 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/52/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/52/d.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/52/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/52/e.tpd
index 352b8d4d270f6a6d5f1125bb57261ac46c0ad428..66b2c0cbfe2aea4a16d8e97f24daeebdbed2bbe9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/52/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/52/e.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/53/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/53/Makefile
index a827d3f4553b672a81c381899da11c1a8c8ff87a..5a6c75372a371641dc69af7cbc693d460a04f10a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/53/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/53/Makefile
@@ -39,15 +39,23 @@ MAKEPROG := ${MAKE}
 all: CheckTpd 
 
 BuildTpd:
-	$(TTCN3_DIR)/bin/ttcn3_makefilegen -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
-	-t a.tpd -r -c -W -g 2>&1 | tee output
+	$(TTCN3_DIR)/bin/ttcn3_makefilegen -F $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
+	-t a.tpd -r -c -W -g
 
 CheckTpd: BuildTpd
-	if [ `grep -c " error: Required configuration is inconsistent : Project 'e' cannot have 2 different configuration 'Default' and '1'" ./output` -ne 1 ]; \
-	then echo "Makefilegen required config test 53 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./a_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 54 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./b_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 54 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = bin1" ./c_bin1/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 54 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./d_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 54 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = bin1" ./e_bin1/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 54 failed: Overall verdict: fail" && exit 1; fi
 
 clean:
-	-rm -rf a_binDefault b_binDefault c_binDefault d_binDefault output
+	-rm -rf a_binDefault b_binDefault c_bin1 d_binDefault e_bin1
 
 distclean: clean
 	-rm -f *.out
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/53/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/53/b.tpd
index 49295640b07cfbfe8ce29956f437548f38e964c7..20b199fb84a7da1503423b417e1eee342f65808e 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/53/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/53/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>2</rerquiredConfiguration>
+            <requiredConfiguration>2</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/53/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/53/d.tpd
index aed3744b9123aed66217331a8c1aa2c24402b281..c44d64ae80e00b8cf22a4e29af9d890c4b43edc1 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/53/d.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/53/d.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>e</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/53/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/53/e.tpd
index 352b8d4d270f6a6d5f1125bb57261ac46c0ad428..66b2c0cbfe2aea4a16d8e97f24daeebdbed2bbe9 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/53/e.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/53/e.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/54/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..98fd84985b79818fe7b16247ce5f13817e8f570d
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/Makefile
@@ -0,0 +1,64 @@
+##############################################################################
+# Copyright (c) 2000-2016 Ericsson Telecom AB
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#   Szabo, Bence Janos
+#
+##############################################################################
+TOPDIR := ../../../..
+include $(TOPDIR)/Makefile.regression
+
+ifdef LCOV
+COVERAGE_FLAG := -C
+endif
+
+# ${MAKEPROG} has the same content as the built-in ${MAKE},
+# except the special handling of ${MAKE} does not apply.
+# If we used ${MAKE} in the rules below, 'make -n' would succeed once,
+# then fail on every subsequent invocation until a 'make clean' is done. 
+
+# Hierarchy   
+#            a--->e-------->
+#            |    |        |
+#            |    |        |
+#            b<---|---<    |
+#            |    |   |    |f:1
+#            c    |   |b:1 |
+#            |    |   |    |
+#            d>--->   <----f
+# d refers both b and e
+#Result will be: a:Default, b:1, c:Default, d:Default, e:Default, f:1
+MAKEPROG := ${MAKE}
+
+all: CheckTpd 
+
+BuildTpd:
+	$(TTCN3_DIR)/bin/ttcn3_makefilegen -F $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
+	-t a.tpd -r -c -W -g
+
+CheckTpd: BuildTpd
+	if [ `grep -c "EXECUTABLE = binDefault" ./a_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 32 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = bin1" ./b_bin1/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 32 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./c_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 32 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./d_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 32 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = binDefault" ./e_binDefault/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 32 failed: Overall verdict: fail" && exit 1; fi
+	if [ `grep -c "EXECUTABLE = bin1" ./f_bin1/Makefile` -ne 1 ]; \
+	then echo "Makefilegen required config test 32 failed: Overall verdict: fail" && exit 1; fi
+
+clean:
+	-rm -rf a_binDefault b_bin1 c_binDefault d_binDefault e_binDefault f_bin1
+
+distclean: clean
+	-rm -f *.out
+
+.PHONY: all clean distclean BuildTpd CheckTpd
+
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/54/a.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..93d32616f04f7955c53f15ab54687f7d1a8c77e3
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/a.tpd
@@ -0,0 +1,32 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>a</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+        <ReferencedProject name="f" projectLocationURI="f.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/54/b.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..12207521ffbcf1e361a52eac2c60371ac23a6cb8
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/b.tpd
@@ -0,0 +1,49 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>b</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="c" projectLocationURI="c.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+   <Configuration name="2">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin2</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin2</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/54/c.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..555023e279321bf341d694a0d12d9827e1489e3d
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/c.tpd
@@ -0,0 +1,29 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>c</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="d" projectLocationURI="d.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/54/d.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..7e050111850057803f80d53458342aef577bb470
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/d.tpd
@@ -0,0 +1,30 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>d</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/54/e.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..e57150df53ec2778bb5a3d4392c175e2d4643a87
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/e.tpd
@@ -0,0 +1,35 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>e</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="f" projectLocationURI="f.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>f</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/54/f.tpd b/regression_test/compileonly/mfgen-tpd/required_config/54/f.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..ee6213825f4644b795eb4077a8f563fc9f3fc4eb
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/54/f.tpd
@@ -0,0 +1,45 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>f</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>b</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/55/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/55/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..f9f1476df43507b028faeee7284767e0cf45e4a3
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/55/Makefile
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2000-2016 Ericsson Telecom AB
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#   Szabo, Bence Janos
+#
+##############################################################################
+TOPDIR := ../../../..
+include $(TOPDIR)/Makefile.regression
+
+ifdef LCOV
+COVERAGE_FLAG := -C
+endif
+
+# ${MAKEPROG} has the same content as the built-in ${MAKE},
+# except the special handling of ${MAKE} does not apply.
+# If we used ${MAKE} in the rules below, 'make -n' would succeed once,
+# then fail on every subsequent invocation until a 'make clean' is done. 
+
+# Hierarchy
+#            a--->e------<
+#         b:2|    |(b:1) |
+#            b<---<      |
+#    b:1=>c:1|    |      |
+#            c    |      |d:1=>e:1
+#    c:1=>d:1|    |      |
+#            d>--->------>
+#Result will be: Error
+MAKEPROG := ${MAKE}
+
+all: CheckTpd 
+
+BuildTpd:
+	$(TTCN3_DIR)/bin/ttcn3_makefilegen -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
+	-t a.tpd -r -c -W -g 2>&1 | tee output
+
+CheckTpd: BuildTpd
+	if [ `grep -c "error: The active build configuration named '2' of project 'b' does not exist" ./output` -ne 1 ]; \
+	then echo "Makefilegen required config test 55 failed: Overall verdict: fail" && exit 1; fi
+
+clean:
+	-rm -rf output a_binDefault e_binDefault
+
+distclean: clean
+	-rm -f *.out
+
+.PHONY: all clean distclean BuildTpd CheckTpd
+
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/55/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/55/a.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..6657916482a2c494a35a253ee0e049ac08b0a337
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/55/a.tpd
@@ -0,0 +1,36 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>a</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+         <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>b</projectName>
+            <requiredConfiguration>2</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/55/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/55/b.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..75a70078fca2779a49c57d09d0145458ba64f262
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/55/b.tpd
@@ -0,0 +1,45 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>b</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="c" projectLocationURI="c.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>c</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/55/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/55/c.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/55/c.tpd
@@ -0,0 +1,45 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>c</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="d" projectLocationURI="d.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>d</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/55/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/55/d.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..16f4770a4b7f3a48aafb32fb3897adbaa718ff4b
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/55/d.tpd
@@ -0,0 +1,46 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>d</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>e</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/55/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/55/e.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..b21b6ecf429a422859e70f1167d0e71a508cbcef
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/55/e.tpd
@@ -0,0 +1,51 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>e</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>b</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>b</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/56/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/56/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..4b70fca388c12fa3acef2eee67a1d4653348c15a
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/56/Makefile
@@ -0,0 +1,52 @@
+##############################################################################
+# Copyright (c) 2000-2016 Ericsson Telecom AB
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+#
+# Contributors:
+#   Szabo, Bence Janos
+#
+##############################################################################
+TOPDIR := ../../../..
+include $(TOPDIR)/Makefile.regression
+
+ifdef LCOV
+COVERAGE_FLAG := -C
+endif
+
+# ${MAKEPROG} has the same content as the built-in ${MAKE},
+# except the special handling of ${MAKE} does not apply.
+# If we used ${MAKE} in the rules below, 'make -n' would succeed once,
+# then fail on every subsequent invocation until a 'make clean' is done. 
+
+# Hierarchy
+#            a--->e------<
+#            |    |(b:1) |
+#            b<---<      |
+#    b:1=>c:1|    |      |
+#            c    |      |d:1=>e:1
+#    c:1=>d:1|    |      |
+#            d>--->------>
+#Result will be: Error
+MAKEPROG := ${MAKE}
+
+all: CheckTpd 
+
+BuildTpd:
+	$(TTCN3_DIR)/bin/ttcn3_makefilegen -f $(MFGEN_FLAGS) $(COVERAGE_FLAG) \
+	-t a.tpd -r -c -W -g 2>&1 | tee output
+
+CheckTpd: BuildTpd
+	if [ `grep -c " error: The active build configuration named '1' of project 'e' does not exist" ./output` -ne 1 ]; \
+	then echo "Makefilegen required config test 56 failed: Overall verdict: fail" && exit 1; fi
+
+clean:
+	-rm -rf output a_binDefault b_bin1 c_bin1 d_bin1 e_binDefault
+
+distclean: clean
+	-rm -f *.out
+
+.PHONY: all clean distclean BuildTpd CheckTpd
+
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/56/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/56/a.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..d4fa7f1734eedf687c8cc79dc3bffd3b5e0299b6
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/56/a.tpd
@@ -0,0 +1,30 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>a</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/56/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/56/b.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..75a70078fca2779a49c57d09d0145458ba64f262
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/56/b.tpd
@@ -0,0 +1,45 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>b</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="c" projectLocationURI="c.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>c</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/56/c.tpd b/regression_test/compileonly/mfgen-tpd/required_config/56/c.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..4b0689715fd93f2f793c8bc6ddd7fd912e9c53b4
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/56/c.tpd
@@ -0,0 +1,45 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>c</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="d" projectLocationURI="d.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>d</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/56/d.tpd b/regression_test/compileonly/mfgen-tpd/required_config/56/d.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..16f4770a4b7f3a48aafb32fb3897adbaa718ff4b
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/56/d.tpd
@@ -0,0 +1,46 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>d</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+    <ReferencedProject name="e" projectLocationURI="e.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="1">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin1</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin1</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>e</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/56/e.tpd b/regression_test/compileonly/mfgen-tpd/required_config/56/e.tpd
new file mode 100644
index 0000000000000000000000000000000000000000..0fad11119832a2c43f6bdd6375a7c8831e34a15c
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/required_config/56/e.tpd
@@ -0,0 +1,35 @@
+<!--
+ Copyright (c) 2000-2016 Ericsson Telecom AB
+ All rights reserved. This program and the accompanying materials
+ are made available under the terms of the Eclipse Public License v1.0
+ which accompanies this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Contributors:
+  Szabo, Bence Janos – initial implementation
+-->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>e</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="b" projectLocationURI="b.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>binDefault</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>binDefault</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>b</projectName>
+            <requiredConfiguration>1</requiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/6/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/6/Makefile
index eb3c223b06902109f4f7aab826973811961e5d00..bf47248ebe3b7674b426e8a4cbec5fca8db92a28 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/6/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/6/Makefile
@@ -24,10 +24,10 @@ endif
 #This tests that 'a' references 'b' and 'b' references 'c' and every project
 #has the Default configuration. Nobody requires anything from anyone.
 #      a
-#     / \
-#    /   \
-#   /     \
-#  b       c
+#     / 
+#    /   
+#   /     
+#  b------->c
 
 MAKEPROG := ${MAKE}
 
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/7/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/7/a.tpd
index 1ece244d40ea158e59b80cd2757016b61e1f857f..b9327fff9838cb1bbbfc48a560cbc252627c960a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/7/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/7/a.tpd
@@ -26,11 +26,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/8/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/8/Makefile
index ebc63a5843b84718d296d67c5a3febf5e779a22e..fa727da08912f89ece47b36a4ea731bbf8410d17 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/8/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/8/Makefile
@@ -24,9 +24,9 @@ endif
 #This tests that 'a' references 'b' and 'b' references 'c' and 'a' requires
 #'b''s '1' configuration and 'b''s '1' configuration requires 'c''s '1' config.
 #      a
-#     / \
-# b:1/   \
-#   /     \
+#     / 
+# b:1/   
+#   /     
 #  b------>c
 #   b:1=>c:1
 
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/8/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/8/a.tpd
index 82101ee12254bb20448b571367fdf135d2a91d19..5ae3a92c55e27f8a2a21a8b9e7014a92ba066555 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/8/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/8/a.tpd
@@ -26,7 +26,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/8/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/8/b.tpd
index de23eb7e8e296459783063656d2064493e9cf5d0..595ec002383ec108f8bd4e6ef698ae3a66469933 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/8/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/8/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
       </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/9/a.tpd b/regression_test/compileonly/mfgen-tpd/required_config/9/a.tpd
index 1ece244d40ea158e59b80cd2757016b61e1f857f..b9327fff9838cb1bbbfc48a560cbc252627c960a 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/9/a.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/9/a.tpd
@@ -26,11 +26,11 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>b</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
         </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/9/b.tpd b/regression_test/compileonly/mfgen-tpd/required_config/9/b.tpd
index de23eb7e8e296459783063656d2064493e9cf5d0..595ec002383ec108f8bd4e6ef698ae3a66469933 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/9/b.tpd
+++ b/regression_test/compileonly/mfgen-tpd/required_config/9/b.tpd
@@ -36,7 +36,7 @@
         <ConfigurationRequirements>
           <configurationRequirement>
             <projectName>c</projectName>
-            <rerquiredConfiguration>1</rerquiredConfiguration>
+            <requiredConfiguration>1</requiredConfiguration>
           </configurationRequirement>
       </ConfigurationRequirements>
       </ProjectProperties>
diff --git a/regression_test/compileonly/mfgen-tpd/required_config/Makefile b/regression_test/compileonly/mfgen-tpd/required_config/Makefile
index 07fa8e7e08848f26f65fc6da01d211c062c36681..6d730a11cf43fb4da11e00d3e94168c4c49e22fe 100644
--- a/regression_test/compileonly/mfgen-tpd/required_config/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/required_config/Makefile
@@ -14,7 +14,7 @@ include $(TOPDIR)/Makefile.regression
 
 CODIRS := 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 \
 	  26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 \
-	  48 49 50 51 52 53
+	  48 49 50 51 52 53 54 55 56
 
 
 #The configurations of the TPD files only differ in the name of the working