From feade9985cfcf9e916a6b534c47570737bbc4b35 Mon Sep 17 00:00:00 2001
From: erititan <elemer.lelik@ericsson.com>
Date: Sat, 5 Mar 2016 15:49:22 +0100
Subject: [PATCH] Sync with 5.4.3

---
 common/config_preproc_p.y                     |   4 +-
 common/path.c                                 |  14 +-
 common/path.h                                 |   6 +-
 common/version.h                              |   4 +-
 compiler2/Type.cc                             |  14 +-
 compiler2/Type_chk.cc                         |  31 ++-
 compiler2/Value.cc                            |  25 +-
 compiler2/Value.hh                            |   1 -
 compiler2/compiler.1                          |   6 +-
 compiler2/encdec.c                            |   4 +-
 compiler2/enum.c                              |   2 +-
 compiler2/main.cc                             |  19 +-
 compiler2/main.hh                             |   2 +-
 compiler2/makefile.c                          |  72 +++++-
 compiler2/record.c                            | 139 +++++------
 compiler2/record_of.c                         | 124 +++++++---
 compiler2/ttcn3/AST_ttcn3.cc                  |   2 +
 compiler2/ttcn3/TtcnTemplate.cc               |   2 +
 compiler2/ttcn3/compiler.l                    |   7 +-
 compiler2/ttcn3/compiler.y                    |  35 ++-
 compiler2/ttcn3/rawAST.l                      |  12 +-
 compiler2/ttcn3/rawAST.y                      |  17 +-
 compiler2/ttcn3_makefilegen.1                 |  21 +-
 compiler2/union.c                             |  17 +-
 compiler2/xpather.cc                          | 160 +++++++++---
 compiler2/xpather.h                           |   8 +-
 core/ASN_CharacterString.cc                   |  36 +--
 core/ASN_CharacterString.hh                   |   8 +-
 core/ASN_EmbeddedPDV.cc                       |  36 +--
 core/ASN_EmbeddedPDV.hh                       |   8 +-
 core/ASN_External.cc                          |  28 +--
 core/ASN_External.hh                          |   2 +-
 core/ASN_Null.cc                              |   4 +-
 core/ASN_Null.hh                              |   2 +-
 core/Array.hh                                 |  52 +++-
 core/Basetype.cc                              |   4 +-
 core/Basetype.hh                              |  14 +-
 core/Bitstring.cc                             |   4 +-
 core/Bitstring.hh                             |   2 +-
 core/Boolean.cc                               |   4 +-
 core/Boolean.hh                               |   2 +-
 core/Charstring.cc                            |   4 +-
 core/Charstring.hh                            |   2 +-
 core/Float.cc                                 |   4 +-
 core/Float.hh                                 |   2 +-
 core/Hexstring.cc                             |   4 +-
 core/Hexstring.hh                             |   2 +-
 core/Integer.cc                               |   4 +-
 core/Integer.hh                               |   2 +-
 core/JSON.hh                                  |   8 +-
 core/Objid.cc                                 |   4 +-
 core/Objid.hh                                 |   2 +-
 core/Octetstring.cc                           |   4 +-
 core/Octetstring.hh                           |   2 +-
 core/Optional.hh                              |  11 +-
 core/Port.hh                                  |   1 +
 core/Universal_charstring.cc                  |   4 +-
 core/Universal_charstring.hh                  |   2 +-
 core/Verdicttype.cc                           |   4 +-
 core/Verdicttype.hh                           |   2 +-
 core/XER.hh                                   |   4 +
 core/XmlReader.hh                             |   2 +-
 core2/Basetype2.cc                            | 151 +++++++-----
 etc/xsd/TPD.xsd                               |   2 +
 .../Semantic_Analyser/TTCN3_SA_1_TD.script    |   2 +-
 .../Semantic_Analyser/xer/bogus_SE.ttcn       |   2 +-
 .../XML/EXER-whitepaper/UseNil.ttcnpp         | 232 ++++++++++++++++++
 .../XML/HR49727/UsefulTtcn3Types.ttcn         |  27 +-
 regression_test/XML/HR49727/XSD.ttcn          |  27 +-
 .../XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn |  27 +-
 regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn  |  27 +-
 .../www_example_org_including_module_e.ttcn   |  63 +++++
 .../XmlTest_xsds/UsefulTtcn3Types.ttcn        |  27 +-
 .../XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn     |  27 +-
 .../XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn |  27 +-
 regression_test/XML/XmlWorkflow/src/XSD.ttcn  |  27 +-
 .../XML/XmlWorkflow/src/xmlTest.prj           |   3 +
 .../XmlWorkflow/src/xmlTest_Testcases.ttcn    |  30 +++
 .../xsd/included_without_namespace.xsd        |  12 +
 .../XML/XmlWorkflow/xsd/including_module.xsd  |  12 +
 regression_test/charstrOper/TcharstrOper.ttcn |   9 +
 .../compileonly/mfgen-tpd/Makefile            |  15 +-
 .../search_paths/dep1/Test/src/MyExample.cfg  |   8 +
 .../search_paths/dep1/Test/src/MyExample.ttcn |  51 ++++
 .../search_paths/dep1/Test/src/PCOType.cc     | 108 ++++++++
 .../search_paths/dep1/Test/src/PCOType.hh     |  48 ++++
 .../search_paths/dep1/Test1/DepTpd1.tpd       |  45 ++++
 .../dep2/Test/src/MyExample2.ttcn             |  11 +
 .../search_paths/dep2/Test2/DepTpd2.tpd       |  45 ++++
 .../dep2/dep2_1/Test/src/MyExample2_1.ttcn    |  11 +
 .../dep2/dep2_1/Test2_1/DepTpd2_1.tpd         |  42 ++++
 .../dep3/Test/src/MyExample3.ttcn             |  11 +
 .../search_paths/dep3/Test3/DepTpd3.tpd       |  42 ++++
 .../mfgen-tpd/search_paths/main/Main.tpd      |  39 +++
 .../search_paths/main/src/MyMain.ttcn         |  13 +
 regression_test/implicitOmit/IOAsn.asn        |  26 ++
 regression_test/implicitOmit/Makefile         |   2 +-
 regression_test/implicitOmit/io.ttcn          |  14 ++
 regression_test/json/AttributeTestcases.ttcn  |  48 ++++
 regression_test/json/Functions.ttcn           |  30 +++
 regression_test/json/Types.ttcn               |  50 ++++
 .../negativeTest/UsefulTtcn3Types.ttcn        |  27 +-
 regression_test/negativeTest/XSD.ttcn         |  27 +-
 regression_test/predefFunction/regex_OK.ttcn  |   4 +-
 regression_test/recordOper/TrecordOper.ttcn   |  27 --
 .../templateCharstr/TtemplateCharstr.ttcn     |  28 +++
 .../LegacyTests/LegacyTestcases.ttcn          |   8 +
 .../templateRecof/TtemplateRecof.ttcn         |  11 +
 regression_test/unionOper/TunionOper.ttcn     |  93 +++++++
 regression_test/unionOper/config.cfg          |   9 +
 usrguide/referenceguide.doc                   | Bin 1698816 -> 1710080 bytes
 usrguide/userguide.doc                        | Bin 849920 -> 850432 bytes
 xsdconvert/GeneralFunctions.cc                |  78 +++++-
 xsdconvert/GeneralFunctions.hh                |   2 +
 xsdconvert/ImportStatement.hh                 |   2 +
 xsdconvert/TTCN3Module.cc                     |  56 -----
 xsdconvert/TTCN3Module.hh                     |   1 -
 xsdconvert/TTCN3ModuleInventory.cc            |   2 +-
 xsdconvert/converter.cc                       |  11 +-
 119 files changed, 2267 insertions(+), 540 deletions(-)
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_including_module_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/included_without_namespace.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/including_module.xsd
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.cfg
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.ttcn
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.cc
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.hh
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test1/DepTpd1.tpd
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test/src/MyExample2.ttcn
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test2/DepTpd2.tpd
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test/src/MyExample2_1.ttcn
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test2_1/DepTpd2_1.tpd
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test/src/MyExample3.ttcn
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test3/DepTpd3.tpd
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/main/Main.tpd
 create mode 100644 regression_test/compileonly/mfgen-tpd/search_paths/main/src/MyMain.ttcn
 create mode 100644 regression_test/implicitOmit/IOAsn.asn

diff --git a/common/config_preproc_p.y b/common/config_preproc_p.y
index e76ee4f07..bd8e5cedd 100644
--- a/common/config_preproc_p.y
+++ b/common/config_preproc_p.y
@@ -256,7 +256,7 @@ extern int add_include_file(const std::string& filename)
     expstring_t currdirname, dirname, filenamepart, basedir;
     currdirname = get_dir_from_path(get_cfg_preproc_current_file().c_str());
     dirname = get_dir_from_path(filename.c_str());
-    basedir = get_absolute_dir(dirname, currdirname);
+    basedir = get_absolute_dir(dirname, currdirname, 1);
     Free(currdirname);
     Free(dirname);
     filenamepart = get_file_from_path(filename.c_str());
@@ -294,7 +294,7 @@ extern int preproc_parse_file(const char *filename, string_chain_t **filenames,
   config_preproc_defines=string_map_new();
   {
     expstring_t dirname=get_dir_from_path(filename);
-    expstring_t basedir=get_absolute_dir(dirname, NULL);
+    expstring_t basedir=get_absolute_dir(dirname, NULL, 1);
     expstring_t filenamepart=get_file_from_path(filename);
     Free(dirname);
     if (basedir == NULL) {
diff --git a/common/path.c b/common/path.c
index d9c4f3d27..201e2153e 100644
--- a/common/path.c
+++ b/common/path.c
@@ -129,7 +129,7 @@ expstring_t compose_path_name(const char *dir_name,
     } else return mcopystr(file_name);
 }
 
-expstring_t get_absolute_dir(const char *dir_name, const char *base_dir)
+expstring_t get_absolute_dir(const char *dir_name, const char *base_dir, const int with_error)
 {
     expstring_t ret_val;
     /* save the working directory */
@@ -142,12 +142,18 @@ expstring_t get_absolute_dir(const char *dir_name, const char *base_dir)
 	    return NULL;
 	}
     }
-    if (dir_name != NULL && set_working_dir(dir_name)) {
+    if (dir_name != NULL && with_error && set_working_dir(dir_name)) {
 	/* there was an error: go back to initial_dir */
 	set_working_dir(initial_dir);
 	Free(initial_dir);
 	return NULL;
     }
+    if (dir_name != NULL && !with_error && chdir(dir_name)) {
+        //No error sign
+        errno = 0;
+	Free(initial_dir);
+	return NULL;
+    }
     ret_val = get_working_dir();
     /* restore the working directory */
     set_working_dir(initial_dir);
@@ -174,9 +180,9 @@ expstring_t get_relative_dir(const char *dir_name, const char *base_dir)
 {
     expstring_t ret_val = NULL;
     /* canonize dir_name and the base directory */
-    expstring_t canonized_dir_name = get_absolute_dir(dir_name, base_dir);
+    expstring_t canonized_dir_name = get_absolute_dir(dir_name, base_dir, 1);
     expstring_t canonized_base_dir = base_dir != NULL ?
-	get_absolute_dir(base_dir, NULL) : get_working_dir();
+	get_absolute_dir(base_dir, NULL, 1) : get_working_dir();
     size_t i, last_slash = 0;
     if (canonized_dir_name == NULL || canonized_base_dir == NULL) {
 	/* an error occurred */
diff --git a/common/path.h b/common/path.h
index e72b743f1..549633ab0 100644
--- a/common/path.h
+++ b/common/path.h
@@ -68,8 +68,10 @@ extern expstring_t compose_path_name(const char *dir_name,
  * (i.e. symlinks in it are resolved). NULL pointer returned in case of error.
  * The string returned shall be deallocated by the caller using \a Free().
  * Note: The working directory of the current process might change during the
- * function call, but it is restored before the function returns. */
-extern expstring_t get_absolute_dir(const char *dir_name, const char *base_dir);
+ * function call, but it is restored before the function returns.
+ * If the with_error is true, then it won't sign error when set_working_dir
+ * is called.*/
+extern expstring_t get_absolute_dir(const char *dir_name, const char *base_dir, const int with_error);
 
 /** Converts \a dir_name to a relative path name based on \a working_dir. If
  * \a working_dir is NULL the current working directory of the process is used.
diff --git a/common/version.h b/common/version.h
index 959454a68..d8aaafbf8 100644
--- a/common/version.h
+++ b/common/version.h
@@ -11,7 +11,7 @@
 /* Version numbers */
 #define TTCN3_MAJOR 5
 #define TTCN3_MINOR 4
-#define TTCN3_PATCHLEVEL 2
+#define TTCN3_PATCHLEVEL 3
 //#define TTCN3_BUILDNUMBER 0
 
 /* The aggregated version number must be set manually since some stupid
@@ -22,7 +22,7 @@
  * TTCN3_VERSION = TTCN3_MAJOR * 1000000 + TTCN3_MINOR * 10000 +
  *                 TTCN3_PATCHLEVEL * 100 + TTCN3_BUILDNUMBER
  */
-#define TTCN3_VERSION 50402
+#define TTCN3_VERSION 50403
 
 /* A monotonically increasing version number.
  * An official release is deemed to have the highest possible build number (99)
diff --git a/compiler2/Type.cc b/compiler2/Type.cc
index cc5b039d1..d99d14a08 100644
--- a/compiler2/Type.cc
+++ b/compiler2/Type.cc
@@ -1610,6 +1610,9 @@ namespace Common {
         case T_SET_T:
         case T_ANYTYPE:
           break;
+	case T_COMPONENT:
+	  ref->error("Referencing fields of a component is not allowed");
+	  return 0;
         default:
           ref->error("Invalid field reference `%s': type `%s' "
             "does not have fields", id.get_dispname().c_str(),
@@ -2777,11 +2780,14 @@ namespace Common {
             comp_type->jsonattrib->metainfo_unbound = true;
           }
         }
-        else if (NULL == parent || (T_SEQ_T != parent->typetype &&
-          T_SET_T != parent->typetype)) {
-          // only allowed if it's a field of a record/set
+        else if (T_SEQOF != get_type_refd_last()->typetype &&
+                 T_SETOF != get_type_refd_last()->typetype &&
+                 T_ARRAY != get_type_refd_last()->typetype &&
+                 (NULL == parent || (T_SEQ_T != parent->typetype &&
+                  T_SET_T != parent->typetype))) {
+          // only allowed if it's an array type or a field of a record/set
           error("Invalid attribute 'metainfo for unbound', requires record, set, "
-            "or field of a record or set");
+            "record of, set of, array or field of a record or set");
         }
       }
     }
diff --git a/compiler2/Type_chk.cc b/compiler2/Type_chk.cc
index 759fab13a..99f0da247 100644
--- a/compiler2/Type_chk.cc
+++ b/compiler2/Type_chk.cc
@@ -395,6 +395,7 @@ void Type::parse_attributes()
     case T_SEQ_T:
     case T_SET_T:
     case T_ANYTYPE:
+    case T_ARRAY:
       if(rawattrib==NULL) {rawattrib= new RawAST; new_raw=true;}
       if(textattrib==NULL){textattrib= new TextAST; new_text=true;}
       if(xerattrib==NULL) {xerattrib = new XerAttributes; new_xer = true;}
@@ -459,7 +460,8 @@ void Type::parse_attributes()
 
           // This should be bool, but gcc 4.1.2-sol8 generates incorrect code
           // with -O2 :(
-          const int se_of = (typetype == T_SEQOF || typetype == T_SETOF);
+          const int se_of = (typetype == T_SEQOF || typetype == T_SETOF ||
+            typetype == T_ARRAY);
           const size_t nof_comps = se_of ? 1 : get_nof_comps();
 
           // Distribute the attributes with qualifiers to the components.
@@ -4070,6 +4072,9 @@ bool Type::chk_this_value_Choice(Value *value, Common::Assignment *lhs,
     alt_type->chk_this_value_ref(alt_value);
     self_ref |= alt_type->chk_this_value(alt_value, lhs, expected_value,
       incomplete_allowed, OMIT_NOT_ALLOWED, SUB_CHK, implicit_omit);
+    if (alt_value->get_valuetype() == Value::V_NOTUSED) {
+      value->set_valuetype(Value::V_NOTUSED);
+    }
     break;}
   default:
     value->error("%s value was expected for type `%s'",
@@ -4159,6 +4164,7 @@ bool Type::chk_this_value_Seq_T(Value *value, Common::Assignment *lhs, expected_
   CompField *last_cf = 0;
   size_t next_index = 0;
   size_t seq_index = 0;
+  bool is_empty = n_type_comps > 0; // don't do this check if the record type has no fields
   for (size_t v_i = 0; v_i < n_value_comps; v_i++, seq_index++) {
     NamedValue *nv = value->get_se_comp_byIndex(v_i);
     const Identifier& value_id = nv->get_name();
@@ -4226,8 +4232,16 @@ bool Type::chk_this_value_Seq_T(Value *value, Common::Assignment *lhs, expected_
     type->chk_this_value_ref(comp_value);
     self_ref |= type->chk_this_value(comp_value, lhs, expected_value, incomplete_allowed,
       cf->get_is_optional() ? OMIT_ALLOWED : OMIT_NOT_ALLOWED, SUB_CHK, implicit_omit);
+    if (comp_value->get_valuetype() != Value::V_NOTUSED) {
+      is_empty = false;
+    }
+  }
+  if (is_empty) {
+    // all of the record's fields are unused (-), set the record to unused
+    // to avoid unnecessary code generation
+    value->set_valuetype(Value::V_NOTUSED);
   }
-  if (!incomplete_allowed || implicit_omit) {
+  else if (!incomplete_allowed || implicit_omit) {
     for (size_t i = 0; i < n_type_comps; i++) {
       const Identifier& id = get_comp_byIndex(i)->get_name();
       if (!comp_map.has_key(id.get_name())) {
@@ -4251,6 +4265,7 @@ bool Type::chk_this_value_Set_T(Value *value, Common::Assignment *lhs, expected_
   map<string, NamedValue> comp_map;
   size_t n_type_comps = get_nof_comps();
   size_t n_value_comps = value->get_nof_comps();
+  bool is_empty = n_type_comps > 0; // don't do this check if the set type has no fields
   for(size_t v_i = 0; v_i < n_value_comps; v_i++) {
     NamedValue *nv = value->get_se_comp_byIndex(v_i);
     const Identifier& value_id = nv->get_name();
@@ -4282,8 +4297,16 @@ bool Type::chk_this_value_Set_T(Value *value, Common::Assignment *lhs, expected_
     type->chk_this_value_ref(comp_value);
     self_ref |= type->chk_this_value(comp_value, lhs, expected_value, incomplete_allowed,
       cf->get_is_optional() ? OMIT_ALLOWED : OMIT_NOT_ALLOWED, SUB_CHK, implicit_omit);
+    if (comp_value->get_valuetype() != Value::V_NOTUSED) {
+      is_empty = false;
+    }
+  }
+  if (is_empty) {
+    // all of the set's fields are unused (-), set the set to unused to avoid
+    // unnecessary code generation
+    value->set_valuetype(Value::V_NOTUSED);
   }
-  if (!incomplete_allowed || implicit_omit) {
+  else if (!incomplete_allowed || implicit_omit) {
     for (size_t i = 0; i < n_type_comps; i++) {
       const Identifier& id = get_comp_byIndex(i)->get_name();
       if(!comp_map.has_key(id.get_name())) {
@@ -5460,7 +5483,7 @@ bool Type::chk_this_template_generic(Template *t, namedbool incomplete_allowed,
       t_comp->set_my_governor(this);
       chk_this_template_ref(t_comp);
       self_ref |= chk_this_template_generic(t_comp, INCOMPLETE_NOT_ALLOWED,
-        omit_in_value_list ? OMIT_ALLOWED : OMIT_NOT_ALLOWED,
+        omit_in_value_list ? allow_omit : OMIT_NOT_ALLOWED,
         ANY_OR_OMIT_ALLOWED, sub_chk, implicit_omit, lhs);
       if(temptype==Ttcn::Template::COMPLEMENTED_LIST &&
          t_comp->get_template_refd_last()->get_templatetype() ==
diff --git a/compiler2/Value.cc b/compiler2/Value.cc
index 3a8ade195..1f9de506a 100644
--- a/compiler2/Value.cc
+++ b/compiler2/Value.cc
@@ -2467,6 +2467,9 @@ namespace Common {
         u.val_Real = i_mant * pow(static_cast<double>(i_base),
 	  static_cast<double>(i_exp));
         break; }
+      case V_NOTUSED:
+        clean_up();
+        break;
       default:
         FATAL_ERROR("Value::set_valuetype()");
       } // switch
@@ -2535,6 +2538,15 @@ namespace Common {
         FATAL_ERROR("Value::set_valuetype()");
       }
       break;
+    case V_SET:
+    case V_CHOICE:
+      if (p_valuetype == V_NOTUSED) {
+        clean_up();
+      }
+      else {
+        FATAL_ERROR("Value::set_valuetype()");
+      }
+      break;
     case V_TTCN3_NULL:
       switch (p_valuetype) {
       case V_DEFAULT_NULL:
@@ -5927,8 +5939,8 @@ error:
     if (!governor) {
       string str;
       ti->append_stringRepr( str);
-      ti->error("Cannot determine the argument type of %s in the`%s' operation.\n"
-                "If type is known, use valuof(<type>: %s) as argument.",
+      ti->error("Cannot determine the argument type of %s in the `%s' operation.\n"
+                "If type is known, use valueof(<type>: %s) as argument.",
                 str.c_str(), get_opname(), str.c_str()); 
       set_valuetype(V_ERROR);
     }
@@ -11097,6 +11109,9 @@ error:
         FATAL_ERROR("Value::generate_code_init()");
       }
       break;
+    case V_NOTUSED:
+      // unbound value, don't generate anything
+      break;
     default:
       FATAL_ERROR("Value::generate_code_init()");
     }
@@ -11672,8 +11687,7 @@ error:
         expr->expr=mputstr(expr->expr, ".is_bound()");
         break;
       case OPTYPE_ISPRESENT:
-        expr->expr=mputprintf(expr->expr, ".is_present(%s)",
-          omit_in_value_list ? "TRUE" : "");
+        expr->expr=mputprintf(expr->expr, ".is_present()");
         break;
       case OPTYPE_SIZEOF:
         expr->expr=mputstr(expr->expr, ".size_of()");
@@ -12878,6 +12892,9 @@ error:
       FATAL_ERROR("Value::has_single_expr()");
     case V_INT:
       return u.val_Int->is_native_fit();
+    case V_NOTUSED:
+      // should only happen when generating code for an unbound record/set value
+      return false;
     default:
       // other value types (literal values) do not need temporary reference
       return true;
diff --git a/compiler2/Value.hh b/compiler2/Value.hh
index 38e83875c..fa98bb8f0 100644
--- a/compiler2/Value.hh
+++ b/compiler2/Value.hh
@@ -66,7 +66,6 @@ namespace Common {
     /** value type */
 
 
-
     enum valuetype_t {
       V_ERROR, /**< erroneous */
       V_NULL, /**< NULL (for ASN.1 NULL type, also in TTCN-3) */
diff --git a/compiler2/compiler.1 b/compiler2/compiler.1
index 9739703d7..1a7ca4c1e 100644
--- a/compiler2/compiler.1
+++ b/compiler2/compiler.1
@@ -3,7 +3,7 @@
 compiler \- TTCN-3 and ASN.1 to C++ translator
 .SH SYNOPSIS
 .B compiler
-.RB "[\| " \-abcdfgijlLMpqrRsStuwxXyY " \|]"
+.RB "[\| " \-abcdEfgijlLMpqrRsStuwxXyY " \|]"
 .RB "[\| " \-V
 .IR " verb_level" " \|]"
 .RB "[\| " \-K
@@ -81,6 +81,10 @@ fields with DEFAULT values as
 .I omit
 in TTCN-3.
 .TP
+.B \-E
+Instructs the variant attribute parser to display warnings instead of errors
+for unrecognized/erroneous attributes.
+.TP
 .B \-f
 Forces the compiler to
 .I overwrite
diff --git a/compiler2/encdec.c b/compiler2/encdec.c
index 6b90b1377..d93612e2f 100644
--- a/compiler2/encdec.c
+++ b/compiler2/encdec.c
@@ -53,7 +53,7 @@ void def_encdec(const char *p_classname,
       "int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, "
       "embed_values_enc_struct_t*) const;\n"
       "int XER_decode(const XERdescriptor_t&, XmlReaderWrap&, unsigned int, "
-      "embed_values_dec_struct_t*);\n"
+      "unsigned int, embed_values_dec_struct_t*);\n"
       "static boolean can_start(const char *name, const char *uri, "
       "XERdescriptor_t const& xd, unsigned int);\n"
       "%s"
@@ -217,7 +217,7 @@ void def_encdec(const char *p_classname,
      "    for (int rd_ok=reader.Read(); rd_ok==1; rd_ok=reader.Read()) {\n"
      "      if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;\n"
      "    }\n"
-     "    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, 0);\n"
+     "    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);\n"
      "    size_t bytes = reader.ByteConsumed();\n"
      "    p_buf.set_pos(bytes);\n"
      "    break;}\n"
diff --git a/compiler2/enum.c b/compiler2/enum.c
index 0d995c74c..601aa8661 100644
--- a/compiler2/enum.c
+++ b/compiler2/enum.c
@@ -677,7 +677,7 @@ void defEnumClass(const enum_def *edef, output_struct *output)
       "// written by %s in " __FILE__ " at %d\n"
 #endif
       "int %s::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader,"
-      " unsigned int p_flavor, embed_values_dec_struct_t*)\n"
+      " unsigned int p_flavor,  unsigned int /*p_flavor2*/, embed_values_dec_struct_t*)\n"
       "{\n"
       "  int rd_ok = 1, type;\n"
 
diff --git a/compiler2/main.cc b/compiler2/main.cc
index c4e8ff387..28a4ba756 100644
--- a/compiler2/main.cc
+++ b/compiler2/main.cc
@@ -71,7 +71,8 @@ boolean generate_skeleton = FALSE, force_overwrite = FALSE,
   use_runtime_2 = FALSE, gcc_compat = FALSE, asn1_xer = FALSE,
   check_subtype = TRUE, suppress_context = FALSE, display_up_to_date = FALSE,
   implicit_json_encoding = FALSE, json_refs_for_all_types = TRUE,
-  force_gen_seof = FALSE, omit_in_value_list = FALSE;
+  force_gen_seof = FALSE, omit_in_value_list = FALSE,
+  warnings_for_bad_variants = FALSE;
 
 // Default code splitting mode is set to 'no splitting'.
 CodeGenHelper::split_type code_splitting_mode = CodeGenHelper::SPLIT_NONE;
@@ -224,7 +225,7 @@ char *canonize_input_file(const char *path_name)
     break;
   }
   char *dir_name = get_dir_from_path(path_name);
-  char *abs_dir = get_absolute_dir(dir_name, NULL);
+  char *abs_dir = get_absolute_dir(dir_name, NULL, true);
   Free(dir_name);
   char *file_name = get_file_from_path(path_name);
   char *ret_val = compose_path_name(abs_dir, file_name);
@@ -360,7 +361,7 @@ static boolean is_valid_asn1_filename(const char* file_name)
 static void usage()
 {
   fprintf(stderr, "\n"
-    "usage: %s [-abcdfgijlLOpqrRsStuwxXyY] [-K file] [-z file] [-V verb_level]\n"
+    "usage: %s [-abcdEfgijlLOpqrRsStuwxXyY] [-K file] [-z file] [-V verb_level]\n"
     "	[-o dir] [-U none|type] [-P modulename.top_level_pdu_name] [-Q number] ...\n"
     "	[-T] module.ttcn [-A] module.asn ...\n"
     "	or  %s -v\n"
@@ -371,6 +372,7 @@ static void usage()
     "	-b:		disable BER encoder/decoder functions\n"
     "	-c:		write out checksums in case of error\n"
     "	-d:		treat default fields as omit\n"
+    "	-E:		display only warnings for unrecognized encoding variants\n"
     "	-f:		force overwriting of output files\n"
     "	-g:		emulate GCC error/warning message format\n"
     "	-i:		use only line numbers in error/warning messages\n"
@@ -455,7 +457,8 @@ int main(int argc, char *argv[])
     dflag = false, Xflag = false, Rflag = false, gflag = false, aflag = false,
     s0flag = false, Cflag = false, yflag = false, Uflag = false, Qflag = false,
     Sflag = false, Kflag = false, jflag = false, zflag = false, Fflag = false,
-    Mflag = false, errflag = false, print_usage = false, ttcn2json = false;
+    Mflag = false, Eflag = false, errflag = false, print_usage = false,
+    ttcn2json = false;
 
   CodeGenHelper cgh;
 
@@ -547,7 +550,7 @@ int main(int argc, char *argv[])
 
   if (!ttcn2json) {
     for ( ; ; ) {
-      int c = getopt(argc, argv, "aA:C:K:LP:T:V:bcdfFgilMo:YpqQ:rRs0StuU:vwxXjyz:-");
+      int c = getopt(argc, argv, "aA:bcC:dEfFgijK:lLMo:pP:qQ:rRsStT:uU:vV:wxXyYz:0-");
       if (c == -1) break;
       switch (c) {
       case 'a':
@@ -714,6 +717,10 @@ int main(int argc, char *argv[])
         SET_FLAG(M);
         omit_in_value_list = TRUE;
         break;
+      case 'E':
+        SET_FLAG(E);
+        warnings_for_bad_variants = TRUE;
+        break;
 
       case 'Q': {
         long max_errs;
@@ -758,7 +765,7 @@ int main(int argc, char *argv[])
       if (Aflag || Lflag || Pflag || Tflag || Vflag || Yflag ||
         bflag || fflag || iflag || lflag || oflag || pflag || qflag ||
         rflag || sflag || tflag || uflag || wflag || xflag || Xflag || Rflag ||
-        Uflag || yflag || Kflag || jflag || zflag || Fflag || Mflag) {
+        Uflag || yflag || Kflag || jflag || zflag || Fflag || Mflag || Eflag) {
         errflag = true;
         print_usage = true;
       }
diff --git a/compiler2/main.hh b/compiler2/main.hh
index 10192d71d..23e1b30df 100644
--- a/compiler2/main.hh
+++ b/compiler2/main.hh
@@ -36,7 +36,7 @@ extern boolean generate_skeleton, force_overwrite, include_line_info,
   output_only_linenum, default_as_optional, use_runtime_2, gcc_compat, asn1_xer,
   check_subtype, suppress_context, enable_set_bound_out_param, display_up_to_date,
   implicit_json_encoding, json_refs_for_all_types, force_gen_seof,
-  omit_in_value_list;
+  omit_in_value_list, warnings_for_bad_variants;
 
 extern const char *expected_platform;
 
diff --git a/compiler2/makefile.c b/compiler2/makefile.c
index 3bf80cfe5..7c2f90598 100644
--- a/compiler2/makefile.c
+++ b/compiler2/makefile.c
@@ -238,6 +238,8 @@ struct makefile_struct {
   boolean suppresswarnings;
   boolean outparamboundness;
   boolean omit_in_value_list;
+  boolean warnings_for_bad_variants;
+  boolean disable_predef_ext_folder;
   struct string_list* solspeclibraries; /* not owned */
   struct string_list* sol8speclibraries; /* not owned */
   struct string_list* linuxspeclibraries; /* not owned */
@@ -301,6 +303,7 @@ static void init_makefile_struct(struct makefile_struct *makefile)
   makefile->prep_defines = NULL;
   makefile->outparamboundness = FALSE;
   makefile->omit_in_value_list = FALSE;
+  makefile->warnings_for_bad_variants = FALSE;
   makefile->solspeclibraries = NULL;
   makefile->sol8speclibraries = NULL;
   makefile->linuxspeclibraries = NULL;
@@ -518,7 +521,7 @@ static char *get_dir_name(const char *path_name, const char *working_dir)
 {
   char *dir_name = get_dir_from_path(path_name);
   if (dir_name != NULL) {
-    char *absolute_dir = get_absolute_dir(dir_name, working_dir);
+    char *absolute_dir = get_absolute_dir(dir_name, working_dir, TRUE);
     Free(dir_name);
     if (absolute_dir == NULL || working_dir == NULL) {
       /* an error occurred */
@@ -1975,13 +1978,13 @@ static void print_makefile(struct makefile_struct *makefile)
           "AR = ar\n"
           "ARFLAGS = \n\n"
           "# Flags for the TTCN-3 and ASN.1 compiler:\n"
-          "COMPILER_FLAGS =%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n\n"
+          "COMPILER_FLAGS =%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n\n"
           "# Execution mode: (either ttcn3 or ttcn3-parallel)\n"
           "TTCN3_LIB = ttcn3%s%s%s\n\n"
 #ifdef LICENSE
           "# The path of your OpenSSL installation:\n"
           "# If you do not have your own one, leave it unchanged.\n"
-          "OPENSSL_DIR = $(TTCN3_DIR)\n\n"
+          "%sOPENSSL_DIR = $(TTCN3_DIR)\n\n"
 #endif
           "# The path of your libxml2 installation:\n"
           "# If you do not have your own one, leave it unchanged.\n"
@@ -2012,12 +2015,16 @@ static void print_makefile(struct makefile_struct *makefile)
           (makefile->suppresswarnings ? " -w" : ""),
           (makefile->outparamboundness ? " -Y" : ""),
           (makefile->omit_in_value_list ? " -M" : ""),
+          (makefile->warnings_for_bad_variants ? " -E" : ""),
           (makefile->tcov_file_name ? makefile->tcov_file_name : ""),
           (makefile->profiled_file_list ? " -z $(PROFILED_FILE_LIST)" : ""),
           /* end of COMPILER FLAGS */
           (makefile->use_runtime_2 ? "-rt2"    : ""), /* TTCN3_LIB */
           (makefile->single_mode   ? ""        : "-parallel"),
           (makefile->dynamic       ? "-dynamic": "")
+#ifdef LICENSE
+          ,(makefile->disable_predef_ext_folder ? "# " : "")
+#endif 
           );
     if (!makefile->gnu_make) {
       fputs("# Note: you can set any directory except ./archive\n", fp);
@@ -3719,8 +3726,8 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
   const char* cxxcompiler, const char* optlevel, const char* optflags, boolean disableber, boolean disableraw, boolean disabletext,
   boolean disablexer, boolean disablejson, boolean forcexerinasn, boolean defaultasomit, boolean gccmsgformat,
   boolean linenumbersonlymsg, boolean includesourceinfo, boolean addsourcelineinfo, boolean suppresswarnings,
-  boolean outparamboundness, boolean omit_in_value_list, struct string_list* solspeclibraries, struct string_list* sol8speclibraries,
-  struct string_list* linuxspeclibraries, struct string_list* freebsdspeclibraries,
+  boolean outparamboundness, boolean omit_in_value_list, boolean warnings_for_bad_variants, boolean disable_predef_ext_folder, struct string_list* solspeclibraries,
+  struct string_list* sol8speclibraries, struct string_list* linuxspeclibraries, struct string_list* freebsdspeclibraries,
   struct string_list* win32speclibraries, const char* ttcn3preprocessor, struct string_list* linkerlibraries,
   struct string_list* additionalObjects, struct string_list* linkerlibsearchpath, char* generatorCommandOutput,
   struct string2_list* target_placement_list)
@@ -3770,6 +3777,8 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
   makefile.suppresswarnings = suppresswarnings;
   makefile.outparamboundness = outparamboundness;
   makefile.omit_in_value_list = omit_in_value_list;
+  makefile.warnings_for_bad_variants = warnings_for_bad_variants;
+  makefile.disable_predef_ext_folder = disable_predef_ext_folder;
   makefile.solspeclibraries = solspeclibraries;
   makefile.sol8speclibraries = sol8speclibraries;
   makefile.linuxspeclibraries = linuxspeclibraries;
@@ -3904,7 +3913,7 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
 static void usage(void)
 {
   fprintf(stderr, "\n"
-    "usage: %s [-abc" C_flag "dDfFglLmMprRstTVwWXZ] [-K file] [-z file ] [-P dir]"
+    "usage: %s [-abc" C_flag "dDEfFglLmMprRstTVwWXZ] [-K file] [-z file ] [-P dir]"
     " [-U none|type] [-e ets_name] [-o dir|file]\n"
     "        [-t project_descriptor.tpd [-b buildconfig]]\n"
     "        [-O file] ... module_name ... testport_name ...\n"
@@ -3918,8 +3927,10 @@ static void usage(void)
 #endif
     "	-d:		dump the data used for Makefile generation\n"
     "	-e ets_name:	name of the target executable\n"
+    "	-E:		display only warnings for unrecognized encoding variants\n"
     "	-f:		force overwriting of the output Makefile\n"
     "	-g:		generate Makefile for use with GNU make\n"
+    "	-I path:	Add path to the search paths when using TPD files\n"
     "	-K file:	enable selective code coverage\n"
     "	-l:		use dynamic linking\n"
     "	-L:		create makefile with library archive as the default target\n"
@@ -3992,7 +4003,7 @@ int main(int argc, char *argv[])
     gfflag = FALSE, lnflag = FALSE, isflag = FALSE, asflag = FALSE,
     swflag = FALSE, Vflag = FALSE, Dflag = FALSE, Wflag = FALSE,
     djflag = FALSE, Zflag = FALSE, Hflag = FALSE, Mflag = FALSE,
-    zflag = FALSE;
+    diflag = FALSE, zflag = FALSE, Eflag = FALSE;
   boolean error_flag = FALSE;
   char *output_file = NULL;
   char *ets_name = NULL;
@@ -4003,6 +4014,8 @@ int main(int argc, char *argv[])
   const char *tpd_file_name = NULL;
   const char *tpd_build_config = NULL;
   const char *tcov_file_name = NULL;
+  size_t n_search_paths = 0;
+  const char **search_paths = NULL;
   struct string_list* profiled_file_list = NULL;
   const char *profiled_file_list_zflag = NULL;
   const char *file_list_path = NULL;
@@ -4047,7 +4060,7 @@ int main(int argc, char *argv[])
   }
 
   for ( ; ; ) {
-    int c = getopt(argc, argv, "O:ab:c" C_flag "dDe:fFgK:o:lLmMpP:rRst:TU:vVwWXYz:ZH");
+    int c = getopt(argc, argv, "O:ab:c" C_flag "dDe:EfFgI:K:o:lLmMpP:rRst:TU:vVwWXYz:ZH");
     if (c == -1) break;
     switch (c) {
     case 'O':
@@ -4056,6 +4069,12 @@ int main(int argc, char *argv[])
       Realloc(other_files, n_other_files * sizeof(*other_files));
       other_files[n_other_files - 1] = optarg;
       break;
+      case 'I':
+        n_search_paths++;
+        search_paths = (const char**)
+        Realloc(search_paths, n_search_paths * sizeof(*search_paths));
+        search_paths[n_search_paths - 1] = optarg;
+      break;
     case 'a':
       SET_FLAG(a);
       break;
@@ -4085,6 +4104,9 @@ int main(int argc, char *argv[])
       SET_FLAG(e);
       ets_name = optarg;
       break;
+    case 'E':
+      SET_FLAG(E);
+      break;
     case 'f':
       SET_FLAG(f);
       break;
@@ -4189,7 +4211,7 @@ int main(int argc, char *argv[])
     if ( aflag || bflag || cflag || Cflag || dflag || eflag || fflag || Fflag || gflag
       || mflag || oflag || lflag || pflag || Pflag || rflag || Rflag || sflag
       || tflag || Tflag || Vflag || wflag || Xflag || Kflag || Dflag || Wflag || Yflag
-      || Zflag || Hflag || Mflag || zflag || n_other_files > 0)
+      || Zflag || Hflag || Mflag || zflag || Eflag || n_other_files > 0 || n_search_paths > 0)
       error_flag = TRUE;
   }
 
@@ -4239,6 +4261,30 @@ int main(int argc, char *argv[])
     error_flag = TRUE;
   }
 
+  if (n_search_paths > 0 && !tflag) {
+    ERROR("Using the '-I' option requires use of the '-t' option.");
+    error_flag = TRUE;
+  }
+
+  for (size_t i = 0; i < n_search_paths; i++) {
+    boolean is_abs_path =
+#if defined WIN32 && defined MINGW
+        /* On native Windows the absolute path name shall begin with
+         * a drive letter, colon and backslash */
+        (((search_paths[i][0] < 'A' || search_paths[i][0] > 'Z') &&
+          (search_paths[i][0] < 'a' || search_paths[i][0] > 'z')) ||
+         search_paths[i][1] != ':' || search_paths[i][2] != '\\');
+#else
+        /* On UNIX-like systems the absolute path name shall begin with
+         * a slash */
+        search_paths[i][0] != '/';
+#endif
+    if (is_abs_path) {
+      ERROR("The path after the -I flag must be an absolute path.");
+      error_flag = TRUE;
+    }
+  }
+
   if (error_flag) {
     usage();
     return EXIT_FAILURE;
@@ -4351,9 +4397,9 @@ int main(int argc, char *argv[])
       &Rflag, &lflag, &mflag, &Pflag, &Lflag, rflag, Fflag, Tflag, output_file, &abs_work_dir, sub_project_dirs, program_name, prj_graph_fp,
       create_symlink_list,ttcn3_prep_includes, ttcn3_prep_defines,ttcn3_prep_undefines, prep_includes, prep_defines, prep_undefines, &csflag, 
       &quflag, &dsflag, &cxxcompiler, &optlevel, &optflags, &dbflag, &drflag, &dtflag, &dxflag, &djflag, &fxflag, &doflag, &gfflag, &lnflag, &isflag,
-      &asflag, &swflag, &Yflag, &Mflag, solspeclibraries, sol8speclibraries, linuxspeclibraries, freebsdspeclibraries, win32speclibraries, &ttcn3prep,
+      &asflag, &swflag, &Yflag, &Mflag, &Eflag, &diflag, solspeclibraries, sol8speclibraries, linuxspeclibraries, freebsdspeclibraries, win32speclibraries, &ttcn3prep,
       linkerlibraries, additionalObjects, linkerlibsearchpath, Vflag, Dflag, &Zflag, &Hflag,
-      &generatorCommandOutput, target_placement_list, Wflag, run_command_list, required_configs, &profiled_file_list);
+      &generatorCommandOutput, target_placement_list, Wflag, run_command_list, required_configs, &profiled_file_list, search_paths, n_search_paths);
 
     Free(abs_work_dir);
     if (prj_graph_fp) {
@@ -4390,7 +4436,7 @@ int main(int argc, char *argv[])
       Rflag, lflag, mflag, Cflag, code_splitting_mode, tcov_file_name, profiled_file_list,
       Lflag, Zflag, Hflag, rflag ? sub_project_dirs : NULL, ttcn3_prep_includes,
       ttcn3_prep_defines, ttcn3_prep_undefines, prep_includes, prep_defines, prep_undefines, csflag, quflag, dsflag, cxxcompiler, optlevel, optflags, dbflag,
-      drflag, dtflag, dxflag, djflag, fxflag, doflag, gfflag, lnflag, isflag, asflag, swflag, Yflag, Mflag, solspeclibraries,
+      drflag, dtflag, dxflag, djflag, fxflag, doflag, gfflag, lnflag, isflag, asflag, swflag, Yflag, Mflag, Eflag, diflag, solspeclibraries,
       sol8speclibraries, linuxspeclibraries, freebsdspeclibraries, win32speclibraries, ttcn3prep, linkerlibraries, additionalObjects,
       linkerlibsearchpath, generatorCommandOutput, target_placement_list);
   }
@@ -4412,6 +4458,8 @@ int main(int argc, char *argv[])
   free_string_list(linkerlibsearchpath);
   free_string_list(profiled_file_list);
 
+  Free(search_paths);
+
   Free(generatorCommandOutput);
   free_string2_list(target_placement_list);
   free_string2_list(required_configs);
diff --git a/compiler2/record.c b/compiler2/record.c
index 1a029b9c3..1eecf4c7b 100644
--- a/compiler2/record.c
+++ b/compiler2/record.c
@@ -190,7 +190,6 @@ char* generate_raw_coding(char* src,
       "p_td, TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, "
       "boolean, int, boolean)\n"
       "{\n"
-        "bound_flag = TRUE;\n"
         "int prepaddlength = p_buf.increase_pos_padd(p_td.raw->prepadding);\n"
         "limit -= prepaddlength;\n"
         "int decoded_length = 0;\n"
@@ -421,7 +420,6 @@ char* generate_raw_coding(char* src,
       "TTCN_Buffer& p_buf, int limit, raw_order_t top_bit_ord, boolean no_err, "
       "int, boolean)\n"
       "{ (void)no_err;\n"
-	"  bound_flag = TRUE;\n"
 	"  int prepaddlength=p_buf.increase_pos_padd(p_td.raw->prepadding);\n"
 	"  limit-=prepaddlength;\n"
 	"  size_t last_decoded_pos = p_buf.get_pos_bit();\n"
@@ -1965,7 +1963,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       "    p_buf.put_s((size_t)p_td.namelens[e_xer]%s-(!is_indented%s), "
       "(cbyte*)p_td.names[e_xer]);\n"
       "  }\n"
-      "  else if (p_flavor & USE_TYPE_ATTR) {\n"
+      "  else if (p_flavor & (USE_NIL|USE_TYPE_ATTR)) {\n"
       "    size_t buf_len = p_buf.get_len();\n"
       "    const unsigned char * const buf_data = p_buf.get_data();\n"
       "    if (buf_data[buf_len-1-chopped_chars] == '\\n') ++chopped_chars;\n"
@@ -2082,7 +2080,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       , sdef->elements[sdef->nElements-1].name
     );
   }
-
+  
   if (want_namespaces) {
     /* there were some attributes. close the start tag left open */
     src = mputprintf(src,
@@ -2366,9 +2364,8 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
 
   src = mputprintf(src, /* XERSTUFF decodegen for record/SEQUENCE*/
     "int %s::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader,"
-    " unsigned int p_flavor, embed_values_dec_struct_t*)\n"
+    " unsigned int p_flavor, unsigned int p_flavor2, embed_values_dec_struct_t*)\n"
     "{\n"
-    "  bound_flag = TRUE;\n"
     /* Remove XER_LIST, XER_RECOF from p_flavor. This is not required
      * for is_exer (which tests another bit), but for subsequent code. */
     "  int e_xer = is_exer(p_flavor);\n"
@@ -2377,9 +2374,10 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
     "  const boolean omit_tag = e_xer && ((xerbits & (UNTAGGED|XER_ATTRIBUTE)) "
     "|| (p_flavor & (USE_NIL|USE_TYPE_ATTR)));\n"
     "%s"
-    "  const boolean parent_tag = e_xer && (p_flavor & (USE_TYPE_ATTR));\n"
+    "  const boolean parent_tag = e_xer && ((p_flavor & USE_TYPE_ATTR)|| (p_flavor2 & USE_NIL_PARENT_TAG));\n"
     "  (void)parent_tag;\n"
     "  p_flavor &= XER_MASK;\n" /* also removes "toplevel" bit */
+    "  p_flavor2 = XER_NONE;\n" /* Remove only bit: USE_NIL_PARENT_TAG (for now) */
     "  int rd_ok, xml_depth=-1, type;\n"
     "  {\n" /* scope for the error contexts */
     , name
@@ -2389,8 +2387,10 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
      * or if EMBED-VALUES is possible, but isn't. */
   );
 
-  if (sdef->xerUseNilPossible) src = mputstr(src,
-    "  boolean nil_attribute = FALSE;\n");
+  if (sdef->xerUseNilPossible) { src = mputstr(src,
+    "  boolean nil_attribute = FALSE;\n"
+    "  boolean already_processed = FALSE;\n");
+  }
 
   src = mputprintf(src,
     "  TTCN_EncDec_ErrorContext ec_0(\"Component '\");\n"
@@ -2449,12 +2449,11 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
 
   /* ********************************************************************
    * ATTRIBUTES
-   ***************************/
+   ***************************/ 
   if (num_attributes || sdef->xerUseNilPossible /* maybe QNAME too ? */) {
     size_t aaa;
-    src = mputstr(src, " if (!omit_tag || parent_tag) {\n");
 
-    /* Prepare for attributes not present in the XML.
+     /* Prepare for attributes not present in the XML.
      * Set all attributes with defaultForEmpty to the D-F-E value.
      * Set all optional components with ATTRIBUTE to omit.
      *
@@ -2477,6 +2476,8 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
         , sdef->elements[aaa].isOptional ? " = OMIT_VALUE" : ".set_size(0)");
       }
     }
+    
+    src = mputstr(src, " if (!omit_tag || parent_tag) {\n");
 
     if (num_attributes==0 /* therefore sdef->xerUseNilPossible is true */ ) {
       /* Only the "nil" attribute may be present. If there is no USE-NIL,
@@ -2492,7 +2493,12 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
     }
 
     src = mputstr(src,
-      "  for (rd_ok = p_reader.MoveToFirstAttribute(); rd_ok==1 && "
+      "  if(parent_tag && p_reader.NodeType() == XML_READER_TYPE_ATTRIBUTE) {\n"
+      "    rd_ok = p_reader.Ok();\n"
+      "  } else {\n"
+      "    rd_ok = p_reader.MoveToFirstAttribute();\n"
+      "  }\n"
+      "  for (; rd_ok==1 && "
       "p_reader.NodeType()==XML_READER_TYPE_ATTRIBUTE; "
       "rd_ok = p_reader.AdvanceAttribute()) {\n"
       "    if (p_reader.IsNamespaceDecl()) continue;\n");
@@ -2525,13 +2531,24 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       src = mputprintf(src,
         "    if (check_name(attr_name, %s_xer_, 1) && check_namespace(ns_uri, %s_xer_)) {\n"
         "      ec_1.set_msg(\"%s': \");\n"
-        "      field_%s.XER_decode(%s_xer_, p_reader, p_flavor | (p_td.xer_bits & USE_NIL), 0);\n"
+        "      field_%s.XER_decode(%s_xer_, p_reader, p_flavor | (p_td.xer_bits & USE_NIL), p_flavor2, 0);\n"
         "    } else"
         , sdef->elements[i].typegen, sdef->elements[i].typegen
         , sdef->elements[i].dispname /* set_msg */
         , sdef->elements[i].name, sdef->elements[i].typegen
       );
     }
+    
+    if(sdef->xerUseNilPossible) {
+      src = mputprintf(src,
+        "    if(p_td.xer_bits & USE_NIL) {\n"
+        "      field_%s.XER_decode(%s_xer_, p_reader, p_flavor | USE_NIL, p_flavor2 | USE_NIL_PARENT_TAG, 0);\n"
+        "      already_processed = TRUE;\n"
+        "    } else"
+        , sdef->elements[sdef->nElements-1].name
+        , sdef->elements[sdef->nElements-1].typegen
+      );
+    }
 
     if (sdef->control_ns_prefix && !(num_attributes==1 && aa_index!=-1)) {
       src = mputprintf(src,
@@ -2617,7 +2634,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       "  if (!(p_td.xer_bits & EMBED_VALUES)) {\n"
       "    ec_1.set_msg(\"%s': \");\n"
       "    field_%s.XER_decode(%s_xer_, p_reader, "
-      "p_flavor | (p_td.xer_bits & USE_NIL)| (tag_closed ? PARENT_CLOSED : XER_NONE), 0);\n"
+      "p_flavor | (p_td.xer_bits & USE_NIL)| (tag_closed ? PARENT_CLOSED : XER_NONE), p_flavor2, 0);\n"
       "  }\n"
       , sdef->elements[0].dispname
       , sdef->elements[0].name, sdef->elements[0].typegen
@@ -2651,7 +2668,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       src = mputprintf(src,
         "  {\n"
         "    ec_1.set_msg(\"%s': \");\n"
-        "    field_%s.XER_decode(%s_xer_, p_reader, p_flavor | (p_td.xer_bits & USE_NIL), 0);\n"
+        "    field_%s.XER_decode(%s_xer_, p_reader, p_flavor | (p_td.xer_bits & USE_NIL), p_flavor2, 0);\n"
         "  }\n"
         , sdef->elements[i].dispname
         , sdef->elements[i].name, sdef->elements[i].typegen
@@ -2777,7 +2794,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
         src = mputprintf(src,
           "      if (check_name(x_name, %s_xer_, 1)) {\n"
           "        ec_1.set_msg(\"%s': \");\n"
-          "        field_%s%s%s%s.XER_decode(%s_xer_, p_reader, p_flavor, %s);\n"
+          "        field_%s%s%s%s.XER_decode(%s_xer_, p_reader, p_flavor, p_flavor2, %s);\n"
           , sdef->elements[i].typegen
           , sdef->elements[i].dispname
           , (sdef->xerUseNilPossible ? sdef->elements[sdef->nElements-1].name: sdef->elements[i].name)
@@ -2814,7 +2831,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
           "          }\n"
           "          if (!next_any) {\n"
           "            ec_1.set_msg(\"%s': \");\n"
-          "            field_%s%s%s%s.XER_decode(%s_xer_, p_reader, p_flavor, 0);\n"
+          "            field_%s%s%s%s.XER_decode(%s_xer_, p_reader, p_flavor, p_flavor2, 0);\n"
           "            field_%s[i] = e_val;\n"
           "            any_found = true;\n"
           "          }\n"
@@ -2921,8 +2938,9 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
         "  if (e_xer && p_td.dfeValue && p_reader.IsEmptyElement()) {\n"
         "    field_%s = *static_cast<const %s*>(p_td.dfeValue);\n"
         "  }\n"
-        "  else"
-        , sdef->elements[i].name, sdef->elements[i].type);
+        "  else%s"
+        , sdef->elements[i].name, sdef->elements[i].type
+        , sdef->xerUseNilPossible ? " if (!already_processed)" : "");
     }
     /* Decode the field */
     src = mputprintf(src,
@@ -2946,7 +2964,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
     
     src = mputprintf(src, 
       "    field_%s.XER_decode(%s_xer_, p_reader, p_flavor"
-      " | (p_td.xer_bits & USE_NIL)| (tag_closed ? PARENT_CLOSED : XER_NONE), %s);\n"
+      " | (p_td.xer_bits & USE_NIL)| (tag_closed ? PARENT_CLOSED : XER_NONE), p_flavor2, %s);\n"
       "  }\n"
       , sdef->elements[i].name, sdef->elements[i].typegen
       , sdef->xerEmbedValuesPossible ? "emb_val" : "0");
@@ -3111,7 +3129,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
     def=mputprintf(def, "class %s {\n", name);
   }
 
-  /* fields */
   for (i = 0; i < sdef->nElements; i++) {
     if(sdef->elements[i].isOptional)
       def = mputprintf(def, "  OPTIONAL<%s> field_%s;\n",
@@ -3121,16 +3138,12 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       def = mputprintf(def, "  %s field_%s;\n",
                        sdef->elements[i].type, sdef->elements[i].name);
   }
-  
-  /* bound flag */
-  def = mputstr(def, "  boolean bound_flag;\n");
 
   /* default constructor */
   def = mputprintf(def, "public:\n"
     "  %s();\n", name);
   src = mputprintf(src, "%s::%s()\n"
     "{\n"
-    "  bound_flag = FALSE;\n"
     "}\n\n", name, name);
 
   /* constructor by fields */
@@ -3164,7 +3177,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
   }
   src = mputstr(src, "\n"
                 "{\n"
-                "  bound_flag = TRUE;\n"
                 "}\n\n");
 
   /* copy constructor */
@@ -3172,8 +3184,7 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
   src = mputprintf(src, "%s::%s(const %s& other_value)\n"
       "{\n"
       "if(!other_value.is_bound()) "
-      "TTCN_error(\"Copying an unbound value of type %s.\");\n"
-      "bound_flag = TRUE;\n",
+      "TTCN_error(\"Copying an unbound value of type %s.\");\n",
       name, name, name, dispname);
   for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src,
@@ -3196,7 +3207,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "field_%s.clean_up();\n", sdef->elements[i].name);
   }
   src = mputstr(src,
-      "bound_flag = FALSE;\n"
       "}\n\n");
 
   /* = operator */
@@ -3205,8 +3215,7 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "{\n"
       "if (this != &other_value) {\n"
       "  if(!other_value.is_bound()) "
-      "TTCN_error(\"Assignment of an unbound value of type %s.\");\n"
-      "  bound_flag = TRUE;\n",
+      "TTCN_error(\"Assignment of an unbound value of type %s.\");\n",
       name, name, name, dispname);
   for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src,
@@ -3226,7 +3235,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
   src = mputprintf(src,
                    "boolean %s::operator==(const %s& other_value) const\n"
                    "{\n"
-                   "if (!is_bound() && !other_value.is_bound()) return TRUE;\n"
                    "return ", name, name);
   for (i = 0; i < sdef->nElements; i++) {
     if (i > 0) src = mputstr(src, "\n  && ");
@@ -3245,8 +3253,7 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "  boolean is_bound() const;\n\n");
   src = mputprintf(src,
       "boolean %s::is_bound() const\n"
-      "{\n"
-      "if (bound_flag) return TRUE;\n", name);
+      "{\n", name);
       for(i=0; i < sdef->nElements; i++) {
         if(sdef->elements[i].isOptional) {
           src = mputprintf(src,
@@ -3271,8 +3278,7 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "  boolean is_value() const;\n\n");
   src = mputprintf(src,
       "boolean %s::is_value() const\n"
-      "{\n"
-      "if (!is_bound()) return FALSE;\n", name);
+      "{\n", name);
       for(i=0; i < sdef->nElements; i++) {
         if(sdef->elements[i].isOptional) {
           src = mputprintf(src,
@@ -3316,18 +3322,17 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
   mandatory_fields_count = 0;
   for (i = 0; i < sdef->nElements; i++)
     if (!sdef->elements[i].isOptional) mandatory_fields_count++;
-  
-  def = mputstr(def, "  int size_of() const;\n");
-  src = mputprintf(src,
-    "int %s::size_of() const\n"
-    "{\n"
-    "  if (!is_bound()) "
-    "TTCN_error(\"Calculating the size of an unbound record/set value of type %s\");\n"
-    , name, dispname);
-  if (sdef->nElements == mandatory_fields_count) {
-    src = mputprintf(src, "  return %lu;\n", (unsigned long) mandatory_fields_count);
-  }
-  else {
+
+  if(sdef->nElements == mandatory_fields_count){
+    def = mputprintf(def,
+        "  inline int size_of() const\n"
+        "    {return %lu;}\n", (unsigned long) mandatory_fields_count);
+  }else{
+    def = mputstr(def, "  int size_of() const;\n");
+    src = mputprintf(src,
+      "int %s::size_of() const\n"
+      "{\n",
+      name);
     src = mputprintf(src, "  int ret_val = %lu;\n",
       (unsigned long) mandatory_fields_count);
     for (i = 0; i < sdef->nElements; i++)
@@ -3335,9 +3340,10 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
         src = mputprintf(src,
           "  if (field_%s.ispresent()) ret_val++;\n",
           sdef->elements[i].name);
-    src = mputstr(src, "  return ret_val;\n");
+    src = mputstr(src,
+      "  return ret_val;\n"
+      "}\n\n");
   }
-  src = mputstr(src, "}\n\n");
 
   /* log function */
   def = mputstr(def, "  void log() const;\n");
@@ -3362,7 +3368,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
   src = mputprintf
     (src,
      "void %s::set_param(Module_Param& param)\n{\n"
-     "  bound_flag = TRUE;\n"
      "  if (dynamic_cast<Module_Param_Name*>(param.get_id()) != NULL &&\n"
      "      param.get_id()->next_name()) {\n"
     // Haven't reached the end of the module parameter name
@@ -3491,11 +3496,8 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
 
   /* text encoder function */
   def = mputstr(def, "  void encode_text(Text_Buf& text_buf) const;\n");
-  src = mputprintf(src,
-    "void %s::encode_text(Text_Buf& text_buf) const\n{\n"
-    "if (!is_bound()) "
-    "TTCN_error(\"Text encoder: Encoding an unbound record/set value of type %s.\");\n"
-    , name, dispname);
+  src = mputprintf(src,"void %s::encode_text(Text_Buf& text_buf) const\n{\n",
+                   name);
   for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src, "field_%s.encode_text(text_buf);\n",
                      sdef->elements[i].name);
@@ -3504,9 +3506,8 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
 
   /* text decoder function */
   def = mputstr(def, "  void decode_text(Text_Buf& text_buf);\n");
-  src = mputprintf(src, 
-    "void %s::decode_text(Text_Buf& text_buf)\n{\n"
-    "bound_flag = TRUE;\n", name);
+  src = mputprintf(src, "void %s::decode_text(Text_Buf& text_buf)\n{\n",
+                   name);
   for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src, "field_%s.decode_text(text_buf);\n",
                      sdef->elements[i].name);
@@ -3580,7 +3581,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
        "boolean %s::BER_decode_TLV(const TTCN_Typedescriptor_t& p_td,"
        " const ASN_BER_TLV_t& p_tlv, unsigned L_form)\n"
        "{\n"
-       "  bound_flag = TRUE;\n"
        "  BER_chk_descr(p_td);\n"
        "  ASN_BER_TLV_t stripped_tlv;\n"
        "  BER_decode_strip_tags(*p_td.ber, p_tlv, L_form, stripped_tlv);\n"
@@ -3782,7 +3782,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
          "void %s::BER_decode_opentypes(TTCN_Type_list& p_typelist,"
          " unsigned L_form)\n"
          "{\n"
-         "  bound_flag = TRUE;\n"
          "  p_typelist.push(this);\n"
          "  TTCN_EncDec_ErrorContext ec_0(\"Component '\");\n"
          "  TTCN_EncDec_ErrorContext ec_1;\n"
@@ -3869,7 +3868,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       src = mputprintf(src,
       "int %s::TEXT_decode(const TTCN_Typedescriptor_t& p_td,"
       " TTCN_Buffer& p_buf, Limit_Token_List& limit, boolean no_err, boolean){\n"
-      "  bound_flag = TRUE;\n"
       "  int decoded_length=0;\n"
       "  int decoded_field_length=0;\n"
       "  size_t pos=p_buf.get_pos();\n"
@@ -4135,7 +4133,6 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       src = mputprintf(src,
       "int %s::TEXT_decode(const TTCN_Typedescriptor_t& p_td,"
       " TTCN_Buffer& p_buf, Limit_Token_List& limit, boolean no_err, boolean){\n"
-      "  bound_flag = TRUE;\n"
       "  int decoded_length=0;\n"
       "  int decoded_field_length=0;\n"
       "%s"
@@ -4418,10 +4415,10 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "  else if (JSON_TOKEN_OBJECT_START != j_token) {\n"
       "    return JSON_ERROR_INVALID_TOKEN;\n"
       "  }\n"
-      "  bound_flag = TRUE;\n\n"
       , name);
     boolean has_metainfo_enabled = FALSE;
     for (i = 0; i < sdef->nElements; ++i) {
+      src = mputprintf(src, "  boolean %s_found = FALSE;\n", sdef->elements[i].name);
       if (sdef->elements[i].jsonMetainfoUnbound) {
         // initialize meta info states
         src = mputprintf(src, 
@@ -4461,8 +4458,10 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       src = mputprintf(src,
         // check field name
         "if (%d == name_len && 0 == strncmp(fld_name, \"%s\", name_len)) {\n"
+        "        %s_found = TRUE;\n"
         , (int)strlen(sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname)
-        , sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname);
+        , sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname
+        , sdef->elements[i].name);
       if (has_metainfo_enabled) {
         src = mputstr(src, "        if (is_metainfo) {\n");
         if (sdef->elements[i].jsonMetainfoUnbound) {
@@ -4571,7 +4570,7 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
           , sdef->elements[i].name, sdef->elements[i].dispname);
       }
       src = mputprintf(src,
-        "if (!field_%s.is_bound()) {\n"
+        "if (!%s_found) {\n"
         , sdef->elements[i].name);
       if (sdef->elements[i].jsonDefaultValue) {
         src = mputprintf(src,
@@ -6145,7 +6144,7 @@ static void defEmptyRecordClass(const struct_def *sdef,
         "// written by %s in " __FILE__ " at %d\n"
 #endif
         "int %s::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader, "
-        "unsigned int p_flavor, embed_values_dec_struct_t*)\n"
+        "unsigned int p_flavor, unsigned int /*p_flavor2*/, embed_values_dec_struct_t*)\n"
         "{\n"
         "  int e_xer = is_exer(p_flavor);\n"
         "  bound_flag = true;\n"
@@ -6824,8 +6823,7 @@ void defRecordClass2(const struct_def *sdef, output_struct *output)
     src = mputprintf(src, "%s::%s(const %s& other_value) : Record_Type(other_value)\n", name, name, name);
     src = mputstr(src, "{\n"
       "  if(!other_value.is_bound()) "
-      "TTCN_error(\"Copying an unbound record/set value.\");\n"
-      "bound_flag = TRUE;\n");
+      "TTCN_error(\"Copying an unbound record/set value.\");\n");
     for (i = 0; i < sdef->nElements; i++) {
       src = mputprintf(src,
           "if (other_value.field_%s.is_bound() )\n"
@@ -6870,7 +6868,6 @@ void defRecordClass2(const struct_def *sdef, output_struct *output)
     src = mputstr(src, "\n"
                   "{\n"
                   "init_vec();\n"
-                  "bound_flag = TRUE;\n"
                   "}\n\n");
   } else { /* constructor from null */
     def = mputprintf(def, "  %s(null_type) {bound_flag = TRUE;}\n", name);
diff --git a/compiler2/record_of.c b/compiler2/record_of.c
index e72d8d99e..8ac681cd3 100644
--- a/compiler2/record_of.c
+++ b/compiler2/record_of.c
@@ -1373,7 +1373,7 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
       "// written by %s in " __FILE__ " at %d\n"
 #endif
       "int %s::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader, "
-      "unsigned int p_flavor, embed_values_dec_struct_t* emb_val)\n{\n"
+      "unsigned int p_flavor, unsigned int p_flavor2, embed_values_dec_struct_t* emb_val)\n{\n"
       "  boolean e_xer = is_exer(p_flavor);\n"
       "  int xerbits = p_td.xer_bits;\n"
       "  if (p_flavor & XER_TOPLEVEL) xerbits &= ~UNTAGGED;\n"
@@ -1453,7 +1453,7 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
       /* Don't move to the #text, that's the callee's responsibility. */
       /* The call to the non-const operator[] creates a new element object,
        * then we call its XER_decode with the temporary XML reader. */
-      "      (*this)[val_ptr->n_elements].XER_decode(*p_td.oftype_descr, reader_2, p_flavor, 0);\n"
+      "      (*this)[val_ptr->n_elements].XER_decode(*p_td.oftype_descr, reader_2, p_flavor, p_flavor2, 0);\n"
       "      if (p_flavor & EXIT_ON_ERROR && !(*this)[val_ptr->n_elements - 1].is_bound()) {\n"
       "        if (1 == val_ptr->n_elements) {\n"
       // Failed to decode even the first element
@@ -1515,10 +1515,10 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
       "            }\n"
       "            ec_1.set_msg(\"%d: \", val_ptr->n_elements);\n"
       /* The call to the non-const operator[] creates the element */
-      "            (*this)[val_ptr->n_elements].XER_decode(*p_td.oftype_descr, p_reader, p_flavor, emb_val);\n"
-      "            if (0 != emb_val && !own_tag && val_ptr->n_elements > 1) {\n"
-      "              ++emb_val->embval_index;\n"
-      "            }\n"      
+      "            (*this)[val_ptr->n_elements].XER_decode(*p_td.oftype_descr, p_reader, p_flavor, p_flavor2, emb_val);\n"    
+      "          }\n"
+      "          if (0 != emb_val && !own_tag && val_ptr->n_elements > 1) {\n"
+      "            ++emb_val->embval_index;\n"
       "          }\n"
       "        }\n"
       "        else if (XML_READER_TYPE_END_ELEMENT == type) {\n"
@@ -1563,10 +1563,19 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
       "    return -1;\n"
       "  }\n\n"
       "  int enc_len = p_tok.put_next_token(JSON_TOKEN_ARRAY_START, NULL);\n"
-      "  for(int i = 0; i < val_ptr->n_elements; ++i) {\n"
-      "    int ret_val = (*this)[i].JSON_encode(*p_td.oftype_descr, p_tok);\n"
-      "    if (0 > ret_val) break;\n"
-      "    enc_len += ret_val;\n"
+      "  for (int i = 0; i < val_ptr->n_elements; ++i) {\n"
+      "    if (NULL != p_td.json && p_td.json->metainfo_unbound && !(*this)[i].is_bound()) {\n"
+      // unbound elements are encoded as { "metainfo []" : "unbound" }
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_START, NULL);\n"
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, \"metainfo []\");\n"
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, \"\\\"unbound\\\"\");\n"
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_END, NULL);\n"
+      "    }\n"
+      "    else {\n"
+      "      int ret_val = (*this)[i].JSON_encode(*p_td.oftype_descr, p_tok);\n"
+      "      if (0 > ret_val) break;\n"
+      "      enc_len += ret_val;\n"
+      "    }\n"
       "  }\n"
       "  enc_len += p_tok.put_next_token(JSON_TOKEN_ARRAY_END, NULL);\n"
       "  return enc_len;\n"
@@ -1587,10 +1596,34 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
       "    return JSON_ERROR_INVALID_TOKEN;\n"
       "  }\n\n"
       "  set_size(0);\n"
-      "  while (true) {\n"
+      "  for (int nof_elements = 0; true; ++nof_elements) {\n"
       "    size_t buf_pos = p_tok.get_buf_pos();\n"
+      "    int ret_val;\n"
+      "    if (NULL != p_td.json && p_td.json->metainfo_unbound) {\n"
+      // check for metainfo object
+      "      ret_val = p_tok.get_next_token(&token, NULL, NULL);\n"
+      "      if (JSON_TOKEN_OBJECT_START == token) {\n"
+      "        char* value = NULL;\n"
+      "        size_t value_len = 0;\n"
+      "        ret_val += p_tok.get_next_token(&token, &value, &value_len);\n"
+      "        if (JSON_TOKEN_NAME == token && 11 == value_len &&\n"
+      "            0 == strncmp(value, \"metainfo []\", 11)) {\n"
+      "          ret_val += p_tok.get_next_token(&token, &value, &value_len);\n"
+      "          if (JSON_TOKEN_STRING == token && 9 == value_len &&\n"
+      "              0 == strncmp(value, \"\\\"unbound\\\"\", 9)) {\n"
+      "            ret_val = p_tok.get_next_token(&token, NULL, NULL);\n"
+      "            if (JSON_TOKEN_OBJECT_END == token) {\n"
+      "              dec_len += ret_val;\n"
+      "              continue;\n"
+      "            }\n"
+      "          }\n"
+      "        }\n"
+      "      }\n"
+      // metainfo object not found, jump back and let the element type decode it
+      "      p_tok.set_buf_pos(buf_pos);\n"
+      "    }\n"
       "    %s* val = new %s;\n"
-      "    int ret_val = val->JSON_decode(*p_td.oftype_descr, p_tok, p_silent);\n"
+      "    ret_val = val->JSON_decode(*p_td.oftype_descr, p_tok, p_silent);\n"
       "    if (JSON_ERROR_INVALID_TOKEN == ret_val) {\n"
       "      p_tok.set_buf_pos(buf_pos);\n"
       "      delete val;\n"
@@ -1604,9 +1637,9 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
       "      return JSON_ERROR_FATAL;\n"
       "    }\n"
       "    val_ptr->value_elements = (%s**)reallocate_pointers(\n"
-      "      (void**)val_ptr->value_elements, val_ptr->n_elements, val_ptr->n_elements + 1);\n"
-      "    val_ptr->value_elements[val_ptr->n_elements] = val;\n"
-      "    val_ptr->n_elements++;\n"
+      "      (void**)val_ptr->value_elements, val_ptr->n_elements, nof_elements + 1);\n"
+      "    val_ptr->value_elements[nof_elements] = val;\n"
+      "    val_ptr->n_elements = nof_elements + 1;\n"
       "    dec_len += ret_val;\n"
       "  }\n\n"
       "  dec_len += p_tok.get_next_token(&token, NULL, NULL);\n"
@@ -2849,7 +2882,7 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
       "// written by %s in " __FILE__ " at %d\n"
 #endif
       "int %s::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader, "
-      "unsigned int p_flavor, embed_values_dec_struct_t* emb_val)\n{\n"
+      "unsigned int p_flavor, unsigned int p_flavor2, embed_values_dec_struct_t* emb_val)\n{\n"
       "  boolean e_xer = is_exer(p_flavor);\n"
       "  int xerbits = p_td.xer_bits;\n"
       "  if (p_flavor & XER_TOPLEVEL) xerbits &= ~UNTAGGED;\n"
@@ -2926,7 +2959,7 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
       /* Don't move to the #text, that's the callee's responsibility. */
       /* The call to the non-const operator[] creates a new element object,
        * then we call its XER_decode with the temporary XML reader. */
-      "      (*this)[n_elements].XER_decode(*p_td.oftype_descr, reader_2, p_flavor, 0);\n"
+      "      (*this)[n_elements].XER_decode(*p_td.oftype_descr, reader_2, p_flavor, p_flavor2, 0);\n"
       "      if (p_flavor & EXIT_ON_ERROR && !(*this)[n_elements - 1].is_bound()) {\n"
       "        if (1 == n_elements) {\n"
       // Failed to decode even the first element
@@ -2987,10 +3020,10 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
       "              break;\n"
       "            }\n"
       /* The call to the non-const operator[] creates the element */
-      "            operator [](n_elements).XER_decode(*p_td.oftype_descr, p_reader, p_flavor, emb_val);\n"
-      "            if (0 != emb_val && !own_tag && n_elements > 1) {\n"
-      "              ++emb_val->embval_index;\n"
-      "            }\n"
+      "            operator [](n_elements).XER_decode(*p_td.oftype_descr, p_reader, p_flavor, p_flavor2, emb_val);\n"
+      "          }\n"
+      "          if (0 != emb_val && !own_tag && n_elements > 1) {\n"
+      "            ++emb_val->embval_index;\n"
       "          }\n"
       "        }\n"
       "        else if (XML_READER_TYPE_END_ELEMENT == type) {\n"
@@ -3032,10 +3065,19 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
       "    return -1;\n"
       "  }\n\n"
       "  int enc_len = p_tok.put_next_token(JSON_TOKEN_ARRAY_START, NULL);\n"
-      "  for(int i = 0; i < n_elements; ++i) {\n"
-      "    int ret_val = value_elements[i].JSON_encode(*p_td.oftype_descr, p_tok);\n"
-      "    if (0 > ret_val) break;\n"
-      "    enc_len += ret_val;\n"
+      "  for (int i = 0; i < n_elements; ++i) {\n"
+      "    if (NULL != p_td.json && p_td.json->metainfo_unbound && !value_elements[i].is_bound()) {\n"
+      // unbound elements are encoded as { "metainfo []" : "unbound" }
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_START, NULL);\n"
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, \"metainfo []\");\n"
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, \"\\\"unbound\\\"\");\n"
+      "      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_END, NULL);\n"
+      "    }\n"
+      "    else {\n"
+      "      int ret_val = value_elements[i].JSON_encode(*p_td.oftype_descr, p_tok);\n"
+      "      if (0 > ret_val) break;\n"
+      "      enc_len += ret_val;\n"
+      "    }\n"
       "  }\n"
       "  enc_len += p_tok.put_next_token(JSON_TOKEN_ARRAY_END, NULL);\n"
       "  return enc_len;\n"
@@ -3056,10 +3098,34 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
       "    return JSON_ERROR_INVALID_TOKEN;\n"
       "  }\n\n"
       "  set_size(0);\n"
-      "  while (true) {\n"
+      "  for (int nof_elements = 0; true; ++nof_elements) {\n"
       "    size_t buf_pos = p_tok.get_buf_pos();\n"
+      "    int ret_val;\n"
+      "    if (NULL != p_td.json && p_td.json->metainfo_unbound) {\n"
+      // check for metainfo object
+      "      ret_val = p_tok.get_next_token(&token, NULL, NULL);\n"
+      "      if (JSON_TOKEN_OBJECT_START == token) {\n"
+      "        char* value = NULL;\n"
+      "        size_t value_len = 0;\n"
+      "        ret_val += p_tok.get_next_token(&token, &value, &value_len);\n"
+      "        if (JSON_TOKEN_NAME == token && 11 == value_len &&\n"
+      "            0 == strncmp(value, \"metainfo []\", 11)) {\n"
+      "          ret_val += p_tok.get_next_token(&token, &value, &value_len);\n"
+      "          if (JSON_TOKEN_STRING == token && 9 == value_len &&\n"
+      "              0 == strncmp(value, \"\\\"unbound\\\"\", 9)) {\n"
+      "            ret_val = p_tok.get_next_token(&token, NULL, NULL);\n"
+      "            if (JSON_TOKEN_OBJECT_END == token) {\n"
+      "              dec_len += ret_val;\n"
+      "              continue;\n"
+      "            }\n"
+      "          }\n"
+      "        }\n"
+      "      }\n"
+      // metainfo object not found, jump back and let the element type decode it
+      "      p_tok.set_buf_pos(buf_pos);\n"
+      "    }\n"
       "    %s val;\n"
-      "    int ret_val = val.JSON_decode(*p_td.oftype_descr, p_tok, p_silent);\n"
+      "    ret_val = val.JSON_decode(*p_td.oftype_descr, p_tok, p_silent);\n"
       "    if (JSON_ERROR_INVALID_TOKEN == ret_val) {\n"
       "      p_tok.set_buf_pos(buf_pos);\n"
       "      break;\n"
@@ -3070,8 +3136,8 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
       "      }\n"
       "      return JSON_ERROR_FATAL;\n"
       "    }\n"
-      "    set_size(n_elements + 1);\n"
-      "    value_elements[n_elements - 1] = val;\n"
+      "    set_size(nof_elements + 1);\n"
+      "    value_elements[nof_elements] = val;\n"
       "    dec_len += ret_val;\n"
       "  }\n\n"
       "  dec_len += p_tok.get_next_token(&token, NULL, NULL);\n"
diff --git a/compiler2/ttcn3/AST_ttcn3.cc b/compiler2/ttcn3/AST_ttcn3.cc
index 67be6443c..bed275f0f 100644
--- a/compiler2/ttcn3/AST_ttcn3.cc
+++ b/compiler2/ttcn3/AST_ttcn3.cc
@@ -4376,6 +4376,8 @@ namespace Ttcn {
           // the object is initialized by the constructor
           str = mputprintf(str, "%s %s(%s);\n", type_genname_str,
           genname_str, body->get_single_expr(false).c_str());
+          // make sure the template's code is not generated twice (TR: HU56425)
+          body->set_code_generated();
         } else {
           // the default constructor is used
           str = mputprintf(str, "%s %s;\n", type_genname_str, genname_str);
diff --git a/compiler2/ttcn3/TtcnTemplate.cc b/compiler2/ttcn3/TtcnTemplate.cc
index c136fccf6..d4b86c666 100644
--- a/compiler2/ttcn3/TtcnTemplate.cc
+++ b/compiler2/ttcn3/TtcnTemplate.cc
@@ -731,6 +731,7 @@ namespace Ttcn {
         bool allow_fewer = false;
         switch (my_governor->get_typetype()) {
         case Type::T_SEQ_T: case Type::T_SET_T:
+        case Type::T_SEQ_A: case Type::T_SET_A:
           allow_fewer = true;
           break;
         case Type::T_SIGNATURE: // be precise
@@ -1810,6 +1811,7 @@ namespace Ttcn {
       if (t->templatetype == SPECIFIC_VALUE) break;
       else if (!refch.add(t->get_fullname())) goto end;
       else if (t->templatetype != TEMPLATE_REFD) break;
+      t->u.ref.ref->get_refd_assignment(true); // make sure the parameter list is checked
       ActualParList *parlist = t->u.ref.ref->get_parlist();
       if (parlist) parlist->chk_recursions(refch);
       Template *t_refd = t->get_template_refd(&refch);
diff --git a/compiler2/ttcn3/compiler.l b/compiler2/ttcn3/compiler.l
index 063baffe5..1915fbf25 100644
--- a/compiler2/ttcn3/compiler.l
+++ b/compiler2/ttcn3/compiler.l
@@ -495,13 +495,18 @@ with		RETURN(WithKeyword);
 xor		RETURN(XorKeyword);
 xor4b		RETURN(Xor4bKeyword);
 
+  /* modifier keywords */
+
+"@nocase" RETURN(NocaseKeyword);
+"@lazy"   RETURN(LazyKeyword);
+
   /* special TITAN specific keywords */
 
 "@try"    RETURN(TitanSpecificTryKeyword);
 "@catch"  RETURN(TitanSpecificCatchKeyword);
-"@lazy"   RETURN(TitanSpecificLazyKeyword);
 "@profiler" RETURN(TitanSpecificProfilerKeyword);
 
+
 	/* Predefined function identifiers */
 
 bit2hex		RETURN(bit2hexKeyword);
diff --git a/compiler2/ttcn3/compiler.y b/compiler2/ttcn3/compiler.y
index 65dca47a4..b7b45b6a0 100644
--- a/compiler2/ttcn3/compiler.y
+++ b/compiler2/ttcn3/compiler.y
@@ -702,10 +702,13 @@ static const string anyname("anytype");
 %token XorKeyword
 %token Xor4bKeyword
 
+/* modifier keywords */
+%token NocaseKeyword
+%token LazyKeyword
+
 /* TITAN specific keywords */
 %token TitanSpecificTryKeyword
 %token TitanSpecificCatchKeyword
-%token TitanSpecificLazyKeyword
 %token TitanSpecificProfilerKeyword
 
 /* Keywords combined with a leading dot */
@@ -3417,6 +3420,13 @@ CharStringMatch: // 124
     $$ = parse_pattern($2, loc);
     Free($2);
   }
+| PatternKeyword NocaseKeyword PatternChunkList
+  {
+    // @nocase is ignored for now
+    Location loc(infile, @3);
+    $$ = parse_pattern($3, loc);
+    Free($3);
+  }
 ;
 
 PatternChunkList:
@@ -7134,7 +7144,7 @@ Reference: // 490 ValueReference
 
 optLazyEval:
   /* empty */ { $$ = false; }
-| TitanSpecificLazyKeyword { $$ = true; }
+| LazyKeyword { $$ = true; }
 ;
 
 FormalValuePar: // 516
@@ -8453,6 +8463,12 @@ PredefinedOps:
     $$ = new Value(Value::OPTYPE_REGEXP, $4, $8, $12);
     $$->set_location(infile, @$);
   }
+| regexpKeyword NocaseKeyword '(' optError TemplateInstance optError ',' optError
+  TemplateInstance optError ',' optError Expression optError ')'
+  {
+    $$ = new Value(Value::OPTYPE_REGEXP, $5, $9, $13);
+    $$->set_location(infile, @$);
+  }
 | regexpKeyword '(' error ')'
   {
     Template *t1 = new Template(Template::TEMPLATE_ERROR);
@@ -8468,6 +8484,21 @@ PredefinedOps:
     $$ = new Value(Value::OPTYPE_REGEXP, ti1, ti2, v3);
     $$->set_location(infile, @$);
   }
+| regexpKeyword NocaseKeyword '(' error ')'
+  {
+    Template *t1 = new Template(Template::TEMPLATE_ERROR);
+    t1->set_location(infile, @4);
+    TemplateInstance *ti1 = new TemplateInstance(0, 0, t1);
+    ti1->set_location(infile, @4);
+    Template *t2 = new Template(Template::TEMPLATE_ERROR);
+    t2->set_location(infile, @4);
+    TemplateInstance *ti2 = new TemplateInstance(0, 0, t2);
+    ti2->set_location(infile, @4);
+    Value *v3 = new Value(Value::V_ERROR);
+    v3->set_location(infile, @4);
+    $$ = new Value(Value::OPTYPE_REGEXP, ti1, ti2, v3);
+    $$->set_location(infile, @$);
+  }
 | encvalueKeyword '(' optError TemplateInstance optError ')'
   {
     $$ = new Value(Value::OPTYPE_ENCODE, $4);
diff --git a/compiler2/ttcn3/rawAST.l b/compiler2/ttcn3/rawAST.l
index ede1166e3..5f1eba0d3 100644
--- a/compiler2/ttcn3/rawAST.l
+++ b/compiler2/ttcn3/rawAST.l
@@ -680,10 +680,18 @@ void rawAST_error(const char *str)
   Location loc(infile, yylloc);
   if (*yytext) {
     // the most recently parsed token is known
-    loc.warning("in variant attribute, at or before token `%s': %s", yytext, str);
+    if (warnings_for_bad_variants) {
+      loc.warning("in variant attribute, at or before token `%s': %s", yytext, str);
+    } else {
+      loc.error("in variant attribute, at or before token `%s': %s", yytext, str);
+    }
   } else {
     // the most recently parsed token is unknown
-    loc.warning("in variant attribute: %s", str);
+    if (warnings_for_bad_variants) {
+      loc.warning("in variant attribute: %s", str);
+    } else {
+      loc.error("in variant attribute: %s", str);
+    }
   }
 }
 
diff --git a/compiler2/ttcn3/rawAST.y b/compiler2/ttcn3/rawAST.y
index dcc2c8b46..0b703d328 100644
--- a/compiler2/ttcn3/rawAST.y
+++ b/compiler2/ttcn3/rawAST.y
@@ -289,7 +289,7 @@ static void yyprint(FILE *file, int type, const YYSTYPE& value);
     XDecodeToken
 
 %type <cstr>
-    XTextReservedWord
+    XTextReservedWord XJsonAlias
 
 %type <identifier>
     XPointerToDef XRecordFieldRef XIdentifierOrReserved
@@ -1547,9 +1547,22 @@ XOmitAsNull:
 ;
 
 XNameAs:
-  XKWname XSpaces XKWas XSpaces XAliasToken { jsonstruct->alias = mcopystr($5); }
+  XKWname XSpaces XKWas XSpaces XJsonAlias { jsonstruct->alias = mcopystr($5); }
 ;
 
+XJsonAlias: // include all keywords, so they can be used as aliases for fields, too
+  XAliasToken { $$ = $1; }
+| XKWomit     { $$ = "omit"; }
+| XKWas       { $$ = "as"; }
+| XKWnull     { $$ = "null"; }
+| XKWname     { $$ = "name"; }
+| XKWvalue    { $$ = "value"; }
+| XKWdefault  { $$ = "default"; }
+| XKWextend   { $$ = "extend"; }
+| XKWmetainfo { $$ = "metainfo"; }
+| XKWfor      { $$ = "for"; }
+| XKWunbound  { $$ = "unbound"; }
+
 XAsValue:
   XKWas XSpaces XKWvalue { jsonstruct->as_value = true; }
 ;
diff --git a/compiler2/ttcn3_makefilegen.1 b/compiler2/ttcn3_makefilegen.1
index 4c41a154c..fb1c164f9 100644
--- a/compiler2/ttcn3_makefilegen.1
+++ b/compiler2/ttcn3_makefilegen.1
@@ -3,7 +3,7 @@
 ttcn3_makefilegen \- Makefile Generator
 .SH SYNOPSIS
 .B ttcn3_makefilegen
-.RB "[\| " \-acdfglMpRsw " \|]"
+.RB "[\| " \-acdEfglMpRsw " \|]"
 .RB "[\| " \-e
 .IR " ETS_name" " \|]"
 .RB "[\| " \-o
@@ -52,6 +52,10 @@ suite) to
 in the generated Makefile. If this option is omitted, the name of the
 first TTCN-3 module will be used as default.
 .TP
+.B \-E
+Instructs the variant attribute parser to display warnings instead of errors
+for unrecognized/erroneous attributes.
+.TP
 .B \-f
 Forces the Makefile Generator to
 .I overwrite
@@ -64,6 +68,21 @@ only. The resulting Makefile will be smaller and less redundant. It
 exploits the pattern substitution features of GNU make, which may cause
 syntax errors with other versions of make.
 .TP
+.BI \-I " path"
+Adds the path to the list of search paths.
+.I path
+must be an
+absolute path. Used with the 
+.B -t
+option when the referenced projects
+can not be found at the projectRelativeURI location. In that case the
+tool will try to find the referenced TPD file using the search paths.
+The first TPD file found is taken. If the tpdName attribute is present in
+ ReferencedProject then the value of tpdName will be used as a TPD name
+during search. However if the tpdName attribute is missing then the value
+of the name attribute is taken with the .tpd suffix and used during the
+search.
+.TP
 .BI \-o " dir|file"
 Write the Makefile to the given directory or file.
 The current working directory is the default otherwise.
diff --git a/compiler2/union.c b/compiler2/union.c
index 6075e7787..ec34d0ddb 100644
--- a/compiler2/union.c
+++ b/compiler2/union.c
@@ -366,8 +366,11 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
     src = mputprintf(src, 
       "  if (!strcmp(mp_last->get_id()->get_name(), \"%s\")) {\n"
       "    %s%s().set_param(*mp_last);\n"
+      // a union's alternative cannot be unbound
+      "    if (!%s%s().is_bound()) clean_up();\n"
       "    return;\n"
-      "  }\n", sdef->elements[i].dispname, at_field, sdef->elements[i].name);
+      "  }\n", sdef->elements[i].dispname, at_field, sdef->elements[i].name,
+      at_field, sdef->elements[i].name);
     }
   src = mputprintf(src,
     "  mp_last->error(\"Field %%s does not exist in type %s.\", mp_last->get_id()->get_name());\n"
@@ -1592,7 +1595,7 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
 #endif
     src = mputprintf(src, /* XERSTUFF decoder functions for union */
       "int %s::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader,"
-      " unsigned int p_flavor, embed_values_dec_struct_t*)\n"
+      " unsigned int p_flavor, unsigned int p_flavor2, embed_values_dec_struct_t*)\n"
       "{\n"
       "  int e_xer = is_exer(p_flavor);\n"
       "  int type = 0;\n" /* None */
@@ -1709,7 +1712,7 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
           "      ec_2.set_msg(\"%s': \");\n"
           "      if (%s==union_selection) {\n"
           "        matched = %d;\n"
-          "        %s().XER_decode(%s_xer_, p_reader, flavor_1, 0);\n"
+          "        %s().XER_decode(%s_xer_, p_reader, flavor_1, p_flavor2, 0);\n"
           "      }\n"
           "      if (field_%s->is_bound()) break; else clean_up();\n"
           "    }\n",
@@ -1766,7 +1769,7 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
             "        TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,\n"
             "          \"Attempting to decode blocked or abstract field.\");\n"
             "      }\n"
-            "      %s%s().XER_decode(%s_xer_, p_reader, flavor_1, 0);\n"
+            "      %s%s().XER_decode(%s_xer_, p_reader, flavor_1, p_flavor2, 0);\n"
             "      if (!%s%s().is_bound()) {\n"
             "        TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG, \"Failed to decode field.\");\n"
             "      }\n"
@@ -1788,7 +1791,7 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
           "        TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,\n"
           "          \"Attempting to decode blocked or abstract field.\");\n"
           "      }\n"
-          "      %s%s().XER_decode(%s_xer_, p_reader, flavor_1, 0);\n"
+          "      %s%s().XER_decode(%s_xer_, p_reader, flavor_1, p_flavor2, 0);\n"
           "      if (!%s%s().is_bound()) {\n"
           "        TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG, \"Failed to decode field.\");\n"
           "      }\n"
@@ -1832,8 +1835,8 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
   if (json_needed) {
     // JSON encode
     src = mputprintf(src,
-      "int %s::JSON_encode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer& p_tok) const\n"
-      "{\n", name);
+      "int %s::JSON_encode(const TTCN_Typedescriptor_t&%s, JSON_Tokenizer& p_tok) const\n"
+      "{\n", name, use_runtime_2 ? " p_td" : "");
     if (use_runtime_2) {
       src = mputstr(src, "  if (err_descr) return JSON_encode_negtest(err_descr, p_td, p_tok);\n");
     }
diff --git a/compiler2/xpather.cc b/compiler2/xpather.cc
index 829303c1d..d1ac0a0c4 100644
--- a/compiler2/xpather.cc
+++ b/compiler2/xpather.cc
@@ -605,7 +605,7 @@ const char* get_act_config(struct string2_list* cfg, const char* project_name) {
   return NULL;
 }
 
-static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcfg,
+static tpd_result process_tpd_internal(const char *p_tpd_name, char* tpdName, const char *actcfg,
   const char *file_list_path, int *p_argc, char ***p_argv,
   int *p_optind, char **p_ets_name, char **p_project_name,
   boolean *p_gflag, boolean *p_sflag, boolean *p_cflag, boolean *p_aflag, boolean *preprocess,
@@ -617,11 +617,12 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
   struct string_list* prep_defines, struct string_list* prep_undefines, boolean *p_csflag, boolean *p_quflag, boolean* p_dsflag,
   char** cxxcompiler, char** optlevel, char** optflags, boolean* p_dbflag, boolean* p_drflag, boolean* p_dtflag, boolean* p_dxflag,
   boolean* p_djflag, boolean* p_fxflag, boolean* p_doflag, boolean* p_gfflag, boolean* p_lnflag, boolean* p_isflag,
-  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, boolean *p_Eflag, boolean* p_diflag, struct string_list* solspeclibs, struct string_list* sol8speclibs,
   struct string_list* linuxspeclibs, struct string_list* freebsdspeclibs, struct string_list* win32speclibs, char** ttcn3prep,
   struct string_list* linkerlibs, struct string_list* additionalObjects, struct string_list* linkerlibsearchp, boolean Vflag, boolean Dflag,
   boolean *p_Zflag, boolean *p_Hflag, char** generatorCommandOutput, struct string2_list* target_placement_list, boolean prefix_workdir, 
-  struct string2_list* run_command_list, map<cstring, int>& seen_tpd_files, struct string2_list* required_configs, struct string_list** profiled_file_list);
+  struct string2_list* run_command_list, map<cstring, int>& seen_tpd_files, struct string2_list* required_configs, struct string_list** profiled_file_list,
+  const char **search_paths, size_t n_search_paths);
 
 extern "C" tpd_result process_tpd(const char *p_tpd_name, const char *actcfg,
   const char *file_list_path, int *p_argc, char ***p_argv,
@@ -635,18 +636,19 @@ extern "C" tpd_result process_tpd(const char *p_tpd_name, const char *actcfg,
   struct string_list* prep_defines, struct string_list* prep_undefines, boolean *p_csflag, boolean *p_quflag, boolean* p_dsflag,
   char** cxxcompiler, char** optlevel, char** optflags, boolean* p_dbflag, boolean* p_drflag, boolean* p_dtflag, boolean* p_dxflag, 
   boolean* p_djflag, boolean* p_fxflag, boolean* p_doflag, boolean* p_gfflag, boolean* p_lnflag, boolean* p_isflag,
-  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, boolean* p_Eflag, boolean* p_diflag, struct string_list* solspeclibs, struct string_list* sol8speclibs,
   struct string_list* linuxspeclibs, struct string_list* freebsdspeclibs, struct string_list* win32speclibs, char** ttcn3prep,
   string_list* linkerlibs, string_list* additionalObjects, string_list* linkerlibsearchp, boolean Vflag, boolean Dflag, boolean *p_Zflag,
   boolean *p_Hflag, char** generatorCommandOutput, struct string2_list* target_placement_list, boolean prefix_workdir,
-  struct string2_list* run_command_list, struct string2_list* required_configs, struct string_list** profiled_file_list) {
+  struct string2_list* run_command_list, struct string2_list* required_configs, struct string_list** profiled_file_list,
+  const char **search_paths, size_t n_search_paths) {
 
   map<cstring, int> seen_tpd_files;
+  char *tpdName = NULL;
   projGenHelper.setZflag(*p_Zflag);
   projGenHelper.setWflag(prefix_workdir);
   projGenHelper.setHflag(*p_Hflag);
-
-  tpd_result success = process_tpd_internal(p_tpd_name,
+  tpd_result success = process_tpd_internal(p_tpd_name, tpdName,
       actcfg, file_list_path, p_argc, p_argv, p_optind, p_ets_name, p_project_name,
       p_gflag, p_sflag, p_cflag, p_aflag, preprocess,
       p_Rflag, p_lflag, p_mflag, p_Pflag,
@@ -657,11 +659,12 @@ extern "C" tpd_result process_tpd(const char *p_tpd_name, const char *actcfg,
       prep_undefines, p_csflag, p_quflag, p_dsflag, cxxcompiler,
       optlevel, optflags, p_dbflag, p_drflag, p_dtflag, p_dxflag, p_djflag,
       p_fxflag, p_doflag, p_gfflag, p_lnflag, p_isflag,
-      p_asflag, p_swflag, p_Yflag, p_Mflag, solspeclibs, sol8speclibs,
+      p_asflag, p_swflag, p_Yflag, p_Mflag, p_Eflag, p_diflag, solspeclibs, sol8speclibs,
       linuxspeclibs, freebsdspeclibs, win32speclibs, ttcn3prep,
       linkerlibs, additionalObjects, linkerlibsearchp, Vflag, Dflag, p_Zflag,
       p_Hflag, generatorCommandOutput, target_placement_list, prefix_workdir, 
-      run_command_list, seen_tpd_files, required_configs, profiled_file_list);
+      run_command_list, seen_tpd_files, required_configs, profiled_file_list,
+      search_paths, n_search_paths);
 
   if (TPD_FAILED == success) exit(EXIT_FAILURE);
 
@@ -693,7 +696,7 @@ extern "C" tpd_result process_tpd(const char *p_tpd_name, const char *actcfg,
 // process_tpd() may alter these strings; new values will be on the heap.
 // If process_tpd() preserves the content of such a string (e.g. ets_name),
 // it must nevertheless make a copy on the heap via mcopystr().
-static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcfg,
+static tpd_result process_tpd_internal(const char *p_tpd_name, char *tpdName, const char *actcfg,
   const char *file_list_path, int *p_argc, char ***p_argv,
   int *p_optind, char **p_ets_name, char **p_project_name,
   boolean *p_gflag, boolean *p_sflag, boolean *p_cflag, boolean *p_aflag, boolean *preprocess,
@@ -705,11 +708,12 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
   struct string_list* prep_defines, struct string_list* prep_undefines, boolean *p_csflag, boolean *p_quflag, boolean* p_dsflag,
   char** cxxcompiler, char** optlevel, char** optflags, boolean* p_dbflag, boolean* p_drflag, boolean* p_dtflag, boolean* p_dxflag,
   boolean* p_djflag, boolean* p_fxflag, boolean* p_doflag, boolean* p_gfflag, boolean* p_lnflag, boolean* p_isflag,
-  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, boolean* p_Eflag, boolean* p_diflag, struct string_list* solspeclibs, struct string_list* sol8speclibs,
   struct string_list* linuxspeclibs, struct string_list* freebsdspeclibs, struct string_list* win32speclibs, char** ttcn3prep,
   string_list* linkerlibs, string_list* additionalObjects, string_list* linkerlibsearchp, boolean Vflag, boolean Dflag, boolean *p_Zflag,
   boolean *p_Hflag, char** generatorCommandOutput, struct string2_list* target_placement_list, boolean prefix_workdir,
-  struct string2_list* run_command_list, map<cstring, int>& seen_tpd_files, struct string2_list* required_configs, struct string_list** profiled_file_list)
+  struct string2_list* run_command_list, map<cstring, int>& seen_tpd_files, struct string2_list* required_configs, struct string_list** profiled_file_list,
+  const char **search_paths, size_t n_search_paths)
 {
   tpd_result result = TPD_SUCCESS;
   // read-only non-pointer aliases
@@ -724,7 +728,47 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
   assert(local_argc   >= local_optind);
 
   autostring tpd_dir(get_dir_from_path(p_tpd_name));
-  autostring abs_tpd_dir(get_absolute_dir(tpd_dir, NULL));
+  autostring abs_tpd_dir(get_absolute_dir(tpd_dir, NULL, FALSE));
+  boolean free_name = FALSE;
+  struct stat buf;
+  //Only referenced project, when first try is failed,              and when not absolute path
+  if(0 == local_optind && p_tpd_name != NULL && stat(p_tpd_name, &buf) && tpdName != NULL) {
+    //Find the first search_path that has the tpd
+    for(size_t i = 0; i<n_search_paths; i++) {
+      boolean need_slash = search_paths[i][strlen(search_paths[i]) - 1] != '/';
+      NOTIFY("Cannot find %s, trying with %s%s%s\n", p_tpd_name, search_paths[i], need_slash ? "/" : "", tpdName);
+      //Create path
+      char * prefixed_file_path = (char*)Malloc((strlen(search_paths[i]) + strlen(tpdName) + 1 + need_slash) * sizeof(char));
+      strcpy(prefixed_file_path, search_paths[i]);
+      if(need_slash) {
+        strcat(prefixed_file_path, "/");
+      }
+      strcat(prefixed_file_path, tpdName);
+
+      tpd_dir = get_dir_from_path(prefixed_file_path);
+      abs_tpd_dir = get_absolute_dir(tpd_dir, NULL, FALSE);
+
+      if(!stat(prefixed_file_path, &buf)){
+        //Ok, tpd found
+        p_tpd_name = prefixed_file_path;
+        free_name = TRUE;
+        NOTIFY("TPD with name %s found at %s.", tpdName, search_paths[i]);
+        break;
+      }else {
+        //tpd not found, continue search
+        abs_tpd_dir = NULL;
+        Free(prefixed_file_path);
+      }
+    }
+    //Error if tpd is not found in either search paths
+    if(NULL == (const char*)abs_tpd_dir) {
+      //Only write out the name in the error message (without .tpd)
+      tpdName[strlen(tpdName)-4] ='\0';
+      ERROR("Unable to find ReferencedProject with name: %s", (const char*)tpdName);
+      return TPD_FAILED;
+    }
+  }
+
   if (NULL == (const char*)abs_tpd_dir) {
     ERROR("absolute TPD directory could not be retrieved from %s", (const char*)tpd_dir);
     return TPD_FAILED;
@@ -994,7 +1038,7 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
       set_working_dir(real_workdir); // go into the working dir
     }
     if (hasWorkDir) { //we created working directory, or its already been created (from a parent makefilegen process maybe)
-      *abs_work_dir_p = get_absolute_dir(real_workdir, abs_tpd_dir);
+      *abs_work_dir_p = get_absolute_dir(real_workdir, abs_tpd_dir, TRUE);
       abs_workdir = (mcopystr(*abs_work_dir_p));
       proj_abs_workdir = mcopystr(*abs_work_dir_p);
     }
@@ -1044,9 +1088,12 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
     xmlNodeSetPtr nodes = theConfigEx->nodesetval;
     if (nodes) for (int i = 0; i < nodes->nodeNr; ++i) {
       xmlNodePtr curnode = nodes->nodeTab[i];
-
       cstring aa((const char*)curnode->content);
-      excluded_files.add(aa, *p_project_name);
+      if (!excluded_files.has_key(aa)) {
+        excluded_files.add(aa, *p_project_name);
+      } else {
+        WARNING("Multiple exclusion of file %s", (const char*)curnode->content);
+      }
     }
   }
 
@@ -1102,7 +1149,7 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
           const char* file_path = ruri;
           expstring_t rel_file_dir = get_dir_from_path(file_path);
           expstring_t file_name = get_file_from_path(file_path);
-          expstring_t abs_dir_path = get_absolute_dir(rel_file_dir, abs_tpd_dir);
+          expstring_t abs_dir_path = get_absolute_dir(rel_file_dir, abs_tpd_dir, TRUE);
           expstring_t abs_file_name = compose_path_name(abs_dir_path, file_name);
           if (abs_file_name != NULL) {
             if (get_path_status(abs_file_name) == PS_FILE) {
@@ -1132,7 +1179,7 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
             }else {
               drop = true;
               ERROR("%s does not exist", abs_file_name);
-            }            
+            }
           }
           if(abs_dir_path != NULL && !drop){
             files.add(cpath, ruri); // relativeURI to the TPD location
@@ -1181,6 +1228,8 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
   xsdbool2boolean(xpathCtx, actcfg, "outParamBoundness", p_Yflag); //not documented, obsolete
   xsdbool2boolean(xpathCtx, actcfg, "forceOldFuncOutParHandling", p_Yflag);
   xsdbool2boolean(xpathCtx, actcfg, "omitInValueList", p_Mflag);
+  xsdbool2boolean(xpathCtx, actcfg, "warningsForBadVariants", p_Eflag);
+  xsdbool2boolean(xpathCtx, actcfg, "disablePredefinedExternalFolder", p_diflag);
 
   projDesc = projGenHelper.getTargetOfProject(*p_project_name);
   if (projDesc) projDesc->setLinkingStrategy(*p_lflag);
@@ -1951,10 +2000,12 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
   // Referenced projects
   {
     XPathObject subprojects(run_xpath(xpathCtx,
-      "/TITAN_Project_File_Information/ReferencedProjects/ReferencedProject/attribute::*"));
+      "/TITAN_Project_File_Information/ReferencedProjects/ReferencedProject"));
     xmlNodeSetPtr nodes = subprojects->nodesetval;
-    const char *name = NULL, *projectLocationURI = NULL;
+    //Go through ReferencedProjects
     if (nodes) for (int i = 0; i < nodes->nodeNr; ++i) {
+      const char *name = NULL, *projectLocationURI = NULL;
+      char *tpdName_loc = NULL;
       // FIXME: this assumes every ReferencedProject has name and URI.
       // This is not necessarily so if the referenced project was closed
       // when the project was exported to TPD.
@@ -1963,13 +2014,44 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
       // changes the next ReferencedProject to have the projectLocationURI
       // as the first attribute, it will be joined to the name
       // of the previous, closed, ReferencedProject.
-      if (!strcmp((const char*)nodes->nodeTab[i]->name, "name")) {
-        name = (const char*)nodes->nodeTab[i]->children->content;
+      
+      //Go through attributes
+      for (xmlAttrPtr attr = nodes->nodeTab[i]->properties; attr; attr = attr->next) {
+        if (!strcmp((const char*)attr->name, "name")) {
+          name = (const char*)attr->children->content;
+        }
+        else if (!strcmp((const char*)attr->name,"projectLocationURI")) {
+          projectLocationURI = (const char*)attr->children->content;
+        }
+        else if (!strcmp((const char*)attr->name, "tpdName")) {
+          //Allocate memory
+          tpdName_loc = mcopystr((char*)attr->children->content);
+        }
       }
-      else if (!strcmp((const char*)nodes->nodeTab[i]->name,"projectLocationURI")) {
-        projectLocationURI = (const char*)nodes->nodeTab[i]->children->content;
+      //We don't want to orerride an absolute location with -I, tpdName remains NULL
+      boolean not_abs_path = projectLocationURI &&
+#if defined WIN32 && defined MINGW
+	/* On native Windows the absolute path name shall begin with
+	 * a drive letter, colon and backslash */
+	(((projectLocationURI[0] < 'A' || projectLocationURI[0] > 'Z') &&
+	  (projectLocationURI[0] < 'a' || projectLocationURI[0] > 'z')) ||
+	 projectLocationURI[1] != ':' || projectLocationURI[2] != '\\');
+#else
+	/* On UNIX-like systems the absolute path name shall begin with
+	 * a slash */
+	projectLocationURI[0] != '/';
+#endif
+      if (!tpdName_loc && not_abs_path) {
+        //Allocate memory: +5 because .tpd + closing 0
+        tpdName_loc = (char*)Malloc((strlen(name) + 5) * sizeof(char));
+        //Default name: name + .tpd
+        strcpy(tpdName_loc, name);
+        strcat(tpdName_loc, ".tpd");
+      }else if (!not_abs_path) {
+        Free(tpdName_loc);
+        tpdName_loc = NULL;
       }
-
+      
       if (name && projectLocationURI) { // collected both
         // see if there is a specified configuration for the project
 
@@ -1987,16 +2069,21 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
           my_quflag = 0, my_dsflag = 0, my_dbflag = 0, my_drflag = 0,
           my_dtflag = 0, my_dxflag = 0, my_djflag = 0, my_fxflag = 0, my_doflag = 0, 
           my_gfflag = 0, my_lnflag = 0, my_isflag = 0, my_asflag = 0, 
-          my_swflag = 0, my_Yflag = 0, my_Mflag = *p_Mflag;
+          my_swflag = 0, my_Yflag = 0, my_Mflag = *p_Mflag, my_Eflag = 0, my_diflag = *p_diflag;
 
         char *my_ets = NULL;
         char *my_proj_name = NULL;
-        autostring abs_projectLocationURI(
-          compose_path_name(abs_tpd_dir, projectLocationURI));
+        autostring abs_projectLocationURI;
+        if (not_abs_path) {
+          abs_projectLocationURI = compose_path_name(abs_tpd_dir, projectLocationURI);
+        } else {
+          //If absolute directory, then just copy the URI
+          abs_projectLocationURI = mcopystr(projectLocationURI);
+        }
 
         char* sub_proj_abs_work_dir = NULL;
         
-        tpd_result success = process_tpd_internal((const char*)abs_projectLocationURI,
+        tpd_result success = process_tpd_internal((const char*)abs_projectLocationURI, tpdName_loc,
           my_actcfg, file_list_path, &my_argc, &my_argv, &my_optind, &my_ets, &my_proj_name,
           &my_gflag, &my_sflag, &my_cflag, &my_aflag, preprocess, &my_Rflag, &my_lflag,
           &my_mflag, &my_Pflag, &my_Lflag, recursive, force_overwrite, gen_only_top_level, NULL, &sub_proj_abs_work_dir,
@@ -2004,10 +2091,11 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
           prep_includes, prep_defines, prep_undefines, &my_csflag,
           &my_quflag, &my_dsflag, cxxcompiler, optlevel, optflags, &my_dbflag, &my_drflag,
           &my_dtflag, &my_dxflag, &my_djflag, &my_fxflag, &my_doflag,
-          &my_gfflag, &my_lnflag, &my_isflag, &my_asflag, &my_swflag, &my_Yflag, &my_Mflag,
+          &my_gfflag, &my_lnflag, &my_isflag, &my_asflag, &my_swflag, &my_Yflag, &my_Mflag, &my_Eflag, &my_diflag,
           solspeclibs, sol8speclibs, linuxspeclibs, freebsdspeclibs, win32speclibs,
           ttcn3prep, linkerlibs, additionalObjects, linkerlibsearchp, Vflag, FALSE, &my_Zflag, 
-          &my_Hflag, NULL, NULL, prefix_workdir, run_command_list, seen_tpd_files, required_configs, profiled_file_list);
+          &my_Hflag, NULL, NULL, prefix_workdir, run_command_list, seen_tpd_files, required_configs, profiled_file_list,
+          search_paths, n_search_paths);
 
         autostring sub_proj_abs_work_dir_as(sub_proj_abs_work_dir); // ?!
 
@@ -2092,8 +2180,8 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
           result = TPD_FAILED;
         }
         // else TPD_SKIPPED, keep quiet
-
-        name = projectLocationURI = NULL; // forget both
+        Free(tpdName_loc);
+        name = projectLocationURI = tpdName_loc = NULL; // forget all
       }
     } // next referenced project
   }
@@ -2122,7 +2210,7 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
     const char *fn = files.get_nth_elem(n); // relativeURI to the TPD location
     autostring  dir_n (get_dir_from_path (fn));
     autostring  file_n(get_file_from_path(fn));
-    autostring  rel_n (get_absolute_dir(dir_n, abs_tpd_dir));
+    autostring  rel_n (get_absolute_dir(dir_n, abs_tpd_dir, TRUE));
     autostring  abs_n (compose_path_name(rel_n, file_n));
 
     if (local_argc == 0) {
@@ -2238,6 +2326,10 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
     Free(const_cast<char*>(folders.get_nth_elem(i)));
   }
   folders.clear();
+  
+  if(free_name) {
+    Free((char*)p_tpd_name);
+  }
 
   excluded_files.clear();
   excluded_folders.clear();
diff --git a/compiler2/xpather.h b/compiler2/xpather.h
index a9f6e8c5f..51454bc91 100644
--- a/compiler2/xpather.h
+++ b/compiler2/xpather.h
@@ -184,6 +184,8 @@ boolean buildObjects(const char* projName, boolean add_referenced);
  * @param suppresswarnings suppressWarnings -S
  * @param outparamboundness  outParamBoundness -Y
  * @param omit_in_value_list omitInValueList -M
+ * @param warnings_for_bad_variants warningsForBadVariants -E
+ * @param disable_predef_exp_folder disablePredefinedExternalFolder
  * @param solspeclibs SolarisSpecificLibraries
  * @param sol8speclibs Solaris8SpecificLibraries
  * @param linuxspeclibs LinuxSpecificLibraries
@@ -198,6 +200,8 @@ boolean buildObjects(const char* projName, boolean add_referenced);
  * @param target_placement_list a list of (target,placement) strings pairs from the TPD
  * @param prefix_workdir prefix working directory with project name
  * @param run_command_list contains the working directories and the makefilegen commands to be called there
+ * @param search_paths contains the paths that can be tried if a file is not found
+ * @param n_search_paths contains the size of relative_prefixes
  * @return TPD_SUCCESS if parsing successful, TPD_SKIPPED if the tpd
  *         was seen already, or TPD_FAILED on error.
  */
@@ -222,10 +226,10 @@ tpd_result process_tpd(const char *p_tpd_name, const char *actcfg,
   char** cxxcompiler, char** optlevel, char** optflags, boolean *disableber, boolean *disableraw, boolean *disabletext, boolean *disablexer,
   boolean *disablejson, boolean *forcexerinasn, boolean *defaultasomit, boolean *gccmessageformat,
   boolean *linenumber, boolean *includesourceinfo, boolean *addsourcelineinfo, boolean *suppresswarnings,
-  boolean *outparamboundness, boolean *omit_in_value_list, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean *outparamboundness, boolean *omit_in_value_list, boolean *warnings_for_bad_variants, boolean *disable_predef_exp_folder, struct string_list* solspeclibs, struct string_list* sol8speclibs,
   struct string_list* linuxspeclibs, struct string_list* freebsdspeclibs, struct string_list* win32speclibs,
   char** ttcn3preprocessor, struct string_list* linkerlibs, struct string_list* additionalObjects, struct string_list* linkerlibsearchpath, boolean Vflag, boolean Dflag,
   boolean *Zflag, boolean *Hflag, char** generatorCommandOutput, struct string2_list* target_placement_list, boolean prefix_workdir, struct string2_list* run_command_list,
-  struct string2_list* required_configs, struct string_list** profiled_file_list);
+  struct string2_list* required_configs, struct string_list** profiled_file_list, const char **search_paths, size_t n_search_paths);
 
 #endif /* XPATHER_H_ */
diff --git a/core/ASN_CharacterString.cc b/core/ASN_CharacterString.cc
index f1b871527..2b5621b28 100644
--- a/core/ASN_CharacterString.cc
+++ b/core/ASN_CharacterString.cc
@@ -803,7 +803,7 @@ int CHARACTER_STRING_identification::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int CHARACTER_STRING_identification::XER_decode(const XERdescriptor_t& p_td,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   // we are supposed to be parked on our element
@@ -824,27 +824,27 @@ int CHARACTER_STRING_identification::XER_decode(const XERdescriptor_t& p_td,
 	size_t namelen = strlen(name);
 	switch (namelen) {
 	case 8: // syntaxes
-	  syntaxes().XER_decode(EMBEDDED_PDV_identification_sxs_xer_, reader, flavor, 0);
+	  syntaxes().XER_decode(EMBEDDED_PDV_identification_sxs_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 6: // syntax
-	  syntax().XER_decode(EMBEDDED_PDV_identification_sx_xer_, reader, flavor, 0);
+	  syntax().XER_decode(EMBEDDED_PDV_identification_sx_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 23: // presentation-context-id
-	  presentation__context__id().XER_decode(EMBEDDED_PDV_identification_pci_xer_, reader, flavor, 0);
+	  presentation__context__id().XER_decode(EMBEDDED_PDV_identification_pci_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 19: // context-negotiation
-	  context__negotiation().XER_decode(EMBEDDED_PDV_identification_cn_xer_, reader, flavor, 0);
+	  context__negotiation().XER_decode(EMBEDDED_PDV_identification_cn_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 15: // transfer-syntax
-	  transfer__syntax().XER_decode(EMBEDDED_PDV_identification_ts_xer_, reader, flavor, 0);
+	  transfer__syntax().XER_decode(EMBEDDED_PDV_identification_ts_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 5: // fixed
-	  fixed().XER_decode(EMBEDDED_PDV_identification_fix_xer_, reader, flavor, 0);
+	  fixed().XER_decode(EMBEDDED_PDV_identification_fix_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	default:
@@ -1776,7 +1776,7 @@ int CHARACTER_STRING_identification_syntaxes::XER_encode(const XERdescriptor_t&
 }
 
 int CHARACTER_STRING_identification_syntaxes::XER_decode(
-  const XERdescriptor_t& /*p_td*/, XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  const XERdescriptor_t& /*p_td*/, XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 { // we stand on <syntaxes>, move ahead first
   for (int success = reader.Read(); success == 1; success = reader.Read())
   {
@@ -1786,8 +1786,8 @@ int CHARACTER_STRING_identification_syntaxes::XER_decode(
       break;
   }
   // FIXME this assumes the right element
-  field_abstract.XER_decode(EMBEDDED_PDV_identification_sxs_abs_xer_, reader, flavor, 0);
-  field_transfer.XER_decode(EMBEDDED_PDV_identification_sxs_xfr_xer_, reader, flavor, 0);
+  field_abstract.XER_decode(EMBEDDED_PDV_identification_sxs_abs_xer_, reader, flavor, flavor2, 0);
+  field_transfer.XER_decode(EMBEDDED_PDV_identification_sxs_xfr_xer_, reader, flavor, flavor2, 0);
   for (int success = 1; success == 1; success = reader.Read())
   {
     int type = reader.NodeType();
@@ -2499,7 +2499,7 @@ int CHARACTER_STRING_identification_context__negotiation::XER_encode(const XERde
 }
 
 int CHARACTER_STRING_identification_context__negotiation::XER_decode(
-  const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int type = reader.NodeType(), depth = -1;
@@ -2510,8 +2510,8 @@ int CHARACTER_STRING_identification_context__negotiation::XER_decode(
     depth = reader.Depth();
     success = reader.Read();
   }
-  field_presentation__context__id.XER_decode(EMBEDDED_PDV_identification_cn_pci_xer_, reader, flavor, 0);
-  field_transfer__syntax         .XER_decode(EMBEDDED_PDV_identification_cn_tsx_xer_, reader, flavor, 0);
+  field_presentation__context__id.XER_decode(EMBEDDED_PDV_identification_cn_pci_xer_, reader, flavor, flavor2, 0);
+  field_transfer__syntax         .XER_decode(EMBEDDED_PDV_identification_cn_tsx_xer_, reader, flavor, flavor2, 0);
   for (; success == 1; success = reader.Read()) {
     type = reader.NodeType();
     if (XML_READER_TYPE_END_ELEMENT == type) {
@@ -3256,7 +3256,7 @@ void CHARACTER_STRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -3345,7 +3345,7 @@ int CHARACTER_STRING::XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf
 }
 
 int CHARACTER_STRING::XER_decode(const XERdescriptor_t& p_td,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int success = reader.Ok(), depth = -1, type;
@@ -3358,13 +3358,13 @@ int CHARACTER_STRING::XER_decode(const XERdescriptor_t& p_td,
       break;
     }
   }
-  field_identification         .XER_decode(CHARACTER_STRING_identification_xer_       , reader, flavor, 0);
-  field_data__value__descriptor.XER_decode(CHARACTER_STRING_data_value_descriptor_xer_, reader, flavor, 0);
+  field_identification         .XER_decode(CHARACTER_STRING_identification_xer_       , reader, flavor, flavor2, 0);
+  field_data__value__descriptor.XER_decode(CHARACTER_STRING_data_value_descriptor_xer_, reader, flavor, flavor2, 0);
   if (field_data__value__descriptor.is_value()) {
     TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,
       "data-value-descriptor not allowed for EMBEDDED PDV");
   }
-  field_string__value          .XER_decode(CHARACTER_STRING_data_value_xer_           , reader, flavor, 0);
+  field_string__value          .XER_decode(CHARACTER_STRING_data_value_xer_           , reader, flavor, flavor2, 0);
   for (success = reader.Read(); success == 1; success = reader.Read()) {
     type = reader.NodeType();
     if (XML_READER_TYPE_END_ELEMENT == type) {
diff --git a/core/ASN_CharacterString.hh b/core/ASN_CharacterString.hh
index f1cd8f666..1ca8aad63 100644
--- a/core/ASN_CharacterString.hh
+++ b/core/ASN_CharacterString.hh
@@ -89,7 +89,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td,
-                 XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*);
+                 XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
 private:
   boolean BER_decode_set_selection(const ASN_BER_TLV_t& p_tlv);
 public:
@@ -213,7 +213,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td,
-                 XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*);
+                 XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
 };
 
 class CHARACTER_STRING_identification_syntaxes_template : public Base_Template {
@@ -322,7 +322,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td,
-                 XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*);
+                 XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
 };
 
 class CHARACTER_STRING_identification_context__negotiation_template : public Base_Template {
@@ -438,7 +438,7 @@ public:
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
 };
 
 class CHARACTER_STRING_template : public Base_Template {
diff --git a/core/ASN_EmbeddedPDV.cc b/core/ASN_EmbeddedPDV.cc
index c0bb57718..e068c708d 100644
--- a/core/ASN_EmbeddedPDV.cc
+++ b/core/ASN_EmbeddedPDV.cc
@@ -797,7 +797,7 @@ int EMBEDDED_PDV_identification::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int EMBEDDED_PDV_identification::XER_decode(const XERdescriptor_t& p_td,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   // we are supposed to be parked on our element
@@ -817,27 +817,27 @@ int EMBEDDED_PDV_identification::XER_decode(const XERdescriptor_t& p_td,
 	size_t namelen = strlen(name);
 	switch (namelen) {
 	case 8: // syntaxes
-	  syntaxes().XER_decode(EMBEDDED_PDV_identification_sxs_xer_, reader, flavor, 0);
+	  syntaxes().XER_decode(EMBEDDED_PDV_identification_sxs_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 6: // syntax
-	  syntax().XER_decode(EMBEDDED_PDV_identification_sx_xer_, reader, flavor, 0);
+	  syntax().XER_decode(EMBEDDED_PDV_identification_sx_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 23: // presentation-context-id
-	  presentation__context__id().XER_decode(EMBEDDED_PDV_identification_pci_xer_, reader, flavor, 0);
+	  presentation__context__id().XER_decode(EMBEDDED_PDV_identification_pci_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 19: // context-negotiation
-	  context__negotiation().XER_decode(EMBEDDED_PDV_identification_cn_xer_, reader, flavor, 0);
+	  context__negotiation().XER_decode(EMBEDDED_PDV_identification_cn_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 15: // transfer-syntax
-	  transfer__syntax().XER_decode(EMBEDDED_PDV_identification_ts_xer_, reader, flavor, 0);
+	  transfer__syntax().XER_decode(EMBEDDED_PDV_identification_ts_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	case 5: // fixed
-	  fixed().XER_decode(EMBEDDED_PDV_identification_fix_xer_, reader, flavor, 0);
+	  fixed().XER_decode(EMBEDDED_PDV_identification_fix_xer_, reader, flavor, flavor2, 0);
 	  break;
 
 	default:
@@ -1778,7 +1778,7 @@ int EMBEDDED_PDV_identification_syntaxes::XER_encode(const XERdescriptor_t& p_td
 }
 
 int EMBEDDED_PDV_identification_syntaxes::XER_decode(const XERdescriptor_t& /*p_td*/,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 { // we stand on <syntaxes>, move ahead first
   int type;
   for (int success = reader.Read(); success == 1; success = reader.Read())
@@ -1789,8 +1789,8 @@ int EMBEDDED_PDV_identification_syntaxes::XER_decode(const XERdescriptor_t& /*p_
       break;
   }
   // FIXME this assumes the right element
-  field_abstract.XER_decode(EMBEDDED_PDV_identification_sxs_abs_xer_, reader, flavor, 0);
-  field_transfer.XER_decode(EMBEDDED_PDV_identification_sxs_xfr_xer_, reader, flavor, 0);
+  field_abstract.XER_decode(EMBEDDED_PDV_identification_sxs_abs_xer_, reader, flavor, flavor2, 0);
+  field_transfer.XER_decode(EMBEDDED_PDV_identification_sxs_xfr_xer_, reader, flavor, flavor2, 0);
   for (int success = 1; success == 1; success = reader.Read())
   {
     type = reader.NodeType();
@@ -2511,7 +2511,7 @@ int EMBEDDED_PDV_identification_context__negotiation::XER_encode(const XERdescri
 }
 
 int EMBEDDED_PDV_identification_context__negotiation::XER_decode(
-  const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int type = reader.NodeType(), depth = -1;
@@ -2522,8 +2522,8 @@ int EMBEDDED_PDV_identification_context__negotiation::XER_decode(
     depth = reader.Depth();
     success = reader.Read();
   }
-  field_presentation__context__id.XER_decode(EMBEDDED_PDV_identification_cn_pci_xer_, reader, flavor, 0);
-  field_transfer__syntax         .XER_decode(EMBEDDED_PDV_identification_cn_tsx_xer_, reader, flavor, 0);
+  field_presentation__context__id.XER_decode(EMBEDDED_PDV_identification_cn_pci_xer_, reader, flavor, flavor2, 0);
+  field_transfer__syntax         .XER_decode(EMBEDDED_PDV_identification_cn_tsx_xer_, reader, flavor, flavor2, 0);
   for (; success == 1; success = reader.Read()) {
     type = reader.NodeType();
     if (XML_READER_TYPE_END_ELEMENT == type) {
@@ -3267,7 +3267,7 @@ void EMBEDDED_PDV::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -3364,7 +3364,7 @@ int EMBEDDED_PDV::XER_encode(const XERdescriptor_t& p_td,
   return (int)p_buf.get_len() - encoded_length;
 }
 
-int EMBEDDED_PDV::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+int EMBEDDED_PDV::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int depth = 1, type, success;
@@ -3377,13 +3377,13 @@ int EMBEDDED_PDV::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
       break;
     }
   }
-  field_identification         .XER_decode(EMBEDDED_PDV_identification_xer_       , reader, flavor, 0);
-  field_data__value__descriptor.XER_decode(EMBEDDED_PDV_data_value_descriptor_xer_, reader, flavor, 0);
+  field_identification         .XER_decode(EMBEDDED_PDV_identification_xer_       , reader, flavor, flavor2, 0);
+  field_data__value__descriptor.XER_decode(EMBEDDED_PDV_data_value_descriptor_xer_, reader, flavor, flavor2, 0);
   if (field_data__value__descriptor.is_value()) {
     TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,
       "data-value-descriptor not allowed for EMBEDDED PDV");
   }
-  field_data__value            .XER_decode(EMBEDDED_PDV_data_value_xer_           , reader, flavor, 0);
+  field_data__value            .XER_decode(EMBEDDED_PDV_data_value_xer_           , reader, flavor, flavor2, 0);
   for (success = reader.Read(); success == 1; success = reader.Read()) {
     type = reader.NodeType();
     if (XML_READER_TYPE_END_ELEMENT == type) {
diff --git a/core/ASN_EmbeddedPDV.hh b/core/ASN_EmbeddedPDV.hh
index 5e0c9aa67..951f7ba9d 100644
--- a/core/ASN_EmbeddedPDV.hh
+++ b/core/ASN_EmbeddedPDV.hh
@@ -89,7 +89,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
 private:
   boolean BER_decode_set_selection(const ASN_BER_TLV_t& p_tlv);
 public:
@@ -211,7 +211,7 @@ public:
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
 };
 
 class EMBEDDED_PDV_identification_syntaxes_template : public Base_Template {
@@ -318,7 +318,7 @@ public:
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
 };
 
 class EMBEDDED_PDV_identification_context__negotiation_template : public Base_Template {
@@ -431,7 +431,7 @@ public:
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap&, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap&, unsigned int, unsigned int, embed_values_dec_struct_t*);
 };
 
 class EMBEDDED_PDV_template : public Base_Template {
diff --git a/core/ASN_External.cc b/core/ASN_External.cc
index ff6e0d5d8..cf9d90251 100644
--- a/core/ASN_External.cc
+++ b/core/ASN_External.cc
@@ -105,7 +105,7 @@ namespace { /* anonymous namespace */
     int XER_encode(const XERdescriptor_t& p_td,
                    TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
     int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                   unsigned int flavor, embed_values_dec_struct_t*);
+                   unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   private:
     boolean BER_decode_set_selection(const ASN_BER_TLV_t& p_tlv);
   public:
@@ -163,7 +163,7 @@ namespace { /* anonymous namespace */
     int XER_encode(const XERdescriptor_t& p_td,
                    TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
     int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                   unsigned int flavor, embed_values_dec_struct_t*);
+                   unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   };
 
   /** Transform the information from the visible format to the encoding format
@@ -440,7 +440,7 @@ namespace { /* anonymous namespace */
   }
 
   int EXTERNALtransfer_encoding::XER_decode(const XERdescriptor_t& p_td,
-    XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+    XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
   {
     int exer  = is_exer(flavor);
     int  success = reader.Ok(), type, depth = -1;
@@ -463,15 +463,15 @@ namespace { /* anonymous namespace */
 
     switch (*name) {
     case 's': // single-ASN1-type
-      single__ASN1__type().XER_decode(EXTERNAL_encoding_singleASN_xer_, reader, flavor, 0);
+      single__ASN1__type().XER_decode(EXTERNAL_encoding_singleASN_xer_, reader, flavor, flavor2, 0);
       break;
 
     case 'o': // octet-aligned
-      octet__aligned().XER_decode(EXTERNAL_encoding_octet_aligned_xer_, reader, flavor, 0);
+      octet__aligned().XER_decode(EXTERNAL_encoding_octet_aligned_xer_, reader, flavor, flavor2, 0);
       break;
 
     case 'a': // arbitrary
-      arbitrary().XER_decode(EXTERNAL_encoding_arbitrary_xer_, reader, flavor, 0);
+      arbitrary().XER_decode(EXTERNAL_encoding_arbitrary_xer_, reader, flavor, flavor2, 0);
       break;
 
     default:
@@ -582,7 +582,7 @@ namespace { /* anonymous namespace */
   }
 
   int EXTERNALtransfer::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                                   unsigned int flavor, embed_values_dec_struct_t*)
+                                   unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
   {
     int exer  = is_exer(flavor);
     int success = reader.Ok(), depth = -1;
@@ -596,10 +596,10 @@ namespace { /* anonymous namespace */
       }
     }
 
-    field_direct__reference      .XER_decode(EXTERNAL_direct_reference_xer_     , reader, flavor, 0);
-    field_indirect__reference    .XER_decode(EXTERNAL_indirect_reference_xer_   , reader, flavor, 0);
-    field_data__value__descriptor.XER_decode(EXTERNAL_data_value_descriptor_xer_, reader, flavor, 0);
-    field_encoding               .XER_decode(EXTERNAL_encoding_xer_             , reader, flavor, 0);
+    field_direct__reference      .XER_decode(EXTERNAL_direct_reference_xer_     , reader, flavor, flavor2, 0);
+    field_indirect__reference    .XER_decode(EXTERNAL_indirect_reference_xer_   , reader, flavor, flavor2, 0);
+    field_data__value__descriptor.XER_decode(EXTERNAL_data_value_descriptor_xer_, reader, flavor, flavor2, 0);
+    field_encoding               .XER_decode(EXTERNAL_encoding_xer_             , reader, flavor, flavor2, 0);
 
     for (success = reader.Read(); success == 1; success = reader.Read()) {
       int type = reader.NodeType();
@@ -709,10 +709,10 @@ int EXTERNAL::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int EXTERNAL::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-  unsigned int flavor, embed_values_dec_struct_t*)
+  unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
   EXTERNALtransfer xfer;
-  xfer.XER_decode(p_td, reader, flavor, 0);
+  xfer.XER_decode(p_td, reader, flavor, flavor2, 0);
   transfer(&xfer);
   return 1; // decode successful
 }
@@ -3469,7 +3469,7 @@ void EXTERNAL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTC
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
diff --git a/core/ASN_External.hh b/core/ASN_External.hh
index 609a1ba1f..f2bcca0ce 100644
--- a/core/ASN_External.hh
+++ b/core/ASN_External.hh
@@ -412,7 +412,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
 };
 
 class EXTERNAL_template : public Base_Template {
diff --git a/core/ASN_Null.cc b/core/ASN_Null.cc
index 36616c1a7..994b81dda 100644
--- a/core/ASN_Null.cc
+++ b/core/ASN_Null.cc
@@ -160,7 +160,7 @@ void ASN_NULL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -239,7 +239,7 @@ int ASN_NULL::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int ASN_NULL::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int flavor, embed_values_dec_struct_t*)
+    unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   TTCN_EncDec_ErrorContext ec("While XER decoding NULL type: ");
diff --git a/core/ASN_Null.hh b/core/ASN_Null.hh
index f2ed45698..cef26477b 100644
--- a/core/ASN_Null.hh
+++ b/core/ASN_Null.hh
@@ -72,7 +72,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Array.hh b/core/Array.hh
index 0db8bc79f..516068850 100644
--- a/core/Array.hh
+++ b/core/Array.hh
@@ -495,9 +495,9 @@ void VALUE_ARRAY<T_type,array_size,index_offset>::decode(
 
 template <typename T_type, unsigned int array_size, int index_offset>
 int VALUE_ARRAY<T_type,array_size,index_offset>::JSON_encode(
-  const TTCN_Typedescriptor_t&, JSON_Tokenizer& p_tok) const
+  const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer& p_tok) const
 {
-  if (!is_bound()) {
+  if (!is_bound() && (NULL == p_td.json || !p_td.json->metainfo_unbound)) {
     TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_UNBOUND,
       "Encoding an unbound array value.");
     return -1;
@@ -505,10 +505,19 @@ int VALUE_ARRAY<T_type,array_size,index_offset>::JSON_encode(
   
   int enc_len = p_tok.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
   
-  for(unsigned int i = 0; i < array_size; ++i) {
-    int ret_val = array_elements[i].JSON_encode(*get_elem_descr(), p_tok);
-    if (0 > ret_val) break;
-    enc_len += ret_val;
+  for (unsigned int i = 0; i < array_size; ++i) {
+    if (NULL != p_td.json && p_td.json->metainfo_unbound && !array_elements[i].is_bound()) {
+      // unbound elements are encoded as { "metainfo []" : "unbound" }
+      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
+      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, "metainfo []");
+      enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, "\"unbound\"");
+      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
+    }
+    else {
+      int ret_val = array_elements[i].JSON_encode(*get_elem_descr(), p_tok);
+      if (0 > ret_val) break;
+      enc_len += ret_val;
+    }
   }
   
   enc_len += p_tok.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
@@ -517,7 +526,7 @@ int VALUE_ARRAY<T_type,array_size,index_offset>::JSON_encode(
 
 template <typename T_type, unsigned int array_size, int index_offset>
 int VALUE_ARRAY<T_type,array_size,index_offset>::JSON_decode(
-  const TTCN_Typedescriptor_t&, JSON_Tokenizer& p_tok, boolean p_silent)
+  const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer& p_tok, boolean p_silent)
 {
   json_token_t token = JSON_TOKEN_NONE;
   int dec_len = p_tok.get_next_token(&token, NULL, NULL);
@@ -529,8 +538,33 @@ int VALUE_ARRAY<T_type,array_size,index_offset>::JSON_decode(
     return JSON_ERROR_INVALID_TOKEN;
   } 
   
-  for(unsigned int i = 0; i < array_size; ++i) {
-    int ret_val = array_elements[i].JSON_decode(*get_elem_descr(), p_tok, p_silent);
+  for (unsigned int i = 0; i < array_size; ++i) {
+    size_t buf_pos = p_tok.get_buf_pos();
+    int ret_val;
+    if (NULL != p_td.json && p_td.json->metainfo_unbound) {
+      // check for metainfo object
+      ret_val = p_tok.get_next_token(&token, NULL, NULL);
+      if (JSON_TOKEN_OBJECT_START == token) {
+        char* value = NULL;
+        size_t value_len = 0;
+        ret_val += p_tok.get_next_token(&token, &value, &value_len);
+        if (JSON_TOKEN_NAME == token && 11 == value_len &&
+            0 == strncmp(value, "metainfo []", 11)) {
+          ret_val += p_tok.get_next_token(&token, &value, &value_len);
+          if (JSON_TOKEN_STRING == token && 9 == value_len &&
+              0 == strncmp(value, "\"unbound\"", 9)) {
+            ret_val = p_tok.get_next_token(&token, NULL, NULL);
+            if (JSON_TOKEN_OBJECT_END == token) {
+              dec_len += ret_val;
+              continue;
+            }
+          }
+        }
+      }
+      // metainfo object not found, jump back and let the element type decode it
+      p_tok.set_buf_pos(buf_pos);
+    }
+    ret_val = array_elements[i].JSON_decode(*get_elem_descr(), p_tok, p_silent);
     if (JSON_ERROR_INVALID_TOKEN == ret_val) {
       JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_ARRAY_ELEM_TOKEN_ERROR,
         array_size - i, (array_size - i > 1) ? "s" : "");
diff --git a/core/Basetype.cc b/core/Basetype.cc
index 37511128f..68448fb66 100644
--- a/core/Basetype.cc
+++ b/core/Basetype.cc
@@ -149,7 +149,7 @@ void Base_Type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
     for (int success=reader.Read(); success==1; success=reader.Read()) {
       if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
     }
-    XER_decode(*(p_td.xer), reader, XER_coding, 0);
+    XER_decode(*(p_td.xer), reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -975,7 +975,7 @@ int Base_Type::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int Base_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap&,
-                          unsigned int, embed_values_dec_struct_t*) {
+                          unsigned int, unsigned int, embed_values_dec_struct_t*) {
   TTCN_error("XER decoding requested for type '%-.*s' which has no"
              " XER decoding method.", p_td.namelens[0]-2, p_td.names[0]);
   return 0;
diff --git a/core/Basetype.hh b/core/Basetype.hh
index 6c7e77b1b..e4c8323a3 100644
--- a/core/Basetype.hh
+++ b/core/Basetype.hh
@@ -499,11 +499,12 @@ public:
    * @param p_td type descriptor
    * @param reader Wrapper around the XML processor
    * @param flavor one of XER_flavor values
+   * @param flavor2 one of XER_flavor2 values
    * @param emb_val embed values data (only relevant for record of types)
    * @return number of bytes "consumed"
    */
   VIRTUAL_IF_RUNTIME_2 int XER_decode(const XERdescriptor_t& p_td,
-    XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t* emb_val);
+    XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t* emb_val);
 
   /** Return an array of namespace declarations.
    *
@@ -804,7 +805,7 @@ public:
   int encode_element(int i, const XERdescriptor_t& p_td, const Erroneous_values_t* err_vals,
     const Erroneous_descriptor_t* emb_descr,
     TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t* emb_val) const;
-  virtual int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  virtual int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
   virtual boolean isXerAttribute() const;
   virtual boolean isXmlValueList() const;
   
@@ -864,16 +865,15 @@ protected:
     const Base_Type* value;
   };
   Erroneous_descriptor_t* err_descr;
-  boolean bound_flag;
 public:
-  Record_Type() : err_descr(NULL), bound_flag(false) {}
+  Record_Type() : err_descr(NULL) {}
 
   /// @{
   /** get pointer to a field */
   virtual Base_Type* get_at(int index_value) = 0;
   virtual const Base_Type* get_at(int index_value) const = 0;
   /// @}
-  
+
   /** get the index to a field based on its name and namespace URI, or -1 */
   int get_index_byname(const char *name, const char *uri) const;
 
@@ -946,7 +946,7 @@ public:
     const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
     unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   virtual int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int, embed_values_dec_struct_t*);
+    unsigned int, unsigned int, embed_values_dec_struct_t*);
   /// @{
   /// Methods overridden in the derived (generated) class
   virtual int get_xer_num_attr() const { return 0; /* default */ }
@@ -1023,7 +1023,7 @@ public:
   virtual int XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
     unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   virtual int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int, embed_values_dec_struct_t*);
+    unsigned int, unsigned int, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Bitstring.cc b/core/Bitstring.cc
index a178fb2d9..50e897a1d 100644
--- a/core/Bitstring.cc
+++ b/core/Bitstring.cc
@@ -711,7 +711,7 @@ void BITSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -1069,7 +1069,7 @@ int BITSTRING::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int BITSTRING::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                          unsigned int flavor, embed_values_dec_struct_t*)
+                          unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int success = reader.Ok(), depth = -1, type;
diff --git a/core/Bitstring.hh b/core/Bitstring.hh
index b890333a9..f9b53d30a 100644
--- a/core/Bitstring.hh
+++ b/core/Bitstring.hh
@@ -175,7 +175,7 @@ public:
      boolean no_err=FALSE, int sel_field=-1, boolean first_call=TRUE);
 
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Boolean.cc b/core/Boolean.cc
index 5dd0ca355..e519012fd 100644
--- a/core/Boolean.cc
+++ b/core/Boolean.cc
@@ -295,7 +295,7 @@ void BOOLEAN::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
         break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -624,7 +624,7 @@ int BOOLEAN::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int BOOLEAN::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-  unsigned int flavor, embed_values_dec_struct_t*)
+  unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   const boolean exer = is_exer(flavor);
   int XMLValueList = !exer && is_record_of(flavor);
diff --git a/core/Boolean.hh b/core/Boolean.hh
index 2a7a60e66..95d0414ba 100644
--- a/core/Boolean.hh
+++ b/core/Boolean.hh
@@ -105,7 +105,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Charstring.cc b/core/Charstring.cc
index 48fccff29..9e23390d5 100644
--- a/core/Charstring.cc
+++ b/core/Charstring.cc
@@ -855,7 +855,7 @@ void CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -1321,7 +1321,7 @@ unsigned int xlate(cbyte*in, int phase, unsigned char*dest) {
 }
 
 int CHARSTRING::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                           unsigned int flavor, embed_values_dec_struct_t*) {
+                           unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*) {
   int exer = is_exer(flavor);
   int success = reader.Ok(), depth = -1;
 
diff --git a/core/Charstring.hh b/core/Charstring.hh
index 196745007..0322e572b 100644
--- a/core/Charstring.hh
+++ b/core/Charstring.hh
@@ -214,7 +214,7 @@ public:
   int TEXT_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&,  Limit_Token_List&,
                   boolean no_err=FALSE, boolean first_call=TRUE);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
   
   /** Returns the charstring in the format a string would appear in C or TTCN-3 code.
     * Inserts double quotation marks to the beginning and end of the string and
diff --git a/core/Float.cc b/core/Float.cc
index ea3f06b0a..e082fa162 100644
--- a/core/Float.cc
+++ b/core/Float.cc
@@ -409,7 +409,7 @@ void FLOAT::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -908,7 +908,7 @@ boolean FLOAT::is_float(const char* p_str)
 }
 
 int FLOAT::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-  unsigned int flavor, embed_values_dec_struct_t*)
+  unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   bound_flag = false;
   int exer  = is_exer(flavor);
diff --git a/core/Float.hh b/core/Float.hh
index 01b162f45..879f15333 100644
--- a/core/Float.hh
+++ b/core/Float.hh
@@ -136,7 +136,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Hexstring.cc b/core/Hexstring.cc
index c61c13f4c..2ab090e91 100644
--- a/core/Hexstring.cc
+++ b/core/Hexstring.cc
@@ -711,7 +711,7 @@ void HEXSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
         break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -901,7 +901,7 @@ Because of this, the bit shifting is different. The first three bytes
 */
 
 int HEXSTRING::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-  unsigned int flavor, embed_values_dec_struct_t*)
+  unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int success = reader.Ok(), depth = -1, type;
diff --git a/core/Hexstring.hh b/core/Hexstring.hh
index 7f1ff249d..ff21120b5 100644
--- a/core/Hexstring.hh
+++ b/core/Hexstring.hh
@@ -129,7 +129,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
     unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int flavor, embed_values_dec_struct_t*);
+    unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Integer.cc b/core/Integer.cc
index c209315b0..51da9911c 100644
--- a/core/Integer.cc
+++ b/core/Integer.cc
@@ -855,7 +855,7 @@ void INTEGER::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
         break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -1593,7 +1593,7 @@ int INTEGER::XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 int INTEGER::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-  unsigned int flavor, embed_values_dec_struct_t*)
+  unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   const boolean exer = is_exer(flavor);
   int depth = -1, success = reader.Ok(), type;
diff --git a/core/Integer.hh b/core/Integer.hh
index 54cf6478d..6b4c33420 100644
--- a/core/Integer.hh
+++ b/core/Integer.hh
@@ -166,7 +166,7 @@ public:
   /** @brief Decode according to XML Encoding Rules.
    **/
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/JSON.hh b/core/JSON.hh
index 662884b44..53f371bc5 100644
--- a/core/JSON.hh
+++ b/core/JSON.hh
@@ -42,7 +42,13 @@ struct TTCN_JSONdescriptor_t
     * The decoder sets the field to unbound if the meta info field is present and
     * the field's value in the JSON code is either null or a valid value for that
     * field.
-    * Example: { "field1" : null, "metainfo field1" : "unbound" } */
+    * Example: { "field1" : null, "metainfo field1" : "unbound" }
+    *
+    * Also usable on record of/set of/array types to indicate that an element is
+    * unbound. Unbound elements are encoded as a JSON object containing one
+    * metainfo member. The decoder sets the element to unbound if the object
+    * with the meta information is found.
+    * Example: [ value1, value2, { "metainfo []" : "unbound" }, value3 ] */
   boolean metainfo_unbound;
 };
 
diff --git a/core/Objid.cc b/core/Objid.cc
index 77a06a2e7..b7b105722 100644
--- a/core/Objid.cc
+++ b/core/Objid.cc
@@ -325,7 +325,7 @@ void OBJID::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -540,7 +540,7 @@ void OBJID::from_string(char* p_str)
 }
 
 int OBJID::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-		  unsigned int flavor, embed_values_dec_struct_t*)
+		  unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int success = reader.Ok(), depth = -1;
diff --git a/core/Objid.hh b/core/Objid.hh
index 0a51d1eb7..38c0a0011 100644
--- a/core/Objid.hh
+++ b/core/Objid.hh
@@ -92,7 +92,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td,
                  TTCN_Buffer& p_buf, unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Octetstring.cc b/core/Octetstring.cc
index 18daa773a..3756c4d78 100644
--- a/core/Octetstring.cc
+++ b/core/Octetstring.cc
@@ -690,7 +690,7 @@ void OCTETSTRING::decode(const TTCN_Typedescriptor_t& p_td,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -939,7 +939,7 @@ int OCTETSTRING::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int OCTETSTRING::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int flavor, embed_values_dec_struct_t*)
+    unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int success = reader.Ok(), depth = -1, type;
diff --git a/core/Octetstring.hh b/core/Octetstring.hh
index ca10f66f2..a4f03f1c2 100644
--- a/core/Octetstring.hh
+++ b/core/Octetstring.hh
@@ -157,7 +157,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
                  unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                 unsigned int flavor, embed_values_dec_struct_t*);
+                 unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/Optional.hh b/core/Optional.hh
index c640b0099..9d84211da 100644
--- a/core/Optional.hh
+++ b/core/Optional.hh
@@ -281,7 +281,7 @@ public:
     * @param parent_tag_closed true, if the record's XML tag is closed (is an empty element)*/
   bool XER_check_any_elem(XmlReaderWrap& reader, const char* next_field_name, bool parent_tag_closed);
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int flavor, embed_values_dec_struct_t* emb_val);
+    unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t* emb_val);
 
   char ** collect_ns(const XERdescriptor_t& p_td, size_t& num, bool& def_ns) const;
 
@@ -1030,7 +1030,7 @@ OPTIONAL<T_type>::XER_check_any_elem(XmlReaderWrap& reader, const char* next_fie
 template<typename T_type>
 int
 OPTIONAL<T_type>::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-  unsigned int flavor, embed_values_dec_struct_t* emb_val)
+  unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t* emb_val)
 {
   int exer  = is_exer(flavor);
   for (int success = reader.Ok(); success==1; success=reader.Read()) {
@@ -1058,11 +1058,14 @@ OPTIONAL<T_type>::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
         }
         
         set_to_present();
-        optional_value->XER_decode(p_td, reader, flavor, emb_val);
+        optional_value->XER_decode(p_td, reader, flavor, flavor2, emb_val);
         goto finished;
       }
       else break;
     }
+    else if(XML_READER_TYPE_ATTRIBUTE == type && (flavor & USE_NIL)){
+        goto found_it;
+    }
     else { // not attribute
       if (XML_READER_TYPE_ELEMENT == type) { // we are at an element
         name   = (const char*)reader.LocalName();
@@ -1075,7 +1078,7 @@ OPTIONAL<T_type>::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
           found_it:
           set_to_present();
           //success = reader.Read(); // move to next thing TODO should it loop till an element ?
-          optional_value->XER_decode(p_td, reader, flavor, emb_val);
+          optional_value->XER_decode(p_td, reader, flavor, flavor2, emb_val);
           if (!optional_value->is_bound()) {
             set_to_omit();
           }
diff --git a/core/Port.hh b/core/Port.hh
index 35d2e5123..0c13b3fc3 100644
--- a/core/Port.hh
+++ b/core/Port.hh
@@ -13,6 +13,7 @@
 #include "Types.h"
 #include "Event_Handler.hh"
 #include <stddef.h> // only for NULL
+#include <sys/select.h>
 
 class COMPONENT;
 class COMPONENT_template;
diff --git a/core/Universal_charstring.cc b/core/Universal_charstring.cc
index 4eda2c1e9..acbcc5434 100644
--- a/core/Universal_charstring.cc
+++ b/core/Universal_charstring.cc
@@ -1157,7 +1157,7 @@ void UNIVERSAL_CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td,
       if (type==XML_READER_TYPE_ELEMENT)
 	break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break; }
@@ -2030,7 +2030,7 @@ in_word_set (const char *str, unsigned int len)
 universal_char const uspace = {0,0,0,32};
 
 int UNIVERSAL_CHARSTRING::XER_decode(const XERdescriptor_t& p_td,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer  = is_exer(flavor);
   int success = reader.Ok(), depth = -1;
diff --git a/core/Universal_charstring.hh b/core/Universal_charstring.hh
index bda37a04e..6e7448847 100644
--- a/core/Universal_charstring.hh
+++ b/core/Universal_charstring.hh
@@ -330,7 +330,7 @@ public:
   int TEXT_decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&,  Limit_Token_List&,
                   boolean no_err=FALSE, boolean first_call=TRUE);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, int, embed_values_enc_struct_t*) const;
-  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, embed_values_dec_struct_t*);
+  int XER_decode(const XERdescriptor_t&, XmlReaderWrap& reader, unsigned int, unsigned int, embed_values_dec_struct_t*);
   /** Decodes UTF-8 into the internal representation (UCS4-BE)
    *
    * @param n_octets number of UTF-8 bytes (not characters)
diff --git a/core/Verdicttype.cc b/core/Verdicttype.cc
index d74aff451..d5607e0f2 100644
--- a/core/Verdicttype.cc
+++ b/core/Verdicttype.cc
@@ -239,7 +239,7 @@ void VERDICTTYPE::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
       if (type==XML_READER_TYPE_ELEMENT)
         break;
     }
-    XER_decode(*p_td.xer, reader, XER_coding, 0);
+    XER_decode(*p_td.xer, reader, XER_coding, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -297,7 +297,7 @@ verdicttype VERDICTTYPE::str_to_verdict(const char *v, boolean silent)
 }
 
 int VERDICTTYPE::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& p_reader,
-  unsigned int p_flavor, embed_values_dec_struct_t*)
+  unsigned int p_flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int rd_ok = 1, type;
   const int e_xer = is_exer(p_flavor);
diff --git a/core/Verdicttype.hh b/core/Verdicttype.hh
index 0faba13bd..eedef1548 100644
--- a/core/Verdicttype.hh
+++ b/core/Verdicttype.hh
@@ -85,7 +85,7 @@ public:
   int XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
     unsigned int flavor, int indent, embed_values_enc_struct_t*) const;
   int XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-    unsigned int flavor, embed_values_dec_struct_t*);
+    unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*);
   
   /** Encodes accordingly to the JSON encoding rules.
     * Returns the length of the encoded data. */
diff --git a/core/XER.hh b/core/XER.hh
index 9f56aac54..f77176980 100644
--- a/core/XER.hh
+++ b/core/XER.hh
@@ -96,6 +96,10 @@ enum XER_flavor {
   BLOCKED        = 1U << 31  // 0x80000000 either ABSTRACT or BLOCK
 };
 
+enum XER_flavor2 {
+    USE_NIL_PARENT_TAG = 1U << 0 // Content field has attribute that was read by parent
+};
+
 /** WHITESPACE actions.
  * Note that WHITESPACE_COLLAPSE includes the effect of WHITESPACE_REPLACE
  * and the code relies on WHITESPACE_COLLAPSE having the higher value. */
diff --git a/core/XmlReader.hh b/core/XmlReader.hh
index c6c480fd4..eaefece20 100644
--- a/core/XmlReader.hh
+++ b/core/XmlReader.hh
@@ -76,7 +76,7 @@ public:
    *  @return 1 on success, 0 if no more nodes to read, -1 on error */
   int Read();
   int ReadDbg(const char *where);
-
+  
 #if 0
   /** Return the child nodes of the current node.
    *
diff --git a/core2/Basetype2.cc b/core2/Basetype2.cc
index e9d18e49c..b94c5bcb9 100644
--- a/core2/Basetype2.cc
+++ b/core2/Basetype2.cc
@@ -1450,9 +1450,18 @@ int Record_Of_Type::JSON_encode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenize
   int enc_len = p_tok.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
   
   for (int i = 0; i < get_nof_elements(); ++i) {
-    int ret_val = get_at(i)->JSON_encode(*p_td.oftype_descr, p_tok);
-    if (0 > ret_val) break;
-    enc_len += ret_val;
+    if (NULL != p_td.json && p_td.json->metainfo_unbound && !get_at(i)->is_bound()) {
+      // unbound elements are encoded as { "metainfo []" : "unbound" }
+      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
+      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, "metainfo []");
+      enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, "\"unbound\"");
+      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
+    }
+    else {
+      int ret_val = get_at(i)->JSON_encode(*p_td.oftype_descr, p_tok);
+      if (0 > ret_val) break;
+      enc_len += ret_val;
+    }
   }
   
   enc_len += p_tok.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
@@ -1507,7 +1516,15 @@ int Record_Of_Type::JSON_encode_negtest(const Erroneous_descriptor_t* p_err_desc
           enc_len += err_vals->value->errval->JSON_encode(*(err_vals->value->type_descr), p_tok);
         }
       }
-    } else {
+    }
+    else if (NULL != p_td.json && p_td.json->metainfo_unbound && !get_at(i)->is_bound()) {
+      // unbound elements are encoded as { "metainfo []" : "unbound" }
+      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
+      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, "metainfo []");
+      enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, "\"unbound\"");
+      enc_len += p_tok.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
+    }
+    else {
       int ret_val;
       if (NULL != emb_descr) {
         ret_val = get_at(i)->JSON_encode_negtest(emb_descr, *p_td.oftype_descr, p_tok);
@@ -1554,11 +1571,35 @@ int Record_Of_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenize
   } 
   
   set_size(0);
-  while (true) {
+  for (int nof_elements = 0; true; ++nof_elements) {
     // Read value tokens until we reach some other token
     size_t buf_pos = p_tok.get_buf_pos();
+    int ret_val;
+    if (NULL != p_td.json && p_td.json->metainfo_unbound) {
+      // check for metainfo object
+      ret_val = p_tok.get_next_token(&token, NULL, NULL);
+      if (JSON_TOKEN_OBJECT_START == token) {
+        char* value = NULL;
+        size_t value_len = 0;
+        ret_val += p_tok.get_next_token(&token, &value, &value_len);
+        if (JSON_TOKEN_NAME == token && 11 == value_len &&
+            0 == strncmp(value, "metainfo []", 11)) {
+          ret_val += p_tok.get_next_token(&token, &value, &value_len);
+          if (JSON_TOKEN_STRING == token && 9 == value_len &&
+              0 == strncmp(value, "\"unbound\"", 9)) {
+            ret_val = p_tok.get_next_token(&token, NULL, NULL);
+            if (JSON_TOKEN_OBJECT_END == token) {
+              dec_len += ret_val;
+              continue;
+            }
+          }
+        }
+      }
+      // metainfo object not found, jump back and let the element type decode it
+      p_tok.set_buf_pos(buf_pos);
+    }
     Base_Type* val = create_elem();
-    int ret_val = val->JSON_decode(*p_td.oftype_descr, p_tok, p_silent);
+    ret_val = val->JSON_decode(*p_td.oftype_descr, p_tok, p_silent);
     if (JSON_ERROR_INVALID_TOKEN == ret_val) {
       // undo the last action on the buffer
       p_tok.set_buf_pos(buf_pos);
@@ -1574,12 +1615,12 @@ int Record_Of_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenize
     }
     if (NULL == refd_ind_ptr) {
       val_ptr->value_elements = (Base_Type**)reallocate_pointers(
-        (void**)val_ptr->value_elements, val_ptr->n_elements, val_ptr->n_elements + 1);
-      val_ptr->value_elements[val_ptr->n_elements] = val;
-      val_ptr->n_elements++;
+        (void**)val_ptr->value_elements, val_ptr->n_elements, nof_elements + 1);
+      val_ptr->value_elements[nof_elements] = val;
+      val_ptr->n_elements = nof_elements + 1;
     }
     else {
-      get_at(get_nof_elements())->set_value(val);
+      get_at(nof_elements)->set_value(val);
       delete val;
     }
     dec_len += ret_val;
@@ -1701,7 +1742,7 @@ void Record_Of_Type::decode(const TTCN_Typedescriptor_t& p_td,
     for (int success=reader.Read(); success==1; success=reader.Read()) {
       if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
     }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, 0);
+    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -2199,7 +2240,7 @@ int Record_Of_Type::XER_encode_negtest(const Erroneous_descriptor_t* p_err_descr
 }
 
 int Record_Of_Type::XER_decode(const XERdescriptor_t& p_td,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t* emb_val)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t* emb_val)
 {
   int exer = is_exer(flavor);
   int xerbits = p_td.xer_bits;
@@ -2278,7 +2319,7 @@ int Record_Of_Type::XER_decode(const XERdescriptor_t& p_td,
       // The call to the non-const operator[], I mean get_at(), creates
       // a new element (because it is indexing one past the last element).
       // Then we call its XER_decode with the temporary XML reader.
-      get_at(get_nof_elements())->XER_decode(sub_xer, reader2, flavor, 0);
+      get_at(get_nof_elements())->XER_decode(sub_xer, reader2, flavor, flavor2, 0);
       if (flavor & EXIT_ON_ERROR && !is_elem_bound(get_nof_elements() - 1)) {
         if (1 == get_nof_elements()) {
           // Failed to decode even the first element
@@ -2344,10 +2385,10 @@ int Record_Of_Type::XER_decode(const XERdescriptor_t& p_td,
             }
             ec_1.set_msg("%d: ", get_nof_elements());
             /* The call to the non-const get_at() creates the element */
-            get_at(get_nof_elements())->XER_decode(*p_td.oftype_descr, reader, flavor, emb_val);
-            if (0 != emb_val && !own_tag && get_nof_elements() > 1) {
-              ++emb_val->embval_index;
-            }
+            get_at(get_nof_elements())->XER_decode(*p_td.oftype_descr, reader, flavor, flavor2, emb_val);
+          }
+          if (0 != emb_val && !own_tag && get_nof_elements() > 1) {
+            ++emb_val->embval_index;
           }
         }
         else if (XML_READER_TYPE_END_ELEMENT == type) {
@@ -2534,7 +2575,6 @@ boolean operator!=(null_type null_value,
 
 boolean Record_Type::is_bound() const
 {
-  if (bound_flag) return TRUE;
   int field_cnt = get_count();
   for (int field_idx=0; field_idx<field_cnt; field_idx++) {
     const Base_Type* temp = get_at(field_idx);
@@ -2548,9 +2588,6 @@ boolean Record_Type::is_bound() const
 
 boolean Record_Type::is_value() const
 {
-  if (!is_bound()) {
-    return FALSE;
-  }
   int field_cnt = get_count();
   for (int field_idx=0; field_idx<field_cnt; field_idx++) {
     const Base_Type* temp = get_at(field_idx);
@@ -2570,7 +2607,6 @@ void Record_Type::clean_up()
   for (int field_idx=0; field_idx<field_cnt; field_idx++) {
     get_at(field_idx)->clean_up();
   }
-  bound_flag = FALSE;
 }
 
 void Record_Type::log() const
@@ -2592,7 +2628,6 @@ void Record_Type::log() const
 }
 
 void Record_Type::set_param(Module_Param& param) {
-  bound_flag = TRUE;
   if (dynamic_cast<Module_Param_Name*>(param.get_id()) != NULL &&
       param.get_id()->next_name()) {
     // Haven't reached the end of the module parameter name
@@ -2703,10 +2738,6 @@ void Record_Type::set_implicit_omit()
 
 int Record_Type::size_of() const
 {
-  if (!is_bound()) {
-    TTCN_error("Calculating the size of an unbound record/set value of type %s",
-      get_descriptor()->name);
-  }
   int opt_count = optional_count();
   if (opt_count==0) return get_count();
   const int* optional_indexes = get_optional_indexes();
@@ -2730,7 +2761,6 @@ void Record_Type::encode_text(Text_Buf& text_buf) const
 
 void Record_Type::decode_text(Text_Buf& text_buf)
 {
-  bound_flag = TRUE;
   int field_cnt = get_count();
   for (int field_idx=0; field_idx<field_cnt; field_idx++)
     get_at(field_idx)->decode_text(text_buf);
@@ -2739,9 +2769,6 @@ void Record_Type::decode_text(Text_Buf& text_buf)
 boolean Record_Type::is_equal(const Base_Type* other_value) const
 {
   const Record_Type* other_record = static_cast<const Record_Type*>(other_value);
-  if (!is_bound() && !other_record->is_bound()) {
-    return TRUE;
-  }
   int field_cnt = get_count();
   for (int field_idx=0; field_idx<field_cnt; field_idx++) {
     const Base_Type* elem = get_at(field_idx);
@@ -2773,7 +2800,6 @@ void Record_Type::set_value(const Base_Type* other_value)
     }
   }
   err_descr = other_record->err_descr;
-  bound_flag = TRUE;
 }
 
 void Record_Type::encode(const TTCN_Typedescriptor_t& p_td,
@@ -2896,7 +2922,7 @@ void Record_Type::decode(const TTCN_Typedescriptor_t& p_td,
     for (int success=reader.Read(); success==1; success=reader.Read()) {
       if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
     }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, 0);
+    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -3054,7 +3080,6 @@ ASN_BER_TLV_t* Record_Type::BER_encode_TLV_negtest(const Erroneous_descriptor_t*
 boolean Record_Type::BER_decode_TLV(const TTCN_Typedescriptor_t& p_td,
   const ASN_BER_TLV_t& p_tlv, unsigned L_form)
 {
-  bound_flag = TRUE;
   BER_chk_descr(p_td);
   ASN_BER_TLV_t stripped_tlv;
   BER_decode_strip_tags(*p_td.ber, p_tlv, L_form, stripped_tlv);
@@ -3161,7 +3186,6 @@ boolean Record_Type::BER_decode_TLV(const TTCN_Typedescriptor_t& p_td,
 
 void Record_Type::BER_decode_opentypes(TTCN_Type_list& p_typelist, unsigned L_form)
 {
-  bound_flag = TRUE;
   p_typelist.push(this);
   TTCN_EncDec_ErrorContext ec_0("Component '");
   TTCN_EncDec_ErrorContext ec_1;
@@ -3358,7 +3382,6 @@ int Record_Type::RAW_encode_negtest(const Erroneous_descriptor_t *p_err_descr,
 int Record_Type::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& buff,
   int limit, raw_order_t top_bit_ord, boolean no_err, int, boolean)
 {
-  bound_flag = TRUE;
   int field_cnt = get_count();
   int opt_cnt = optional_count();
   int mand_num = field_cnt - opt_cnt; // expected mandatory fields
@@ -3632,7 +3655,6 @@ int Record_Type::TEXT_encode_negtest(const Erroneous_descriptor_t* p_err_descr,
 int Record_Type::TEXT_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& buff,
   Limit_Token_List& limit, boolean no_err, boolean /*first_call*/)
 {
-  bound_flag = TRUE;
   if (is_set()) {
     int decoded_length=0;
     int decoded_field_length=0;
@@ -4166,7 +4188,7 @@ int Record_Type::XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
       - (!indenting || delay_close || (exer && (p_td.xer_bits & HAS_1UNTAGGED))),
       (cbyte*)p_td.names[exer]);
   }
-  else if (flavor & USE_TYPE_ATTR) {
+  else if (flavor & (USE_NIL|USE_TYPE_ATTR)) {
     // reopen the parent's start tag by overwriting the '>'
     size_t buf_len = p_buf.get_len();
     const unsigned char * const buf_data = p_buf.get_data();
@@ -5082,9 +5104,8 @@ int Record_Type::XER_encode_negtest(const Erroneous_descriptor_t* p_err_descr,
 }
 
 int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
-                            unsigned int flavor, embed_values_dec_struct_t*)
+                            unsigned int flavor, unsigned int flavor2, embed_values_dec_struct_t*)
 {
-  bound_flag = TRUE;
   int exer = is_exer(flavor);
   int success, type;
   int depth=-1; // depth of the start tag
@@ -5096,10 +5117,11 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
   boolean tag_closed = (flavor & PARENT_CLOSED) != 0;
   // If the parent has USE-TYPE, our ATTRIBUTE members can be found
   // in the parent's tag (the reader is sitting on it).
-  const boolean parent_tag = exer && (flavor & (/*USE_NIL|*/ USE_TYPE_ATTR));
+  const boolean parent_tag = exer && ((flavor & USE_TYPE_ATTR) || (flavor2 & USE_NIL_PARENT_TAG));
 
   // Filter out flags passed by our parent. These are not for the fields.
   flavor &= XER_MASK; // also removes XER_TOPLEVEL
+  flavor2 = XER_NONE; // Remove only bit: USE_NIL_PARENT_TAG (for now)
 
   const int field_cnt = get_count();
   const int num_attributes = get_xer_num_attr();
@@ -5112,7 +5134,7 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
   // fields); normal processing start at this field.
   const int start_at = uo_index + ((p_td.xer_bits & USE_ORDER) != 0);
   const int first_nonattr = start_at + num_attributes;
-
+  
   // The index of the ANY-ATTRIBUTES member, if any
   int aa_index = -1;
   for (int k = 0; k < first_nonattr; ++k) {
@@ -5180,12 +5202,15 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
     TTCN_EncDec_ErrorContext ec_0("Component '");
     TTCN_EncDec_ErrorContext ec_1;
     boolean usenil_attribute = FALSE; // true if found and said yes
+    // If nillable and the nillable field is a record type, that has attributes
+    // then it will become true, and skips the processing of the fields after
+    boolean already_processed = FALSE;
     if (!exer) {
       if (!reader.IsEmptyElement()) reader.Read();
       // First, the (would-be) attributes (unaffected by USE-ORDER)
       for (i = 0; i < first_nonattr; i++) {
         ec_1.set_msg("%s': ", fld_name(i));
-        get_at(i)->XER_decode(*xer_descr(i), reader, flavor, 0);
+        get_at(i)->XER_decode(*xer_descr(i), reader, flavor, flavor2, 0);
       } // next field
     }
     else if (own_tag || parent_tag) { // EXER and not UNTAGGED: do attributes
@@ -5213,7 +5238,12 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
       }
 
       /* * * * * * * * * Attributes * * * * * * * * * * * * * */
-      for (success = reader.MoveToFirstAttribute();
+      if(parent_tag && reader.NodeType() == XML_READER_TYPE_ATTRIBUTE) {
+        success = reader.Ok();
+      } else {
+        success = reader.MoveToFirstAttribute();
+      }
+      for (;
         success == 1 && reader.NodeType() == XML_READER_TYPE_ATTRIBUTE;
         success = reader.AdvanceAttribute())
       {
@@ -5227,7 +5257,7 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
         if (field_index != -1) {
           // There is a field. Let it decode the attribute.
           ec_1.set_msg("%s': ", fld_name(field_index));
-          get_at(field_index)->XER_decode(*xer_descr(field_index), reader, flavor, 0);
+          get_at(field_index)->XER_decode(*xer_descr(field_index), reader, flavor, flavor2, 0);
           continue;
         }
 
@@ -5249,8 +5279,13 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
 
             continue;
           } // it is the "nil" attribute
+          // else, let the nillable field decode the next attributes, it is possible
+          // that it belongs to him
+          get_at(field_cnt-1)->XER_decode(*xer_descr(field_cnt-1), reader, flavor | USE_NIL, flavor2 | USE_NIL_PARENT_TAG, 0);
+          already_processed = TRUE;
+          continue;
         } // type has USE-NIL
-
+        
         if (parent_tag) {
           const char *prefix = (const char*)reader.Prefix();
           // prefix may be NULL, control_ns->px is never NULL or empty
@@ -5311,7 +5346,7 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
             continue;
           }
         }
-
+        
         // Nobody wanted the attribute. That is an error.
         ec_0.set_msg(" "); ec_1.set_msg(" ");
         TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,
@@ -5333,7 +5368,7 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
       // AdvanceAttribute did MoveToElement. Move into the content (if any).
       if (!reader.IsEmptyElement()) reader.Read();
     } // end if (own_tag)
-
+    
     /* * * * * * * * Non-attributes (elements) * * * * * * * * * * * */
     embed_values_dec_struct_t* emb_val = 0;
     bool emb_val_optional = false;
@@ -5450,7 +5485,7 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
               static_cast<Enum_Type*>(use_order->get_at(i - begin))
               ->from_int(in_dex);
               Base_Type *b = jumbled->get_at(k);
-              b->XER_decode(*jumbled->xer_descr(k), reader, flavor, emb_val);
+              b->XER_decode(*jumbled->xer_descr(k), reader, flavor, flavor2, emb_val);
               field_name_found = true;
               break;
             }
@@ -5476,7 +5511,7 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
                 static_cast<Enum_Type*>(use_order->get_at(i - begin))
                 ->from_int(in_dex);
                 Base_Type *b = jumbled->get_at(k);
-                b->XER_decode(*jumbled->xer_descr(k), reader, flavor, emb_val);
+                b->XER_decode(*jumbled->xer_descr(k), reader, flavor, flavor2, emb_val);
                 last_any_elem = k;
                 field_name_found = true;
                 break;
@@ -5561,12 +5596,12 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
                 optional_any_elem_check = opt_field->XER_check_any_elem(reader, next_field_name, tag_closed);
               }
             }
-            if (optional_any_elem_check) {
+            if (optional_any_elem_check && !already_processed) {
               int new_flavor = flavor ;
               if (i == field_cnt-1) new_flavor |= (p_td.xer_bits & USE_NIL);
               if (tag_closed)       new_flavor |= PARENT_CLOSED;
 
-              get_at(i)->XER_decode(*xer_descr(i), reader, new_flavor, emb_val);
+              get_at(i)->XER_decode(*xer_descr(i), reader, new_flavor, flavor2, emb_val);
             }
           }
           if (!get_at(i)->is_present()) {
@@ -5808,14 +5843,15 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
   }
   else if (JSON_TOKEN_OBJECT_START != token) {
     return JSON_ERROR_INVALID_TOKEN;
-  }
-  bound_flag = TRUE;
+  } 
   
   const int field_count = get_count();
   
   // initialize meta info states
   int* metainfo = new int[field_count];
+  boolean* field_found = new boolean[field_count];
   for (int i = 0; i < field_count; ++i) {
+    field_found[i] = FALSE;
     metainfo[i] = (NULL != fld_descr(i)->json && fld_descr(i)->json->metainfo_unbound) ?
       JSON_METAINFO_NONE : JSON_METAINFO_NOT_APPLICABLE;
   }
@@ -5855,6 +5891,7 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
         }
         if (strlen(expected_name) == name_len &&
             0 == strncmp(expected_name, name, name_len)) {
+          field_found[field_idx] = TRUE;
           break;
         }
       }
@@ -5942,7 +5979,7 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
       // no meta info was found for this field, report the delayed error
       JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_FIELD_TOKEN_ERROR, fld_name(field_idx));
     }
-    else if (!field->is_bound()) {
+    else if (!field_found[field_idx]) {
       if (NULL != fld_descr(field_idx)->json && NULL != fld_descr(field_idx)->json->default_value) {
         get_at(field_idx)->JSON_decode(*fld_descr(field_idx), DUMMY_BUFFER, p_silent);
       }
@@ -6145,7 +6182,7 @@ void Empty_Record_Type::decode(const TTCN_Typedescriptor_t& p_td,
     for (int success=reader.Read(); success==1; success=reader.Read()) {
       if (reader.NodeType() == XML_READER_TYPE_ELEMENT) break;
     }
-    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, 0);
+    XER_decode(*(p_td.xer), reader, XER_coding | XER_TOPLEVEL, XER_NONE, 0);
     size_t bytes = reader.ByteConsumed();
     p_buf.set_pos(bytes);
     break;}
@@ -6268,7 +6305,7 @@ int Empty_Record_Type::XER_encode(const XERdescriptor_t& p_td,
 }
 
 int Empty_Record_Type::XER_decode(const XERdescriptor_t& p_td,
-  XmlReaderWrap& reader, unsigned int flavor, embed_values_dec_struct_t*)
+  XmlReaderWrap& reader, unsigned int flavor, unsigned int /*flavor2*/, embed_values_dec_struct_t*)
 {
   int exer = is_exer(flavor);
   bound_flag = true;
diff --git a/etc/xsd/TPD.xsd b/etc/xsd/TPD.xsd
index 7d952d119..81d6d5550 100644
--- a/etc/xsd/TPD.xsd
+++ b/etc/xsd/TPD.xsd
@@ -105,6 +105,7 @@ XML Schema for TITAN_Project_File_Information
                     <xs:element name="suppressWarnings" minOccurs="0" maxOccurs="1" type="xs:boolean" />
                     <xs:element name="outParamBoundness" minOccurs="0" maxOccurs="1" type="xs:boolean" />
                     <xs:element name="omitInValueList" minOccurs="0" maxOccurs="1" type="xs:boolean" />
+                    <xs:element name="warningsForBadVariants" minOccurs="0" maxOccurs="1" type="xs:boolean" />
                     <xs:element name="quietly" minOccurs="0" maxOccurs="1" type="xs:boolean" />
                     <xs:element name="namingRules" minOccurs="0" maxOccurs="1" type="xs:normalizedString" />
                     <xs:element name="disableSubtypeChecking" minOccurs="0" maxOccurs="1" type="xs:boolean" />
@@ -408,6 +409,7 @@ XML Schema for TITAN_Project_File_Information
 				<xs:complexType>
 					<xs:attribute name="name" type="xs:normalizedString" use="required" />
 					<xs:attribute name="projectLocationURI" type="xs:normalizedString" use="required" />
+					<xs:attribute name="tpdName" type="xs:normalizedString" use="optional" />
 				</xs:complexType>
 			  </xs:element>
 			</xs:sequence>
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script
index 2d389814d..2bf1fac40 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script
@@ -7077,7 +7077,7 @@ module ModuleA {
 }
 <END_MODULE>
 <RESULT IF_PASS COUNT 1>
-(?im)\berror\b.+?invalid.+?field.+?reference.+?Nonexi08
+(?im)\berror\b.+?Referencing.+?fields.+?component.+?not.+?allowed
 <END_RESULT>
 <RESULT IF_PASS COUNT 1>
 (?is)\berror:
diff --git a/function_test/Semantic_Analyser/xer/bogus_SE.ttcn b/function_test/Semantic_Analyser/xer/bogus_SE.ttcn
index 191d38250..c531ba810 100644
--- a/function_test/Semantic_Analyser/xer/bogus_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/bogus_SE.ttcn
@@ -8,7 +8,7 @@
 module bogus {	//^In TTCN-3 module `bogus'://
 
 type integer i //^In type definition//
-  with { variant "variant" } //^warning: in variant attribute.+?syntax error, unexpected XIdentifier, expecting \$end//
+  with { variant "variant" } //^error: in variant attribute.+?syntax error, unexpected XIdentifier, expecting \$end//
 
 }
 with {
diff --git a/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp b/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp
index e857b51ce..3cd779dfe 100644
--- a/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp
@@ -536,6 +536,229 @@ testcase decode_multi_nil() runs on Nil {
 
 /* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
 
+// Encoding nillable field, which is a record type without attributes
+
+type record NilTypeRec {
+  record {
+    TypeWithoutAttr nil optional
+  } field
+} with {
+  variant(field) "useNil";
+}
+
+type record TypeWithoutAttr {
+  charstring inner_field
+}
+
+const NilTypeRec c_nil_rec_absent := {
+	field := {
+		nil := omit
+	}
+};
+
+const universal charstring str_nil_rec_absent :=
+"<NilTypeRec xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\n" &
+"\t<field xsi:nil='true'/>\n" &
+"</NilTypeRec>\n\n";
+
+const NilTypeRec c_nil_rec_present_no_attr := {
+	field := {
+		nil := {
+			inner_field := "field"
+		}
+	}
+};
+
+const universal charstring str_nil_rec_present_no_attr :=
+"<NilTypeRec>\n" &
+"\t<field>\n" &
+"\t\t<inner_field>field</inner_field>\n" &
+"\t</field>\n" &
+"</NilTypeRec>\n\n";
+
+DECLARE_EXER_ENCODERS(NilTypeRec, typerec);
+
+testcase encode_NilTypeRec() runs on Nil {
+  CHECK_METHOD(exer_enc_typerec, c_nil_rec_absent, str_nil_rec_absent);
+  CHECK_METHOD(exer_enc_typerec, c_nil_rec_present_no_attr, str_nil_rec_present_no_attr);
+}
+
+testcase decode_NilTypeRec() runs on Nil {
+  CHECK_DECODE(exer_dec_typerec, str_nil_rec_absent, NilTypeRec, c_nil_rec_absent);
+  CHECK_DECODE(exer_dec_typerec, str_nil_rec_present_no_attr, NilTypeRec, c_nil_rec_present_no_attr);
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+// Encoding nillable field, which is a record type with attributes
+
+type record NilTypeRecInAttr {
+  record {
+    TypeWithAttr nil optional
+  } field
+} with {
+  variant(field) "useNil";
+}
+
+type record TypeWithAttr {
+  charstring attr1 optional,
+  charstring inner_field
+} with {
+  variant (attr1) "attribute";
+}
+
+const NilTypeRecInAttr c_nil_rec_absent2 := {
+	field := {
+		nil := omit
+	}
+};
+
+const universal charstring str_nil_rec_absent2 :=
+"<NilTypeRecInAttr xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\n" &
+"\t<field xsi:nil='true'/>\n" &
+"</NilTypeRecInAttr>\n\n";
+
+const NilTypeRecInAttr c_nil_rec_present_attr_omit := {
+	field := {
+		nil := {
+			attr1 := omit,
+			inner_field := "field"
+		}
+	}
+};
+
+const universal charstring str_nil_rec_present_attr_omit :=
+"<NilTypeRecInAttr>\n" &
+"\t<field>\n" &
+"\t\t<inner_field>field</inner_field>\n" &
+"\t</field>\n" &
+"</NilTypeRecInAttr>\n\n";
+
+const NilTypeRecInAttr c_nil_rec_present_attr_present := {
+	field := {
+		nil := {
+			attr1 := "attr",
+			inner_field := "field"
+		}
+	}
+};
+
+const universal charstring str_nil_rec_present_attr_present :=
+"<NilTypeRecInAttr>\n" &
+"\t<field attr1='attr'>\n" &
+"\t\t<inner_field>field</inner_field>\n" &
+"\t</field>\n" &
+"</NilTypeRecInAttr>\n\n";
+
+DECLARE_EXER_ENCODERS(NilTypeRecInAttr, typerecinattr);
+
+testcase encode_NilTypeRecInAttr() runs on Nil {
+  CHECK_METHOD(exer_enc_typerecinattr, c_nil_rec_absent2, str_nil_rec_absent2);
+  CHECK_METHOD(exer_enc_typerecinattr, c_nil_rec_present_attr_omit, str_nil_rec_present_attr_omit);
+  CHECK_METHOD(exer_enc_typerecinattr, c_nil_rec_present_attr_present, str_nil_rec_present_attr_present);
+}
+
+testcase decode_NilTypeRecInAttr() runs on Nil {
+  CHECK_DECODE(exer_dec_typerecinattr, str_nil_rec_absent2, NilTypeRecInAttr, c_nil_rec_absent2);
+  CHECK_DECODE(exer_dec_typerecinattr, str_nil_rec_present_attr_omit, NilTypeRecInAttr, c_nil_rec_present_attr_omit);
+  //CHECK_DECODE(exer_dec_typerecinattr, str_nil_rec_present_attr_present, NilTypeRecInAttr, c_nil_rec_present_attr_present);
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
+// Encoding nillable field with attribute, which is a record type that has attributes
+
+type record NilTypeRecAttr {
+  record {
+    charstring outer_attr optional,
+    TypeWithAttr nil optional
+  } field
+} with {
+  variant(field.outer_attr) "attribute";
+  variant(field) "useNil";
+}
+
+const NilTypeRecAttr c_nil_absent := {
+	field := {
+		outer_attr := "outer",
+		nil := omit
+	}
+};
+
+const universal charstring str_nil_absent :=
+"<NilTypeRecAttr xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\n" &
+"\t<field outer_attr='outer' xsi:nil='true'/>\n" &
+"</NilTypeRecAttr>\n\n";
+
+const NilTypeRecAttr c_nil_present := {
+	field := {
+		outer_attr := "outer",
+		nil := {
+			attr1 := "a",
+			inner_field := "field"
+		}
+	}
+};
+
+const universal charstring str_nil_present :=
+"<NilTypeRecAttr>\n" &
+"\t<field outer_attr='outer' attr1='a'>\n" &
+"\t\t<inner_field>field</inner_field>\n" &
+"\t</field>\n" &
+"</NilTypeRecAttr>\n\n";
+
+const NilTypeRecAttr c_nil_present2 := {
+	field := {
+		outer_attr := omit,
+		nil := {
+			attr1 := "a",
+			inner_field := "field"
+		}
+	}
+};
+
+const universal charstring str_nil_present2 :=
+"<NilTypeRecAttr>\n" &
+"\t<field attr1='a'>\n" &
+"\t\t<inner_field>field</inner_field>\n" &
+"\t</field>\n" &
+"</NilTypeRecAttr>\n\n";
+
+const NilTypeRecAttr c_nil_present_attr_absent := {
+	field := {
+		outer_attr := "outer",
+		nil := {
+			attr1 := omit,
+			inner_field := "field"
+		}
+	}
+};
+
+const universal charstring str_nil_present_attr_absent :=
+"<NilTypeRecAttr>\n" &
+"\t<field outer_attr='outer'>\n" &
+"\t\t<inner_field>field</inner_field>\n" &
+"\t</field>\n" &
+"</NilTypeRecAttr>\n\n";
+
+DECLARE_EXER_ENCODERS(NilTypeRecAttr, typeattr);
+
+testcase encode_NilTypeRecAttr() runs on Nil {
+  CHECK_METHOD(exer_enc_typeattr, c_nil_absent, str_nil_absent);
+  CHECK_METHOD(exer_enc_typeattr, c_nil_present, str_nil_present);
+  CHECK_METHOD(exer_enc_typeattr, c_nil_present2, str_nil_present2);
+  CHECK_METHOD(exer_enc_typeattr, c_nil_present_attr_absent, str_nil_present_attr_absent);
+}
+
+testcase decode_NilTypeRecAttr() runs on Nil {
+  CHECK_DECODE(exer_dec_typeattr, str_nil_absent, NilTypeRecAttr, c_nil_absent);
+  CHECK_DECODE(exer_dec_typeattr, str_nil_present, NilTypeRecAttr, c_nil_present);
+  CHECK_DECODE(exer_dec_typeattr, str_nil_present2, NilTypeRecAttr, c_nil_present2);
+  CHECK_DECODE(exer_dec_typeattr, str_nil_present_attr_absent, NilTypeRecAttr, c_nil_present_attr_absent);
+}
+
+/* ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** */
+
 control {
   execute(encode_nil_absent());
   execute(encode_nil_present());
@@ -561,6 +784,15 @@ control {
 
   execute(encode_multi_nil());
   execute(decode_multi_nil());
+
+  execute(encode_NilTypeRec());
+  execute(decode_NilTypeRec());
+
+  execute(encode_NilTypeRecInAttr());
+  execute(decode_NilTypeRecInAttr());
+
+  execute(encode_NilTypeRecAttr());
+  execute(decode_NilTypeRecAttr());
 }
 
 }
diff --git a/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn b/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn
index bac9ef501..2f45065b9 100644
--- a/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          UsefulTtcn3Types.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module UsefulTtcn3Types {
 
 
diff --git a/regression_test/XML/HR49727/XSD.ttcn b/regression_test/XML/HR49727/XSD.ttcn
index fe79336e9..972cf6686 100644
--- a/regression_test/XML/HR49727/XSD.ttcn
+++ b/regression_test/XML/HR49727/XSD.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          XSD.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module XSD {
 
 import from UsefulTtcn3Types all;
diff --git a/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn b/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn
index bac9ef501..2f45065b9 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          UsefulTtcn3Types.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module UsefulTtcn3Types {
 
 
diff --git a/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn b/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn
index fe79336e9..972cf6686 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          XSD.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module XSD {
 
 import from UsefulTtcn3Types all;
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_including_module_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_including_module_e.ttcn
new file mode 100644
index 000000000..a84927226
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_including_module_e.ttcn
@@ -0,0 +1,63 @@
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R3C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          www_example_org_including_module_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Feb 25 18:57:57 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- including_module_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/including/module/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_including_module {
+
+
+import from XSD all;
+
+
+type record Type
+{
+	XSD.String base
+}
+with {
+  variant (base) "untagged";
+};
+
+
+type Type Elem
+with {
+  variant "element";
+};
+
+
+}
+with {
+  encode "XML";
+  variant "namespace as 'www.example.org/including/module'";
+  variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+  variant "elementFormQualified";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn
index bac9ef501..2f45065b9 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          UsefulTtcn3Types.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module UsefulTtcn3Types {
 
 
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn
index 5205cfda3..59c9f3640 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          XSD.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module XSD {
 
 import from UsefulTtcn3Types all;
diff --git a/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn b/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn
index bac9ef501..2f45065b9 100644
--- a/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          UsefulTtcn3Types.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module UsefulTtcn3Types {
 
 
diff --git a/regression_test/XML/XmlWorkflow/src/XSD.ttcn b/regression_test/XML/XmlWorkflow/src/XSD.ttcn
index fe79336e9..972cf6686 100644
--- a/regression_test/XML/XmlWorkflow/src/XSD.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/XSD.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          XSD.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module XSD {
 
 import from UsefulTtcn3Types all;
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest.prj b/regression_test/XML/XmlWorkflow/src/xmlTest.prj
index 61f6eb52c..7626b6be9 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest.prj
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest.prj
@@ -155,6 +155,8 @@
 		<File path="../xsd/type_substitution_complex_cascade.xsd" />
 		<File path="../xsd/type_substitution_simple_cascade.xsd" />
 		<File path="../xsd/attribute_enumeration_variant.xsd" />
+		<File path="../xsd/including_module.xsd" />
+		<File path="../xsd/included_without_namespace.xsd" />
             </File_Group>
             <File_Group name="XmlTest_xsds" >
                 <File path="../XmlTest_xsds/XmlTest_boolean.xsd" />
@@ -386,6 +388,7 @@
 	        <File path="../XmlTest_expectedTtcns/www_XmlTest_org_complex_unique_e.ttcn" />
 	        <File path="../XmlTest_expectedTtcns/www_XmlTest_org_element_nameInheritance_e.ttcn" />
 	        <File path="../XmlTest_expectedTtcns/www_example_org_attribute_enumeration_variant_e.ttcn" />
+	        <File path="../XmlTest_expectedTtcns/www_example_org_including_module_e.ttcn" />
             </File_Group>
             <File_Group name="XmlTest_src" >
                 <File path="xmlTest_Shell.ttcn" />
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn
index bf5f0da33..0f3edcfeb 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn
@@ -1607,6 +1607,19 @@ group ComplexType {
     }
   }//tc_
 
+  //=========================================================================
+  //  tc_complex_include_without_namespace
+  //=========================================================================
+  //Positive test: The including schema includes a schema without a namespace
+  testcase tc_complex_include_without_namespace() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn including_module.xsd included_without_namespace.xsd","",c_shell_successWithoutWarningAndError);
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_including_module_e.ttcn","www_example_org_including_module.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
   //=========================================================================
   //  tc_complex_include_neg1_converter
   //=========================================================================
@@ -1895,6 +1908,21 @@ group Elements{
     f_encDecTest_Anything1(vl_pdu,vl_expectedEncodedPdu,vl_expectedDecodedPdu);
   }//tc_
 
+  testcase tc_element_anyType_embed_encDec() runs on xmlTest_CT {
+    var Anything1 vl_pdu:= {
+      embed_values := {"The ordered ", " has arrived ", "Wait for further information.", "Ok"},
+      attr :={"someattr=\"1\""},
+      elem_list := {
+       "<ns:a xmlns:ns=\"http://www.example.org/other\">product</ns:a>",
+       "<ns:b xmlns:ns=\"http://www.example.org/other_1\">2</ns:b>",
+       "<ns:c xmlns:ns=\"http://www.example.org/other_13\">2</ns:c>"
+      }
+    }
+    var charstring vl_expectedEncodedPdu:=
+      "<ns31:anything1 xmlns:ns31='www.XmlTest.org/element_anyType' someattr=\"1\">The ordered <ns:a xmlns:ns=\"http://www.example.org/other\">product</ns:a> has arrived <ns:b xmlns:ns=\"http://www.example.org/other_1\">2</ns:b>Wait for further information.<ns:c xmlns:ns=\"http://www.example.org/other_13\">2</ns:c>Ok</ns31:anything1>\n";
+    f_encDecTest_Anything1(vl_pdu,vl_expectedEncodedPdu,vl_pdu);
+  }//tc_
+
   //===============================================================
   //  tc_element_anyType_deeper_encDec
   //===============================================================
@@ -2602,6 +2630,7 @@ control {
   execute(tc_complex_unique_converter());
   execute(tc_complex_include_converter());
   execute(tc_complex_include_neg1_converter());
+  execute(tc_complex_include_without_namespace());
   execute(tc_complex_import_pos1_converter());
   execute(tc_complex_import_pos2_converter());
   execute(tc_complex_import_neg1_converter());
@@ -2623,6 +2652,7 @@ control {
   execute(tc_element_anyType_2attrOnly_encDec());//Passed
   execute(tc_element_anyType_elemOnly_encDec());//Passed, TR: HL29711
   execute(tc_element_anyType_encDec());//Passed, HL29711
+  execute(tc_element_anyType_embed_encDec());
   execute(tc_element_anyType_deeper_encDec());
   execute(tc_element_anyType_longer_encDec());
   execute(tc_element_recOfElements_converter()); //Passed: TR: HL27438
diff --git a/regression_test/XML/XmlWorkflow/xsd/included_without_namespace.xsd b/regression_test/XML/XmlWorkflow/xsd/included_without_namespace.xsd
new file mode 100644
index 000000000..d8da3d39c
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/included_without_namespace.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+ elementFormDefault="qualified" attributeFormDefault="unqualified">
+ 
+<xs:complexType name="Type">
+	<xs:simpleContent>
+		<xs:extension base="xs:string">
+		</xs:extension>
+	</xs:simpleContent>
+</xs:complexType>
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/including_module.xsd b/regression_test/XML/XmlWorkflow/xsd/including_module.xsd
new file mode 100644
index 000000000..b4ee23bc9
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/including_module.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema targetNamespace="www.example.org/including/module"
+   xmlns="www.example.org/including/module"
+   xmlns:xs="http://www.w3.org/2001/XMLSchema"
+   elementFormDefault="qualified"
+   attributeFormDefault="unqualified">
+
+<xs:include schemaLocation="included_without_namespace.xsd"/>
+
+<xs:element name="Elem" type="Type"/>
+
+</xs:schema>
diff --git a/regression_test/charstrOper/TcharstrOper.ttcn b/regression_test/charstrOper/TcharstrOper.ttcn
index f35d373e1..7bbd0c6af 100644
--- a/regression_test/charstrOper/TcharstrOper.ttcn
+++ b/regression_test/charstrOper/TcharstrOper.ttcn
@@ -387,6 +387,9 @@ type mycstr7 mycstr8 length(1)
 type charstring mycstr9 (mycstr2)
 type charstring mycstr10 length(0..infinity)  // Full set.
 
+type charstring mycstr11 (pattern "abc?xyz");
+type charstring mycstr12 (pattern @nocase "abc*xyz");
+
 const mycstr7 c_mycstr1 := "a"
 const mycstr9 c_mycstr2 := "abcd"
 
@@ -405,15 +408,21 @@ testcase charstrSubtypes() runs on charstrOper_comptype {
   var template mycstr4 vt_mycstr2 := "ab"  // Length with range.
   var template mycstr6 vt_mycstr3 := "a"  // Value range list.
   var template mycstr7 vt_mycstr4 := vt_mycstr3  // Value range with length.
+  var template mycstr11 vt_mycstr5 := "abc1xyz"; // Pattern (case sensitive)
+  var template mycstr12 vt_mycstr6 := "abc123xyz"; // Pattern (case insensitive)
   var mycstr2 v_mycstr1 := valueof(vt_mycstr1)
   var mycstr4 v_mycstr2 := valueof(vt_mycstr2)
   var mycstr6 v_mycstr3 := valueof(vt_mycstr3)
   var mycstr7 v_mycstr4 := valueof(vt_mycstr4)
+  var mycstr11 v_mycstr5 := valueof(vt_mycstr5)
+  var mycstr12 v_mycstr6 := valueof(vt_mycstr6)
 
   if (valueof(vt_mycstr1) == v_mycstr1 and v_mycstr2 == valueof(vt_mycstr2)) { setverdict(pass) }
   else { setverdict(fail) }
   if (valueof(vt_mycstr3) == v_mycstr3 and v_mycstr4 == valueof(vt_mycstr4)) { setverdict(pass) }
   else { setverdict(fail) }
+  if (valueof(vt_mycstr5) == v_mycstr5 and v_mycstr6 == valueof(vt_mycstr6)) { setverdict(pass) }
+  else { setverdict(fail) }
   if (c_mycstr1 == f_cstr2() and " " == f_cstr1()) { setverdict(pass) }
   else { setverdict(fail) }
 }
diff --git a/regression_test/compileonly/mfgen-tpd/Makefile b/regression_test/compileonly/mfgen-tpd/Makefile
index 2a04889d7..680e14aa9 100644
--- a/regression_test/compileonly/mfgen-tpd/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/Makefile
@@ -23,15 +23,17 @@ DIRLIST := buildconfig_param invalid_buildconfig_param invalid_buildconfig_tpd H
 # The default target.
 ifeq ($(findstring c,$(MFGEN_FLAGS)),) # no -c
 #  Build in "reverse" order to reduce false positives
-all: BuildConsumer BuildSupplier BuildSubplier HP35732 HQ56829 BuildDirs HQ60308
+all: BuildConsumer BuildSupplier BuildSubplier HP35732 HQ56829 BuildDirs HQ60308 SearchPaths
 else
 # Build from supplier to consumer because central dirs must be ready
 # when the toplevel is built
-all: BuildSubplier BuildSupplier BuildConsumer COMMON NAS HP35732 HQ56829 BuildDirs
+all: BuildSubplier BuildSupplier BuildConsumer COMMON NAS HP35732 HQ56829 BuildDirs SearchPaths
 
 .NOTPARALLEL:
 endif
 
+WORKING_DIR := $(shell pwd)
+
 # The run target is not normally used in compileonly.
 # It can be built manually.
 run:
@@ -82,16 +84,21 @@ NAS:
 	&& $(TTCN3_DIR)/bin/ttcn3_makefilegen -fD $(MFGEN_FLAGS) $(COVERAGE_FLAG) -t ../NAS_EPS_v9.7.0_CNL113729.tpd \
 	&& $(MAKEPROG)
 
+SearchPaths:
+	cd search_paths/main && \
+	$(TTCN3_DIR)/bin/ttcn3_makefilegen -fg -t Main.tpd -I/something -I$(WORKING_DIR)/search_paths/dep3/Test3/ -I$(WORKING_DIR)/search_paths/dep2/Test2 -I$(WORKING_DIR)/search_paths/dep2/dep2_1/Test2_1 && \
+	cd bin && $(MAKEPROG)
+
 /tmp/issue:
 	-touch $@
 
 clean:
 	@for dir in $(DIRLIST); do $(MAKE) -C $$dir $@ || exit; done
 	if [ -f HQ60308/Makefile ]; then $(MAKEPROG) -C HQ60308 $@ || exit ; else : ; fi
-	-rm -rf consumer/bin supplier/bin subplier/bin HP35732 COMMON/bin NAS_EPS_v9.7.0_CNL113729/bin HQ60308/Makefile
+	-rm -rf consumer/bin supplier/bin subplier/bin HP35732 COMMON/bin NAS_EPS_v9.7.0_CNL113729/bin HQ60308/Makefile search_paths/main/bin
 
 distclean: clean
 	-rm -f *.out
 
-.PHONY: all clean distclean run BuildDirs BuildConsumer BuildSupplier BuildSubplier HP35732 HQ56829 HQ56834 HQ56848 COMMON NAS HQ60308
+.PHONY: all clean distclean run BuildDirs BuildConsumer BuildSupplier BuildSubplier HP35732 HQ56829 HQ56834 HQ56848 COMMON NAS HQ60308 SearchPaths 
 
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.cfg b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.cfg
new file mode 100644
index 000000000..8fe1bdf00
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.cfg
@@ -0,0 +1,8 @@
+[LOGGING]
+LogFile := "../log/MyExample-%n.log"
+FileMask := LOG_ALL
+ConsoleMask := ERROR | TESTCASE | STATISTICS
+LogSourceInfo := Stack
+
+[EXECUTE]
+MyExample.control
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.ttcn
new file mode 100644
index 000000000..d2eace0bc
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/MyExample.ttcn
@@ -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
+ ******************************************************************************/
+// TTCN-3 version of "Hello, world!"
+module MyExample
+{
+
+import from MyExample2 all;
+import from MyExample2_1 all;
+import from MyExample3 all;
+
+type port PCOType message
+{
+  inout charstring;
+}
+
+type component MTCType
+{
+  port PCOType MyPCO_PT;
+}
+
+testcase tc_HelloW() runs on MTCType system MTCType
+{
+  map(mtc:MyPCO_PT, system:MyPCO_PT);
+  MyPCO_PT.send("Hello, world!");
+  setverdict(pass);
+}
+
+testcase tc_HelloW2() runs on MTCType system MTCType
+{
+  timer TL_T := 15.0;
+  map(mtc:MyPCO_PT, system:MyPCO_PT);
+  MyPCO_PT.send("Hello, world!");
+  TL_T.start;
+  alt {
+    [] MyPCO_PT.receive("Hello, TTCN-3!") { TL_T.stop; setverdict(pass); }
+    [] TL_T.timeout { setverdict(inconc); }
+    [] MyPCO_PT.receive { TL_T.stop; setverdict(fail); }
+  }
+}
+
+control
+{
+  execute(tc_HelloW());
+  execute(tc_HelloW2());
+}
+}
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.cc b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.cc
new file mode 100644
index 000000000..456c41d30
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.cc
@@ -0,0 +1,108 @@
+// This Test Port skeleton source file was generated by the
+// TTCN-3 Compiler of the TTCN-3 Test Executor version CRL 113 200/4 R2A
+// for Arpad Lovassy (earplov@esekilxxen1841) on Tue Jul 22 16:49:55 2014
+
+// Copyright Ericsson Telecom AB 2000-2016
+
+// You may modify this file. Complete the body of empty functions and// add your member functions here.
+
+#include "PCOType.hh"
+#include "memory.h"
+
+#include <stdio.h>
+
+namespace MyExample {
+
+PCOType::PCOType(const char *par_port_name)
+	: PCOType_BASE(par_port_name)
+{
+
+}
+
+PCOType::~PCOType()
+{
+
+}
+
+void PCOType::set_parameter(const char * /*parameter_name*/,
+	const char * /*parameter_value*/)
+{
+
+}
+
+void PCOType::Event_Handler(const fd_set *read_fds,
+	const fd_set *write_fds, const fd_set *error_fds,
+	double time_since_last_call)
+{
+	size_t buf_len = 0, buf_size = 32;
+	char *buf = (char*)Malloc(buf_size);
+	for ( ; ; ) {
+		int c = getc(stdin);
+		if (c == EOF) {
+			if (buf_len > 0) incoming_message(CHARSTRING(buf_len, buf));
+			Uninstall_Handler();
+			break;
+		} else if (c == '\n') {
+			incoming_message(CHARSTRING(buf_len, buf));
+			break;
+		} else {
+			if (buf_len >= buf_size) {
+				buf_size *= 2;
+				buf = (char*)Realloc(buf, buf_size);
+			}
+			buf[buf_len++] = c;
+		}
+	}
+	Free(buf);
+}
+
+/*void PCOType::Handle_Fd_Event(int fd, boolean is_readable,
+	boolean is_writable, boolean is_error) {}*/
+
+void PCOType::Handle_Fd_Event_Error(int /*fd*/)
+{
+
+}
+
+void PCOType::Handle_Fd_Event_Writable(int /*fd*/)
+{
+
+}
+
+void PCOType::Handle_Fd_Event_Readable(int /*fd*/)
+{
+
+}
+
+/*void PCOType::Handle_Timeout(double time_since_last_call) {}*/
+
+void PCOType::user_map(const char *system_port)
+{
+	fd_set readfds;
+	FD_ZERO(&readfds);
+	FD_SET(fileno(stdin), &readfds);
+	Install_Handler(&readfds, NULL, NULL, 0.0);
+}
+
+void PCOType::user_unmap(const char *system_port)
+{
+	Uninstall_Handler();
+}
+
+void PCOType::user_start()
+{
+
+}
+
+void PCOType::user_stop()
+{
+
+}
+
+void PCOType::outgoing_send(const CHARSTRING& send_par)
+{
+	puts((const char*)send_par);
+	fflush(stdout);
+}
+
+} /* end of namespace */
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.hh b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.hh
new file mode 100644
index 000000000..b86781a55
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test/src/PCOType.hh
@@ -0,0 +1,48 @@
+// This Test Port skeleton header file was generated by the
+// TTCN-3 Compiler of the TTCN-3 Test Executor version CRL 113 200/4 R2A
+// for Arpad Lovassy (earplov@esekilxxen1841) on Tue Jul 22 16:49:55 2014
+
+// Copyright Ericsson Telecom AB 2000-2016
+
+// You may modify this file. Add your attributes and prototypes of your
+// member functions here.
+
+#ifndef PCOType_HH
+#define PCOType_HH
+
+#include "MyExample.hh"
+
+namespace MyExample {
+
+class PCOType : public PCOType_BASE {
+public:
+	PCOType(const char *par_port_name = NULL);
+	~PCOType();
+
+	void set_parameter(const char *parameter_name,
+		const char *parameter_value);
+
+	void Event_Handler(const fd_set *read_fds,
+		const fd_set *write_fds, const fd_set *error_fds,
+		double time_since_last_call);
+
+private:
+	/* void Handle_Fd_Event(int fd, boolean is_readable,
+		boolean is_writable, boolean is_error); */
+	void Handle_Fd_Event_Error(int fd);
+	void Handle_Fd_Event_Writable(int fd);
+	void Handle_Fd_Event_Readable(int fd);
+	/* void Handle_Timeout(double time_since_last_call); */
+protected:
+	void user_map(const char *system_port);
+	void user_unmap(const char *system_port);
+
+	void user_start();
+	void user_stop();
+
+	void outgoing_send(const CHARSTRING& send_par);
+};
+
+} /* end of namespace */
+
+#endif
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test1/DepTpd1.tpd b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test1/DepTpd1.tpd
new file mode 100644
index 000000000..12b46977d
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep1/Test1/DepTpd1.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DepTpd1</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="../Test/src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MyExample.cfg" relativeURI="../Test/src/MyExample.cfg"/>
+    <FileResource projectRelativePath="src/MyExample.ttcn" relativeURI="../Test/src/MyExample.ttcn"/>
+    <FileResource projectRelativePath="src/PCOType.cc" relativeURI="../Test/src/PCOType.cc"/>
+    <FileResource projectRelativePath="src/PCOType.hh" relativeURI="../Test/src/PCOType.hh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin\DepTpd1.exe</targetExecutable>
+          <useGoldLinker>false</useGoldLinker>
+          <freeTextLinkerOptions></freeTextLinkerOptions>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MyExample.cfg</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test/src/MyExample2.ttcn b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test/src/MyExample2.ttcn
new file mode 100644
index 000000000..e362aae50
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test/src/MyExample2.ttcn
@@ -0,0 +1,11 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+module MyExample2
+{
+
+}
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test2/DepTpd2.tpd b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test2/DepTpd2.tpd
new file mode 100644
index 000000000..0f2802fb1
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/Test2/DepTpd2.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DepTpd2</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="DepTpd2_1" projectLocationURI="bad/dir/DepTpd2_1.tpd" />
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="../Test/src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MyExample2.ttcn" relativeURI="../Test/src/MyExample2.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin\Test.exe</targetExecutable>
+          <useGoldLinker>false</useGoldLinker>
+          <freeTextLinkerOptions></freeTextLinkerOptions>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MyExample.cfg</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test/src/MyExample2_1.ttcn b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test/src/MyExample2_1.ttcn
new file mode 100644
index 000000000..f54430c92
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test/src/MyExample2_1.ttcn
@@ -0,0 +1,11 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+module MyExample2_1
+{
+
+}
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test2_1/DepTpd2_1.tpd b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test2_1/DepTpd2_1.tpd
new file mode 100644
index 000000000..fa00cd263
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep2/dep2_1/Test2_1/DepTpd2_1.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DepTpd2_1</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="../Test/src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MyExample2_1.ttcn" relativeURI="../Test/src/MyExample2_1.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin\Test.exe</targetExecutable>
+          <useGoldLinker>false</useGoldLinker>
+          <freeTextLinkerOptions></freeTextLinkerOptions>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MyExample.cfg</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test/src/MyExample3.ttcn b/regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test/src/MyExample3.ttcn
new file mode 100644
index 000000000..1d647a50a
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test/src/MyExample3.ttcn
@@ -0,0 +1,11 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+module MyExample3
+{
+
+}
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test3/DepTpd3.tpd b/regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test3/DepTpd3.tpd
new file mode 100644
index 000000000..222b8e54f
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/dep3/Test3/DepTpd3.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DepTpd3</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="../Test/src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MyExample3.ttcn" relativeURI="../Test/src/MyExample3.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin\Test.exe</targetExecutable>
+          <useGoldLinker>false</useGoldLinker>
+          <freeTextLinkerOptions></freeTextLinkerOptions>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MyExample.cfg</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/main/Main.tpd b/regression_test/compileonly/mfgen-tpd/search_paths/main/Main.tpd
new file mode 100644
index 000000000..bca675feb
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/main/Main.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Main</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="DepTpd1" projectLocationURI="../dep1/Test1/DepTpd1.tpd" />
+    <ReferencedProject name="Second" tpdName="DepTpd2.tpd" projectLocationURI="../bad/path/Test.tpd" />
+    <ReferencedProject name="DepTpd3" projectLocationURI="../bad/path/Test.tpd" />
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MyMain.ttcn" relativeURI="src/MyMain.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin\TpdEnvVarTestMain.exe</targetExecutable>
+          <useGoldLinker>false</useGoldLinker>
+          <freeTextLinkerOptions></freeTextLinkerOptions>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/compileonly/mfgen-tpd/search_paths/main/src/MyMain.ttcn b/regression_test/compileonly/mfgen-tpd/search_paths/main/src/MyMain.ttcn
new file mode 100644
index 000000000..f6aa78fc3
--- /dev/null
+++ b/regression_test/compileonly/mfgen-tpd/search_paths/main/src/MyMain.ttcn
@@ -0,0 +1,13 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+module MyMain {
+	import from MyExample all;
+	import from MyExample2 all;
+	import from MyExample2_1 all;
+	import from MyExample3 all;
+}
diff --git a/regression_test/implicitOmit/IOAsn.asn b/regression_test/implicitOmit/IOAsn.asn
new file mode 100644
index 000000000..14685d45f
--- /dev/null
+++ b/regression_test/implicitOmit/IOAsn.asn
@@ -0,0 +1,26 @@
+--*****************************************************************************
+-- Copyright (c) 2000-2015 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
+--*****************************************************************************
+IOAsn
+DEFINITIONS
+
+AUTOMATIC TAGS ::= 
+
+BEGIN
+
+AsnSequence ::= SEQUENCE {
+  field1 ENUMERATED { enumVal } OPTIONAL,
+  field2 CHOICE {
+    alt1 INTEGER,
+    alt2 INTEGER
+  }       OPTIONAL,
+  field3 INTEGER OPTIONAL,
+  field4 INTEGER OPTIONAL
+}
+
+
+END
diff --git a/regression_test/implicitOmit/Makefile b/regression_test/implicitOmit/Makefile
index a892b09fd..991ba9d51 100644
--- a/regression_test/implicitOmit/Makefile
+++ b/regression_test/implicitOmit/Makefile
@@ -38,7 +38,7 @@ TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
 TTCN3_MODULES = io.ttcn
 
 # ASN.1 modules of this project:
-ASN1_MODULES =
+ASN1_MODULES = IOAsn.asn
 
 # C++ source & header files generated from the TTCN-3 & ASN.1 modules of
 # this project:
diff --git a/regression_test/implicitOmit/io.ttcn b/regression_test/implicitOmit/io.ttcn
index f326c6d11..1e20b6add 100644
--- a/regression_test/implicitOmit/io.ttcn
+++ b/regression_test/implicitOmit/io.ttcn
@@ -6,6 +6,9 @@
  * http://www.eclipse.org/legal/epl-v10.html
  ******************************************************************************/
 module io {
+
+import from IOAsn all;
+
 type component O {}
 
 
@@ -542,6 +545,16 @@ testcase tc_io_notused() runs on O
   else { setverdict(fail, c_notused_value); }
 }
 
+// Implicit omit on an ASN.1 record, with only empty brackets (which is considered as value list notation)
+template AsnSequence t_asn_rec_empty := { } with { optional "implicit omit" };
+template AsnSequence t_asn_rec_empty_exp := { omit, omit, omit, omit };
+
+testcase tc_io_asn_record_empty() runs on O
+{
+  if (log2str(t_asn_rec_empty) == log2str(t_asn_rec_empty_exp)) { setverdict(pass); }
+  else { setverdict(fail, t_asn_rec_empty); }
+}
+
 control {
 execute(tc12());
 execute(tc1ab());
@@ -584,6 +597,7 @@ execute(tc_HQ30261())
 
 execute(tc_io_embedded());
 execute(tc_io_notused());
+execute(tc_io_asn_record_empty());
 }
 with {
   optional "implicit omit"
diff --git a/regression_test/json/AttributeTestcases.ttcn b/regression_test/json/AttributeTestcases.ttcn
index 2c529e67f..c371411dd 100755
--- a/regression_test/json/AttributeTestcases.ttcn
+++ b/regression_test/json/AttributeTestcases.ttcn
@@ -58,6 +58,14 @@ testcase tc_name_as() runs on MTC {
   f_bool2verdict( match(f_dec_profile(f_enc_profile(p)), p) );
 }
 
+// testing attribute "name as ..." when the aliases are keywords of the JSON variant syntax
+testcase tc_name_as_with_keywords() runs on MTC {
+  var KeywordFields p := { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
+  var octetstring os := char2oct("{\"omit\":1,\"as\":2,\"null\":3,\"name\":4,\"value\":5,\"default\":6,\"extend\":7,\"metainfo\":8,\"for\":9,\"unbound\":10,\"JSON\":11}");
+  f_check_encoding(encoded := f_enc_kw_fld(p), expected := os);
+  f_bool2verdict( match(f_dec_kw_fld(os), p) );
+}
+
 //tests in case of selecting attributes:
 //if omit fields appear in the encoded
 //if all not omitted field value appear in the correct form
@@ -302,11 +310,49 @@ testcase tc_attribute_metainfo_for_unbound_negtest() runs on MTC {
   setverdict(pass);
 }
 
+// Decoding test for the 'metainfo for unbound' attribute, where all fields of an embedded record are
+// set to unbound by meta info. The decoded embedded record should be unbound.
+testcase tc_attribute_metainfo_for_unbound_empty_rec() runs on MTC {
+  var charstring dec_str := "{\"mynum\":99,\"mystr\":\"aa\", \"myRec\": {\"num\":null,\"metainfo num\":\"unbound\",\"str\":null,\"metainfo str\":\"unbound\" } }";
+  var MetainfoOuterRecord dec_val := f_dec_meta_outer_rec(char2oct(dec_str));
+  if (isbound(dec_val.myRec)) {
+    setverdict(fail, "Field myrec should be unbound after decoding, instead of ", dec_val.myRec);
+  }
+  var MetainfoOuterRecord dec_val_exp := { mynum := 99, mystr := "aa", myRec := - };
+  if (log2str(dec_val) != log2str(dec_val_exp)) {
+    setverdict(fail, "Invalid value after decoding. Expected: ", dec_val_exp, ", got: ", dec_val);
+  }
+  setverdict(pass);
+}
+
+// Encoding array types with unbound elements with meta info (attribute 'metainfo for unbound')
+// A JSON object with one key-value pair (containing the meta info) specifies that an element is unbound.
+testcase tc_attribute_metainfo_for_unbound_arrays() runs on MTC {
+  // test 1: pre-generated array type (record of integer)
+  var MetainfoRecOf recof := { 1, 2, -, 4 };
+  var octetstring os := char2oct("[1,2,{\"metainfo []\":\"unbound\"},4]");
+  f_check_encoding(encoded := f_enc_meta_recof(recof), expected := os);
+  f_bool2verdict( log2str(f_dec_meta_recof(os)) == log2str(recof) );
+  
+  // test 2: array of a structured type (set of MetainfoRecord)
+  var MetainfoSetOf setof := { { num := 3, str := "abc" }, -, { num := 6 } };
+  os := char2oct("[{\"num\":3,\"str\":\"abc\"},{\"metainfo []\":\"unbound\"},{\"num\":6,\"str\":null,\"metainfo str\":\"unbound\"}]");
+  f_check_encoding(encoded := f_enc_meta_setof(setof), expected := os);
+  f_bool2verdict( log2str(f_dec_meta_setof(os)) == log2str(setof) );
+  
+  // test 3: TTCN-3 array (float [3])
+  var MetainfoArray arr := { 3.0, 6.0, - };
+  os := char2oct("[3.000000,6.000000,{\"metainfo []\":\"unbound\"}]");
+  f_check_encoding(encoded := f_enc_meta_arr(arr), expected := os);
+  f_bool2verdict( log2str(f_dec_meta_arr(os)) == log2str(arr) );
+}
+
 
 control {
   execute(tc_NoAttributeOnUpperLevel())
   execute(tc_name_as_omit_as_null());
   execute(tc_name_as());
+  execute(tc_name_as_with_keywords());
   execute(tc_attribute_compactprint1());
   execute(tc_attribute_compactprint2());
   execute(tc_attribute_compactprintp());
@@ -319,5 +365,7 @@ control {
   execute(tc_attribute_optional_as_value());
   execute(tc_attribute_metainfo_for_unbound());
   execute(tc_attribute_metainfo_for_unbound_negtest());
+  execute(tc_attribute_metainfo_for_unbound_empty_rec());
+  execute(tc_attribute_metainfo_for_unbound_arrays());
 }
 }
diff --git a/regression_test/json/Functions.ttcn b/regression_test/json/Functions.ttcn
index 912df569b..5993c6714 100755
--- a/regression_test/json/Functions.ttcn
+++ b/regression_test/json/Functions.ttcn
@@ -98,6 +98,9 @@ external function f_enc_profile0(in Profile0 u) return octetstring
 external function f_enc_cba(in CBA u) return octetstring
   with { extension "prototype(convert)"; extension "encode(JSON)"; }
 
+external function f_enc_kw_fld(in KeywordFields u) return octetstring
+  with { extension "prototype(convert)"; extension "encode(JSON)"; }
+
 external function f_enc_stuff(in Stuff x) return octetstring
   with { extension "prototype(convert) encode(JSON)" }
 
@@ -115,6 +118,18 @@ external function f_enc_meta_rec(in MetainfoRecord x) return octetstring
   
 external function f_enc_meta_set(in MetainfoSet x) return octetstring
   with { extension "prototype(convert) encode(JSON)" }
+  
+external function f_enc_meta_outer_rec(in MetainfoOuterRecord x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+
+external function f_enc_meta_recof(in MetainfoRecOf x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+
+external function f_enc_meta_setof(in MetainfoSetOf x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+
+external function f_enc_meta_arr(in MetainfoArray x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
 
 // for ASN.1 types
 external function f_enc_seqofint(in SeqOfInt x) return octetstring
@@ -213,6 +228,9 @@ external function f_dec_profile0(in octetstring u) return Profile0
 external function f_dec_cba(in octetstring u) return CBA
   with { extension "prototype(convert)"; extension "decode(JSON)"; }
 
+external function f_dec_kw_fld(in octetstring u) return KeywordFields
+  with { extension "prototype(convert)"; extension "decode(JSON)"; }
+
 external function f_dec_stuff(in octetstring x) return Stuff
   with { extension "prototype(convert) decode(JSON)" }
 
@@ -233,6 +251,18 @@ external function f_dec_meta_rec(in octetstring x) return MetainfoRecord
   
 external function f_dec_meta_set(in octetstring x) return MetainfoSet
   with { extension "prototype(convert) decode(JSON)" }
+  
+external function f_dec_meta_outer_rec(in octetstring x) return MetainfoOuterRecord
+  with { extension "prototype(convert) decode(JSON)" }
+  
+external function f_dec_meta_recof(in octetstring x) return MetainfoRecOf
+  with { extension "prototype(convert) decode(JSON)" }
+  
+external function f_dec_meta_setof(in octetstring x) return MetainfoSetOf
+  with { extension "prototype(convert) decode(JSON)" }
+  
+external function f_dec_meta_arr(in octetstring x) return MetainfoArray
+  with { extension "prototype(convert) decode(JSON)" }
 
 // for ASN.1 types
 external function f_dec_seqofint(in octetstring x) return SeqOfInt
diff --git a/regression_test/json/Types.ttcn b/regression_test/json/Types.ttcn
index b3ed9a21a..c75b83cda 100755
--- a/regression_test/json/Types.ttcn
+++ b/regression_test/json/Types.ttcn
@@ -106,6 +106,33 @@ type set Product {
   variant(price) "JSON:omit as null"
 }
 
+type record KeywordFields {
+  integer a1,
+  integer a2,
+  integer a3,
+  integer a4,
+  integer a5,
+  integer a6,
+  integer a7,
+  integer a8,
+  integer a9,
+  integer a10,
+  integer a11
+}
+with {
+  variant(a1) "JSON: name as omit";
+  variant(a2) "JSON: name as as";
+  variant(a3) "JSON: name as null";
+  variant(a4) "JSON: name as name";
+  variant(a5) "JSON: name as value";
+  variant(a6) "JSON: name as default";
+  variant(a7) "JSON: name as extend";
+  variant(a8) "JSON: name as metainfo";
+  variant(a9) "JSON: name as for";
+  variant(a10) "JSON: name as unbound";
+  variant(a11) "JSON: name as JSON";
+}
+
 type union Thing {
   integer ival,
   float fval,
@@ -203,6 +230,29 @@ with {
   variant (num) " JSON : name as int ";
 }
 
+type record MetainfoInnerRecord {
+  integer num,
+  charstring str
+}
+with {
+  variant "JSON: metainfo for unbound";
+}
+
+type record MetainfoOuterRecord {
+  integer mynum,
+  charstring mystr,
+  MetainfoInnerRecord myRec
+}
+
+type record of integer MetainfoRecOf
+with { variant "JSON: metainfo for unbound"; }
+
+type set of MetainfoRecord MetainfoSetOf
+with { variant "JSON: metainfo for unbound"; }
+
+type float MetainfoArray[3]
+with { variant "JSON: metainfo for unbound"; }
+
 } with {
   encode "JSON";
 }
diff --git a/regression_test/negativeTest/UsefulTtcn3Types.ttcn b/regression_test/negativeTest/UsefulTtcn3Types.ttcn
index bac9ef501..2f45065b9 100644
--- a/regression_test/negativeTest/UsefulTtcn3Types.ttcn
+++ b/regression_test/negativeTest/UsefulTtcn3Types.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          UsefulTtcn3Types.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module UsefulTtcn3Types {
 
 
diff --git a/regression_test/negativeTest/XSD.ttcn b/regression_test/negativeTest/XSD.ttcn
index fe79336e9..972cf6686 100644
--- a/regression_test/negativeTest/XSD.ttcn
+++ b/regression_test/negativeTest/XSD.ttcn
@@ -1,10 +1,23 @@
-/******************************************************************************
- * Copyright (c) 2000-2015 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
- ******************************************************************************/
+/*******************************************************************************
+* Copyright (c) 2000-2016 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R4C                       
+*
+* 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
+*******************************************************************************/
+//
+//  File:          XSD.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
 module XSD {
 
 import from UsefulTtcn3Types all;
diff --git a/regression_test/predefFunction/regex_OK.ttcn b/regression_test/predefFunction/regex_OK.ttcn
index da2131fa5..61e4ab099 100644
--- a/regression_test/predefFunction/regex_OK.ttcn
+++ b/regression_test/predefFunction/regex_OK.ttcn
@@ -65,8 +65,8 @@ reg[34]  := regexp("333\rhhh "		,"*\r(*) "           ,0)
 reg[35]  := regexp("333\"hhh "		,"*\"(???)(?)*"    ,0)
 reg[36]  := regexp("333\"hhh "		,"*3?(?*??)[ ,1]"  ,0)
 reg[37]  := regexp("333\"hhh "		,"*3?(???)[1, ,2]" ,0) //In variable assignment//   //In operation `regexp\(\)'//   //In character string pattern//   //Charstring pattern: Duplicate character `.' in the character set//
-reg[38]  := regexp("333\"hhh "		,"*33?(???)[^a,1]" ,0)
-reg[39]  := regexp("333\"hhh "		,"333\"(???)*"     ,0)
+reg[38]  := regexp @nocase ("333\"hhh "		,"*33?(???)[^a,1]" ,0)
+reg[39]  := regexp @nocase ("333\"hhh "		,"333\"(???)*"     ,0)
 
 
 for (var integer j:=0; j<=39; j:=j+1) {
diff --git a/regression_test/recordOper/TrecordOper.ttcn b/regression_test/recordOper/TrecordOper.ttcn
index 8e35633ce..5ece0f955 100644
--- a/regression_test/recordOper/TrecordOper.ttcn
+++ b/regression_test/recordOper/TrecordOper.ttcn
@@ -1532,32 +1532,6 @@ testcase tc_record_partiallyInit13() runs on recordOper_mycomp {
     if(ispresent(vl_r.roi[0])){setverdict(fail)}else {setverdict(pass)};
     if(ispresent(vl_r.roi[90])){setverdict(fail)}else {setverdict(pass)};
   }
-
-// Must be able to make a difference between an unbound record and a bound record with unbound elements (TR: HT25776)
-type record TheRec {
-  integer num,
-  charstring str
-} with {
-  encode "JSON"
-}
-
-external function f_dec(in octetstring x) return TheRec
-  with { extension "prototype(convert) decode(JSON) errorbehavior(ALL:WARNING)" }
-
-testcase tc_record_unbound_diff() runs on recordOper_mycomp
-{
-  // Unbound record
-  var TheRec v1;
-  log(v1);
-  if (not isbound(v1)) { setverdict(pass); }
-  else { setverdict(fail, "expected unbound record, got: ", v1); }
-
-  // Create a bound, but empty record with the JSON decoder (decoding errors will only display warnings)
-  v1 := f_dec(char2oct("{}"));
-  log(v1);
-  if (isbound(v1)) { setverdict(pass); }
-  else { setverdict(fail, "record is unbound, expected bound record with unbound fields"); }
-}
     
 control {
  const recordOper_trecord cl_temp1:={ x1:=omit, x2:=3.4 }; // can constants be declared in the control part
@@ -1629,6 +1603,5 @@ control {
  execute(tc_record_omit2());
  execute(tc_record_omit_HQ51693());
  execute(tc_recordOf_omit());
- execute(tc_record_unbound_diff());
 }
 }
diff --git a/regression_test/templateCharstr/TtemplateCharstr.ttcn b/regression_test/templateCharstr/TtemplateCharstr.ttcn
index b91d83867..e4be883e0 100644
--- a/regression_test/templateCharstr/TtemplateCharstr.ttcn
+++ b/regression_test/templateCharstr/TtemplateCharstr.ttcn
@@ -87,6 +87,10 @@ template templateCharstr_rec templateCharstr_tRepeatFull := {
  x1:= pattern "6#(3,)", // at least 3
  x2:= pattern "6#(,3)", // at most  3
  x3:= pattern "6#(3,3)" }; // precisely 3
+template templateCharstr_rec templateCharstr_tPattern := {
+  x1 := pattern "abc?xyz",
+  x2 := pattern @nocase "abc?xyz",
+  x3 := pattern @nocase "abc*xyz" };
 
 testcase templateCharstrSpec() runs on templateCharstr_mycomp {
 var templateCharstr_rec x1,x2;		//specific value
@@ -468,6 +472,29 @@ if (not(match(x4,templateCharstr_tRepeatFull))) {setverdict(pass);}
  else {setverdict(fail);}
 }
 
+testcase templateCharstrPattern() runs on templateCharstr_mycomp {
+  var templateCharstr_rec x0, x1, x2, x3, x4; // pattern
+  x0 := { x1 := "abc,xyz",  x2 := "abc1xyz",   x3 := "abcxyz" };
+  x1 := { x1 := "abcpxyz",  x2 := "abcPxyz",   x3 := "abc123abcJKL.? \txyz" };
+  x2 := { x1 := "abcxyz",   x2 := "abcPxyz",   x3 := "abc123xyz" };  // fail first
+  x3 := { x1 := "abcpxyz",  x2 := "abc123xyz", x3 := "abc123xyz" };  // fail second
+  x4 := { x1 := "abcpxyz",  x2 := "abcPxyz",   x3 := "abc123xy z" }; // fail third
+
+  // match
+  if (match(x0, templateCharstr_tPattern)) { setverdict(pass); }
+  else { setverdict(fail); }
+  if (match(x1, templateCharstr_tPattern)) { setverdict(pass); }
+  else { setverdict(fail); }
+
+  // not match
+  if (not match(x2, templateCharstr_tPattern)) { setverdict(pass); }
+  else { setverdict(fail); }
+  if (not match(x3, templateCharstr_tPattern)) { setverdict(pass); }
+  else { setverdict(fail); }
+  if (not match(x4, templateCharstr_tPattern)) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
 testcase TR920() runs on templateCharstr_mycomp {
   var template charstring temp := pattern "[0-9]|[0-9][0-9]";
   const charstring x := "10a";
@@ -694,6 +721,7 @@ control {
  execute(templateCharstrEmptyPattern());
  execute(templateCharstrRepeat());
  execute(templateCharstrRepeatFull());
+ execute(templateCharstrPattern());
  execute(TR920());
  execute(templateCharstrPatternCat());
  execute(CatBasic())
diff --git a/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn b/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn
index 866571726..e028108d9 100644
--- a/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn
+++ b/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn
@@ -106,6 +106,14 @@ testcase tc_ispresent_legacy() runs on CT
   if (ispresent(t_enum_comp_list)) {
     setverdict(fail, t_enum_comp_list, " should not be present");
   }
+  
+  var template Everything vt_present := { 1, "a", { 1.0, '10AB'O }, { '110'B, '101'B }, { b := true }, Second };
+  if (not ispresent(vt_present)) {
+    setverdict(fail, vt_present, " should be present");
+  }
+  if (not ispresent(valueof(vt_present))) {
+    setverdict(fail, "value of ", vt_present, " should be present");
+  }
   setverdict(pass);
 }
 
diff --git a/regression_test/templateRecof/TtemplateRecof.ttcn b/regression_test/templateRecof/TtemplateRecof.ttcn
index ef9d65b1b..2ef04d300 100644
--- a/regression_test/templateRecof/TtemplateRecof.ttcn
+++ b/regression_test/templateRecof/TtemplateRecof.ttcn
@@ -624,6 +624,17 @@ testcase tc_isbound4ROI4() runs on mycomp {
   f(t_il4,5);
 }
 
+template integer tpard(template integer i) := i;
+
+testcase tc_HU56425() runs on mycomp {
+  template integer t_i := tpard(3);
+  template templateRecof_myrecof t_list := { tpard(t_i) };
+  // HU56425 refers to a code generation error (which caused a C++ compilation error), but let's check the resulting template anyway
+  template templateRecof_myrecof t_list_exp := { 3 };
+  if (log2str(t_list) == log2str(t_list_exp)) { setverdict(pass); }
+  else { setverdict(fail); }
+}
+
 
 control {
  execute(templateRecofSpec());
diff --git a/regression_test/unionOper/TunionOper.ttcn b/regression_test/unionOper/TunionOper.ttcn
index ac552deb8..eb52058c3 100644
--- a/regression_test/unionOper/TunionOper.ttcn
+++ b/regression_test/unionOper/TunionOper.ttcn
@@ -1003,6 +1003,98 @@ testcase tc_sideeffect2() runs on unionOper_mycomp {
     if(vl_newsize == vl_oldsize) {setverdict(pass)}else {setverdict(fail)}
     //log(vl_u.i);
   }
+  
+type set InnerSet {
+  integer num,
+  charstring str
+}
+
+type record InnerRec {
+  integer num,
+  charstring str
+}
+
+type union InnerUni {
+  InnerSet s,
+  InnerRec r
+}
+
+type record Outer {
+  InnerUni uni1,
+  InnerUni uni2,
+  record of InnerUni unis
+}
+
+modulepar Outer mp;
+
+// Test case for artf703093 : A union with an unbound alternative should itself be unbound
+// All unions in the module parameter and the variable declared in the test case should
+// be unbound (instead of being bound with an unbound alternative).
+// Copying the record containing the unions should be possible, too, without errors.
+testcase tc_union_with_unbound_alternative() runs on unionOper_mycomp {
+  if (isbound(mp.uni1)) {
+    setverdict(fail, "mp.uni1 is bound: ", mp.uni1);
+  }
+  if (isbound(mp.uni2)) {
+    setverdict(fail, "mp.uni2 is bound: ", mp.uni2);
+  }
+  if (isbound(mp.unis[0])) {
+    setverdict(fail, "mp.unis[0] is bound: ", mp.unis[0]);
+  }
+  if (isbound(mp.unis[1])) {
+    setverdict(fail, "mp.unis[1] is bound: ", mp.unis[1]);
+  }
+
+  var Outer x := {
+    uni1 := { r := { num := -, str := - } },
+    uni2 := { s := { num := -, str := - } },
+    unis := {
+      { r := { num := -, str := - } },
+      { s := { num := -, str := - } }
+    }
+  };
+  if (isbound(x.uni1)) {
+    setverdict(fail, "x.uni1 is bound: ", x.uni1);
+  }
+  if (isbound(x.uni2)) {
+    setverdict(fail, "x.uni2 is bound: ", x.uni2);
+  }
+  if (isbound(x.unis[0])) {
+    setverdict(fail, "x.unis[0] is bound: ", x.unis[0]);
+  }
+  if (isbound(x.unis[1])) {
+    setverdict(fail, "x.unis[1] is bound: ", x.unis[1]);
+  }
+
+  var Outer copy := x;
+  if (isbound(copy.uni1)) {
+    setverdict(fail, "copied x.uni1 is bound: ", copy.uni1);
+  }
+  if (isbound(copy.uni2)) {
+    setverdict(fail, "copied x.uni2 is bound: ", copy.uni2);
+  }
+  if (isbound(copy.unis[0])) {
+    setverdict(fail, "copied x.unis[0] is bound: ", copy.unis[0]);
+  }
+  if (isbound(copy.unis[1])) {
+    setverdict(fail, "copied x.unis[1] is bound: ", copy.unis[1]);
+  }
+
+  copy := mp;
+  if (isbound(copy.uni1)) {
+    setverdict(fail, "copied mp.uni1 is bound: ", copy.uni1);
+  }
+  if (isbound(copy.uni2)) {
+    setverdict(fail, "copied mp.uni2 is bound: ", copy.uni2);
+  }
+  if (isbound(copy.unis[0])) {
+    setverdict(fail, "copied mp.unis[0] is bound: ", copy.unis[0]);
+  }
+  if (isbound(copy.unis[1])) {
+    setverdict(fail, "copied mp.unis[1] is bound: ", copy.unis[1]);
+  }
+  setverdict(pass);
+}
 
 control {
  const typedefunionComp_myunion cl_1:= { x1:={ x1:=1, x2:=1.2 }}; // constant in control part
@@ -1062,5 +1154,6 @@ control {
  execute(tc_union_modify_ispresent());
  execute(tc_sideeffect1_ispresent());
  execute(tc_sideeffect2_ispresent());
+ execute(tc_union_with_unbound_alternative());
 }
 }
diff --git a/regression_test/unionOper/config.cfg b/regression_test/unionOper/config.cfg
index 8642eee12..2a491e116 100644
--- a/regression_test/unionOper/config.cfg
+++ b/regression_test/unionOper/config.cfg
@@ -6,6 +6,15 @@
 # http://www.eclipse.org/legal/epl-v10.html
 ###############################################################################
 [MODULE_PARAMETERS]
+mp := {
+  uni1 := { r := { } },
+  uni2 := { s := { } },
+  unis := {
+    { r := { } },
+    { s := { } }
+  }
+};
+
 [LOGGING]
 Logfile := "unionOper.log"
 FileMask := LOG_ALL
diff --git a/usrguide/referenceguide.doc b/usrguide/referenceguide.doc
index d780c326a9c56919c5c3d74f2a10445c235dc95e..42b3db6cb419c868904b2dc8b99dd1b64d91128c 100644
GIT binary patch
delta 189677
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
SNhc8wFR!o2+`MXL=Kl-OI7}b_

delta 181977
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
QYt^Zol;nAoFUn#5U)TGZBLDyZ

diff --git a/usrguide/userguide.doc b/usrguide/userguide.doc
index c329ef15705fe47031787ead346734086eda850c..8d16e8b72c5a81902de5f2c9d75fddf2d28832c4 100644
GIT binary patch
delta 25944
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%0A%IB5I-$Mq@lq
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

delta 25691
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
IH6~d82Q|8*$N&HU

diff --git a/xsdconvert/GeneralFunctions.cc b/xsdconvert/GeneralFunctions.cc
index f4817a658..c1dd36f99 100644
--- a/xsdconvert/GeneralFunctions.cc
+++ b/xsdconvert/GeneralFunctions.cc
@@ -8,6 +8,7 @@
 #include "GeneralFunctions.hh"
 #include "SimpleType.hh"
 #include "TTCN3Module.hh"
+#include "ImportStatement.hh"
 
 #include <cctype> // for using "toupper" function
 #include <cstring>
@@ -15,7 +16,18 @@
 #include <cmath>
 #include <regex.h>
 
+#include "../common/version_internal.h"
+
+#include <ctime>
+
+#if defined(WIN32) && !defined(MINGW)
+#include <cygwin/version.h>
+#include <sys/cygwin.h>
+#include <limits.h>
+#endif
+
 extern bool w_flag_used;
+extern bool t_flag_used;
 
 // XSDName2TTCN3Name function:
 // Parameters:
@@ -656,7 +668,7 @@ RootType * lookup(const List<TTCN3Module*> mods,
 RootType *lookup1(const TTCN3Module *module,
   const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w) {
   if (nsuri != module->getTargetNamespace()) return NULL;
-
+      
   for (List<RootType*>::iterator type = module->getDefinedTypes().begin(); type; type = type->Next) {
     switch (type->Data->getConstruct()) {
       case c_simpleType:
@@ -685,7 +697,16 @@ RootType *lookup1(const TTCN3Module *module,
         break;
     }
   }
-
+  
+  //Check for an include with NoTargetNamespace to look for the type
+  //XSD to TTCN ETSI standard 5.1.2
+  for(List<RootType*>::iterator it = module->getDefinedTypes().begin(); it; it = it->Next) {
+    if (it->Data != NULL && it->Data->getConstruct() == c_include &&
+        ((ImportStatement*)(it->Data))->getSourceModule() != NULL &&
+        ((ImportStatement*)(it->Data))->getSourceModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+      return lookup1(((ImportStatement*)(it->Data))->getSourceModule(), name, Mstring("NoTargetNamespace"), reference, w);
+    }
+  }
   return NULL;
 }
 
@@ -707,3 +728,56 @@ int multi(const TTCN3Module *module, ReferenceData const& outside_reference,
     }
   return multiplicity;
 }
+
+void generate_TTCN3_header(FILE * file, const char * modulename, const bool timestamp /* = true */) {
+  time_t time_current = time(NULL);
+  fprintf(file,
+    "/*******************************************************************************\n"
+    );
+  if (t_flag_used) {
+    fprintf(file,
+      "* Copyright Ericsson Telecom AB\n"
+      "*\n"
+      "* XSD to TTCN-3 Translator\n"
+      "*\n"
+      );
+  } else {
+    fprintf(file,
+      "* Copyright (c) 2000-%-4d Ericsson Telecom AB\n"
+      "*\n"
+      "* XSD to TTCN-3 Translator version: %-40s\n"
+      "*\n",
+      1900 + (localtime(&time_current))->tm_year,
+      PRODUCT_NUMBER
+      );
+  }
+  fprintf(file,
+    "* All rights reserved. This program and the accompanying materials\n"
+    "* are made available under the terms of the Eclipse Public License v1.0\n"
+    "* which accompanies this distribution, and is available at\n"
+    "* http://www.eclipse.org/legal/epl-v10.html\n"
+    "*******************************************************************************/\n"
+    "//\n"
+    "//  File:          %s.ttcn\n"
+    "//  Description:\n"
+    "//  References:\n"
+    "//  Rev:\n"
+    "//  Prodnr:\n",
+    modulename
+    );
+  if (t_flag_used || !timestamp) {
+    fprintf(file,
+      "//  Updated:\n"
+      );
+  } else {
+    fprintf(file,
+      "//  Updated:       %s",
+      ctime(&time_current)
+      );
+  }
+  fprintf(file,
+    "//  Contact:       http://ttcn.ericsson.se\n"
+    "//\n"
+    "////////////////////////////////////////////////////////////////////////////////\n"
+    );
+}
\ No newline at end of file
diff --git a/xsdconvert/GeneralFunctions.hh b/xsdconvert/GeneralFunctions.hh
index ac98df655..e89145987 100644
--- a/xsdconvert/GeneralFunctions.hh
+++ b/xsdconvert/GeneralFunctions.hh
@@ -67,6 +67,8 @@ RootType *lookup1(const TTCN3Module *module,
 int multi(const TTCN3Module *module, ReferenceData const& outside_reference,
         const RootType *obj);
 
+void generate_TTCN3_header(FILE * file, const char* modulename, const bool timestamp = true);
+
 inline unsigned long long llmin(unsigned long long l, unsigned long long r) {
     return l < r ? l : r;
 }
diff --git a/xsdconvert/ImportStatement.hh b/xsdconvert/ImportStatement.hh
index 829631892..03990a573 100644
--- a/xsdconvert/ImportStatement.hh
+++ b/xsdconvert/ImportStatement.hh
@@ -48,6 +48,8 @@ public:
     void validityChecking() {
     }
     void printToFile(FILE * file);
+    
+    const TTCN3Module* getSourceModule() { return source_module; }
 
     void dump(unsigned int depth) const;
 };
diff --git a/xsdconvert/TTCN3Module.cc b/xsdconvert/TTCN3Module.cc
index 896e36f51..8f84e10cb 100644
--- a/xsdconvert/TTCN3Module.cc
+++ b/xsdconvert/TTCN3Module.cc
@@ -15,8 +15,6 @@
 
 #include "../common/version_internal.h"
 
-#include <ctime>
-
 #if defined(WIN32) && !defined(MINGW)
 #include <cygwin/version.h>
 #include <sys/cygwin.h>
@@ -24,7 +22,6 @@
 #endif
 
 extern bool e_flag_used;
-extern bool t_flag_used;
 extern bool z_flag_used;
 
 TTCN3Module::TTCN3Module(const char * a_filename, XMLParser * a_parser)
@@ -206,59 +203,6 @@ void TTCN3Module::replaceLastMainType(RootType * t) {
   actualXsdConstruct = t->getConstruct();
 }
 
-void TTCN3Module::generate_TTCN3_header(FILE * file) {
-  time_t time_current = time(NULL);
-  fprintf(file,
-    "/*******************************************************************************\n"
-    );
-  if (t_flag_used) {
-    fprintf(file,
-      "* Copyright Ericsson Telecom AB\n"
-      "*\n"
-      "* XSD to TTCN-3 Translator\n"
-      "*\n"
-      );
-  } else {
-    fprintf(file,
-      "* Copyright (c) 2000-%-4d Ericsson Telecom AB\n"
-      "*\n"
-      "* XSD to TTCN-3 Translator version: %-40s\n"
-      "*\n",
-      1900 + (localtime(&time_current))->tm_year,
-      PRODUCT_NUMBER
-      );
-  }
-  fprintf(file,
-    "* All rights reserved. This program and the accompanying materials\n"
-    "* are made available under the terms of the Eclipse Public License v1.0\n"
-    "* which accompanies this distribution, and is available at\n"
-    "* http://www.eclipse.org/legal/epl-v10.html\n"
-    "*******************************************************************************/\n"
-    "//\n"
-    "//  File:          %s.ttcn\n"
-    "//  Description:\n"
-    "//  References:\n"
-    "//  Rev:\n"
-    "//  Prodnr:\n",
-    modulename.c_str()
-    );
-  if (t_flag_used) {
-    fprintf(file,
-      "//  Updated:\n"
-      );
-  } else {
-    fprintf(file,
-      "//  Updated:       %s",
-      ctime(&time_current)
-      );
-  }
-  fprintf(file,
-    "//  Contact:       http://ttcn.ericsson.se\n"
-    "//\n"
-    "////////////////////////////////////////////////////////////////////////////////\n"
-    );
-}
-
 void TTCN3Module::generate_TTCN3_fileinfo(FILE * file) {
   fprintf(file,
     "//\t- %s\n"
diff --git a/xsdconvert/TTCN3Module.hh b/xsdconvert/TTCN3Module.hh
index 96887c99e..3b33d2c61 100644
--- a/xsdconvert/TTCN3Module.hh
+++ b/xsdconvert/TTCN3Module.hh
@@ -101,7 +101,6 @@ public:
       FormValue a_attributeFormDefault,
       BlockValue a_blockDefault);
 
-  void generate_TTCN3_header(FILE * file);
   void generate_TTCN3_fileinfo(FILE * file);
   void generate_TTCN3_modulestart(FILE * file);
   void generate_TTCN3_included_types(FILE * file);
diff --git a/xsdconvert/TTCN3ModuleInventory.cc b/xsdconvert/TTCN3ModuleInventory.cc
index 53b031d98..794849608 100644
--- a/xsdconvert/TTCN3ModuleInventory.cc
+++ b/xsdconvert/TTCN3ModuleInventory.cc
@@ -231,7 +231,7 @@ void TTCN3ModuleInventory::moduleGeneration() {
     setvbuf(file, NULL, _IONBF, 0);
 #endif
 
-    module->Data->generate_TTCN3_header(file);
+    generate_TTCN3_header(file, module->Data->getModulename().c_str());
 
     fprintf(file, "//\tGenerated from file(s):\n");
 
diff --git a/xsdconvert/converter.cc b/xsdconvert/converter.cc
index f41827d00..f2dbc288b 100644
--- a/xsdconvert/converter.cc
+++ b/xsdconvert/converter.cc
@@ -269,21 +269,23 @@ static bool checkFailure() {
 }
 
 static bool generatePredefinedModules() {
-  struct stat stFileInfo;
-  // Only generate the missing predefined modules.
-  if (stat("UsefulTtcn3Types.ttcn", &stFileInfo) != 0) {
+  //struct stat stFileInfo;
+  // Only generate the missing predefined modules. 
+  // Generate, because the copyright is now generated into the modules.
+  //if (stat("UsefulTtcn3Types.ttcn", &stFileInfo) != 0) {
     extern const char *moduleUsefulTtcn3Types;
     FILE *fileUsefulTtcn3Types = fopen("UsefulTtcn3Types.ttcn", "w");
     if (fileUsefulTtcn3Types == NULL) {
       fprintf(stderr, "ERROR:\nCannot create file UsefulTtcn3Types.ttcn!\n");
       return false;
     }
+    generate_TTCN3_header(fileUsefulTtcn3Types, "UsefulTtcn3Types", false);
     fprintf(fileUsefulTtcn3Types, "%s", moduleUsefulTtcn3Types);
     if (!q_flag_used) {
       fprintf(stderr, "Notify: File \'UsefulTtcn3Types.ttcn\' was generated.\n");
     }
     fclose(fileUsefulTtcn3Types);
-  }
+  //}
 
   //XSD.ttcn changed
   //if (stat("XSD.ttcn", &stFileInfo) != 0) {
@@ -293,6 +295,7 @@ static bool generatePredefinedModules() {
       fprintf(stderr, "ERROR:\nCannot create file XSD.ttcn!\n");
       return false;
     }
+    generate_TTCN3_header(fileXsd, "XSD", false);
     fprintf(fileXsd, "%s", moduleXSD);
     if (!q_flag_used) {
       fprintf(stderr, "Notify: File \'XSD.ttcn\' was generated.\n");
-- 
GitLab