From 3abe9331b564f65690bdf2ebe001271a7011b0e2 Mon Sep 17 00:00:00 2001
From: erititan <elemer.lelik@ericsson.com>
Date: Fri, 13 Nov 2015 11:58:22 +0100
Subject: [PATCH] Sync with 5.4.0

---
 .gitignore                                    |    5 +-
 JNI/Makefile                                  |    2 +-
 JNI/jnimw.cc                                  |    2 +-
 JNI/jnimw.h                                   |    2 +-
 JNI/jninativelib.cc                           |    2 +-
 ...eclipse_titan_executor_jni_JNIMiddleWare.h |    2 +-
 Makefile                                      |    2 +-
 Makefile.cfg                                  |   85 +-
 Makefile.genrules                             |    6 +-
 README.linux                                  |   29 +-
 common/CharCoding.hh                          |    2 +-
 common/JSON_Tokenizer.cc                      |   55 +
 common/JSON_Tokenizer.hh                      |   16 +
 common/Makefile                               |    2 +-
 common/ModuleVersion.cc                       |    2 +-
 common/ModuleVersion.hh                       |    2 +-
 common/NetworkHandler.cc                      |    2 +-
 common/NetworkHandler.hh                      |    2 +-
 common/Path2.cc                               |    2 +-
 common/Path2.hh                               |    2 +-
 common/Quadruple.cc                           |    2 +-
 common/Quadruple.hh                           |    2 +-
 common/cfg_process_utils.hh                   |    2 +-
 common/config_preproc.cc                      |    2 +-
 common/config_preproc.h                       |    2 +-
 common/config_preproc_la.l                    |   15 +-
 common/config_preproc_p.y                     |    2 +-
 common/dbgnew.hh                              |    2 +-
 common/hostid.c                               |    2 +-
 common/license.c                              |    2 +-
 common/license.h                              |    2 +-
 common/memory.c                               |    6 +-
 common/memory.h                               |    2 +-
 common/new.cc                                 |    2 +-
 common/path.c                                 |    2 +-
 common/path.h                                 |    2 +-
 common/pattern.hh                             |   10 +-
 common/pattern_la.l                           |    2 +-
 common/pattern_p.y                            |   17 +-
 common/pattern_uni.y                          |    2 +-
 common/platform.h                             |    2 +-
 common/static_check.h                         |    2 +-
 common/ttcn3float.hh                          |    9 +-
 common/usage_stats.cc                         |    2 +-
 common/usage_stats.hh                         |    2 +-
 common/userinfo.c                             |    2 +-
 common/userinfo.h                             |    2 +-
 common/version.h                              |    6 +-
 common/version.py                             |    2 +-
 common/version_internal.h                     |    4 +-
 compiler2/AST.cc                              |   25 +-
 compiler2/AST.hh                              |    2 +-
 compiler2/Code.cc                             |    6 +-
 compiler2/Code.hh                             |    2 +-
 compiler2/CodeGenHelper.cc                    |    3 +-
 compiler2/CodeGenHelper.hh                    |    2 +-
 compiler2/CompField.cc                        |    2 +-
 compiler2/CompField.hh                        |    2 +-
 compiler2/CompType.cc                         |    2 +-
 compiler2/CompType.hh                         |    2 +-
 compiler2/CompilerError.cc                    |    2 +-
 compiler2/CompilerError.hh                    |    2 +-
 compiler2/Constraint.cc                       |    2 +-
 compiler2/Constraint.hh                       |    2 +-
 compiler2/EnumItem.cc                         |   17 +-
 compiler2/EnumItem.hh                         |    4 +-
 compiler2/Identifier.cc                       |    2 +-
 compiler2/Identifier.hh                       |    2 +-
 compiler2/Int.cc                              |    2 +-
 compiler2/Int.hh                              |    2 +-
 compiler2/Makefile                            |    2 +-
 compiler2/PredefFunc.cc                       |    2 +-
 compiler2/PredefFunc.hh                       |    2 +-
 compiler2/ProjectGenHelper.cc                 |   14 +-
 compiler2/ProjectGenHelper.hh                 |    4 +-
 compiler2/Real.cc                             |    2 +-
 compiler2/Real.hh                             |    2 +-
 compiler2/Setting.cc                          |    2 +-
 compiler2/Setting.hh                          |    2 +-
 compiler2/SigParam.cc                         |    2 +-
 compiler2/SigParam.hh                         |    2 +-
 compiler2/Stopwatch.cc                        |    2 +-
 compiler2/Stopwatch.hh                        |    2 +-
 compiler2/Type.cc                             |  122 +-
 compiler2/Type.hh                             |    4 +-
 compiler2/TypeCompat.cc                       |    2 +-
 compiler2/TypeCompat.hh                       |    2 +-
 compiler2/Type_chk.cc                         |   19 +-
 compiler2/Type_codegen.cc                     |  227 +-
 compiler2/Typestuff.cc                        |    2 +-
 compiler2/Typestuff.hh                        |    2 +-
 compiler2/Value.cc                            |  230 +-
 compiler2/Value.hh                            |   16 +-
 compiler2/Valuestuff.cc                       |    2 +-
 compiler2/Valuestuff.hh                       |    2 +-
 compiler2/XerAttributes.cc                    |    2 +-
 compiler2/XerAttributes.hh                    |    2 +-
 compiler2/asn1/AST_asn1.cc                    |    2 +-
 compiler2/asn1/AST_asn1.hh                    |    2 +-
 compiler2/asn1/Block.cc                       |    2 +-
 compiler2/asn1/Block.hh                       |    2 +-
 compiler2/asn1/Makefile                       |    2 +-
 compiler2/asn1/OCSV.cc                        |    2 +-
 compiler2/asn1/OCSV.hh                        |    2 +-
 compiler2/asn1/Object.cc                      |    2 +-
 compiler2/asn1/Object.hh                      |    2 +-
 compiler2/asn1/Object0.hh                     |    2 +-
 compiler2/asn1/Ref.cc                         |    2 +-
 compiler2/asn1/Ref.hh                         |    2 +-
 compiler2/asn1/TableConstraint.cc             |    2 +-
 compiler2/asn1/TableConstraint.hh             |    2 +-
 compiler2/asn1/Tag.cc                         |    2 +-
 compiler2/asn1/Tag.hh                         |    2 +-
 compiler2/asn1/TokenBuf.cc                    |    2 +-
 compiler2/asn1/TokenBuf.hh                    |    2 +-
 compiler2/asn1/Type_parse.cc                  |    2 +-
 compiler2/asn1/asn1.hh                        |    2 +-
 compiler2/asn1/asn1_preparser.h               |    2 +-
 compiler2/asn1/asn1_preparser.l               |    2 +-
 compiler2/asn1/asn1la.l                       |    4 +-
 compiler2/asn1/asn1p.y                        |    2 +-
 compiler2/asn1/asn1p_old.h                    |    2 +-
 compiler2/compiler.1                          |   20 +-
 compiler2/datatypes.h                         |   15 +-
 compiler2/encdec.c                            |    2 +-
 compiler2/encdec.h                            |    2 +-
 compiler2/enum.c                              |  181 +-
 compiler2/enum.h                              |    2 +-
 compiler2/error.h                             |    2 +-
 compiler2/functionref.c                       |   70 +-
 compiler2/functionref.h                       |    2 +-
 compiler2/main.cc                             |   23 +-
 compiler2/main.hh                             |    5 +-
 compiler2/makefile.c                          |  148 +-
 compiler2/map.hh                              |    2 +-
 compiler2/record.c                            |  558 +++-
 compiler2/record.h                            |    2 +-
 compiler2/record_of.c                         |  317 +-
 compiler2/record_of.h                         |    2 +-
 compiler2/stack.hh                            |    2 +-
 compiler2/string.cc                           |    2 +-
 compiler2/string.hh                           |    2 +-
 compiler2/subtype.cc                          |  266 +-
 compiler2/subtype.hh                          |   43 +-
 compiler2/subtypestuff.cc                     |    2 +-
 compiler2/subtypestuff.hh                     |    2 +-
 compiler2/tcov.xsd                            |    2 +-
 compiler2/tcov.xsl                            |    2 +-
 compiler2/tcov2lcov.cc                        |    2 +-
 compiler2/tcov2lcov.hh                        |    2 +-
 compiler2/titanver                            |    2 +-
 compiler2/ttcn3/AST_ttcn3.cc                  |   68 +-
 compiler2/ttcn3/AST_ttcn3.hh                  |    8 +-
 compiler2/ttcn3/ArrayDimensions.cc            |    2 +-
 compiler2/ttcn3/ArrayDimensions.hh            |    2 +-
 compiler2/ttcn3/Attributes.cc                 |   12 +-
 compiler2/ttcn3/Attributes.hh                 |    2 +-
 compiler2/ttcn3/BerAST.cc                     |    2 +-
 compiler2/ttcn3/BerAST.hh                     |    2 +-
 compiler2/ttcn3/ILT.cc                        |    2 +-
 compiler2/ttcn3/ILT.hh                        |    2 +-
 compiler2/ttcn3/JsonAST.cc                    |   32 +-
 compiler2/ttcn3/JsonAST.hh                    |   17 +-
 compiler2/ttcn3/Makefile                      |    2 +-
 compiler2/ttcn3/PatternString.cc              |   52 +-
 compiler2/ttcn3/PatternString.hh              |    5 +-
 compiler2/ttcn3/RawAST.cc                     |   10 +-
 compiler2/ttcn3/RawAST.hh                     |    3 +-
 compiler2/ttcn3/Statement.cc                  |  144 +-
 compiler2/ttcn3/Statement.hh                  |   14 +-
 compiler2/ttcn3/Templatestuff.cc              |   20 +-
 compiler2/ttcn3/Templatestuff.hh              |    8 +-
 compiler2/ttcn3/TextAST.cc                    |    2 +-
 compiler2/ttcn3/TextAST.hh                    |    2 +-
 compiler2/ttcn3/Ttcn2Json.cc                  |   12 +
 compiler2/ttcn3/Ttcn2Json.hh                  |    8 +
 compiler2/ttcn3/TtcnTemplate.cc               |  806 ++++-
 compiler2/ttcn3/TtcnTemplate.hh               |   16 +-
 compiler2/ttcn3/Ttcnstuff.cc                  |    2 +-
 compiler2/ttcn3/Ttcnstuff.hh                  |    2 +-
 compiler2/ttcn3/charstring_la.l               |    6 +-
 compiler2/ttcn3/coding_attrib_la.l            |    2 +-
 compiler2/ttcn3/coding_attrib_p.y             |    2 +-
 compiler2/ttcn3/compiler.c                    |    2 +-
 compiler2/ttcn3/compiler.h                    |    3 +-
 compiler2/ttcn3/compiler.l                    |    7 +-
 compiler2/ttcn3/compiler.y                    |   47 +-
 compiler2/ttcn3/comptype_attrib_la.l          |    2 +-
 compiler2/ttcn3/port.c                        |   58 +-
 compiler2/ttcn3/port.h                        |    2 +-
 compiler2/ttcn3/pstring_la.l                  |   38 +-
 compiler2/ttcn3/rawAST.l                      |   19 +-
 compiler2/ttcn3/rawAST.y                      |   37 +-
 compiler2/ttcn3/rawASTspec.h                  |    2 +-
 compiler2/ttcn3/signature.c                   |   69 +-
 compiler2/ttcn3/signature.h                   |    2 +-
 compiler2/ttcn3/ttcn3_preparser.h             |    2 +-
 compiler2/ttcn3/ttcn3_preparser.l             |    2 +-
 compiler2/ttcn3_makefilegen.1                 |   30 +-
 compiler2/union.c                             |  270 +-
 compiler2/union.h                             |    2 +-
 compiler2/ustring.cc                          |   57 +-
 compiler2/ustring.hh                          |    5 +-
 compiler2/vector.hh                           |    2 +-
 compiler2/xpather.cc                          |   96 +-
 compiler2/xpather.h                           |   11 +-
 core/.gitignore                               |    2 +
 core/ASN_Any.cc                               |    2 +-
 core/ASN_Any.hh                               |    2 +-
 core/ASN_CharacterString.cc                   |  896 ++++--
 core/ASN_CharacterString.hh                   |   66 +-
 core/ASN_EmbeddedPDV.cc                       |  896 ++++--
 core/ASN_EmbeddedPDV.hh                       |   66 +-
 core/ASN_External.cc                          |  833 +++--
 core/ASN_External.hh                          |   68 +-
 core/ASN_Null.cc                              |  109 +-
 core/ASN_Null.hh                              |   22 +-
 core/Addfunc.cc                               |    2 +-
 core/Addfunc.hh                               |    2 +-
 core/Array.cc                                 |    2 +-
 core/Array.hh                                 |  235 +-
 core/BER.cc                                   |    2 +-
 core/BER.hh                                   |    2 +-
 core/Basetype.cc                              |   24 +-
 core/Basetype.hh                              |   17 +-
 core/Bitstring.cc                             |  183 +-
 core/Bitstring.hh                             |   19 +-
 core/Boolean.cc                               |  113 +-
 core/Boolean.hh                               |   20 +-
 core/Charstring.cc                            |  187 +-
 core/Charstring.hh                            |   25 +-
 core/Communication.cc                         |    2 +-
 core/Communication.hh                         |    2 +-
 core/Component.cc                             |  128 +-
 core/Component.hh                             |   20 +-
 core/Default.cc                               |  112 +-
 core/Default.hh                               |   22 +-
 core/Encdec.cc                                |    7 +-
 core/Encdec.hh                                |    2 +-
 core/Error.cc                                 |   13 +-
 core/Error.hh                                 |    2 +-
 core/Event_Handler.hh                         |    2 +-
 core/Fd_And_Timeout_User.hh                   |    2 +-
 core/Float.cc                                 |  210 +-
 core/Float.hh                                 |   27 +-
 core/Hexstring.cc                             |  189 +-
 core/Hexstring.hh                             |   19 +-
 core/ILoggerPlugin.hh                         |    2 +-
 core/Integer.cc                               |  594 +++-
 core/Integer.hh                               |   20 +-
 core/JSON.cc                                  |    2 +-
 core/JSON.hh                                  |   40 +-
 core/LegacyLogger.cc                          |    2 +-
 core/LegacyLogger.hh                          |    2 +-
 core/Logger.cc                                |    2 +-
 core/Logger.hh                                |    2 +-
 core/LoggerPlugin.cc                          |    2 +-
 core/LoggerPlugin.hh                          |    2 +-
 core/LoggerPluginManager.cc                   |    2 +-
 core/LoggerPluginManager.hh                   |    2 +-
 core/LoggerPlugin_dynamic.cc                  |    2 +-
 core/LoggerPlugin_static.cc                   |    2 +-
 core/LoggingBits.cc                           |    2 +-
 core/LoggingBits.hh                           |    2 +-
 core/LoggingParam.hh                          |    2 +-
 core/Makefile                                 |   46 +-
 core/Message_types.hh                         |    2 +-
 core/Module_list.cc                           |   61 +-
 core/Module_list.hh                           |    7 +-
 core/Objid.cc                                 |  113 +-
 core/Objid.hh                                 |   20 +-
 core/Octetstring.cc                           |  182 +-
 core/Octetstring.hh                           |   18 +-
 core/Optional.hh                              |   26 +-
 core/Parallel_main.cc                         |    9 +-
 core/Param_Types.cc                           |  217 +-
 core/Param_Types.hh                           |  139 +-
 core/Parameters.h                             |    2 +-
 core/Port.cc                                  |    2 +-
 core/Port.hh                                  |    2 +-
 core/ProfMerge_main.cc                        |  231 ++
 core/Profiler.cc                              | 1463 +--------
 core/Profiler.hh                              |   89 +-
 core/ProfilerTools.cc                         | 1412 +++++++++
 core/ProfilerTools.hh                         |  163 +
 core/RAW.cc                                   |    2 +-
 core/RAW.hh                                   |    4 +-
 core/RInt.cc                                  |    2 +-
 core/RInt.hh                                  |    2 +-
 core/Runtime.cc                               |    7 +-
 core/Runtime.hh                               |    4 +-
 core/Single_main.cc                           |    2 +-
 core/Snapshot.cc                              |    2 +-
 core/Snapshot.hh                              |    2 +-
 core/String_struct.hh                         |    2 +-
 core/Struct_of.cc                             |   81 +-
 core/Struct_of.hh                             |   17 +-
 core/TCov.cc                                  |    2 +-
 core/TCov.hh                                  |    2 +-
 core/TEXT.cc                                  |    2 +-
 core/TEXT.hh                                  |    2 +-
 core/TTCN3.hh                                 |    2 +-
 core/Template.cc                              |  602 +++-
 core/Template.hh                              |   83 +-
 core/Textbuf.cc                               |   79 +-
 core/Textbuf.hh                               |    2 +-
 core/Timer.cc                                 |    2 +-
 core/Timer.hh                                 |    2 +-
 core/TitanLoggerApi.xsd                       |    2 +-
 core/TitanLoggerControl.ttcn                  |    2 +-
 core/TitanLoggerControlImpl.cc                |    2 +-
 core/Types.h                                  |    2 +-
 core/Universal_charstring.cc                  |  241 +-
 core/Universal_charstring.hh                  |   24 +-
 core/VIRAG.asn                                |    2 +-
 core/Vector.hh                                |   18 +-
 core/Verdicttype.cc                           |  113 +-
 core/Verdicttype.hh                           |   20 +-
 core/XER.cc                                   |    2 +-
 core/XER.hh                                   |    2 +-
 core/XmlReader.cc                             |    2 +-
 core/XmlReader.hh                             |    2 +-
 core/config_process.l                         |  118 +-
 core/config_process.y                         |  366 +--
 core/gccversion.c                             |    2 +-
 core/license_gen.c                            |    2 +-
 core/simplify.pl                              |    2 +-
 core/ttcn3_profmerge.1                        |   98 +
 core2/Basetype2.cc                            |  481 ++-
 core2/Makefile                                |    2 +-
 doc/parallelarch/Makefile                     |    2 +-
 doc/parallelarch/state_mach_conn_endpoint.dot |    2 +-
 doc/parallelarch/state_mach_conn_mc.dot       |    2 +-
 doc/parallelarch/state_mach_hc_mc.dot         |    2 +-
 doc/parallelarch/state_mach_mapping_mc.dot    |    2 +-
 doc/parallelarch/state_mach_mc.dot            |    2 +-
 doc/parallelarch/state_mach_ptc_mc.dot        |    2 +-
 etc/Makefile                                  |    2 +-
 etc/TXDSample.xml                             |    2 +-
 etc/autotest/freshbuild.sh                    |    2 +-
 etc/autotest/mountall.sh                      |    2 +-
 etc/autotest/product_handler.py               |    2 +-
 etc/autotest/titan_builder.py                 |    2 +-
 etc/autotest/titan_builder.sh                 |    2 +-
 etc/autotest/titan_builder_cfg.py             |    2 +-
 etc/autotest/titan_publisher.py               |    2 +-
 etc/howto/pqb_stats_howto.txt                 |    2 +-
 etc/howto/titan_release_howto.txt             |    2 +-
 etc/scripts/cfg_msg_maker.py                  |    2 +-
 etc/scripts/stacklogger.pl                    |    2 +-
 etc/scripts/tpd_graph_xml2dot.py              |    2 +-
 etc/scripts/ttcn3_archive.pl                  |    2 +-
 etc/solaris/build.sh                          |    2 +-
 etc/solaris/get.sh                            |    2 +-
 etc/solaris/path.sh                           |    2 +-
 etc/solaris/titan.sh                          |    2 +-
 etc/xsd/Junit.xsd                             |    2 +-
 etc/xsd/TPD.xsd                               |   10 +-
 .../BER_EncDec/BER_EncDec_TD.fast_script      |    2 +-
 function_test/BER_EncDec/BER_EncDec_TD.script |    2 +-
 function_test/BER_EncDec/Makefile             |    8 +-
 function_test/BER_EncDec/Temp.cfg             |    2 +-
 .../Config_Parser/Logging_1_TD.script         |   88 +-
 .../Config_Parser/OrderedInclude.script       |    2 +-
 .../PreprocessingCfgFiles_TD.script           |   18 +-
 function_test/Config_Parser/begin_script.sh   |    2 +-
 function_test/Config_Parser/end_script.sh     |    2 +-
 function_test/Config_Parser/extfunc.cc        |    2 +-
 function_test/Makefile                        |    2 +-
 function_test/RAW_EncDec/Makefile             |    8 +-
 .../RAW_EncDec/RAW_EncDec_TD.fast_script      |    2 +-
 function_test/RAW_EncDec/RAW_EncDec_TD.script |    2 +-
 function_test/RAW_EncDec/Temp.cfg             |    2 +-
 function_test/README.txt                      |    2 +-
 .../Semantic_Analyser/ASN_SA_1_TD.script      |    2 +-
 .../ASN_SA_asn1adhoc_TD.script                |    2 +-
 .../Semantic_Analyser/Makefile.semantic       |    4 +-
 .../Semantic_Analyser/SA_6_TD.script          |    2 +-
 .../Semantic_Analyser/TTCN3_SA_10_TD.script   |    2 +-
 .../Semantic_Analyser/TTCN3_SA_11_TD.script   |    2 +-
 .../Semantic_Analyser/TTCN3_SA_13_TD.script   |    2 +-
 .../Semantic_Analyser/TTCN3_SA_1_TD.script    |    2 +-
 .../Semantic_Analyser/TTCN3_SA_3_TD.script    |    2 +-
 .../Semantic_Analyser/TTCN3_SA_4_TD.script    |    2 +-
 .../Semantic_Analyser/TTCN3_SA_5_TD.script    |    2 +-
 .../Semantic_Analyser/TTCN3_SA_6_TD.script    |    6 +-
 .../Semantic_Analyser/TTCN3_SA_7_TD.script    |    2 +-
 .../Semantic_Analyser/TTCN3_SA_9_TD.script    |    2 +-
 .../TTCN3_SA_ttcn3adhoc_TD.script             |    2 +-
 function_test/Semantic_Analyser/cw.pl         |    2 +-
 .../Semantic_Analyser/defpars/HQ30279A.ttcn   |    2 +-
 .../Semantic_Analyser/defpars/Makefile        |    2 +-
 .../defpars/bende_fn_SE.ttcn                  |    2 +-
 .../Semantic_Analyser/defpars/bende_t_SE.ttcn |    2 +-
 .../Semantic_Analyser/encode/Makefile         |    2 +-
 .../Semantic_Analyser/encode/encode_SE.ttcn   |    2 +-
 .../Semantic_Analyser/float/Makefile          |    2 +-
 .../Semantic_Analyser/float/subtype_OK.ttcn   |    2 +-
 .../Semantic_Analyser/float/subtype_SE.ttcn   |    2 +-
 function_test/Semantic_Analyser/harness.pl    |    2 +-
 .../import_of_iports/A_CYCLIC.ttcn            |    2 +-
 .../import_of_iports/A_SE.ttcn                |    2 +-
 .../import_of_iports/B_APR_SE.ttcn            |    2 +-
 .../import_of_iports/B_APU_SE.ttcn            |    2 +-
 .../import_of_iports/B_CEFR_SE.ttcn           |    2 +-
 .../import_of_iports/B_CYCLIC.ttcn            |    2 +-
 .../import_of_iports/B_SE.ttcn                |    2 +-
 .../import_of_iports/C_BPR_SE.ttcn            |    2 +-
 .../import_of_iports/C_BPU_SE.ttcn            |    2 +-
 .../import_of_iports/C_CYCLIC.ttcn            |    2 +-
 .../import_of_iports/C_FR_SE.ttcn             |    2 +-
 .../import_of_iports/C_SE.ttcn                |    2 +-
 .../import_of_iports/D_CPR_SE.ttcn            |    2 +-
 .../import_of_iports/D_CPU_SE.ttcn            |    2 +-
 .../import_of_iports/D_FR_SE.ttcn             |    2 +-
 .../import_of_iports/D_SE.ttcn                |    2 +-
 .../import_of_iports/E_DPR_SE.ttcn            |    2 +-
 .../import_of_iports/E_DPU_SE.ttcn            |    2 +-
 .../import_of_iports/E_FR_SE.ttcn             |    2 +-
 .../import_of_iports/E_SE.ttcn                |    2 +-
 .../import_of_iports/Makefile                 |    2 +-
 .../Semantic_Analyser/options/quitter3.ttcn   |    2 +-
 .../Semantic_Analyser/options/quitter3Q1.ttcn |    2 +-
 .../options/quitter3Q1S.ttcn                  |    2 +-
 .../Semantic_Analyser/options/quitter3Q2.ttcn |    2 +-
 .../options/quitter3Q2S.ttcn                  |    2 +-
 .../Semantic_Analyser/options/quitter3S.ttcn  |    2 +-
 .../Semantic_Analyser/param/Makefile          |    2 +-
 .../Semantic_Analyser/param/param_SE.ttcn     |    2 +-
 .../template_restrictions/.gitignore          |    2 +
 .../template_restrictions/Makefile            |    8 +
 .../template_restrictions/TempRes_SE.ttcn     |   56 +
 .../Semantic_Analyser/template_restrictions/t |    9 +
 .../ver/CRL_111_222_3_R2D_OK.ttcn             |    2 +-
 .../ver/CRL_111_222_R2D_OK.ttcn               |    2 +-
 function_test/Semantic_Analyser/ver/Makefile  |    2 +-
 .../Semantic_Analyser/ver/R2D2_SE.ttcn        |    2 +-
 .../Semantic_Analyser/ver/R2D_SE.ttcn         |    2 +-
 .../Semantic_Analyser/ver/c3p0_SE.ttcn        |    2 +-
 .../Semantic_Analyser/ver/dup_ver_SE.ttcn     |    2 +-
 .../Semantic_Analyser/ver/high_titan_SE.ttcn  |    6 +-
 .../Semantic_Analyser/ver/importer_SE.ttcn    |    2 +-
 .../Semantic_Analyser/ver/new_ver_SE.ttcn     |    2 +-
 .../Semantic_Analyser/ver/notimported_SE.ttcn |    2 +-
 .../Semantic_Analyser/ver/noversion_SE.ttcn   |    2 +-
 .../Semantic_Analyser/ver/unreleased_SE.ttcn  |    2 +-
 .../Semantic_Analyser/ver/ver_OK.ttcn         |    2 +-
 .../Semantic_Analyser/ver/ver_highest_OK.ttcn |    2 +-
 .../ver/ver_newstyle_OK.ttcn                  |    2 +-
 .../ver/ver_newstyle_per1_template_OK.ttcn    |    2 +-
 .../ver/ver_newstyle_template_OK.ttcn         |    2 +-
 function_test/Semantic_Analyser/xer/Makefile  |    2 +-
 .../xer/aa_not_in_record_SE.ttcn              |    2 +-
 .../xer/aa_not_string_SE.ttcn                 |    2 +-
 .../Semantic_Analyser/xer/aa_twice_SE.ttcn    |    2 +-
 .../Semantic_Analyser/xer/aa_untagged_SE.ttcn |    2 +-
 .../Semantic_Analyser/xer/ae_clash_SE.ttcn    |    2 +-
 .../xer/ae_wrong_type_SE.ttcn                 |    2 +-
 .../xer/atr_not_on_record_SE.ttcn             |    2 +-
 .../xer/atr_untagged_SE.ttcn                  |    2 +-
 .../Semantic_Analyser/xer/attribs_OK.ttcn     |    2 +-
 .../Semantic_Analyser/xer/b64_clash_SE.ttcn   |    2 +-
 .../xer/b64_wrong_type_SE.ttcn                |    2 +-
 .../Semantic_Analyser/xer/bogus_SE.ttcn       |    2 +-
 .../Semantic_Analyser/xer/decimal_SE.ttcn     |    2 +-
 .../Semantic_Analyser/xer/dfe_charenc_OK.ttcn |    2 +-
 .../Semantic_Analyser/xer/dfe_clash_SE.ttcn   |    2 +-
 .../Semantic_Analyser/xer/dfe_int_OK.ttcn     |    2 +-
 .../Semantic_Analyser/xer/disorder_SE.ttcn    |    2 +-
 .../Semantic_Analyser/xer/dup_text_SE.ttcn    |    2 +-
 .../Semantic_Analyser/xer/dupenum_SE.ttcn     |    2 +-
 .../xer/emb_first_opt_SE.ttcn                 |    2 +-
 .../xer/emb_first_untag_SE.ttcn               |    2 +-
 .../xer/emb_not_record_SE.ttcn                |    2 +-
 .../Semantic_Analyser/xer/emb_untag_SE.ttcn   |    2 +-
 .../xer/emb_wrong_first_SE.ttcn               |    2 +-
 .../Semantic_Analyser/xer/encdec_OK.ttcn      |    2 +-
 .../Semantic_Analyser/xer/ifq_SE.ttcn         |    2 +-
 .../Semantic_Analyser/xer/list_clash_SE.ttcn  |    2 +-
 .../xer/list_not_recof_SE.ttcn                |    2 +-
 .../Semantic_Analyser/xer/namedup1_SE.ttcn    |    2 +-
 .../Semantic_Analyser/xer/namedup2_SE.ttcn    |    2 +-
 .../Semantic_Analyser/xer/no_text_all_SE.ttcn |    2 +-
 .../xer/ns_empty_prefix_dup_OK.ttcn           |    2 +-
 .../xer/ns_prefix_dup_OK.ttcn                 |    2 +-
 .../Semantic_Analyser/xer/ns_xml_SE.ttcn      |    2 +-
 .../Semantic_Analyser/xer/qname_SE.ttcn       |    2 +-
 .../Semantic_Analyser/xer/qname_attr_OK.ttcn  |    2 +-
 .../Semantic_Analyser/xer/recur_SE.ttcn       |    2 +-
 .../Semantic_Analyser/xer/soapy.ttcn          |    2 +-
 .../xer/text_clash_use_number_SE.ttcn         |    2 +-
 .../xer/text_no_enum_SE.ttcn                  |    2 +-
 .../xer/text_over_text_SE.ttcn                |    2 +-
 .../Semantic_Analyser/xer/untag2_SE.ttcn      |    2 +-
 .../xer/untagged_charenc_OK.ttcn              |    2 +-
 .../xer/untagged_charenc_another_SE.ttcn      |    2 +-
 .../xer/untagged_charenc_optional_SE.ttcn     |    2 +-
 .../xer/untagged_noncharenc_SE.ttcn           |    2 +-
 .../xer/untagged_parent_not_record_SE.ttcn    |    2 +-
 .../xer/untagged_parent_untagged_SE.ttcn      |    2 +-
 .../xer/uo_attribonly_SE.ttcn                 |    2 +-
 .../Semantic_Analyser/xer/uo_no_recof_SE.ttcn |    2 +-
 .../xer/usenil_clash_SE.ttcn                  |    2 +-
 .../xer/usenil_comp_clash_SE.ttcn             |    2 +-
 .../xer/usenil_no_controlns_SE.ttcn           |    2 +-
 .../xer/usenil_no_optional_SE.ttcn            |    2 +-
 .../xer/usenil_not_attr_SE.ttcn               |    2 +-
 .../xer/usenil_not_record_SE.ttcn             |    2 +-
 .../xer/usetype_clash_SE.ttcn                 |    2 +-
 .../xer/usetype_not_union_SE.ttcn             |    2 +-
 .../xer/usetype_with_untagged_SE.ttcn         |    2 +-
 .../xer/usetype_with_usetype_SE.ttcn          |    2 +-
 .../xer/useunion_not_union_SE.ttcn            |    2 +-
 .../xer/useunion_with_non_charenc_SE.ttcn     |    2 +-
 .../xer/useunion_with_useunion_SE.ttcn        |    2 +-
 function_test/Text_EncDec/Makefile            |    8 +-
 .../Text_EncDec/TEXT_1_TD.fast_script         |    2 +-
 function_test/Text_EncDec/TEXT_1_TD.script    |    2 +-
 function_test/Text_EncDec/Temp.cfg            |    2 +-
 function_test/Tools/SAtester.pl               |    2 +-
 function_test/XER_EncDec/Makefile             |    8 +-
 function_test/XER_EncDec/Temp.cfg             |    2 +-
 function_test/XER_EncDec/XER_EncDec_TD.script |    2 +-
 .../doc/TTCN3_Executor_TestReport.doc         |  Bin 1106432 -> 1143296 bytes
 hello/Makefile                                |    4 +-
 hello/MyExample.cfg                           |    3 +-
 hello/MyExample.ttcn                          |    3 +-
 hello/PCOType.cc                              |    2 +-
 hello/PCOType.hh                              |    2 +-
 hello/hello_world.ttcn                        |   79 +
 help/Makefile                                 |    2 +-
 help/chm_refact.sh                            |    2 +-
 help/info/BNF.html                            |    2 +-
 help/info/action.html                         |    2 +-
 help/info/activate.html                       |    2 +-
 help/info/address.html                        |    2 +-
 help/info/alive.html                          |    2 +-
 help/info/all.html                            |    2 +-
 help/info/alt.html                            |    2 +-
 help/info/altstep.html                        |    2 +-
 help/info/and.html                            |    2 +-
 help/info/and4b.html                          |    2 +-
 help/info/any.html                            |    2 +-
 help/info/anytype.html                        |    4 +-
 help/info/apply.html                          |   71 +
 help/info/bit2hex.html                        |    4 +-
 help/info/bit2int.html                        |    2 +-
 help/info/bit2oct.html                        |    2 +-
 help/info/bit2str.html                        |    2 +-
 help/info/bitstring.html                      |    2 +-
 help/info/boolean.html                        |    2 +-
 help/info/break.html                          |    2 +-
 help/info/call.html                           |    2 +-
 help/info/case.html                           |    2 +-
 help/info/catch.html                          |    2 +-
 help/info/char.html                           |    2 +-
 help/info/char2int.html                       |    2 +-
 help/info/char2oct.html                       |    2 +-
 help/info/charstring.html                     |    2 +-
 help/info/check.html                          |    2 +-
 help/info/clear.html                          |    2 +-
 help/info/complement.html                     |    2 +-
 help/info/component.html                      |    2 +-
 help/info/connect.html                        |    2 +-
 help/info/const.html                          |    2 +-
 help/info/continue.html                       |    2 +-
 help/info/control.html                        |    2 +-
 help/info/create.html                         |    2 +-
 help/info/deactivate.html                     |    2 +-
 help/info/decode_base64.html                  |    2 +-
 help/info/decvalue.html                       |    2 +-
 help/info/default.html                        |    4 +-
 help/info/derefers.html                       |   72 +
 help/info/disconnect.html                     |    4 +-
 help/info/display.html                        |    2 +-
 help/info/do.html                             |    2 +-
 help/info/done.html                           |    2 +-
 help/info/else.html                           |    2 +-
 help/info/encode.html                         |    2 +-
 help/info/encode_base64.html                  |    2 +-
 help/info/encvalue.html                       |    2 +-
 help/info/enumerated.html                     |    2 +-
 help/info/error.html                          |    2 +-
 help/info/except.html                         |    2 +-
 help/info/exception.html                      |    2 +-
 help/info/execute.html                        |    2 +-
 help/info/extension.html                      |    2 +-
 help/info/external.html                       |    2 +-
 help/info/fail.html                           |    2 +-
 help/info/false.html                          |    2 +-
 help/info/float.html                          |    2 +-
 help/info/float2int.html                      |    2 +-
 help/info/float2str.html                      |    2 +-
 help/info/for.html                            |    2 +-
 help/info/friend.html                         |    2 +-
 help/info/from.html                           |    2 +-
 help/info/function.html                       |    2 +-
 help/info/get_stringencoding.html             |    2 +-
 help/info/getcall.html                        |    2 +-
 help/info/getreply.html                       |    2 +-
 help/info/getverdict.html                     |    2 +-
 help/info/goto.html                           |    2 +-
 help/info/group.html                          |    2 +-
 help/info/hex2bit.html                        |    2 +-
 help/info/hex2int.html                        |    2 +-
 help/info/hex2oct.html                        |    2 +-
 help/info/hex2str.html                        |    2 +-
 help/info/hexstring.html                      |    2 +-
 help/info/if.html                             |    2 +-
 help/info/ifpresent.html                      |    2 +-
 help/info/import.html                         |    2 +-
 help/info/in.html                             |    2 +-
 help/info/inconc.html                         |    2 +-
 help/info/infinity.html                       |    2 +-
 help/info/inout.html                          |    2 +-
 help/info/int2bit.html                        |    2 +-
 help/info/int2char.html                       |   59 +-
 help/info/int2enum.html                       |   91 +
 help/info/int2float.html                      |   19 +-
 help/info/int2hex.html                        |    2 +-
 help/info/int2oct.html                        |    2 +-
 help/info/int2str.html                        |    2 +-
 help/info/int2unichar.html                    |    2 +-
 help/info/integer.html                        |    2 +-
 help/info/interleave.html                     |    2 +-
 help/info/isbound.html                        |    2 +-
 help/info/ischosen.html                       |    2 +-
 help/info/ispresent.html                      |    2 +-
 help/info/isvalue.html                        |    2 +-
 help/info/kill.html                           |    2 +-
 help/info/killed.html                         |    2 +-
 help/info/label.html                          |    2 +-
 help/info/language.html                       |    2 +-
 help/info/length.html                         |    2 +-
 help/info/lengthof.html                       |    2 +-
 help/info/log.html                            |    4 +-
 help/info/log2str.html                        |   67 +
 help/info/map.html                            |    2 +-
 help/info/match.html                          |    2 +-
 help/info/message.html                        |    2 +-
 help/info/mixed.html                          |    2 +-
 help/info/mod.html                            |    2 +-
 help/info/modifies.html                       |    2 +-
 help/info/module.html                         |    2 +-
 help/info/modulepar.html                      |    2 +-
 help/info/mtc.html                            |    2 +-
 help/info/noblock.html                        |    2 +-
 help/info/none.html                           |    2 +-
 help/info/not.html                            |    2 +-
 help/info/not4b.html                          |    2 +-
 help/info/nowait.html                         |    2 +-
 help/info/null.html                           |    2 +-
 help/info/objid.html                          |    2 +-
 help/info/oct2bit.html                        |    2 +-
 help/info/oct2char.html                       |    2 +-
 help/info/oct2hex.html                        |    2 +-
 help/info/oct2int.html                        |    2 +-
 help/info/oct2str.html                        |    2 +-
 help/info/oct2unichar.html                    |    2 +-
 help/info/octetstring.html                    |    2 +-
 help/info/of.html                             |    2 +-
 help/info/omit.html                           |    2 +-
 help/info/on.html                             |    2 +-
 help/info/operators.html                      |    2 +-
 help/info/optional.html                       |    2 +-
 help/info/or.html                             |    2 +-
 help/info/or4b.html                           |    2 +-
 help/info/out.html                            |    2 +-
 help/info/override.html                       |    2 +-
 help/info/param.html                          |    2 +-
 help/info/pass.html                           |    2 +-
 help/info/pattern.html                        |    2 +-
 help/info/permutation.html                    |    2 +-
 help/info/port.html                           |    2 +-
 help/info/private.html                        |    2 +-
 help/info/procedure.html                      |    2 +-
 help/info/profiler.html                       |    2 +-
 help/info/public.html                         |    2 +-
 help/info/raise.html                          |    2 +-
 help/info/read.html                           |    2 +-
 help/info/receive.html                        |    2 +-
 help/info/record.html                         |    2 +-
 help/info/recursive.html                      |    4 +-
 help/info/refers.html                         |   68 +
 help/info/regexp.html                         |    4 +-
 help/info/rem.html                            |    2 +-
 help/info/remove_bom.html                     |    2 +-
 help/info/repeat.html                         |    2 +-
 help/info/replace.html                        |    2 +-
 help/info/reply.html                          |    2 +-
 help/info/return.html                         |    2 +-
 help/info/rnd.html                            |    2 +-
 help/info/running.html                        |    2 +-
 help/info/runs.html                           |    2 +-
 help/info/select.html                         |    2 +-
 help/info/self.html                           |    2 +-
 help/info/send.html                           |    2 +-
 help/info/sender.html                         |    2 +-
 help/info/set.html                            |    2 +-
 help/info/setverdict.html                     |    2 +-
 help/info/signature.html                      |    2 +-
 help/info/sizeof.html                         |    2 +-
 help/info/start.html                          |    2 +-
 help/info/stop.html                           |    2 +-
 help/info/str2bit.html                        |    2 +-
 help/info/str2float.html                      |    2 +-
 help/info/str2hex.html                        |    2 +-
 help/info/str2int.html                        |    2 +-
 help/info/str2oct.html                        |    2 +-
 help/info/subset.html                         |   27 +-
 help/info/substr.html                         |    2 +-
 help/info/superset.html                       |   27 +-
 help/info/system.html                         |    2 +-
 help/info/template.html                       |    2 +-
 help/info/testcase.html                       |    2 +-
 help/info/testcasename.html                   |    2 +-
 help/info/timeout.html                        |    2 +-
 help/info/timer.html                          |    2 +-
 help/info/to.html                             |    2 +-
 help/info/trigger.html                        |    2 +-
 help/info/true.html                           |    2 +-
 help/info/type.html                           |  223 +-
 help/info/unichar2char.html                   |    2 +-
 help/info/unichar2int.html                    |    2 +-
 help/info/unichar2oct.html                    |    2 +-
 help/info/union.html                          |    2 +-
 help/info/universal.html                      |    2 +-
 help/info/unmap.html                          |    2 +-
 help/info/value.html                          |    2 +-
 help/info/valueof.html                        |    2 +-
 help/info/var.html                            |    2 +-
 help/info/variant.html                        |    2 +-
 help/info/verdicttype.html                    |    2 +-
 help/info/while.html                          |    2 +-
 help/info/with.html                           |    2 +-
 help/info/xor.html                            |    2 +-
 help/info/xor4b.html                          |    2 +-
 help/titan.hhc                                |    2 +-
 help/titan.hhp                                |    2 +-
 help/titan_index.html                         |   30 +-
 help/titan_main.html                          |   10 +-
 help/ttcn3_help                               |    2 +-
 langviz/Grammar.cc                            |    2 +-
 langviz/Grammar.hh                            |    2 +-
 langviz/Graph.cc                              |    2 +-
 langviz/Graph.hh                              |    2 +-
 langviz/Iterator.cc                           |    2 +-
 langviz/Iterator.hh                           |    2 +-
 langviz/Makefile                              |    2 +-
 langviz/Node.cc                               |    2 +-
 langviz/Node.hh                               |    2 +-
 langviz/Rule.cc                               |    2 +-
 langviz/Rule.hh                               |    2 +-
 langviz/Symbol.cc                             |    2 +-
 langviz/Symbol.hh                             |    2 +-
 langviz/bison_la.l                            |    2 +-
 langviz/bison_p.y                             |    2 +-
 langviz/error.c                               |    2 +-
 langviz/error.h                               |    2 +-
 langviz/main.cc                               |    2 +-
 license/Makefile                              |    2 +-
 license/Makefile_renew_license                |    2 +-
 license/license.dat                           |    2 +-
 license/license_gen.c                         |    2 +-
 license/renew_license.c                       |    2 +-
 license/renew_license.html                    |    2 +-
 loggerplugins/JUnitLogger/JUnitLogger.cc      |    2 +-
 loggerplugins/JUnitLogger/JUnitLogger.hh      |    2 +-
 loggerplugins/JUnitLogger/Makefile            |    2 +-
 loggerplugins/JUnitLogger2/JUnitLogger2.cc    |    2 +-
 loggerplugins/JUnitLogger2/JUnitLogger2.hh    |    2 +-
 loggerplugins/JUnitLogger2/Makefile           |    2 +-
 loggerplugins/Makefile                        |    2 +-
 loggerplugins/TSTLogger/Makefile              |    2 +-
 loggerplugins/TSTLogger/TSTLogger.cc          |    2 +-
 loggerplugins/TSTLogger/TSTLogger.hh          |    2 +-
 makefiles/Makefile.personal.bangjohansen      |    2 +-
 makefiles/Makefile.personal.cygwin15          |    2 +-
 makefiles/Makefile.personal.ehubuux110        |    2 +-
 makefiles/Makefile.personal.elx1pjld12-hz     |    2 +
 ...le.personal.esekilxxen1843.rnd.ericsson.se |    2 +-
 makefiles/Makefile.personal.esekits1024       |    2 +-
 makefiles/Makefile.personal.esekits1080       |    2 +-
 makefiles/Makefile.personal.esekits3013       |    2 +-
 makefiles/Makefile.personal.esekiux5120       |    2 +-
 makefiles/Makefile.personal.tcclab1           |    2 +-
 makefiles/Makefile.personal.tcclab2           |    4 +-
 makefiles/Makefile.personal.tcclab3           |    2 +-
 makefiles/Makefile.personal.tcclab4           |    2 +-
 makefiles/Makefile.personal.tcclab5           |    2 +-
 makefiles/Makefile.personal.tcclab6           |    2 +-
 mctr2/Makefile                                |    2 +-
 mctr2/cli/Cli.cc                              |    6 +-
 mctr2/cli/Cli.h                               |    4 +-
 mctr2/cli/Makefile                            |    2 +-
 mctr2/cli/config_read.l                       |   27 +-
 mctr2/cli/config_read.y                       |  156 +-
 mctr2/editline/Makefile                       |    2 +-
 mctr2/mctr/MainController.cc                  |    4 +-
 mctr2/mctr/MainController.h                   |    4 +-
 mctr2/mctr/Makefile                           |    2 +-
 mctr2/mctr/MctrError.cc                       |    2 +-
 mctr2/mctr/UserInterface.cc                   |    4 +-
 mctr2/mctr/UserInterface.h                    |    4 +-
 mctr2/mctr/config_data.cc                     |    2 +-
 mctr2/mctr/config_data.h                      |    2 +-
 mctr2/mctr/main.cc                            |    4 +-
 mctr2/mctr/ttcn3_start                        |    2 +-
 parser/Makefile                               |    2 +-
 parser/parser.l                               |    2 +-
 parser/parser.y                               |    4 +-
 regression_test/ASN1/Makefile                 |    2 +-
 regression_test/ASN1/Test303/Makefile         |    2 +-
 regression_test/ASN1/Test303/Test303A.asn     |    2 +-
 regression_test/ASN1/Test303/Test303T.ttcn    |    2 +-
 regression_test/ASN1/Test303/config.cfg       |    2 +-
 regression_test/ASN1/Test307/Makefile         |    2 +-
 regression_test/ASN1/Test307/Test307A.asn     |    2 +-
 regression_test/ASN1/Test307/Test307T.ttcn    |    2 +-
 regression_test/ASN1/Test308/Makefile         |    2 +-
 regression_test/ASN1/Test308/Test308A.asn     |    2 +-
 regression_test/ASN1/Test308/Test308T.ttcn    |    2 +-
 regression_test/ASN1/Test309/Makefile         |    2 +-
 regression_test/ASN1/Test309/Test309A.asn     |    2 +-
 regression_test/ASN1/Test309/Test309T.ttcn    |    2 +-
 regression_test/ASN1/Test310/Makefile         |    2 +-
 regression_test/ASN1/Test310/Test310A.asn     |    2 +-
 regression_test/ASN1/Test310/Test310T.ttcn    |    2 +-
 regression_test/ASN1/Test330/Makefile         |    2 +-
 regression_test/ASN1/Test330/Test330A.asn     |    2 +-
 regression_test/ASN1/Test330/Test330T.ttcn    |    2 +-
 regression_test/ASN1/Test332/Makefile         |    2 +-
 regression_test/ASN1/Test332/Test332A.asn     |    2 +-
 regression_test/ASN1/Test332/Test332T.ttcn    |    2 +-
 regression_test/ASN1/Test338/Makefile         |    2 +-
 regression_test/ASN1/Test338/Test338A.asn     |    2 +-
 regression_test/ASN1/Test338/Test338T.ttcn    |    2 +-
 regression_test/ASN1/Test340/Makefile         |    2 +-
 regression_test/ASN1/Test340/Test340A.asn     |    2 +-
 regression_test/ASN1/Test340/Test340T.ttcn    |    2 +-
 regression_test/ASN1/Test342/Makefile         |    2 +-
 regression_test/ASN1/Test342/Test342A.asn     |    2 +-
 regression_test/ASN1/Test342/Test342T.ttcn    |    2 +-
 regression_test/ASN1/Test344/Makefile         |    2 +-
 regression_test/ASN1/Test344/Test344A.asn     |    2 +-
 regression_test/ASN1/Test344/Test344T.ttcn    |    2 +-
 regression_test/ASN1/Test346/Makefile         |    2 +-
 regression_test/ASN1/Test346/Test346A.asn     |    2 +-
 regression_test/ASN1/Test346/Test346T.ttcn    |    2 +-
 regression_test/ASN1/Test348/Makefile         |    2 +-
 regression_test/ASN1/Test348/Test348A.asn     |    2 +-
 regression_test/ASN1/Test348/Test348T.ttcn    |    2 +-
 regression_test/ASN1/Test350/Makefile         |    2 +-
 regression_test/ASN1/Test350/Test350A.asn     |    2 +-
 regression_test/ASN1/Test350/Test350T.ttcn    |    2 +-
 regression_test/ASN1/Test350/config.cfg       |    2 +-
 regression_test/ASN1/Test352/Makefile         |    2 +-
 regression_test/ASN1/Test352/Test352A.asn     |    2 +-
 regression_test/ASN1/Test352/Test352T.ttcn    |    2 +-
 regression_test/ASN1/Test352/config.cfg       |    2 +-
 regression_test/ASN1/Test354/Makefile         |    2 +-
 regression_test/ASN1/Test354/Test354A.asn     |    2 +-
 regression_test/ASN1/Test354/Test354T.ttcn    |    2 +-
 regression_test/ASN1/Test354/config.cfg       |    2 +-
 regression_test/ASN1/Test356/Makefile         |    2 +-
 regression_test/ASN1/Test356/Test356A.asn     |    2 +-
 regression_test/ASN1/Test356/Test356T.ttcn    |    2 +-
 regression_test/ASN1/Test356/config.cfg       |    2 +-
 regression_test/ASN1/Test358/Makefile         |    2 +-
 regression_test/ASN1/Test358/Test358A.asn     |    2 +-
 regression_test/ASN1/Test358/Test358T.ttcn    |    2 +-
 regression_test/ASN1/Test358/config.cfg       |    2 +-
 regression_test/ASN1/Test360/Makefile         |    2 +-
 regression_test/ASN1/Test360/Test360A.asn     |    2 +-
 regression_test/ASN1/Test360/Test360T.ttcn    |    2 +-
 regression_test/ASN1/Test360/config.cfg       |    2 +-
 regression_test/ASN1/Test38/Makefile          |    2 +-
 regression_test/ASN1/Test38/Test38A.asn       |    2 +-
 regression_test/ASN1/Test38/Test38B.asn       |    2 +-
 regression_test/ASN1/codeGeneration2/Makefile |    2 +-
 .../ASN1/codeGeneration2/Test46.asn           |    2 +-
 .../ASN1/codeGeneration2/Test48.asn           |    2 +-
 .../ASN1/codeGeneration2/Test49.asn           |    2 +-
 .../ASN1/codeGeneration2/Test51.asn           |    2 +-
 .../ASN1/codeGeneration2/Test52.asn           |    2 +-
 .../ASN1/codeGeneration2/Test53.asn           |    2 +-
 .../ASN1/codeGeneration2/Test54.asn           |    2 +-
 .../ASN1/codeGeneration2/Test55.asn           |    2 +-
 .../ASN1/codeGeneration2/Test56.asn           |    2 +-
 .../ASN1/codeGeneration2/Test57.asn           |    2 +-
 .../ASN1/codeGeneration2/Test60.asn           |    2 +-
 .../ASN1/codeGeneration2/Test61.asn           |    2 +-
 .../ASN1/codeGeneration2/Test62.asn           |    2 +-
 .../ASN1/codeGeneration2/Test63.asn           |    2 +-
 .../ASN1/codeGeneration2/Test64.asn           |    2 +-
 .../ASN1/codeGeneration2/Test65.asn           |    2 +-
 .../ASN1/codeGeneration2/Test66.asn           |    2 +-
 .../ASN1/codeGeneration2/Test68.asn           |    2 +-
 .../ASN1/codeGeneration2/Test71.asn           |    2 +-
 .../ASN1/codeGeneration2/Test74.asn           |    2 +-
 .../ASN1/codeGeneration2/Test75.asn           |    2 +-
 .../ASN1/codeGeneration2/Test76.asn           |    2 +-
 .../ASN1/codeGeneration2/Test77.asn           |    2 +-
 .../ASN1/codeGeneration2/Test78.asn           |    2 +-
 .../ASN1/codeGeneration2/Test80.asn           |    2 +-
 .../ASN1/codeGeneration2/Test81.asn           |    2 +-
 .../ASN1/codeGeneration2/Test83.asn           |    2 +-
 .../ASN1/codeGeneration2/Test86.asn           |    2 +-
 .../ASN1/codeGeneration2/Test87.asn           |    2 +-
 regression_test/ASN1/enum1/Makefile           |    2 +-
 regression_test/ASN1/enum1/Test23.asn         |    2 +-
 regression_test/ASN1/enum2/Makefile           |    2 +-
 regression_test/ASN1/enum2/Test25.asn         |    2 +-
 regression_test/ASN1/errorMessages/Makefile   |    2 +-
 regression_test/ASN1/errorMessages/Test11.asn |    2 +-
 regression_test/ASN1/errorMessages/Test12.asn |    2 +-
 regression_test/ASN1/errorMessages/Test13.asn |    2 +-
 regression_test/ASN1/errorMessages/Test14.asn |    2 +-
 regression_test/ASN1/errorMessages/Test15.asn |    2 +-
 regression_test/ASN1/errorMessages/Test16.asn |    2 +-
 regression_test/ASN1/errorMessages/Test17.asn |    2 +-
 regression_test/ASN1/errorMessages/Test18.asn |    2 +-
 .../ASN1/errorMessages/Test19_1.asn           |    2 +-
 .../ASN1/errorMessages/Test19_2.asn           |    2 +-
 regression_test/ASN1/errorMessages/Test20.asn |    2 +-
 regression_test/ASN1/errorMessages/Test21.asn |    2 +-
 regression_test/ASN1/errorMessages/Test22.asn |    2 +-
 regression_test/ASN1/errorMessages/Test24.asn |    2 +-
 regression_test/ASN1/errorMessages/Test26.asn |    2 +-
 regression_test/ASN1/errorMessages/Test28.asn |    2 +-
 regression_test/ASN1/errorMessages/Test32.asn |    2 +-
 regression_test/ASN1/errorMessages/Test33.asn |    2 +-
 regression_test/ASN1/errorMessages/Test34.asn |    2 +-
 regression_test/ASN1/errorMessages/Test39.asn |    2 +-
 regression_test/ASN1/errorMessages/Test40.asn |    2 +-
 regression_test/ASN1/errorMessages/Test41.asn |    2 +-
 regression_test/ASN1/errorMessages/Test42.asn |    2 +-
 regression_test/ASN1/errorMessages/Test43.asn |    2 +-
 regression_test/ASN1/errorMessages/Test44.asn |    2 +-
 regression_test/ASN1/errorMessages/Test45.asn |    2 +-
 regression_test/ASN1/errorMessages/Test47.asn |    2 +-
 regression_test/ASN1/errorMessages/Test50.asn |    2 +-
 regression_test/ASN1/errorMessages/Test67.asn |    2 +-
 regression_test/ASN1/errorMessages/Test69.asn |    2 +-
 regression_test/ASN1/errorMessages/Test70.asn |    2 +-
 regression_test/ASN1/errorMessages/Test72.asn |    2 +-
 regression_test/ASN1/errorMessages/Test73.asn |    2 +-
 regression_test/ASN1/errorMessages/Test79.asn |    2 +-
 regression_test/ASN1/errorMessages/Test82.asn |    2 +-
 regression_test/ASN1/errorMessages/Test84.asn |    2 +-
 regression_test/ASN1/errorMessages/Test85.asn |    2 +-
 regression_test/ASN1/errorMessages2/Makefile  |    2 +-
 .../ASN1/errorMessages2/Test10.asn            |    2 +-
 regression_test/ASN1/hyphen/Makefile          |    2 +-
 regression_test/ASN1/hyphen/Test284.asn       |    2 +-
 regression_test/ASN1/keyword/Makefile         |    2 +-
 regression_test/ASN1/keyword/Test283.asn      |    2 +-
 regression_test/ASN1/keyword/Test283T.ttcn    |    2 +-
 regression_test/ASN1/parse/Makefile           |    2 +-
 regression_test/ASN1/parse/Test1.asn          |    2 +-
 .../ASN1/parse/Test1_known_errors.asn         |    2 +-
 regression_test/ASN1/parse/Test2.asn          |    2 +-
 .../ASN1/parse/Test2_known_errors.asn         |    2 +-
 regression_test/ASN1/parse/Test3.asn          |    2 +-
 .../ASN1/parse/Test3_known_errors.asn         |    2 +-
 regression_test/ASN1/parse/Test4.asn          |    2 +-
 .../ASN1/parse/Test4_known_errors.asn         |    2 +-
 regression_test/ASN1/transformations/Makefile |    2 +-
 .../ASN1/transformations/Test289A.asn         |    2 +-
 .../ASN1/transformations/Test289B.asn         |    2 +-
 .../ASN1/transformations/Test5A.asn           |    2 +-
 .../ASN1/transformations/Test5B.asn           |    2 +-
 .../ASN1/transformations/Test6A.asn           |    2 +-
 .../ASN1/transformations/Test6B.asn           |    2 +-
 .../ASN1/transformations/Test7A.asn           |    2 +-
 .../ASN1/transformations/Test7B.asn           |    2 +-
 .../ASN1/transformations/Test8A.asn           |    2 +-
 .../ASN1/transformations/Test8B.asn           |    2 +-
 .../ASN1/transformations/Test9A.asn           |    2 +-
 .../ASN1/transformations/Test9B.asn           |    2 +-
 regression_test/BER/Makefile                  |    2 +-
 regression_test/BER/MyPort1.cc                |    2 +-
 regression_test/BER/MyPort1.hh                |    2 +-
 regression_test/BER/MyPort2.cc                |    2 +-
 regression_test/BER/MyPort2.hh                |    2 +-
 regression_test/BER/Regr.cfg                  |    2 +-
 regression_test/BER/Regr.ttcn                 |    8 +-
 regression_test/BER/Regr1.asn                 |    2 +-
 regression_test/BER/Regr2.asn                 |    2 +-
 regression_test/BER_x682/Makefile             |    2 +-
 regression_test/BER_x682/MyPort1.cc           |    2 +-
 regression_test/BER_x682/MyPort1.hh           |    2 +-
 regression_test/BER_x682/MyPort2.cc           |    2 +-
 regression_test/BER_x682/MyPort2.hh           |    2 +-
 regression_test/BER_x682/X.cfg                |    2 +-
 regression_test/BER_x682/X.ttcn               |    2 +-
 regression_test/BER_x682/X682.asn             |    2 +-
 regression_test/BER_x682_wa/Makefile          |    2 +-
 regression_test/BER_x682_wa/MyPort1.cc        |    2 +-
 regression_test/BER_x682_wa/MyPort1.hh        |    2 +-
 regression_test/BER_x682_wa/MyPort2.cc        |    2 +-
 regression_test/BER_x682_wa/MyPort2.hh        |    2 +-
 regression_test/BER_x682_wa/X.cfg             |    2 +-
 regression_test/BER_x682_wa/X.ttcn            |    2 +-
 regression_test/BER_x682_wa/x682.asn          |    2 +-
 regression_test/CRTR00015758/Makefile         |    2 +-
 regression_test/CRTR00015758/config.cfg       |    2 +-
 regression_test/CRTR00015758/no.ttcn          |    2 +-
 regression_test/CRTR00015758/run.cfg          |    2 +-
 regression_test/CRTR00015758/trouble.cfg      |    2 +-
 regression_test/ERC/Makefile                  |    2 +-
 regression_test/ERC/base.cfg                  |    2 +-
 regression_test/ERC/config.cfg                |    2 +-
 regression_test/ERC/erc.ttcn                  |    3 +-
 regression_test/ERC/included1.cfg             |    2 +-
 regression_test/ERC/included2.cfg             |    2 +-
 regression_test/ERC/subdir/subdir_config.cfg  |    2 +-
 regression_test/HQ16404/HQ16404.ttcn          |    2 +-
 regression_test/HQ16404/Makefile              |    2 +-
 regression_test/HQ16404/config.cfg            |    2 +-
 regression_test/Makefile                      |    4 +-
 regression_test/Makefile.regression           |    3 +-
 .../RAW/Examples/DTAP_RAW_Samples.ttcn        |    2 +-
 .../RAW/Examples/DTAP_typedefs.ttcn           |    2 +-
 regression_test/RAW/Examples/Makefile         |    2 +-
 regression_test/RAW/Examples/RAW_Test.ttcn    |    2 +-
 regression_test/RAW/Examples/RAWtest.cfg      |    2 +-
 .../RAW/Examples/SCCP_RAW_Samples.ttcn        |    2 +-
 .../RAW/Examples/SCCP_typedefs.ttcn           |    2 +-
 .../RAW/Examples/general_typedefs.ttcn        |    2 +-
 .../RAW/HN25015/General_Types.ttcn            |    2 +-
 regression_test/RAW/HN25015/HN25015.ttcn      |    2 +-
 regression_test/RAW/HN25015/Makefile          |    2 +-
 regression_test/RAW/HN25015/SGsAP_Types.ttcn  |    2 +-
 regression_test/RAW/HN25015/config.cfg        |    2 +-
 regression_test/RAW/HQ26535/GTPv2_Types.ttcn  |    2 +-
 .../RAW/HQ26535/General_Types.ttcn            |    2 +-
 regression_test/RAW/HQ26535/Makefile          |    2 +-
 regression_test/RAW/HQ26535/gtpctest.ttcn     |    2 +-
 regression_test/RAW/HQ49956/Makefile          |    2 +-
 regression_test/RAW/HQ49956/Module.ttcn       |    2 +-
 regression_test/RAW/HQ49956/Test.ttcn         |    2 +-
 .../RAW/HS16977/HS16977_Constants.ttcn        |    2 +-
 regression_test/RAW/HS16977/HS16977_Test.ttcn |    2 +-
 .../RAW/HS16977/HS16977_Types.ttcn            |    2 +-
 regression_test/RAW/HS16977/Makefile          |    2 +-
 regression_test/RAW/HS16977/config.cfg        |    2 +-
 regression_test/RAW/IntX/IntX.ttcn            |  372 +++
 regression_test/RAW/IntX/Makefile             |  135 +
 regression_test/RAW/IntX/config.cfg           |   14 +
 regression_test/RAW/Makefile                  |    2 +-
 .../XML/EXER-whitepaper/AnyAttributes.ttcnpp  |    2 +-
 .../XML/EXER-whitepaper/AnyElement.ttcnpp     |    2 +-
 .../EXER-whitepaper/AnyElementOptional.ttcnpp |    2 +-
 .../AnyElementOptional2.ttcnpp                |    2 +-
 .../XML/EXER-whitepaper/Attribute.ttcnpp      |    4 +-
 .../EXER-whitepaper/DefaultForEmpty.ttcnpp    |    2 +-
 .../XML/EXER-whitepaper/EmbedValues.ttcnpp    |    2 +-
 .../XML/EXER-whitepaper/List.ttcnpp           |    2 +-
 regression_test/XML/EXER-whitepaper/Makefile  |    2 +-
 .../XML/EXER-whitepaper/Name.ttcnpp           |    2 +-
 .../XML/EXER-whitepaper/Namespaces.ttcnpp     |    2 +-
 .../XML/EXER-whitepaper/NamespacesDup.ttcnpp  |    2 +-
 .../XML/EXER-whitepaper/Order.ttcnpp          |    2 +-
 .../XML/EXER-whitepaper/Qname.ttcnpp          |    2 +-
 .../XML/EXER-whitepaper/Text.ttcnpp           |    2 +-
 .../XML/EXER-whitepaper/Untagged.ttcnpp       |    2 +-
 .../XML/EXER-whitepaper/Untagged1.ttcnpp      |    2 +-
 .../XML/EXER-whitepaper/UseNil.ttcnpp         |    2 +-
 .../XML/EXER-whitepaper/UseNilSimple.ttcnpp   |    2 +-
 .../XML/EXER-whitepaper/UseNumber.ttcnpp      |    2 +-
 .../XML/EXER-whitepaper/UseOrder.ttcnpp       |    2 +-
 .../XML/EXER-whitepaper/UseType.ttcnpp        |    2 +-
 .../XML/EXER-whitepaper/UseUnion.ttcnpp       |    2 +-
 .../XML/EXER-whitepaper/Whitespace.ttcnpp     |    2 +-
 .../XML/EXER-whitepaper/config.cfg            |    2 +-
 regression_test/XML/HM60295/Importer.xsd      |    2 +-
 regression_test/XML/HM60295/Makefile          |    2 +-
 regression_test/XML/HM60295/Schema1.xsd       |    2 +-
 regression_test/XML/HM60295/Schema2.xsd       |    2 +-
 regression_test/XML/HM60295/config.cfg        |    2 +-
 regression_test/XML/HM60295/tester.ttcn       |    2 +-
 regression_test/XML/HN15589/A.xsd             |    2 +-
 regression_test/XML/HN15589/B.xsd             |    2 +-
 regression_test/XML/HN15589/HN15589.ttcnpp    |    2 +-
 regression_test/XML/HN15589/Makefile          |    2 +-
 regression_test/XML/HN15589/config.cfg        |    2 +-
 .../XML/HN15589/flipflop-check.xsd            |    2 +-
 regression_test/XML/HN15589/log2xml.pl        |    2 +-
 regression_test/XML/HN15589/xsd/XTDL.xsd      |    2 +-
 .../XML/HN15589/xsd/XTDP-Message.xsd          |    2 +-
 regression_test/XML/HN15589/xtdl.ttcn         |    2 +-
 regression_test/XML/HN15589/xtdp.cfg          |    2 +-
 regression_test/XML/HN15589/xtdp.ttcn         |    2 +-
 regression_test/XML/HQ30408/HQ30408.ttcn      |    2 +-
 regression_test/XML/HQ30408/Makefile          |    2 +-
 regression_test/XML/HR49727/HR49727.ttcn      |    2 +-
 regression_test/XML/HR49727/Makefile          |    2 +-
 .../XML/HR49727/UsefulTtcn3Types.ttcn         |    2 +-
 regression_test/XML/HR49727/XSD.ttcn          |    2 +-
 regression_test/XML/HR49727/config.cfg        |    2 +-
 .../http_jabber_org_protocol_pubsub.ttcn      |    2 +-
 ...http_jabber_org_protocol_pubsub_event.ttcn |    2 +-
 .../XML/HR49727/jabber_x_data.ttcn            |    2 +-
 regression_test/XML/HU13380/HU13380.ttcn      |   64 +
 regression_test/XML/HU13380/Makefile          |  138 +
 regression_test/XML/HU13380/config.cfg        |   12 +
 regression_test/XML/Makefile                  |    4 +-
 regression_test/XML/NegativeTest/Makefile     |    2 +-
 regression_test/XML/NegativeTest/ReadXml.ttcn |    2 +-
 .../XML/NegativeTest/ReadXmlImpl.cc           |    2 +-
 .../XML/NegativeTest/exer_rec.ttcn            |    2 +-
 .../XML/NegativeTest/exer_rec_of.ttcn         |    2 +-
 .../XML/NegativeTest/exer_uni.ttcn            |    2 +-
 regression_test/XML/NegativeTest/indent.pl    |    2 +-
 regression_test/XML/NegativeTest/rec.ttcn     |    2 +-
 regression_test/XML/NegativeTest/rec_of.ttcn  |    2 +-
 regression_test/XML/NegativeTest/run.cfg      |    2 +-
 regression_test/XML/NegativeTest/runner.ttcn  |    2 +-
 regression_test/XML/NegativeTest/uni.ttcn     |    2 +-
 regression_test/XML/TTCNandXML/AnnexB1.ttcn   |    2 +-
 .../XML/TTCNandXML/AnnexB1Template.ttcnpp     |    2 +-
 regression_test/XML/TTCNandXML/AnnexB2.ttcn   |    2 +-
 .../XML/TTCNandXML/AnnexB2Template.ttcnpp     |    2 +-
 regression_test/XML/TTCNandXML/AnnexB3.ttcn   |    2 +-
 .../XML/TTCNandXML/AnnexB3Template.ttcnpp     |    2 +-
 regression_test/XML/TTCNandXML/AnnexB4.ttcn   |    2 +-
 .../XML/TTCNandXML/AnnexB4Template.ttcnpp     |    2 +-
 .../XML/TTCNandXML/AnyStuff.ttcnpp            |    2 +-
 .../XML/TTCNandXML/AttribPath.ttcn            |    2 +-
 .../XML/TTCNandXML/AttribPathTest.ttcnpp      |    2 +-
 .../XML/TTCNandXML/AttributesTest.ttcnpp      |    2 +-
 .../XML/TTCNandXML/Base64Test.ttcnpp          |    2 +-
 .../XML/TTCNandXML/DFEAttribTest.ttcnpp       |    2 +-
 regression_test/XML/TTCNandXML/DFETest.ttcnpp |    2 +-
 regression_test/XML/TTCNandXML/E0.ttcn        |    2 +-
 .../XML/TTCNandXML/EmbedValues.ttcnpp         |    2 +-
 .../XML/TTCNandXML/EnumTest.ttcnpp            |    2 +-
 regression_test/XML/TTCNandXML/Flatten.cc     |    2 +-
 regression_test/XML/TTCNandXML/Flattener.ttcn |    2 +-
 regression_test/XML/TTCNandXML/Makefile       |    2 +-
 regression_test/XML/TTCNandXML/Marx.ttcnpp    |    2 +-
 .../XML/TTCNandXML/NamespaceDef.ttcn          |    2 +-
 .../XML/TTCNandXML/NamespaceTest.ttcnpp       |    2 +-
 .../XML/TTCNandXML/Regressions.ttcnpp         |    2 +-
 regression_test/XML/TTCNandXML/UTF8.ttcn      |    2 +-
 .../XML/TTCNandXML/WhitespaceTest.ttcnpp      |    2 +-
 regression_test/XML/TTCNandXML/X693amd1.ttcn  |    2 +-
 .../XML/TTCNandXML/X693amd1Test.ttcnpp        |    2 +-
 .../XML/TTCNandXML/XSDAttributes.ttcn         |    2 +-
 regression_test/XML/TTCNandXML/config.cfg     |    2 +-
 regression_test/XML/XER/AsnValues.asn         |    2 +-
 regression_test/XML/XER/Asntypes.asn          |    2 +-
 regression_test/XML/XER/EmptyUnion.asn        |    2 +-
 regression_test/XML/XER/Flatten.cc            |    2 +-
 regression_test/XML/XER/Makefile              |    2 +-
 regression_test/XML/XER/ObjectClass.asn       |    2 +-
 .../XML/XER/ObjectClassWithSyntax.asn         |    2 +-
 regression_test/XML/XER/SetValues.asn         |    2 +-
 regression_test/XML/XER/Sets.asn              |    2 +-
 regression_test/XML/XER/Txerasntypes.ttcnpp   |    2 +-
 regression_test/XML/XER/Txerbinstr.ttcnpp     |    2 +-
 regression_test/XML/XER/Txerboolean.ttcnpp    |    2 +-
 regression_test/XML/XER/Txerenum.ttcnpp       |    2 +-
 regression_test/XML/XER/Txerfloat.ttcnpp      |    2 +-
 regression_test/XML/XER/Txerint.ttcnpp        |    2 +-
 regression_test/XML/XER/Txernested.ttcnpp     |    2 +-
 regression_test/XML/XER/Txerobjclass.ttcnpp   |    2 +-
 regression_test/XML/XER/Txersets.ttcnpp       |    2 +-
 regression_test/XML/XER/Txerstring.ttcnpp     |    2 +-
 regression_test/XML/XER/checkit.pl            |    2 +-
 regression_test/XML/XER/config.cfg            |    2 +-
 regression_test/XML/XER/junk.ttcn3            |    2 +-
 regression_test/XML/XMLqualif/Makefile        |    2 +-
 regression_test/XML/XMLqualif/POtest.ttcnpp   |    2 +-
 regression_test/XML/XMLqualif/config.cfg      |    2 +-
 regression_test/XML/XMLqualif/globall.xsd     |    2 +-
 regression_test/XML/XMLqualif/po_qual.xsd     |    2 +-
 regression_test/XML/XMLqualif/po_qual_atr.xsd |    2 +-
 .../XML/XMLqualif/po_qual_both.xsd            |    2 +-
 .../XML/XMLqualif/po_qual_default.xml         |    2 +-
 .../XML/XMLqualif/po_qual_explicit.xml        |    2 +-
 regression_test/XML/XMLqualif/po_unqual.xml   |    2 +-
 regression_test/XML/XMLqualif/po_unqual.xsd   |    2 +-
 regression_test/XML/XmlWorkflow/Makefile      |    2 +-
 .../PIPEasp_CNL113334/demo/PIPE.cfg           |    2 +-
 .../demo/PIPEasp_Templates.ttcn               |    2 +-
 .../PIPEasp_CNL113334/demo/PipeTest.prj       |    2 +-
 .../PIPEasp_CNL113334/demo/PipeTest.ttcn      |    2 +-
 .../PIPEasp_CNL113334/demo/ShellNotice.sh     |    2 +-
 .../demo/ShellQuestionString.sh               |    2 +-
 .../demo/ShellQuestionYesNo.sh                |    2 +-
 .../PIPEasp_CNL113334/src/PIPEasp_PT.cc       |    2 +-
 .../PIPEasp_CNL113334/src/PIPEasp_PT.hh       |    2 +-
 .../src/PIPEasp_PortType.ttcn                 |    2 +-
 .../PIPEasp_CNL113334/src/PIPEasp_Types.ttcn  |    2 +-
 .../PIPEasp_CNL113334/test/Makefile           |    2 +-
 .../PIPEasp_CNL113334/test/PIPEasp_PT.cc      |    2 +-
 .../PIPEasp_CNL113334/test/PIPEasp_PT.hh      |    2 +-
 .../test/PIPEasp_PortType.ttcn                |    2 +-
 .../PIPEasp_CNL113334/test/PIPEasp_Types.ttcn |    2 +-
 .../XML/XmlWorkflow/Tgc/IsTypes.xsd           |    2 +-
 regression_test/XML/XmlWorkflow/Tgc/Tgc.ttcn  |    2 +-
 regression_test/XML/XmlWorkflow/Tgc/Tgc.xsd   |    2 +-
 .../XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn |    2 +-
 .../XML/XmlWorkflow/Tgc/XMLSchema.xsd         |    2 +-
 regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn  |    2 +-
 regression_test/XML/XmlWorkflow/Tgc/confd.xsd |    2 +-
 .../Tgc/tail_f_com_ns_confd_1_0.ttcn          |    2 +-
 ...sson_com_is_isco_IsTypes_R4L06_R4AF11.ttcn |    2 +-
 ..._ericsson_com_is_isco_Tgc_R6A48_R6H01.ttcn |    2 +-
 .../Tgc/www_w3_org_XML_1998_namespace.ttcn    |    2 +-
 regression_test/XML/XmlWorkflow/Tgc/xml.xsd   |    2 +-
 .../XmlTest_expectedTtcns/MyTypes_e.ttcn      |   72 +
 .../NoTargetNamespace.ttcn                    |   58 +
 .../XmlTest_imsike_e.ttcn                     |    2 +-
 .../attribute_in_extension_e.ttcn             |   72 +
 ...le_org_complex_restriction_with_use_e.ttcn |  117 +
 .../http_www_example_org_name_conv2_e.ttcn    |   47 +
 .../http_www_example_org_name_conv3_e.ttcn    |   47 +
 ..._org_nillable_in_nillable_extension_e.ttcn |   92 +
 ...http_www_example_org_seq_embeds_seq_e.ttcn |   80 +
 ...http_www_example_org_ttcn_wildcards_e.ttcn |   12 +
 .../http_www_example_org_wildcards_e.ttcn     |  118 +
 .../imported_module_1_e.ttcn                  |   53 +
 .../imported_module_e.ttcn                    |   53 +
 .../module_typename_conversion_e.ttcn         |   75 +
 .../name_conversion_extension_attrib_e.ttcn   |   81 +
 .../nillable_annotations_e.ttcn               |   75 +
 ..._ietf_params_xml_ns_conference_info_e.ttcn |   40 +-
 .../www_XmlTest_org_annotation_c_e.ttcn       |    3 +-
 .../www_XmlTest_org_annotation_t_e.ttcn       |    2 +-
 .../www_XmlTest_org_boolean_e.ttcn            |    8 +
 .../www_XmlTest_org_complex_all_e.ttcn        |   20 +-
 .../www_XmlTest_org_complex_include2_e.ttcn   |    2 +-
 ...mlTest_org_element_recordOfElements_e.ttcn |    2 +-
 .../www_XmlTest_org_list_e.ttcn               |    2 +
 .../www_XmlTest_org_string_e.ttcn             |    2 +-
 .../www_XmlTest_org_union_e.ttcn              |   10 +
 .../www_example_org_all_e.ttcn                |  175 ++
 .../www_example_org_anyattr_in_complex_e.ttcn |   63 +
 .../www_example_org_anyattrib_single_e.ttcn   |  132 +
 .../www_example_org_attr_ext_rest_e.ttcn      |  220 ++
 .../www_example_org_attrib_enum_e.ttcn        |   59 +
 .../www_example_org_attrib_order_a_e.ttcn     |  115 +
 .../www_example_org_attrib_order_b_e.ttcn     |   53 +
 ...www_example_org_attribgroup_ingroup_e.ttcn |   68 +
 ...ample_org_boolean_variant_commented_e.ttcn |  131 +
 .../www_example_org_comment_placement_e.ttcn  |   95 +
 .../www_example_org_complex_nillable_e.ttcn   |  146 +
 ..._example_org_decimal_fractiondigits_e.ttcn |   69 +
 ..._dont_generate_element_substitution_e.ttcn |   98 +
 .../www_example_org_enum_field_names_e.ttcn   |   61 +
 ..._example_org_enumeration_remove_dup_e.ttcn |  123 +
 ...example_org_enumeration_restriction_e.ttcn |  157 +
 .../www_example_org_fixed_value_e.ttcn        |  161 +
 ...e_org_generate_element_substitution_e.ttcn |  102 +
 .../www_example_org_id_attrib_e.ttcn          |   50 +
 .../www_example_org_import_prefix_e.ttcn      |   81 +
 .../www_example_org_imported2_e.ttcn          |   69 +
 .../www_example_org_imported_e.ttcn           |   59 +
 .../www_example_org_list_simpletype_e.ttcn    |  117 +
 .../www_example_org_long_extension_e.ttcn     |  149 +
 .../www_example_org_name_conv_http_e.ttcn     |   47 +
 .../www_example_org_namespaceas_e.ttcn        |   92 +
 .../www_example_org_nillable_fixed_e.ttcn     |  102 +
 .../www_example_org_no_ns_connector_e.ttcn    |   68 +
 ...rg_not_a_number_minex_inf_maxex_inf_e.ttcn |   73 +
 ...xample_org_qualified_element_attrib_e.ttcn |   78 +
 ...w_example_org_regex_square_brackets_e.ttcn |   65 +
 .../www_example_org_self_recursion_e.ttcn     |   66 +
 ...ple_org_seq_enumeration_restriction_e.ttcn |   77 +
 ...www_example_org_seq_group_reference_e.ttcn |   81 +
 .../www_example_org_simpletype_base_e.ttcn    |   58 +
 .../www_example_org_simpletype_ref_e.ttcn     |   86 +
 ...xample_org_simpletype_restrict_comp_e.ttcn |   70 +
 ..._substitutiongroup_abstract_block_1_e.ttcn |  134 +
 ..._substitutiongroup_abstract_block_2_e.ttcn |  134 +
 ...tutiongroup_complex_without_element_e.ttcn |  127 +
 .../www_example_org_substitutiongroup_e.ttcn  |  132 +
 ...rg_substitutiongroup_long_extension_e.ttcn |  152 +
 ..._example_org_substitutiongroup_main_e.ttcn |   78 +
 ...w_example_org_substitutiongroup_ref_e.ttcn |   57 +
 ...le_org_type_attributegroup_nillable_e.ttcn |   94 +
 ..._example_org_type_conversion_follow_e.ttcn |   99 +
 .../www_example_org_unnamed_union_e.ttcn      |   69 +
 ...mple_org_unqualified_element_attrib_e.ttcn |   76 +
 .../www_example_org_xml_in_annotation_e.ttcn  |   63 +
 .../XmlTest_protocolXSDs/CAI3G/Bulk.xsd       |    2 +-
 .../CAI3G/GenericCai3gType.xsd                |    2 +-
 .../CAI3G/Provisioning.xsd                    |    2 +-
 .../XmlTest_protocolXSDs/CCAPI/CCAPI.xsd      |    2 +-
 .../XmlTest_protocolXSDs/HSS/avg.xsd          |    2 +-
 .../HSS/cai3g1.2_provisioning.xsd             |    2 +-
 .../XmlTest_protocolXSDs/HSS/eps.xsd          |    2 +-
 .../XmlTest_protocolXSDs/HSS/hssla_types.xsd  |    2 +-
 .../JMdict/jmdict-good.xsd                    |    2 +-
 .../MGW/IntegratedSite.xsd                    |    2 +-
 .../MGW/IntegratedSite_HK84933.xsd            |    2 +-
 .../XmlTest_protocolXSDs/MGW/IsTypes.xsd      |    2 +-
 .../XmlTest_protocolXSDs/MGW/MainSwitch.xsd   |    2 +-
 .../XmlTest_protocolXSDs/MGW/Mgw_R9B27.xsd    |    2 +-
 .../XmlTest_protocolXSDs/MGW/Misc.xsd         |    2 +-
 .../XmlTest_protocolXSDs/MGW/XMLSchema.xsd    |    2 +-
 .../XmlTest_protocolXSDs/MGW/confd.xsd        |    2 +-
 .../XmlTest_protocolXSDs/MGW/xml.xsd          |    2 +-
 .../XmlTest_protocolXSDs/PAP/PAP.xsd          |    2 +-
 .../XmlTest_protocolXSDs/PIDF/pidf.xsd        |    2 +-
 .../XmlTest_protocolXSDs/PIDF/rlmi.xsd        |    2 +-
 .../XmlTest_protocolXSDs/PIDF/testschema.xsd  |    2 +-
 .../XmlTest_protocolXSDs/PIDF/xml_PIDF.xsd    |    2 +-
 .../ParlayX/parlayx_common_types_2_0.xsd      |    2 +-
 ..._payment_amount_charging_interface_2_0.xsd |    2 +-
 ..._reserve_amount_charging_interface_2_0.xsd |    2 +-
 ..._reserve_volume_charging_interface_2_0.xsd |    2 +-
 .../ParlayX/parlayx_payment_types_2_0.xsd     |    2 +-
 ..._payment_volume_charging_interface_2_0.xsd |    2 +-
 .../XmlTest_protocolXSDs/RLP/RLP_SVC.xsd      |    2 +-
 .../RLXML/RLXML_small.xsd                     |    2 +-
 .../XmlTest_protocolXSDs/RLXML/rlxml.xml      |    2 +-
 .../XmlTest_protocolXSDs/SIP/SIP.xsd          |    2 +-
 .../ShData/ShDataType.xsd                     |    2 +-
 .../XmlTest_protocolXSDs/XML_RPC/XML_RPC.xsd  |    2 +-
 .../XmlTest_xsds/ETSI_CR5852_union.xsd        |    2 +-
 .../XmlTest_xsds/UsefulTtcn3Types.ttcn        |    2 +-
 .../XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn     |    2 +-
 .../XmlTest_xsds/XmlTest_annotation.xsd       |    2 +-
 .../XmlTest_xsds/XmlTest_annotation1.xsd      |    2 +-
 .../XmlTest_xsds/XmlTest_annotation2.xsd      |    2 +-
 .../XmlTest_xsds/XmlTest_boolean.xsd          |    2 +-
 .../XmlTest_boolean_withTypeAndBase.xsd       |    2 +-
 .../XmlTest_xsds/XmlTest_complex1.xsd         |    2 +-
 .../XmlTest_xsds/XmlTest_complex2.xsd         |    2 +-
 .../XmlTest_xsds/XmlTest_complex_all.xsd      |    2 +-
 .../XmlTest_xsds/XmlTest_complex_any.xsd      |    2 +-
 .../XmlTest_xsds/XmlTest_complex_choice.xsd   |    2 +-
 .../XmlTest_complex_extension.xsd             |    2 +-
 .../XmlTest_xsds/XmlTest_complex_import_A.xsd |    2 +-
 .../XmlTest_complex_import_AB.xsd             |    2 +-
 .../XmlTest_xsds/XmlTest_complex_import_B.xsd |    2 +-
 .../XmlTest_complex_import_neg1.xsd           |    2 +-
 .../XmlTest_complex_import_pos.xsd            |    2 +-
 ...Test_complex_import_withSchemaLocation.xsd |    2 +-
 .../XmlTest_xsds/XmlTest_complex_include.xsd  |    2 +-
 .../XmlTest_xsds/XmlTest_complex_include1.xsd |    2 +-
 .../XmlTest_xsds/XmlTest_complex_include2.xsd |    4 +-
 .../XmlTest_complex_minOccursMaxOccurs.xsd    |    2 +-
 .../XmlTest_xsds/XmlTest_complex_mixed.xsd    |    2 +-
 .../XmlTest_complex_restriction.xsd           |    2 +-
 .../XmlTest_complex_restriction_neg1.xsd      |    2 +-
 .../XmlTest_complex_restriction_neg2.xsd      |    2 +-
 .../XmlTest_complex_simpleContent.xsd         |    2 +-
 .../XmlTest_xsds/XmlTest_complex_unique.xsd   |   16 +-
 .../XmlTest_xsds/XmlTest_decimal.xsd          |    2 +-
 .../XmlTest_xsds/XmlTest_decimal_withEnum.xsd |    2 +-
 .../XmlTest_decimal_withLength.xsd            |    2 +-
 .../XmlTest_decimal_withMinMaxExclusive.xsd   |    2 +-
 .../XmlTest_decimal_withMinMaxInclusive.xsd   |    2 +-
 .../XmlTest_xsds/XmlTest_element_abstract.xsd |    2 +-
 .../XmlTest_xsds/XmlTest_element_anyType.xsd  |    2 +-
 .../XmlTest_element_nameInheritance.xsd       |    2 +-
 .../XmlTest_element_recordOfElements.xsd      |    2 +-
 .../XmlTest_element_recordOfElements3.xsd     |    2 +-
 .../XmlTest_element_recordOfElements4.xsd     |    2 +-
 .../XmlTest_element_recordOfElements5.xsd     |    2 +-
 .../XmlTest_xsds/XmlTest_imsike.xsd           |    6 +-
 .../XmlTest_xsds/XmlTest_integer.xsd          |    2 +-
 .../XmlTest_xsds/XmlTest_integer_empty1.xsd   |    2 +-
 .../XmlTest_xsds/XmlTest_integer_withEnum.xsd |    2 +-
 .../XmlTest_integer_withLength.xsd            |    2 +-
 .../XmlTest_integer_withMaxExcl.xsd           |    2 +-
 .../XmlTest_integer_withMaxIncl.xsd           |    2 +-
 .../XmlTest_integer_withMinExcl.xsd           |    2 +-
 .../XmlTest_integer_withMinIncl.xsd           |    2 +-
 .../XmlWorkflow/XmlTest_xsds/XmlTest_list.xsd |    2 +-
 .../XmlTest_xsds/XmlTest_list_integer.xsd     |    2 +-
 .../XmlTest_xsds/XmlTest_simple_enum.xsd      |    2 +-
 .../XmlTest_xsds/XmlTest_string.xsd           |    2 +-
 .../XmlTest_string_withEmptyLength.xsd        |    2 +-
 .../XmlTest_string_withEmptyMax.xsd           |    2 +-
 .../XmlTest_string_withEmptyMin.xsd           |    2 +-
 .../XmlTest_xsds/XmlTest_string_withEnum.xsd  |    2 +-
 .../XmlTest_string_withFaultyMinMax.xsd       |    2 +-
 .../XmlTest_string_withFixedLength.xsd        |    2 +-
 .../XmlTest_string_withFloatLength.xsd        |    2 +-
 .../XmlTest_string_withMinLength.xsd          |    2 +-
 .../XmlTest_string_withNegativeLength.xsd     |    2 +-
 .../XmlTest_string_withNegativeMax.xsd        |    2 +-
 .../XmlTest_string_withNegativeMin.xsd        |    2 +-
 .../XmlTest_string_withOverDefinition.xsd     |    2 +-
 .../XmlTest_string_withPosLength.xsd          |    2 +-
 .../XmlTest_string_withPosMax.xsd             |    2 +-
 .../XmlTest_string_withTypeAndBase.xsd        |    2 +-
 .../XmlTest_string_withWhitespace.xsd         |    2 +-
 .../XmlWorkflow/XmlTest_xsds/XmlTest_time.xsd |    2 +-
 .../XmlTest_xsds/XmlTest_time_withEnum.xsd    |    2 +-
 .../XmlTest_xsds/XmlTest_union.xsd            |    2 +-
 .../XmlTest_xsds/XmlTest_union2.xsd           |    2 +-
 .../XmlTest_xsds/XmlTest_version.xsd          |    2 +-
 .../XML/XmlWorkflow/XmlTest_xsds/empty.xsd    |    2 +-
 .../XmlTest_xsds/noTargetNamespace.xsd        |    2 +-
 .../XML/XmlWorkflow/XmlTest_xsds/po.xsd       |    2 +-
 regression_test/XML/XmlWorkflow/bin/prj2mk.pl |    2 +-
 .../XML/XmlWorkflow/bin2/prj2mk.pl            |    2 +-
 .../XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn |    2 +-
 regression_test/XML/XmlWorkflow/src/XSD.ttcn  |    2 +-
 .../XML/XmlWorkflow/src/XmlTest.cfg           |    2 +-
 .../XmlWorkflow/src/XmlTest_protocolXsds.cfg  |    2 +-
 .../XML/XmlWorkflow/src/xmlTest.prj           |  128 +-
 .../src/xmlTest_Functions_complex.ttcn        |    2 +-
 .../src/xmlTest_Functions_complex1.ttcn       |    2 +-
 .../src/xmlTest_Functions_complex2.ttcn       |    2 +-
 .../src/xmlTest_Functions_element.ttcn        |   32 +-
 .../src/xmlTest_Functions_list.ttcn           |    2 +-
 .../src/xmlTest_Functions_string.ttcn         |    2 +-
 .../XML/XmlWorkflow/src/xmlTest_Shell.ttcn    |    3 +-
 .../XmlWorkflow/src/xmlTest_Testcases.ttcn    |  779 ++++-
 .../XML/XmlWorkflow/src/xmlTest_encDec.ttcn   |    2 +-
 .../src/xmlTest_protocolXsd_Testcases.ttcn    |    2 +-
 .../XmlWorkflow/src/xmlTest_protocolXsds.prj  |    2 +-
 .../XML/XmlWorkflow/xsd/HQ73011.xsd           |    2 +-
 .../XML/XmlWorkflow/xsd/PDUexample.xsd        |    2 +-
 regression_test/XML/XmlWorkflow/xsd/all.xsd   |  108 +-
 .../XML/XmlWorkflow/xsd/any_anyAttribute.xsd  |   15 +-
 .../XmlWorkflow/xsd/anyattr_in_complex.xsd    |   21 +
 .../XML/XmlWorkflow/xsd/anyattrib_single.xsd  |   77 +
 .../XmlWorkflow/xsd/anyattribute_optional.xsd |   33 +
 .../XML/XmlWorkflow/xsd/attrib_enum.xsd       |   18 +
 .../XML/XmlWorkflow/xsd/attrib_order_a.xsd    |   40 +
 .../XML/XmlWorkflow/xsd/attrib_order_b.xsd    |   20 +
 .../XML/XmlWorkflow/xsd/attrib_order_c.xsd    |    9 +
 .../xsd/attrib_restriction_extension.xsd      |  137 +
 .../XmlWorkflow/xsd/attribgroup_ingroup.xsd   |   23 +
 .../XML/XmlWorkflow/xsd/attributeGroup.xsd    |    2 +-
 .../xsd/attribute_in_extension.xsd            |   26 +
 .../XML/XmlWorkflow/xsd/attribute_use.xsd     |    2 +-
 .../XmlWorkflow/xsd/attribute_use_noTNS.xsd   |    2 +-
 .../xsd/attributegroup_nillable.xsd           |   33 +
 .../xsd/boolean_variant_commented.xsd         |   55 +
 .../XML/XmlWorkflow/xsd/comment_placement.xsd |   93 +
 .../XML/XmlWorkflow/xsd/complexTypes.xsd      |    2 +-
 .../XML/XmlWorkflow/xsd/complex_nillable.xsd  |   65 +
 .../xsd/complex_restriction_with_use.xsd      |   71 +
 .../xsd/complex_self_recursion.xsd            |   26 +
 .../xsd/decimal_fractiondigits.xsd            |   33 +
 .../dont_generate_element_substitution.xsd    |   41 +
 .../XmlWorkflow/xsd/element_in_all_minmax.xsd |   19 +
 .../XmlWorkflow/xsd/element_in_all_mixed.xsd  |   23 +
 .../XML/XmlWorkflow/xsd/elements.xsd          |    2 +-
 .../XML/XmlWorkflow/xsd/enum_field_names.xsd  |   11 +
 .../xsd/enumeration_remove_dup.xsd            |   79 +
 .../xsd/enumeration_restriction.xsd           |  128 +
 .../xsd/enumeration_restriction2.xsd          |   51 +
 .../xsd/extending_complex_types.xsd           |    2 +-
 .../XML/XmlWorkflow/xsd/fixed_value.xsd       |   23 +
 .../xsd/generate_element_substitution.xsd     |   41 +
 .../XML/XmlWorkflow/xsd/group_all.xsd         |    2 +-
 .../XML/XmlWorkflow/xsd/groups.xsd            |    2 +-
 .../XML/XmlWorkflow/xsd/id_attrib.xsd         |   10 +
 .../XmlWorkflow/xsd/import_prefix_name.xsd    |   22 +
 .../XML/XmlWorkflow/xsd/imported2.xsd         |   21 +
 .../XML/XmlWorkflow/xsd/imported_module.xsd   |    7 +
 .../XML/XmlWorkflow/xsd/imported_module_.xsd  |    6 +
 .../XmlWorkflow/xsd/imported_prefix_name.xsd  |   27 +
 .../XML/XmlWorkflow/xsd/include1dir1a.xsd     |    2 +-
 .../XML/XmlWorkflow/xsd/include1dir1b.xsd     |    2 +-
 .../XML/XmlWorkflow/xsd/include1dir2a.xsd     |    2 +-
 .../XML/XmlWorkflow/xsd/include1dir2b.xsd     |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular1a.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular1b.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular2a.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular2b.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular3a.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular3b.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular4a.xsd |    2 +-
 .../XML/XmlWorkflow/xsd/includeCircular4b.xsd |    2 +-
 regression_test/XML/XmlWorkflow/xsd/list.xsd  |    2 +-
 .../XML/XmlWorkflow/xsd/list_invalid.xsd      |    2 +-
 .../XML/XmlWorkflow/xsd/list_simpletype.xsd   |   90 +
 .../XML/XmlWorkflow/xsd/long_extension.xsd    |   76 +
 .../XML/XmlWorkflow/xsd/minBound_maxBound.xsd |    2 +-
 .../XmlWorkflow/xsd/minOccurs_maxOccurs.xsd   |    2 +-
 .../xsd/module_typename_conversion.xsd        |   19 +
 .../xsd/module_typename_conversion_1.xsd      |   18 +
 .../xsd/name_clash_element-attribute.xsd      |    2 +-
 ...ame_clash_element-attribute_noNsPrefix.xsd |    2 +-
 .../xsd/name_conv_non_alphanumeric.xsd        |    5 +
 .../xsd/name_conv_remove_seq_of_low_line.xsd  |    5 +
 .../XML/XmlWorkflow/xsd/name_conv_with_z.xsd  |    5 +
 .../xsd/name_conversion_extension_attrib.xsd  |   34 +
 .../XML/XmlWorkflow/xsd/namespaceas.xsd       |   61 +
 .../XmlWorkflow/xsd/nillable_annotations.xsd  |   28 +
 .../XML/XmlWorkflow/xsd/nillable_fixed.xsd    |   31 +
 .../xsd/nillable_in_nillable_extension.xsd    |   36 +
 .../XML/XmlWorkflow/xsd/no_ns_connector.xsd   |   14 +
 .../xsd/not_a_number_minex_inf_maxex_-inf.xsd |   65 +
 .../xsd/qualified_element_attrib.xsd          |   29 +
 .../XML/XmlWorkflow/xsd/ranges_float.xsd      |    2 +-
 .../XML/XmlWorkflow/xsd/ranges_integer.xsd    |    2 +-
 .../XmlWorkflow/xsd/regex_square_brackets.xsd |   24 +
 .../xsd/restricting_complex_types.xsd         |    2 +-
 .../XML/XmlWorkflow/xsd/schema.xsd            |    2 +-
 .../XmlWorkflow/xsd/seq_group_reference.xsd   |   31 +
 .../xsd/sequence_embeds_sequence.xsd          |   28 +
 .../XML/XmlWorkflow/xsd/simpletype_base.xsd   |   15 +
 .../XML/XmlWorkflow/xsd/simpletype_ref.xsd    |   65 +
 .../xsd/simpletype_restrict_comp.xsd          |   50 +
 .../XML/XmlWorkflow/xsd/substitutiongroup.xsd |   44 +
 .../substitutiongroup_abstract_block_1.xsd    |   44 +
 .../substitutiongroup_abstract_block_2.xsd    |   44 +
 ...stitutiongroup_complex_without_element.xsd |   54 +
 .../xsd/substitutiongroup_long_extension.xsd  |   66 +
 .../xsd/substitutiongroup_main.xsd            |   17 +
 .../XmlWorkflow/xsd/substitutiongroup_neg.xsd |   29 +
 .../XmlWorkflow/xsd/substitutiongroup_ref.xsd |   12 +
 .../xsd/type_conversion_follow.xsd            |   41 +
 regression_test/XML/XmlWorkflow/xsd/union.xsd |    2 +-
 .../xsd/unqualified_element_attrib.xsd        |   29 +
 .../XML/XmlWorkflow/xsd/xml_in_annotation.xsd |   22 +
 regression_test/XML/macros.ttcnin             |    2 +-
 regression_test/XML/tpdValidTest/Makefile     |    2 +-
 .../tpdTest/Abstract_Socket_CNL113384.tpd     |   85 +
 .../tpdTest/AoC_v1.1.2_CNL113653.tpd          |   43 +
 .../tpdValidTest/tpdTest/BFCP_CNL113751.tpd   |   63 +
 .../tpdTest/BICC_ANSI_CNL113397.tpd           |   62 +
 .../tpdTest/BICC_Q.1902.1_CNL113359.tpd       |   62 +
 .../tpdTest/BICC_TTC_CNL113416.tpd            |   62 +
 .../tpdTest/BSSGP_v10.6.0_CNL113750.tpd       |   57 +
 .../tpdTest/BSSGP_v9.4.0_CNL113720.tpd        |   57 +
 .../tpdTest/BSSMAP_v11.2.0_CNL113761.tpd      |   59 +
 .../tpdTest/BSSMAP_v8.6.0_CNL113655.tpd       |   59 +
 .../tpdTest/CAP_v2_v6.4.0_CNL113483.tpd       |   70 +
 .../tpdTest/CAP_v4.7.0_CNL113425.tpd          |  101 +
 .../tpdTest/CAP_v4_v7.2.0_CNL113572.tpd       |  110 +
 .../tpdTest/CAP_v4_v7.6.0_CNL113721.tpd       |  116 +
 .../tpdTest/CCAPI_MINSAT_60_CNL113601.tpd     |  439 +++
 .../tpdTest/CDR_v9.12.0_CNL113757.tpd         |   70 +
 .../tpdTest/CDR_v9.5.0_CNL113712.tpd          |   71 +
 .../tpdTest/CDR_v9.5.0_SGSN_CNL113728.tpd     |   70 +
 .../tpdTest/CIP_CS4.0_CNL113535.tpd           |   64 +
 .../tpdTest/CIP_Orga_Italy_CNL113701.tpd      |   65 +
 .../tpdValidTest/tpdTest/DHCP_CNL113461.tpd   |   61 +
 .../tpdValidTest/tpdTest/DHCPv6_CNL113763.tpd |   47 +
 .../tpdValidTest/tpdTest/DNS_CNL113429.tpd    |   42 +
 .../tpdTest/DSS1_ETSI_CNL113435.tpd           |   77 +
 .../tpdValidTest/tpdTest/EAP_CNL113722.tpd    |   68 +
 .../tpdTest/ECMS_CORBAmsg_CNL113687.tpd       |  100 +
 .../tpdTest/EPTF_Applib_BICC_CNL113711.tpd    |   61 +
 .../tpdTest/EPTF_Applib_BSSMAP_CNL113608.tpd  |   53 +
 .../tpdTest/EPTF_Applib_CAI3G_CNL113566.tpd   |   63 +
 .../tpdTest/EPTF_Applib_CAP_CNL113662.tpd     |   54 +
 .../EPTF_Applib_CAP_Common_CNL113662.tpd      |   53 +
 .../tpdTest/EPTF_Applib_CAP_v2_CNL113662.tpd  |   45 +
 .../tpdTest/EPTF_Applib_CAP_v3_CNL113662.tpd  |   46 +
 .../tpdTest/EPTF_Applib_CAP_v4_CNL113662.tpd  |   45 +
 .../EPTF_Applib_CAP_v4_v760_CNL113662.tpd     |   45 +
 .../tpdTest/EPTF_Applib_CIP_All_CNL113666.tpd |   41 +
 .../tpdTest/EPTF_Applib_CIP_CNL113666.tpd     |   51 +
 .../EPTF_Applib_CIP_Orga_CNL113666.tpd        |   45 +
 .../tpdTest/EPTF_Applib_DNS_CNL113597.tpd     |  118 +
 .../tpdTest/EPTF_Applib_DSS1_CNL113748.tpd    |   63 +
 .../EPTF_Applib_Diameter_CNL113521.tpd        |   93 +
 .../EPTF_Applib_EricssonRTC_CNL113683.tpd     |   53 +
 .../tpdTest/EPTF_Applib_H248_CNL113523.tpd    |   95 +
 .../tpdTest/EPTF_Applib_HTTP_CNL113618.tpd    |  108 +
 .../tpdTest/EPTF_Applib_INAP_CNL113596.tpd    |   52 +
 .../tpdTest/EPTF_Applib_ISUP_CNL113681.tpd    |   63 +
 .../tpdTest/EPTF_Applib_IUA_CNL113747.tpd     |   67 +
 .../tpdTest/EPTF_Applib_LANL2_CNL113698.tpd   |  101 +
 .../tpdTest/EPTF_Applib_LNP_CNL113714.tpd     |   61 +
 .../tpdTest/EPTF_Applib_MAP_CNL113595.tpd     |   57 +
 .../tpdTest/EPTF_Applib_MLSim_CNL113568.tpd   |   54 +
 .../tpdTest/EPTF_Applib_MSRP_CNL113564.tpd    |   57 +
 .../EPTF_Applib_MobileL3_CNL113609.tpd        |   49 +
 .../tpdTest/EPTF_Applib_RANAP_CNL113647.tpd   |   49 +
 .../tpdTest/EPTF_Applib_SDP_CNL113744.tpd     |   94 +
 .../tpdTest/EPTF_Applib_SGsAP_CNL113723.tpd   |  135 +
 .../tpdTest/EPTF_Applib_SIP_CNL113522.tpd     |   87 +
 .../tpdTest/EPTF_Applib_SOAP_CNL113620.tpd    |   98 +
 .../tpdTest/EPTF_Applib_SRVCC_CNL113741.tpd   |   81 +
 .../tpdTest/EPTF_Applib_STUN_CNL113645.tpd    |  119 +
 .../EPTF_Applib_UPloadCP_CNL113634.tpd        |   61 +
 .../EPTF_Applib_UserPlane_CNL113724.tpd       |   60 +
 .../tpdTest/EPTF_Applib_VXML_CNL113565.tpd    |  121 +
 .../tpdTest/EPTF_Applib_XCAP_CNL113534.tpd    |  146 +
 .../tpdValidTest/tpdTest/EPTF_CLL_Base.tpd    |   35 +
 .../tpdValidTest/tpdTest/EPTF_CLL_Buffer.tpd  |   35 +
 .../XML/tpdValidTest/tpdTest/EPTF_CLL_CLI.tpd |   39 +
 .../tpdTest/EPTF_CLL_CentralScheduling.tpd    |   43 +
 .../EPTF_CLL_CentralSchedulingUIHandler.tpd   |   39 +
 .../tpdValidTest/tpdTest/EPTF_CLL_Common.tpd  |   57 +
 .../tpdTest/EPTF_CLL_DataSource.tpd           |   41 +
 .../tpdTest/EPTF_CLL_ExecCtrl.tpd             |   56 +
 .../tpdTest/EPTF_CLL_ExecCtrl_UI.tpd          |   47 +
 .../XML/tpdValidTest/tpdTest/EPTF_CLL_FBQ.tpd |   35 +
 .../tpdTest/EPTF_CLL_GUIViewer.tpd            |   47 +
 .../tpdValidTest/tpdTest/EPTF_CLL_HashMap.tpd |   43 +
 .../tpdTest/EPTF_CLL_HostAdmin.tpd            |   46 +
 .../tpdTest/EPTF_CLL_HostAdmin_UI.tpd         |   41 +
 .../tpdValidTest/tpdTest/EPTF_CLL_ILog.tpd    |   39 +
 .../tpdTest/EPTF_CLL_ILogBase.tpd             |   38 +
 .../tpdTest/EPTF_CLL_ILogString.tpd           |   35 +
 .../tpdTest/EPTF_CLL_LGenBase.tpd             |   82 +
 .../tpdTest/EPTF_CLL_LGenBase_UI.tpd          |   35 +
 .../tpdTest/EPTF_CLL_LoadRegulator.tpd        |   38 +
 .../tpdTest/EPTF_CLL_LoadRegulatorUI.tpd      |   38 +
 .../tpdValidTest/tpdTest/EPTF_CLL_Logging.tpd |   35 +
 .../tpdTest/EPTF_CLL_Logging_Client.tpd       |   35 +
 .../tpdTest/EPTF_CLL_Logging_Server.tpd       |   39 +
 .../tpdTest/EPTF_CLL_Logging_UI.tpd           |   42 +
 .../tpdValidTest/tpdTest/EPTF_CLL_NQueue.tpd  |   36 +
 .../tpdTest/EPTF_CLL_NameService.tpd          |   37 +
 .../tpdTest/EPTF_CLL_PTCDeployment.tpd        |   37 +
 .../tpdTest/EPTF_CLL_RandomNArray.tpd         |   34 +
 .../tpdTest/EPTF_CLL_RedBlackTree.tpd         |   43 +
 .../tpdTest/EPTF_CLL_Rendezvous.tpd           |   40 +
 .../tpdTest/EPTF_CLL_RingBuffer.tpd           |   34 +
 .../tpdTest/EPTF_CLL_Scheduler.tpd            |   38 +
 .../tpdTest/EPTF_CLL_Semaphore.tpd            |   36 +
 .../tpdTest/EPTF_CLL_StatCapture.tpd          |   42 +
 .../tpdTest/EPTF_CLL_StatCaptureControl.tpd   |   37 +
 .../tpdTest/EPTF_CLL_StatCaptureUI.tpd        |   40 +
 .../tpdTest/EPTF_CLL_StatHandler.tpd          |   46 +
 .../tpdTest/EPTF_CLL_StatHandler_UI.tpd       |   41 +
 .../tpdTest/EPTF_CLL_StatManager.tpd          |   40 +
 .../tpdTest/EPTF_CLL_StatMeasure.tpd          |   39 +
 .../tpdTest/EPTF_CLL_StatReplay.tpd           |   42 +
 .../tpdTest/EPTF_CLL_TimeProfileEditor.tpd    |   40 +
 .../tpdTest/EPTF_CLL_Transport.tpd            |   37 +
 .../tpdTest/EPTF_CLL_TransportRouting.tpd     |   34 +
 .../EPTF_CLL_Transport_CommPortIPL4.tpd       |   36 +
 .../tpdTest/EPTF_CLL_Transport_Common.tpd     |   34 +
 .../tpdTest/EPTF_CLL_Transport_IPL2.tpd       |   52 +
 .../tpdTest/EPTF_CLL_Transport_IPL4.tpd       |   43 +
 ...PTF_CLL_Transport_MessageBufferManager.tpd |   37 +
 .../tpdTest/EPTF_CLL_UIHandler.tpd            |  103 +
 .../tpdTest/EPTF_CLL_Variable.tpd             |   41 +
 .../tpdTest/EPTF_CLL_Variable_UI.tpd          |   39 +
 .../EPTF_CommonTransport_M3_CNL113682.tpd     |   95 +
 .../EPTF_CommonTransport_SCCP_CNL113610.tpd   |   58 +
 .../EPTF_CommonTransport_TCAP_CNL113592.tpd   |   66 +
 .../tpdTest/EPTF_FreeBusyQueue_demo.tpd       |   42 +
 .../XML/tpdValidTest/tpdTest/EPTF_GenApp.tpd  |   72 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_AC.tpd   |   33 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_AIR.tpd  |   35 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_ASDP.tpd |   39 +
 .../tpdTest/EPTF_GenApp_ATandT.tpd            |   76 +
 .../tpdTest/EPTF_GenApp_BCS_AC.tpd            |   52 +
 .../tpdTest/EPTF_GenApp_BCS_SSP.tpd           |   42 +
 .../tpdTest/EPTF_GenApp_BCS_WCE.tpd           |   97 +
 .../tpdTest/EPTF_GenApp_CAI3G.tpd             |   34 +
 .../tpdTest/EPTF_GenApp_CAPv2.tpd             |   38 +
 .../tpdTest/EPTF_GenApp_CAPv3.tpd             |   38 +
 .../tpdTest/EPTF_GenApp_CAPv4.tpd             |   39 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_CCMP.tpd |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_CIP.tpd  |   36 +
 .../tpdTest/EPTF_GenApp_CIP_Orga.tpd          |   36 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_CLF.tpd  |   45 +
 .../tpdTest/EPTF_GenApp_CLFv2.tpd             |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_CNS.tpd  |   41 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_CSCF.tpd |   45 +
 .../tpdTest/EPTF_GenApp_CSCFclient.tpd        |   48 +
 .../tpdTest/EPTF_GenApp_Common.tpd            |   92 +
 .../tpdTest/EPTF_GenApp_DIAMETER.tpd          |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_DNS.tpd  |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_DSC.tpd  |   42 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_EDB.tpd  |   79 +
 .../tpdTest/EPTF_GenApp_EDB_CLI.tpd           |   82 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_EPC.tpd  |   46 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_ETM.tpd  |  408 +++
 .../tpdTest/EPTF_GenApp_ETM_CAPv2.tpd         |   58 +
 .../tpdTest/EPTF_GenApp_ETM_CAPv3.tpd         |   67 +
 .../tpdTest/EPTF_GenApp_ETM_CAPv4.tpd         |   67 +
 .../tpdTest/EPTF_GenApp_ETM_CAPv4_v760.tpd    |   67 +
 .../tpdTest/EPTF_GenApp_ETM_CCA.tpd           |   55 +
 .../tpdTest/EPTF_GenApp_ETM_CSCF.tpd          |   44 +
 .../tpdTest/EPTF_GenApp_ETM_DCC.tpd           |   47 +
 .../tpdTest/EPTF_GenApp_ETM_ECC.tpd           |   49 +
 .../tpdTest/EPTF_GenApp_ETM_HomeZone.tpd      |   47 +
 .../tpdTest/EPTF_GenApp_ETM_LTE_INAP.tpd      |   55 +
 .../tpdTest/EPTF_GenApp_ETM_MCC.tpd           |   57 +
 .../tpdTest/EPTF_GenApp_ETM_NP.tpd            |   45 +
 .../tpdTest/EPTF_GenApp_ETM_NP21.tpd          |   51 +
 .../tpdTest/EPTF_GenApp_ETM_SNA.tpd           |   41 +
 .../tpdTest/EPTF_GenApp_ETM_SNA2.tpd          |   48 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_H248.tpd |   41 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_HLR.tpd  |   45 +
 .../tpdTest/EPTF_GenApp_HLRsim.tpd            |   43 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_HTTP.tpd |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_INAP.tpd |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_ISUP.tpd |   36 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_LDAP.tpd |   73 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_LNP.tpd  |   37 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_LRF.tpd  |   39 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_LTE.tpd  |   56 +
 .../tpdTest/EPTF_GenApp_MABEZ.tpd             |   45 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_MAP.tpd  |   35 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_MGW.tpd  |   45 +
 .../tpdTest/EPTF_GenApp_MMESim.tpd            |   43 +
 .../tpdTest/EPTF_GenApp_MMsim.tpd             |   42 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_MRFC.tpd |   44 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_MSS.tpd  |   49 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_MTAS.tpd |   84 +
 .../tpdTest/EPTF_GenApp_MTAS_noSS7.tpd        |   79 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_MWI.tpd  |   45 +
 .../tpdTest/EPTF_GenApp_MWIAS.tpd             |   45 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_Meta.tpd |   74 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_NACF.tpd |   40 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_NASS.tpd |   53 +
 .../tpdTest/EPTF_GenApp_Netconf.tpd           |   39 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_OCF.tpd  |   45 +
 .../tpdTest/EPTF_GenApp_PCRFsim.tpd           |   44 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_PGM.tpd  |  373 +++
 .../tpdTest/EPTF_GenApp_PGM_HTTP.tpd          |   36 +
 .../tpdTest/EPTF_GenApp_PGM_SIP.tpd           |   37 +
 .../tpdTest/EPTF_GenApp_ParlayX.tpd           |   36 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_RACF.tpd |   40 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_SCP.tpd  |   37 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_SIP.tpd  |   34 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_SNA.tpd  |   37 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_SOAP.tpd |   36 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_UAAF.tpd |   38 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_USSD.tpd |   35 +
 .../tpdTest/EPTF_GenApp_UserPlane.tpd         |   42 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_VMS.tpd  |   44 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_VXML.tpd |   36 +
 .../tpdTest/EPTF_GenApp_WCE_HTTP_Client.tpd   |   36 +
 .../tpdValidTest/tpdTest/EPTF_GenApp_XCAP.tpd |   37 +
 .../tpdValidTest/tpdTest/EPTF_ILog_demo.tpd   |   45 +
 .../tpdTest/EricssonRTC_CNL113414.tpd         |   67 +
 .../Ericsson_INAP_CS1plus_CNL113356.tpd       |   66 +
 .../tpdTest/Ericsson_MAP_v2_CNL113725.tpd     |   51 +
 .../tpdTest/GCP_31r1_CNL113364.tpd            |   69 +
 .../tpdTest/GTP_v9.11.0_CNL113765.tpd         |   70 +
 .../tpdTest/GTPv2_Sv_v10.5.0_CNL113740.tpd    |   50 +
 .../tpdTest/GTPv2_Sv_v11.4.0_CNL113777.tpd    |   73 +
 .../tpdTest/GTPv2_Sv_v9.1.0_CNL113703.tpd     |   64 +
 .../tpdTest/GTPv2_Sv_v9.7.0_CNL113730.tpd     |   62 +
 .../tpdTest/GTPv2_Sv_v9.8.0_CNL113737.tpd     |   62 +
 .../tpdTest/GTPv2_v11.x.0_CNL113753.tpd       |   60 +
 .../tpdTest/GiGnREPLAYasp_CNL113604.tpd       |   69 +
 .../tpdTest/H225.0_v0298_CNL113354.tpd        |  193 ++
 .../tpdTest/H245_v6_CNL113587.tpd             |  185 ++
 .../tpdTest/H248_v2_CNL113424.tpd             |   75 +
 .../tpdTest/HTTPmsg_CNL113312.tpd             |   64 +
 .../tpdValidTest/tpdTest/IMSA2_CNL113693.tpd  |   59 +
 .../tpdTest/IOS_HRPD_CLN113752.tpd            |   47 +
 .../tpdValidTest/tpdTest/IPL4_EIN_SCTP.tpd    |  254 ++
 .../tpdTest/IPL4asp_CNL113531.tpd             |  147 +
 .../tpdTest/IPL4asp_CNL113531_Interface.tpd   |   51 +
 .../XML/tpdValidTest/tpdTest/IP_CNL113418.tpd |   64 +
 .../tpdTest/IP_Daemon_Dynamic_CNL113739.tpd   |   82 +
 .../IP_Daemon_Dynamic_CNL113739_demo.tpd      |   39 +
 .../tpdTest/ISUP_ANSI_CNL113411.tpd           |   62 +
 .../tpdTest/ISUP_Q.762_CNL113365.tpd          |   62 +
 .../tpdTest/ISUP_Q.762_TCOM_CNL113762.tpd     |   52 +
 .../tpdTest/ISUP_for_Japan_CNL113727.tpd      |   62 +
 .../tpdValidTest/tpdTest/IUA_CNL113439.tpd    |   47 +
 .../tpdTest/JSON_v07_2006_CNL113676.tpd       |   47 +
 .../XML/tpdValidTest/tpdTest/JUnit.tpd        |   33 +
 .../tpdTest/LANL2asp_CNL113519.tpd            |   70 +
 .../LDAPasp_RFC4511_CNL113513_Functions.tpd   |   56 +
 .../LDAPasp_RFC4511_CNL113513_TestPort.tpd    |   62 +
 .../tpdTest/LNP_ANSI_CNL113715.tpd            |   67 +
 .../tpdTest/LOADMEASasp_CNL113585.tpd         |   75 +
 .../tpdValidTest/tpdTest/M2PA_CNL113558.tpd   |   47 +
 .../tpdTest/M3AP_v9.4.0_CNL113735.tpd         |  320 ++
 .../tpdTest/M3UA_SCTP_Daemon_CNL113487.tpd    |   55 +
 .../tpdTest/MAP_ANSI_v2.0_CNL113673.tpd       |   61 +
 .../tpdTest/MAP_ANSI_v2.0_CNL113673_demo.tpd  |   62 +
 .../tpdTest/MAP_Current_CNL113745_1.tpd       |  182 ++
 .../tpdTest/MAP_Current_CNL113745_1_HLR.tpd   |  194 ++
 .../tpdTest/MAP_Current_CNL113745_1_v123.tpd  |   56 +
 .../MAP_Current_CNL113745_1_v123_HLR.tpd      |   49 +
 .../tpdTest/MAP_v10.4.0_CNL113736.tpd         |   86 +
 .../tpdTest/MAP_v10.6.0_CNL113764.tpd         |   74 +
 .../tpdValidTest/tpdTest/MAP_v1_CNL113431.tpd |   57 +
 .../tpdValidTest/tpdTest/MAP_v2_CNL113432.tpd |   57 +
 .../tpdTest/MAP_v6.11.0_CNL113500.tpd         |   96 +
 .../tpdTest/MAP_v6.3.0_CNL113366.tpd          |   88 +
 .../tpdTest/MAP_v7.12.0_CNL113635.tpd         |  192 ++
 .../tpdTest/MAP_v7.12.0_CNL113635_v123.tpd    |   55 +
 .../tpdTest/MAP_v7.8.0_CNL113569.tpd          |   85 +
 .../tpdTest/MAP_v9.3.0_CNL113710.tpd          |   85 +
 .../tpdValidTest/tpdTest/MIME_CNL113352.tpd   |   46 +
 .../tpdTest/MLSIMPLUSasp_CNL113749.tpd        |   56 +
 .../tpdTest/MLSIMasp_CNL113538.tpd            |  121 +
 .../tpdValidTest/tpdTest/MMLasp_CNL113490.tpd |   95 +
 .../tpdValidTest/tpdTest/MSRP_CNL113467.tpd   |   84 +
 .../tpdTest/MTP3asp_CNL113337.tpd             |   89 +
 .../tpdTest/MTP3asp_EIN_CNL113421.tpd         |   78 +
 .../tpdTest/MobileL3_v10.5.0_CNL113758.tpd    |   73 +
 .../tpdTest/MobileL3_v9.5.0_CNL113719.tpd     |   72 +
 .../tpdTest/NAS_EPS_v10.6.1_CNL113746.tpd     |   59 +
 .../tpdTest/NAS_EPS_v9.7.0_CNL113729.tpd      |   58 +
 .../tpdValidTest/tpdTest/PIM_CNL113733.tpd    |   60 +
 .../tpdTest/PIPEasp_CNL113334.tpd             |   70 +
 .../tpdTest/PMIP_v10.5.0_CNL113759.tpd        |   60 +
 .../tpdTest/PMIP_v8.5.0_CNL113704.tpd         |   59 +
 .../tpdTest/ParlayX_CNL113540.tpd             |  264 ++
 .../tpdTest/ProtocolModules_Common.tpd        |   36 +
 .../tpdTest/RANAP_v10.4.0_CNL113742.tpd       |  302 ++
 .../tpdTest/RANAP_v9.5.0_CNL113718.tpd        |  226 ++
 ...RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC.tpd |  174 ++
 .../tpdValidTest/tpdTest/ROSE_CNL113369.tpd   |   52 +
 .../tpdValidTest/tpdTest/RTP_CNL113392.tpd    |   50 +
 .../tpdValidTest/tpdTest/RTSP_CNL113588.tpd   |   57 +
 .../tpdTest/S1AP_v10.6.0_CNL113756.tpd        |  211 ++
 .../tpdTest/S1AP_v8.7.0_CNL113672.tpd         |  321 ++
 .../tpdTest/S1AP_v9.4.0_CNL113717.tpd         |  246 ++
 .../tpdTest/S1AP_v9.7.0_CNL113732.tpd         |  222 ++
 .../tpdTest/SBC_AP_v10.0.0_CNL113734.tpd      |  238 ++
 .../tpdTest/SBC_AP_v9.3.0_CNL113731.tpd       |  238 ++
 .../tpdValidTest/tpdTest/SCCP_CNL113341.tpd   |   87 +
 .../tpdTest/SCCPasp_CNL113348.tpd             |  148 +
 .../tpdTest/SCTP_Daemon_CNL113477.tpd         |   62 +
 .../tpdTest/SCTP_Daemon_Dynamic_CNL113630.tpd |   65 +
 .../tpdTest/SCTPasp_CNL113469.tpd             |   98 +
 .../tpdValidTest/tpdTest/SDP_CNL113353.tpd    |   81 +
 .../tpdTest/SGsAP_v9.0.0_CNL113684.tpd        |   59 +
 .../tpdValidTest/tpdTest/SIPmsg_CNL113319.tpd |   85 +
 .../tpdValidTest/tpdTest/SNMP_CNL113774.tpd   |   71 +
 .../tpdTest/SNMPmsg_CNL113344.tpd             |   63 +
 .../tpdValidTest/tpdTest/SQLasp_CNL113760.tpd |   53 +
 .../tpdValidTest/tpdTest/SRTP_CNL113769.tpd   |   53 +
 .../tpdTest/SS7Common_CNL113755.tpd           |   66 +
 .../tpdTest/SSHCLIENTasp_CNL113484.tpd        |   61 +
 .../tpdTest/STDINOUTmsg_CNL113642.tpd         |   50 +
 .../tpdValidTest/tpdTest/STUN_CNL113644.tpd   |   46 +
 .../tpdValidTest/tpdTest/SUA_CNL113478.tpd    |   60 +
 .../tpdTest/SUA_Daemon_CNL113743.tpd          |   63 +
 .../tpdValidTest/tpdTest/SUAasp_CNL113516.tpd |   67 +
 .../tpdTest/SUNRPCasp_CNL113493.tpd           |   47 +
 .../tpdTest/Socket_API_CNL113686.tpd          |   58 +
 ...scriptionHistoryProtocol_1.0_CNL113584.tpd |  460 +++
 .../tpdValidTest/tpdTest/TCAP_CNL113342.tpd   |   61 +
 .../tpdTest/TCAPasp_CNL113349.tpd             |   99 +
 .../TCCUsefulFunctions_CNL113472_Common.tpd   |   62 +
 .../TCCUsefulFunctions_CNL113472_IPsec.tpd    |   93 +
 ...TCCUsefulFunctions_CNL113472_Interface.tpd |   46 +
 .../TCCUsefulFunctions_CNL113472_Maths.tpd    |   48 +
 .../TCCUsefulFunctions_CNL113472_Regexp.tpd   |   48 +
 .../TCCUsefulFunctions_CNL113472_Security.tpd |   53 +
 .../TCCUsefulFunctions_CNL113472_TitanSim.tpd |   51 +
 .../TCCUsefulFunctions_CNL113472_XPath.tpd    |   56 +
 .../tpdValidTest/tpdTest/TCP_CNL113675.tpd    |   44 +
 .../tpdValidTest/tpdTest/TCPasp_CNL113347.tpd |   59 +
 .../tpdTest/TELNET_Daemon_CNL113667.tpd       |   61 +
 .../tpdTest/TELNETasp_CNL113320.tpd           |   65 +
 .../tpdTest/Tariffing_v8.0.0_CNL113654.tpd    |   45 +
 .../tpdTest/TitanSim_evolution_files.tpd      |  124 +
 .../tpdTest/Trigger_HSS4.2_CNL113583.tpd      |  518 +++
 .../tpdValidTest/tpdTest/UDP_CNL113420.tpd    |   58 +
 .../tpdValidTest/tpdTest/UDPasp_CNL113346.tpd |   57 +
 .../tpdTest/UPloadCP_CNL113633.tpd            |   64 +
 .../tpdTest/XML_RPC_CNL113488.tpd             |  388 +++
 .../tpdValidTest/tpdTest/XSDASN_CNL113474.tpd |  144 +
 .../tpdValidTest/tpdTest/XTDP_CNL113663.tpd   |   43 +
 .../tpdTest/XTDPasp_CNL113494.tpd             |   64 +
 .../XML/tpdValidTest/tpdValidTest.sh          |    4 +-
 .../XML/xsdConverter/Examples/Example1.xsd    |    2 +-
 .../XML/xsdConverter/Examples/Example2.xsd    |    2 +-
 .../XML/xsdConverter/Examples/Example3.xsd    |    2 +-
 .../XML/xsdConverter/Examples/Example4.xsd    |    2 +-
 .../XML/xsdConverter/Examples/Examples.ttcn   |    2 +-
 .../XML/xsdConverter/Examples/Makefile        |    2 +-
 .../xsdConverter/Examples/chapter_5_1_1.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_1_2.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_1_3.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_1_4.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_1_5.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_1_6.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_2_1.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_2_2.xsd   |    2 +-
 .../xsdConverter/Examples/chapter_5_2_3.xsd   |    2 +-
 .../XML/xsdConverter/Examples/chapter_6.xsd   |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_1.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_3.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_4.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_5.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_6.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_7.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_8.xsd |    2 +-
 .../XML/xsdConverter/Examples/chapter_7_9.xsd |    2 +-
 .../XML/xsdConverter/Examples/config.cfg      |    2 +-
 .../XML/xsdConverter/HN21072/HN21072Test.ttcn |    2 +-
 .../XML/xsdConverter/HN21072/Makefile         |    2 +-
 .../XML/xsdConverter/HN21072/W3-WSDL-chop.xsd |    2 +-
 .../XML/xsdConverter/HN21072/log2xml.pl       |    2 +-
 .../XML/xsdConverter/HN65402/Makefile         |    2 +-
 .../XML/xsdConverter/HN65402/jellystone.ttcn  |    2 +-
 .../XML/xsdConverter/HN65402/jellystone.xsd   |    2 +-
 .../XML/xsdConverter/HO12250/HO12250.xsd      |    2 +-
 .../XML/xsdConverter/HO12250/Makefile         |    2 +-
 .../XML/xsdConverter/HO16426/Makefile         |    2 +-
 .../XML/xsdConverter/HO16426/diversion.ttcn   |    2 +-
 .../XML/xsdConverter/HO16426/diversion.xsd    |    2 +-
 .../XML/xsdConverter/HO18151/HO18151.ttcn     |    2 +-
 .../XML/xsdConverter/HO18151/HO18151.xsd      |    2 +-
 .../XML/xsdConverter/HO18151/Makefile         |    2 +-
 .../XML/xsdConverter/HO21968/HO21968.ttcn     |    2 +-
 .../xsdConverter/HO21968/HO21968noprefix.xsd  |    2 +-
 .../xsdConverter/HO21968/HO21968prefix.xsd    |    2 +-
 .../XML/xsdConverter/HO21968/Makefile         |    2 +-
 .../XML/xsdConverter/HQ48576/HQ48576Test.ttcn |    2 +-
 .../XML/xsdConverter/HQ48576/Makefile         |    2 +-
 .../XML/xsdConverter/HQ48576/hlrla_types.xsd  |    2 +-
 regression_test/XML/xsdConverter/Makefile     |    2 +-
 .../XML/xsdConverter/Makefile.converter       |    2 +-
 .../acceptance_test/Fibonacci/Fibonacci.cfg   |    2 +-
 .../acceptance_test/Fibonacci/Fibonacci.ttcn  |    2 +-
 .../acceptance_test/Fibonacci/Makefile        |    2 +-
 .../acceptance_test/chinese/Makefile          |    2 +-
 .../acceptance_test/chinese/chinese.ttcn      |    2 +-
 .../acceptance_test/comptest/Makefile         |    2 +-
 .../acceptance_test/comptest/comptest.ttcn    |    2 +-
 .../acceptance_test/testerlanc/Makefile       |    2 +-
 .../testerlanc/testerlanc.ttcn                |    2 +-
 regression_test/all_from/Makefile             |    2 +-
 regression_test/all_from/all_from.ttcn        |    2 +-
 .../all_from/all_from_complement.ttcn         |    2 +-
 .../all_from/all_from_permutation.ttcn        |    2 +-
 .../all_from/all_from_subrefs.ttcn            |  284 ++
 regression_test/all_from/all_from_subset.ttcn |    2 +-
 .../all_from/all_from_superset.ttcn           |    2 +-
 regression_test/all_from/all_from_var.ttcn    |    2 +-
 .../all_from/all_from_with_functions.ttcn     |    2 +-
 regression_test/all_from/everything.ttcn      |    2 +-
 regression_test/all_from/f_ext.cc             |    2 +-
 regression_test/all_from/f_ext.hh             |    2 +-
 regression_test/all_from/functions.ttcn       |    2 +-
 .../all_from/imported_templates.ttcn          |    2 +-
 regression_test/all_from/sapc.ttcn            |    2 +-
 regression_test/all_from/types.ttcn           |    2 +-
 regression_test/anytype/AnyUser.ttcnpp        |    2 +-
 regression_test/anytype/AnytypeTest.ttcnpp    |    2 +-
 regression_test/anytype/Makefile              |    2 +-
 regression_test/anytype/Supplier.asn          |    2 +-
 regression_test/anytype/config.cfg            |    2 +-
 regression_test/anytype/noany.ttcn            |    2 +-
 regression_test/anytype/smallany.ttcn         |    2 +-
 regression_test/anytypeOper/Makefile          |    2 +-
 regression_test/anytypeOper/TanytypeOper.ttcn |    2 +-
 .../anytypeOper/TanytypeWrapOper.ttcn         |    2 +-
 regression_test/anytypeOper/config.cfg        |    2 +-
 regression_test/arrayOper/Makefile            |    2 +-
 regression_test/arrayOper/TarrayOper.ttcn     |    2 +-
 regression_test/arrayOper/config.cfg          |    2 +-
 regression_test/assignmentNotation/Makefile   |    2 +-
 .../TassignmentNotation.asn                   |    2 +-
 .../TassignmentNotation.cfg                   |    2 +-
 .../TassignmentNotation.ttcn                  |    2 +-
 .../TassignmentNotation_First.cfg             |    2 +-
 .../TassignmentNotation_Second.cfg            |    2 +-
 .../TassignmentNotation_Third.cfg             |    2 +-
 regression_test/basicStatem/Makefile          |    2 +-
 regression_test/basicStatem/TbasicStatem.ttcn |    2 +-
 regression_test/basicStatem/config.cfg        |    2 +-
 regression_test/bitstrOper/Makefile           |    2 +-
 regression_test/bitstrOper/TbitstrOper.ttcn   |    3 +-
 regression_test/bitstrOper/config.cfg         |    2 +-
 regression_test/boolOper/Makefile             |    2 +-
 regression_test/boolOper/TboolOper.ttcn       |    2 +-
 regression_test/boolOper/config.cfg           |    2 +-
 regression_test/cfgFile/Makefile              |    2 +-
 regression_test/cfgFile/define/Makefile       |    2 +-
 .../cfgFile/define/macro_reference/Makefile   |   11 +-
 .../macro_reference/TSTM_macro_test_main.cfg  |    2 +-
 .../TSTM_macro_test_testcases.ttcn            |    2 +-
 .../cfgFile/define/structured/Makefile        |   11 +-
 .../cfgFile/define/structured/structured.cfg  |    2 +-
 .../cfgFile/define/structured/structured.ttcn |    2 +-
 .../cfgFile/module_parameters/Makefile        |    4 +-
 .../module_parameters/assignment/Makefile     |   11 +-
 .../assignment/assignment.cfg                 |    4 +-
 .../assignment/assignment.ttcn                |    2 +-
 .../cfgFile/module_parameters/concat/Makefile |   11 +-
 .../module_parameters/concat/concat.cfg       |    2 +-
 .../module_parameters/concat/concat.ttcn      |    2 +-
 .../module_parameters/references/Makefile     |   53 +
 .../references/references.cfg                 |  175 ++
 .../references/references.ttcn                |  701 +++++
 .../cfgFile/ordered_include/Makefile          |   11 +-
 .../ordered_include/config_sub2/oi2_sub.cfg   |    2 +-
 .../configs_sub/oi1_subfolder1.cfg            |    2 +-
 .../cfgFile/ordered_include/oi.ttcn           |    2 +-
 .../cfgFile/ordered_include/oi1.cfg           |    2 +-
 .../cfgFile/ordered_include/oi1_after1.cfg    |    2 +-
 .../cfgFile/ordered_include/oi1_after2.cfg    |    2 +-
 .../cfgFile/ordered_include/oi1_after3.cfg    |    2 +-
 .../cfgFile/ordered_include/oi1_before1.cfg   |    2 +-
 .../cfgFile/ordered_include/oi1_before2.cfg   |    2 +-
 .../ordered_include/oi1_before_include.cfg    |    2 +-
 .../cfgFile/ordered_include/oi2.cfg           |    2 +-
 .../cfgFile/ordered_include/oi22.cfg          |    2 +-
 .../cfgFile/ordered_include/oi23.cfg          |    2 +-
 .../cfgFile/ordered_include/oi2_nomacro.cfg   |    2 +-
 .../cfgFile/ordered_include/oi_after1.cfg     |    2 +-
 .../cfgFile/ordered_include/oi_after2.cfg     |    2 +-
 .../ordered_include/oi_after_list1.cfg        |    2 +-
 .../ordered_include/oi_after_list2.cfg        |    2 +-
 .../cfgFile/ordered_include/oi_before1.cfg    |    2 +-
 .../cfgFile/ordered_include/oi_before2.cfg    |    2 +-
 .../cfgFile/ordered_include/oi_before3.cfg    |    2 +-
 .../cfgFile/ordered_include/oi_before4.cfg    |    2 +-
 .../cfgFile/ordered_include/oi_before5.cfg    |    2 +-
 .../oi_include_interference.cfg               |    2 +-
 .../ordered_include/oi_include_mix.cfg        |    2 +-
 .../cfgFile/ordered_include/oi_last1.cfg      |    2 +-
 .../cfgFile/ordered_include/oi_last2.cfg      |    2 +-
 .../cfgFile/ordered_include/oi_last3.cfg      |    2 +-
 .../cfgFile/ordered_include/oi_subfolder1.cfg |    2 +-
 .../cfgFile/testport_parameters/Makefile      |   11 +-
 .../cfgFile/testport_parameters/PCOType.cc    |    2 +-
 .../cfgFile/testport_parameters/PCOType.hh    |    2 +-
 .../testport_parameters/array_index.cfg       |    2 +-
 .../testport_parameters/array_index.ttcn      |    2 +-
 regression_test/cfg_list_concat/Makefile      |    2 +-
 regression_test/cfg_list_concat/concat.prj    |    2 +-
 regression_test/cfg_list_concat/concat.ttcn   |    2 +-
 .../cfg_list_concat/everything.cfg            |    2 +-
 regression_test/cfg_list_concat/sub1.cfg      |    2 +-
 regression_test/cfg_list_concat/sub2.cfg      |    2 +-
 regression_test/charOper/Makefile             |    2 +-
 regression_test/charOper/TcharOper.ttcn       |    2 +-
 regression_test/charOper/config.cfg           |    2 +-
 regression_test/charstrOper/Makefile          |    2 +-
 regression_test/charstrOper/TcharstrOper.ttcn |    2 +-
 regression_test/charstrOper/config.cfg        |    2 +-
 regression_test/commMessage/HS41022.ttcn      |    2 +-
 .../commMessage/ImplMsgEncData.asn            |    2 +-
 regression_test/commMessage/Makefile          |    2 +-
 regression_test/commMessage/TcommMessage.ttcn |    2 +-
 regression_test/commMessage/config.cfg        |    2 +-
 .../commMessage/config_parallel.cfg           |    2 +-
 regression_test/commProcedure/ExtProcPort.cc  |    2 +-
 regression_test/commProcedure/ExtProcPort.hh  |    2 +-
 regression_test/commProcedure/Makefile        |    2 +-
 regression_test/commProcedure/PortAddress.cc  |    2 +-
 regression_test/commProcedure/PortAddress.hh  |    2 +-
 regression_test/commProcedure/ProcPort.ttcn   |   54 +-
 regression_test/compileonly/Makefile          |    4 +-
 .../compileonly/assignmentNotation/Makefile   |    2 +-
 .../TassignmentNotation.ttcn                  |    2 +-
 .../compileonly/attribQualif/Makefile         |    2 +-
 .../attribQualif/TattribQualif.ttcn           |    2 +-
 .../compileonly/centralstorage/Makefile       |    2 +-
 .../centralstorage/base_asn/Base_asn.asn      |    2 +-
 .../base_mixed/Base_mixed_asn.asn             |    2 +-
 .../base_mixed/base_mixed_PT.cc               |    2 +-
 .../base_mixed/base_mixed_PT.hh               |    2 +-
 .../base_mixed/base_mixed_ttcn.ttcn           |    2 +-
 .../base_mixed/base_mixed_ttcnpp.ttcnpp       |    2 +-
 .../centralstorage/base_ttcn/base_PT.cc       |    2 +-
 .../centralstorage/base_ttcn/base_PT.hh       |    2 +-
 .../centralstorage/base_ttcn/base_ttcn.ttcnpp |    2 +-
 .../extended_ttcn/extended_ttcn.ttcn          |    2 +-
 .../extended_ttcn/extended_ttcnpp.ttcnpp      |    2 +-
 .../separate_project/separate_PT.cc           |    2 +-
 .../separate_project/separate_PT.hh           |    2 +-
 .../separate_project/separate_ttcn.ttcn       |    2 +-
 .../separate_project/separate_ttcnpp.ttcnpp   |    2 +-
 .../centralstorage/separate_user/config.cfg   |    2 +-
 .../separate_user/separate_user.ttcn          |    2 +-
 .../user_all_bases/user_all_bases.ttcn        |    2 +-
 .../centralstorage/user_ttcn/fake.ttcnpp      |    2 +-
 .../centralstorage/user_ttcn/user_ttcn.ttcn   |    2 +-
 .../compileonly/circularImport/A.asn          |    2 +-
 .../compileonly/circularImport/B.asn          |    2 +-
 .../compileonly/circularImport/Makefile       |    2 +-
 .../compileonly/compareImported/A.ttcn        |    2 +-
 .../compileonly/compareImported/B.ttcn        |    2 +-
 .../compileonly/compareImported/C.ttcn        |    2 +-
 .../compileonly/compareImported/Makefile      |    2 +-
 .../compileonly/compoundif/Makefile           |    2 +-
 .../compileonly/compoundif/Tcompoundif.ttcn   |    2 +-
 .../dynamicTemplate/DynamicTemplate.ttcn      |    2 +-
 .../compileonly/dynamicTemplate/Makefile      |    2 +-
 .../compileonly/dynamicTemplate/external.cc   |    2 +-
 regression_test/compileonly/isbound/Makefile  |    2 +-
 .../compileonly/isbound/bad_SE.ttcn           |    2 +-
 .../compileonly/isbound/bogus_SY.ttcn         |    2 +-
 .../isbound/isbound_component_OK.ttcn         |    2 +-
 .../compileonly/isbound/isbound_port_SE.ttcn  |    2 +-
 .../isbound/isbound_testcase_SE.ttcn          |    2 +-
 .../compileonly/isbound/one_OK.ttcn           |    2 +-
 .../COMMON/ProtocolModules_Common.tpd         |    2 +-
 .../mfgen-tpd/COMMON/src/General_Types.ttcn   |    2 +-
 .../COMMON/src/MobileDomainDefinitions.asn    |    2 +-
 .../mfgen-tpd/HP79745/Hello000/Hello000.tpd   |    2 +-
 .../HP79745/Hello000/src/MyExample0.ttcn      |    2 +-
 .../mfgen-tpd/HP79745/Hello123/Hello123.tpd   |    2 +-
 .../HP79745/Hello123/src/MyExample1.ttcn      |    2 +-
 .../mfgen-tpd/HP79745/HelloTpd/HelloTpd.tpd   |    2 +-
 .../HP79745/HelloTpd/src/MyExample.ttcn       |    2 +-
 .../compileonly/mfgen-tpd/HP79745/Makefile    |    2 +-
 .../compileonly/mfgen-tpd/HQ56829/Makefile    |    2 +-
 .../compileonly/mfgen-tpd/HQ56834/Makefile    |    2 +-
 .../compileonly/mfgen-tpd/HQ56834/counter.tpd |    2 +-
 .../mfgen-tpd/HQ56834/src/counter.ttcn        |    2 +-
 .../compileonly/mfgen-tpd/HQ56848/Makefile    |    2 +-
 .../compileonly/mfgen-tpd/HQ56848/counter.tpd |    2 +-
 .../mfgen-tpd/HQ56848/src/counter.ttcn        |    2 +-
 .../compileonly/mfgen-tpd/HQ60308/counter.tpd |    2 +-
 .../mfgen-tpd/HQ60308/src/counter.ttcn        |    2 +-
 .../compileonly/mfgen-tpd/HR30356/Makefile    |    2 +-
 .../mfgen-tpd/HR30356/client/client.tpd       |    2 +-
 .../mfgen-tpd/HR30356/client/src/client.ttcn  |    2 +-
 .../HR30356/controller/controller.tpd         |    2 +-
 .../HR30356/controller/src/controller.ttcn    |    2 +-
 .../mfgen-tpd/HR30356/server/server.tpd       |    2 +-
 .../mfgen-tpd/HR30356/server/src/server.ttcn  |    2 +-
 .../HR30356/testport/src/testport.ttcn        |    2 +-
 .../mfgen-tpd/HR30356/testport/testport.tpd   |    2 +-
 .../mfgen-tpd/HR30365/Hello000/Hello000.tpd   |    2 +-
 .../HR30365/Hello000/src/MyExample0.ttcn      |    2 +-
 .../mfgen-tpd/HR30365/Hello123/Hello123.tpd   |    2 +-
 .../HR30365/Hello123/src/MyExample1.ttcn      |    2 +-
 .../mfgen-tpd/HR30365/HelloTpd/HelloTpd.tpd   |    2 +-
 .../HR30365/HelloTpd/src/MyExample.ttcn       |    2 +-
 .../compileonly/mfgen-tpd/HR30365/Makefile    |    2 +-
 .../compileonly/mfgen-tpd/Makefile            |    2 +-
 .../NAS_EPS_v9.7.0_CNL113729.tpd              |    2 +-
 .../src/NAS_EPS_v970.ttcn                     |    2 +-
 .../test/NAS_EPS_Test.cfg                     |    2 +-
 .../test/NAS_EPS_Test.ttcn                    |    2 +-
 .../test/NAS_EPS_v9.7.0_CNL113729_test.tpd    |    2 +-
 .../buildconfig_param/HelloTpd/HelloTpd.tpd   |    2 +-
 .../HelloTpd/src/MyExample.cfg                |    2 +-
 .../HelloTpd/src/MyExample.ttcn               |    2 +-
 .../buildconfig_param/HelloTpd/src/PCOType.cc |    2 +-
 .../buildconfig_param/HelloTpd/src/PCOType.hh |    2 +-
 .../mfgen-tpd/buildconfig_param/Makefile      |    2 +-
 .../consumer-ref-supplier-Default.tpd         |    2 +-
 .../mfgen-tpd/consumer/creator.ttcn           |    2 +-
 .../mfgen-tpd/consumer/src/consumer.ttcn      |    2 +-
 .../mfgen-tpd/consumer/src/userfun.cc         |    2 +-
 .../mfgen-tpd/dependency_check/Makefile       |    2 +-
 .../dependency_check/client/client.tpd        |    2 +-
 .../dependency_check/client/src/client.ttcn   |    2 +-
 .../controller/controller.tpd                 |    2 +-
 .../controller/src/controller.ttcn            |    2 +-
 .../dependency_check/server/server.tpd        |    2 +-
 .../dependency_check/server/src/server.ttcn   |    2 +-
 .../testport/src/testport.ttcn                |    2 +-
 .../dependency_check/testport/testport.tpd    |    2 +-
 .../mfgen-tpd/flagTest/Hello000/Hello000.tpd  |    2 +-
 .../flagTest/Hello000/src/MyExample0.ttcn     |    2 +-
 .../mfgen-tpd/flagTest/Hello123/Hello123.tpd  |    2 +-
 .../flagTest/Hello123/src/MyExample1.ttcn     |    2 +-
 .../mfgen-tpd/flagTest/HelloTpd/HelloTpd.tpd  |    2 +-
 .../flagTest/HelloTpd/src/MyExample.ttcn      |    2 +-
 .../flagTest/HelloTpd2/HelloTpd2.tpd          |    2 +-
 .../flagTest/HelloTpd2/src/MyExample2.ttcn    |    2 +-
 .../compileonly/mfgen-tpd/flagTest/Makefile   |    2 +-
 .../compileonly/mfgen-tpd/handmade.ttcn       |    2 +-
 .../HelloTpd/HelloTpd.tpd                     |    2 +-
 .../HelloTpd/src/MyExample.cfg                |    2 +-
 .../HelloTpd/src/MyExample.ttcn               |    2 +-
 .../HelloTpd/src/PCOType.cc                   |    2 +-
 .../HelloTpd/src/PCOType.hh                   |    2 +-
 .../invalid_buildconfig_param/Makefile        |    2 +-
 .../Hello000/Hello000.tpd                     |    2 +-
 .../Hello000/src/MyExample0.cfg               |    2 +-
 .../Hello000/src/MyExample0.ttcn              |    2 +-
 .../Hello000/src/PCOType0.cc                  |    2 +-
 .../Hello000/src/PCOType0.hh                  |    2 +-
 .../Hello123/Hello123.tpd                     |    2 +-
 .../Hello123/src/MyExample1.cfg               |    2 +-
 .../Hello123/src/MyExample1.ttcn              |    2 +-
 .../Hello123/src/PCOType1.cc                  |    2 +-
 .../Hello123/src/PCOType1.hh                  |    2 +-
 .../HelloTpd/HelloTpd.tpd                     |    2 +-
 .../HelloTpd/src/MyExample.cfg                |    2 +-
 .../HelloTpd/src/MyExample.ttcn               |    2 +-
 .../HelloTpd/src/PCOType.cc                   |    2 +-
 .../HelloTpd/src/PCOType.hh                   |    2 +-
 .../invalid_buildconfig_tpd/Makefile          |    2 +-
 .../mfgen-tpd/library/HelloTpd/HelloTpd.tpd   |    2 +-
 .../library/HelloTpd/src/MyExample.cfg        |    2 +-
 .../library/HelloTpd/src/MyExample.ttcn       |    2 +-
 .../mfgen-tpd/library/HelloTpd/src/PCOType.cc |    2 +-
 .../mfgen-tpd/library/HelloTpd/src/PCOType.hh |    2 +-
 .../mfgen-tpd/library/HelloTpd2/HelloTpd.tpd  |    2 +-
 .../compileonly/mfgen-tpd/library/Makefile    |    2 +-
 .../compileonly/mfgen-tpd/library/a.ttcn      |    2 +-
 .../compileonly/mfgen-tpd/library/b.ttcn      |    2 +-
 .../library/central_storage/central.ttcn      |    2 +-
 .../compileonly/mfgen-tpd/outsider.ttcn       |    2 +-
 .../compileonly/mfgen-tpd/runner.pl           |    2 +-
 .../mfgen-tpd/subplier/src/subway.ttcn        |    2 +-
 .../mfgen-tpd/subplier/subplier.tpd           |    2 +-
 .../mfgen-tpd/supplier/src/supplier.ttcn      |    2 +-
 .../mfgen-tpd/supplier/src/supplier2.ttcn     |    2 +-
 .../mfgen-tpd/supplier/supplier24.tpd         |    2 +-
 .../namedActualParameters/Makefile            |    2 +-
 .../TnamedActualParameters.ttcn               |    2 +-
 regression_test/compileonly/openType/Makefile |    2 +-
 regression_test/compileonly/openType/X.asn    |    2 +-
 .../openTypeNames/IO_based_message.asn        |   86 +
 .../compileonly/openTypeNames/Makefile        |   42 +
 .../openTypeNames/Open_type_use.ttcn          |  212 ++
 .../optionalAssignCompare/Makefile            |    2 +-
 .../ToptionalAssignCompare.ttcn               |    2 +-
 .../compileonly/portConstructor/Makefile      |    2 +-
 .../compileonly/portConstructor/x.ttcn        |    2 +-
 .../styleGuide/Another_module.ttcn            |    2 +-
 .../compileonly/styleGuide/Makefile           |    2 +-
 .../compileonly/styleGuide/MyASN1_module.asn  |    2 +-
 .../styleGuide/MySample_module.ttcn           |    2 +-
 .../compileonly/styleGuide/external.cc        |    2 +-
 regression_test/compileonly/topLevelPdu/A.asn |    2 +-
 regression_test/compileonly/topLevelPdu/B.asn |    2 +-
 .../compileonly/topLevelPdu/Makefile          |    2 +-
 .../compileonly/typeInstantiation/A.asn       |    2 +-
 .../compileonly/typeInstantiation/B.asn       |    2 +-
 .../compileonly/typeInstantiation/Makefile    |    2 +-
 regression_test/configOper/Makefile           |    2 +-
 regression_test/configOper/TconfigOper.ttcn   |    2 +-
 regression_test/controlTimer/Makefile         |    2 +-
 .../controlTimer/TcontrolTimer.ttcn           |    2 +-
 regression_test/controlTimer/config.cfg       |    2 +-
 regression_test/defaultOper/Makefile          |    2 +-
 regression_test/defaultOper/TdefaultOper.ttcn |    2 +-
 regression_test/defaultOper/config.cfg        |    2 +-
 regression_test/enumOper/Makefile             |    2 +-
 regression_test/enumOper/TenumOper.ttcn       |   38 +-
 regression_test/enumOper/config.cfg           |    2 +-
 regression_test/floatOper/Makefile            |    2 +-
 regression_test/floatOper/TfloatOper.ttcn     |    6 +-
 regression_test/floatOper/config.cfg          |    2 +-
 .../functionReference/FuncRef.ttcn            |   10 +-
 regression_test/functionReference/Makefile    |    2 +-
 regression_test/functionReference/config.cfg  |    2 +-
 regression_test/functionSubref/Makefile       |   54 +
 .../functionSubref/TfunctionSubref.ttcn       |  586 ++++
 .../functionSubref/TpardTemplateSubref.ttcn   |  205 ++
 regression_test/functionSubref/config.cfg     |   15 +
 regression_test/hexstrOper/Makefile           |    2 +-
 regression_test/hexstrOper/ThexstrOper.ttcn   |    2 +-
 regression_test/hexstrOper/config.cfg         |    2 +-
 regression_test/iconv/Makefile                |    2 +-
 regression_test/iconv/config.cfg              |    2 +-
 regression_test/iconv/converter.ttcn          |    2 +-
 regression_test/iconv/convertest.ttcn         |    8 +-
 regression_test/iconv/iconver.cc              |    2 +-
 regression_test/implicitMsgEncoding/Makefile  |    2 +-
 .../implicitMsgEncoding/PCOType.cc            |    2 +-
 .../implicitMsgEncoding/PCOType.hh            |    2 +-
 .../implicitMsgEncoding/TimplicitEnc.ttcn     |    2 +-
 .../implicitMsgEncoding/config.cfg            |    2 +-
 regression_test/implicitOmit/Makefile         |    2 +-
 regression_test/implicitOmit/config.cfg       |    2 +-
 regression_test/implicitOmit/io.ttcn          |    2 +-
 regression_test/intOper/Makefile              |    2 +-
 regression_test/intOper/PCOType.cc            |    2 +-
 regression_test/intOper/PCOType.hh            |    2 +-
 regression_test/intOper/TintOper.ttcn         |  110 +-
 regression_test/intOper/config.cfg            |    2 +-
 regression_test/ipv6/Makefile                 |    2 +-
 regression_test/ipv6/host_ipv6_global.cfg     |    2 +-
 regression_test/ipv6/host_link_local.cfg      |    2 +-
 regression_test/ipv6/invalid_global_ipv6.cfg  |    2 +-
 .../ipv6/invalid_global_ipv6_long.cfg         |    2 +-
 regression_test/ipv6/ip_create_on_host.cfg    |    2 +-
 regression_test/ipv6/ipv6.ttcn                |    2 +-
 regression_test/ipv6/ipv6_all_global.cfg      |    2 +-
 .../ipv6/ipv6_long_short_global.cfg           |    2 +-
 regression_test/ipv6/ipv_hostname_macro.cfg   |    2 +-
 regression_test/ipv6/link_local_ipv6.cfg      |    2 +-
 .../ipv6/localhost_create_on_host.cfg         |    2 +-
 .../ipv6/localhost_ip_create_on_host.cfg      |    2 +-
 .../ipv6/long_host_ipv6_global.cfg            |    2 +-
 regression_test/ipv6/long_ipv6_global.cfg     |    2 +-
 .../ipv6/no_full_syntax_check_link_local.cfg  |    2 +-
 .../no_full_syntax_check_link_local_long.cfg  |    2 +-
 regression_test/ipv6/total_link_local.cfg     |    2 +-
 regression_test/ipv6/valid_global_ipv6.cfg    |    2 +-
 regression_test/ispresent/IsPresent_Test.cfg  |    2 +-
 regression_test/ispresent/IsPresent_Test.ttcn |   17 +-
 regression_test/ispresent/Makefile            |    2 +-
 regression_test/json/AttributeTestcases.ttcn  |  126 +-
 regression_test/json/Functions.ttcn           |   27 +-
 regression_test/json/JSON.cfg                 |    2 +-
 regression_test/json/JsonData.asn             |    8 +-
 regression_test/json/Makefile                 |    2 +-
 regression_test/json/SemanticCheck.ttcn       |    2 +-
 regression_test/json/Testcases.ttcn           |    2 +-
 regression_test/json/Types.ttcn               |   41 +-
 regression_test/junitlogger/Makefile          |    2 +-
 regression_test/junitlogger/main1.cfg         |    2 +-
 regression_test/junitlogger/main1.ttcn        |    2 +-
 regression_test/junitlogger/test_junitlog.pl  |    2 +-
 regression_test/junitlogger/test_junitlog.sh  |    2 +-
 regression_test/lazyEval/LazyASNTypes.asn     |    2 +-
 regression_test/lazyEval/Makefile             |   11 +-
 regression_test/lazyEval/lazy.cfg             |    2 +-
 regression_test/lazyEval/lazy_A.ttcn          |    2 +-
 regression_test/lazyEval/lazy_B.ttcn          |    2 +-
 regression_test/lazyEval/lazy_defs.ttcn       |    2 +-
 regression_test/lazyEval/lazy_main.ttcn       |    2 +-
 regression_test/logFiles/CommonStuff.ttcn     |    2 +-
 regression_test/logFiles/LogFiles.cfg         |    2 +-
 regression_test/logFiles/LogFiles.ttcn        |    2 +-
 regression_test/logFiles/LogFiles2.cfg        |    2 +-
 regression_test/logFiles/LogFilesInc.cfg      |    2 +-
 regression_test/logFiles/LogFilesProc.cfg     |    2 +-
 regression_test/logFiles/Makefile             |    3 +-
 regression_test/logFiles/TitanLogTest.cfg     |    2 +-
 regression_test/logFiles/TitanLogTest.ttcn    |    2 +-
 regression_test/logFiles/extfunc.cc           |    2 +-
 regression_test/logFiles/filtered_e.log2      |    2 +
 regression_test/logFiles/lfilter.log2         |    4 +
 regression_test/logFiles/logFiles_doc.script  |    2 +-
 regression_test/logFiles/logfilter.sh         |   22 +
 regression_test/logger/Makefile               |    2 +-
 .../logger/emergency_logging/Console_N.txt    |    2 +-
 .../logger/emergency_logging/Console_O.txt    |    2 +-
 .../emergency_logging/EL_BufferAll_1.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_10.cfg     |    2 +-
 .../emergency_logging/EL_BufferAll_11.cfg     |    2 +-
 .../emergency_logging/EL_BufferAll_12.cfg     |    2 +-
 .../emergency_logging/EL_BufferAll_13.cfg     |    2 +-
 .../emergency_logging/EL_BufferAll_1_NOEL.cfg |    2 +-
 .../emergency_logging/EL_BufferAll_2.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_3.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_3_NOEL.cfg |    2 +-
 .../emergency_logging/EL_BufferAll_4.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_5.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_6.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_7.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_7A.cfg     |    2 +-
 .../emergency_logging/EL_BufferAll_8.cfg      |    2 +-
 .../emergency_logging/EL_BufferAll_9.cfg      |    2 +-
 .../emergency_logging/EL_BufferMasked_1.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_10.cfg  |    2 +-
 .../emergency_logging/EL_BufferMasked_11.cfg  |    2 +-
 .../emergency_logging/EL_BufferMasked_12.cfg  |    2 +-
 .../emergency_logging/EL_BufferMasked_13.cfg  |    2 +-
 .../emergency_logging/EL_BufferMasked_2.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_3.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_4.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_5.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_6.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_7.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_8.cfg   |    2 +-
 .../emergency_logging/EL_BufferMasked_9.cfg   |    2 +-
 .../emergency_logging/EmergencyLogTest.sh     |    2 +-
 .../EmergencyLoggingTest.ttcn                 |    2 +-
 .../EmergencyLoggingTest_BuffMasked.cfg       |    2 +-
 .../logger/emergency_logging/Makefile         |    2 +-
 .../logger/emergency_logging/PCO_PT.cc        |    2 +-
 .../logger/emergency_logging/PCO_PT.hh        |    2 +-
 .../emergency_logging/Titan_LogTest.ttcn      |    2 +-
 .../Titan_LogTestDefinitions.ttcn             |    2 +-
 .../emergency_logging/failed_testcases.txt    |    2 +-
 .../logger/emergency_logging/runlog.txt       |    2 +-
 regression_test/logger/logcontrol/Makefile    |    2 +-
 .../logcontrol/Titan_LogControlTest.cfg       |    2 +-
 .../logcontrol/Titan_LogControlTest.ttcn      |    2 +-
 .../logtest/Console_original_merged_log.txt   |    2 +-
 regression_test/logger/logtest/Makefile       |    2 +-
 regression_test/logger/logtest/PCO_PT.cc      |    2 +-
 regression_test/logger/logtest/PCO_PT.hh      |    2 +-
 .../logger/logtest/Titan_LogTest.cfg          |    2 +-
 .../logger/logtest/Titan_LogTest.ttcn         |    2 +-
 .../logtest/Titan_LogTestDefinitions.ttcn     |    2 +-
 .../logger/logtest/Titan_LogTest_ACTION.cfg   |    2 +-
 .../Titan_LogTest_ACTIONplusEXECUTOR_RT.cfg   |    2 +-
 .../logger/logtest/Titan_LogTest_DEBUG.cfg    |    2 +-
 ...itan_LogTest_DEFAULT_OPplusEXECUTOR_RT.cfg |    2 +-
 .../logtest/Titan_LogTest_ERRORplusRT.cfg     |    2 +-
 .../logtest/Titan_LogTest_EXECUTOR_LOGOPT.cfg |    2 +-
 .../Titan_LogTest_EXECUTOR_RTplusCOMP.cfg     |    2 +-
 .../Titan_LogTest_EXECUTOR_RTplusLOGOPT.cfg   |    2 +-
 .../logger/logtest/Titan_LogTest_EXEC_RT.cfg  |    2 +-
 .../logtest/Titan_LogTest_EX_UNQUAL.cfg       |    2 +-
 .../Titan_LogTest_E_RTplus_E_CONFIGDATA.cfg   |    2 +-
 .../logger/logtest/Titan_LogTest_FUNC.cfg     |    2 +-
 .../logger/logtest/Titan_LogTest_MATCH.cfg    |    2 +-
 .../logger/logtest/Titan_LogTest_PARALLEL.cfg |    2 +-
 .../logtest/Titan_LogTest_PORTEVENT.cfg       |    2 +-
 .../logger/logtest/Titan_LogTest_STAT.cfg     |    2 +-
 .../logger/logtest/Titan_LogTest_TC.cfg       |    2 +-
 .../logger/logtest/Titan_LogTest_TIMER.cfg    |    2 +-
 .../logtest/Titan_LogTest_TTCN_ACTION.cfg     |    2 +-
 .../logger/logtest/Titan_LogTest_USER.cfg     |    2 +-
 .../logger/logtest/Titan_LogTest_VERDICT.cfg  |    2 +-
 .../logger/logtest/Titan_LogTest_WARNING.cfg  |    2 +-
 regression_test/logger/logtest/logtest.sh     |    2 +-
 .../logger/logtest/original_merged_log.txt    |    2 +-
 .../logtest/original_merged_log_modified.txt  |    2 +-
 regression_test/logger_control/Makefile       |    2 +-
 regression_test/logger_control/config.cfg     |    2 +-
 .../logger_control/logcontrol.ttcn            |    2 +-
 regression_test/loggerplugin/Makefile         |    2 +-
 regression_test/loggerplugin/a.ttcn           |    2 +-
 regression_test/loggerplugin/config.cfg       |    2 +-
 regression_test/lostTimer/Makefile            |    2 +-
 regression_test/lostTimer/TlostTimer.ttcn     |    5 +-
 regression_test/lostTimer/config.cfg          |    2 +-
 regression_test/macros/Macros.ttcn            |    2 +-
 regression_test/macros/Makefile               |    2 +-
 regression_test/macros/config.cfg             |    2 +-
 regression_test/modifiedTemplate/Makefile     |    2 +-
 .../modifiedTemplate/TmodifiedTemplate.ttcn   |    2 +-
 regression_test/modifiedTemplate/config.cfg   |    2 +-
 .../namedActualParameters/Makefile            |    2 +-
 .../namedActualParameters/config.cfg          |    2 +-
 .../namedActualParameters/inlinetemplate.ttcn |    2 +-
 .../namedActualParameters/namedparam.ttcn     |    2 +-
 .../namedActualParameters/small.ttcn          |    2 +-
 .../namedActualParameters/templates.ttcn      |    2 +-
 regression_test/negativeTest/Makefile         |    2 +-
 regression_test/negativeTest/NegTest.cfg      |    2 +-
 .../negativeTest/NegTestTestcases.ttcn        |    2 +-
 regression_test/negativeTest/NegTestTypes.asn |    2 +-
 regression_test/negativeTest/NegTest_RAW.cfg  |    2 +-
 .../negativeTest/NegTest_RAW_Testcases.ttcn   |    2 +-
 .../negativeTest/NegTest_RAW_Types.ttcn       |    2 +-
 regression_test/negativeTest/NegTest_TEXT.cfg |    2 +-
 .../negativeTest/NegTest_TEXT_Testcases.ttcn  |    2 +-
 .../negativeTest/NegTest_TEXT_Types.ttcn      |    2 +-
 regression_test/negativeTest/NegTest_XML.cfg  |    2 +-
 .../negativeTest/NegTest_XML_Testcases.ttcn   |    2 +-
 .../negativeTest/NegTest_XML_Types.xsd        |    2 +-
 regression_test/negativeTest/NegTest_all.cfg  |    2 +-
 regression_test/negativeTest/Types.asn        |    2 +-
 .../negativeTest/UsefulTtcn3Types.ttcn        |    2 +-
 regression_test/negativeTest/XSD.ttcn         |    2 +-
 regression_test/negativeTest/config.cfg       |    2 +-
 regression_test/negativeTest/negtest.ttcn     |    2 +-
 ...ww_XmlTest_org_negativeTest_XML_Types.ttcn |    2 +-
 regression_test/nonMandatoryPar/Makefile      |    2 +-
 regression_test/nonMandatoryPar/PCOType.cc    |    2 +-
 regression_test/nonMandatoryPar/PCOType.hh    |    2 +-
 .../nonMandatoryPar/TnonMandatory.ttcn        |    2 +-
 regression_test/nonMandatoryPar/config.cfg    |    2 +-
 regression_test/objidOper/Makefile            |    2 +-
 regression_test/objidOper/TobjidOper.ttcn     |    9 +-
 regression_test/objidOper/config.cfg          |    2 +-
 regression_test/objidOper/indexer.cc          |    2 +-
 regression_test/octetstrOper/Makefile         |    2 +-
 .../octetstrOper/ToctetstrOper.ttcn           |    3 +-
 regression_test/octetstrOper/config.cfg       |    2 +-
 regression_test/omitdef/Datatypes.asn         |    2 +-
 regression_test/omitdef/Dumping.hh            |    2 +-
 regression_test/omitdef/Makefile              |    2 +-
 regression_test/omitdef/PT_DefOpt.cc          |    2 +-
 regression_test/omitdef/PT_DefOpt.hh          |    2 +-
 regression_test/omitdef/Tsenderos.ttcn        |    2 +-
 regression_test/omitdef/config.cfg            |    2 +-
 regression_test/pattern_quadruples/Makefile   |    2 +-
 regression_test/pattern_quadruples/config.cfg |    2 +-
 .../pattern_quadruples.ttcn                   |    2 +-
 regression_test/preCompilerFlags/Makefile     |    2 +-
 .../preCompilerFlags/TpreCompilerFlags.ttcnpp |    2 +-
 regression_test/preCompilerFlags/config.cfg   |    2 +-
 regression_test/predefFunction/Makefile       |    2 +-
 regression_test/predefFunction/PreDef.cfg     |    2 +-
 regression_test/predefFunction/bit_to_OK.ttcn |    2 +-
 regression_test/predefFunction/bit_to_SW.ttcn |    2 +-
 .../predefFunction/char_to_OK.ttcn            |    2 +-
 .../predefFunction/char_to_SW.ttcn            |    2 +-
 regression_test/predefFunction/encdec_OK.ttcn |    2 +-
 .../predefFunction/enum_to_OK.ttcn            |    2 +-
 .../predefFunction/enum_to_SW.ttcn            |    2 +-
 .../predefFunction/float_to_OK.ttcn           |    2 +-
 .../predefFunction/float_to_SW.ttcn           |    2 +-
 regression_test/predefFunction/hex_to_OK.ttcn |    2 +-
 regression_test/predefFunction/hex_to_SW.ttcn |    2 +-
 regression_test/predefFunction/int_to_OK.ttcn |    2 +-
 regression_test/predefFunction/int_to_SW.ttcn |    2 +-
 .../predefFunction/isprecho_OK.ttcn           |    2 +-
 .../predefFunction/length_of_OK.ttcn          |    2 +-
 .../predefFunction/length_of_SW.ttcn          |    2 +-
 regression_test/predefFunction/oct_to_OK.ttcn |    2 +-
 regression_test/predefFunction/oct_to_SW.ttcn |    2 +-
 regression_test/predefFunction/regex_OK.ttcn  |    2 +-
 .../predefFunction/replacer_OK.ttcn           |    2 +-
 .../predefFunction/replacer_SW.ttcn           |    2 +-
 regression_test/predefFunction/rotter_OK.ttcn |    2 +-
 regression_test/predefFunction/rotter_SW.ttcn |    2 +-
 regression_test/predefFunction/shifty_OK.ttcn |    2 +-
 regression_test/predefFunction/shifty_SW.ttcn |    2 +-
 .../predefFunction/size_of_OK.ttcn            |    2 +-
 .../predefFunction/size_of_SW.ttcn            |    2 +-
 regression_test/predefFunction/str_to_OK.ttcn |    2 +-
 regression_test/predefFunction/str_to_SW.ttcn |    2 +-
 .../predefFunction/sub_str_OK.ttcn            |    2 +-
 .../predefFunction/sub_str_SW.ttcn            |    2 +-
 regression_test/predefFunction/tcname_OK.ttcn |    2 +-
 regression_test/predefFunction/tcname_SW.ttcn |    2 +-
 regression_test/prereq.pl                     |    2 +-
 regression_test/profiler/Makefile             |    3 +-
 regression_test/profiler/PIPEasp_PT.cc        |    2 +-
 regression_test/profiler/PIPEasp_PT.hh        |    2 +-
 .../profiler/PIPEasp_PortType.ttcn            |    2 +-
 .../profiler/PIPEasp_Templates.ttcn           |    2 +-
 regression_test/profiler/PIPEasp_Types.ttcn   |    2 +-
 regression_test/profiler/Shell.ttcn           |   18 +-
 regression_test/profiler/Testcases.ttcn       |   72 +-
 regression_test/profiler/data_e.json          |   37 +
 regression_test/profiler/double_e.json        |  263 ++
 regression_test/profiler/double_e.stats       |   84 +
 regression_test/profiler/merged_e.stats       |   84 +
 regression_test/profiler/prof2.cfg            |    2 +-
 regression_test/profiler/prof3.cfg            |    2 +-
 regression_test/recofOper/BerType.asn         |    2 +-
 regression_test/recofOper/Circular1.ttcn      |   22 +
 regression_test/recofOper/Circular2.ttcn      |   17 +
 regression_test/recofOper/Makefile            |    4 +-
 regression_test/recofOper/TrecofOper.ttcn     |    2 +-
 regression_test/recofOper/TrecofParamRef.ttcn |    2 +-
 regression_test/recofOper/config.cfg          |    2 +-
 regression_test/recordOper/Makefile           |    2 +-
 regression_test/recordOper/TrecordOper.ttcn   |    2 +-
 regression_test/recordOper/config.cfg         |    2 +-
 regression_test/setOper/Makefile              |    2 +-
 regression_test/setOper/TsetOper.ttcn         |    2 +-
 regression_test/setOper/config.cfg            |    2 +-
 regression_test/setofMatch/Makefile           |    2 +-
 regression_test/setofMatch/TsetofMatch.ttcn   |    2 +-
 regression_test/setofMatch/config.cfg         |    2 +-
 regression_test/setofOper/Makefile            |    2 +-
 regression_test/setofOper/TsetofOper.ttcn     |    2 +-
 regression_test/setofOper/config.cfg          |    2 +-
 regression_test/singlecontrol/Makefile        |    2 +-
 .../singlecontrol/alsohascontrolpart.ttcn     |    2 +-
 regression_test/singlecontrol/config.cfg      |    2 +-
 regression_test/singlecontrol/config1.cfg     |    2 +-
 regression_test/singlecontrol/config2.cfg     |    2 +-
 .../singlecontrol/config_noexec.cfg           |    2 +-
 .../singlecontrol/hascontrolpart.ttcn         |    2 +-
 .../singlecontrol/nocontrolpart.ttcn          |    2 +-
 regression_test/singlecontrol/ouch.cfg        |    2 +-
 regression_test/slider/Makefile               |    2 +-
 regression_test/slider/PT1.cc                 |    2 +-
 regression_test/slider/PT1.hh                 |    2 +-
 regression_test/slider/UNDER.cc               |    2 +-
 regression_test/slider/UNDER.hh               |    2 +-
 regression_test/slider/dual.ttcn              |    2 +-
 regression_test/slider/dual2.ttcn             |    2 +-
 regression_test/slider/dualnegtest.ttcn       |    2 +-
 regression_test/slider/run.cfg                |    2 +-
 regression_test/slider/slider.ttcn            |    2 +-
 regression_test/templateAnytype/Makefile      |    2 +-
 .../templateAnytype/TtemplateAnytype.ttcn     |    2 +-
 regression_test/templateAnytype/config.cfg    |    2 +-
 regression_test/templateBitstr/Makefile       |    2 +-
 .../templateBitstr/TtemplateBitstr.ttcn       |    2 +-
 regression_test/templateBitstr/config.cfg     |    2 +-
 regression_test/templateBool/Makefile         |    2 +-
 .../templateBool/TtemplateBool.ttcn           |    2 +-
 regression_test/templateBool/config.cfg       |    2 +-
 regression_test/templateChar/Makefile         |    2 +-
 .../templateChar/TtemplateChar.ttcn           |    2 +-
 regression_test/templateChar/config.cfg       |    2 +-
 regression_test/templateCharstr/Makefile      |    2 +-
 .../templateCharstr/TtemplateCharstr.ttcn     |    2 +-
 regression_test/templateCharstr/config.cfg    |    2 +-
 regression_test/templateEnum/Makefile         |    2 +-
 .../templateEnum/TtemplateEnum.ttcn           |    2 +-
 regression_test/templateEnum/config.cfg       |    2 +-
 regression_test/templateFloat/Makefile        |    2 +-
 .../templateFloat/TtemplateFloat.ttcn         |   22 +-
 regression_test/templateFloat/config.cfg      |    2 +-
 regression_test/templateInt/Makefile          |    2 +-
 regression_test/templateInt/TtemplateInt.ttcn |   33 +-
 regression_test/templateInt/config.cfg        |    2 +-
 regression_test/templateOctetstr/Makefile     |    2 +-
 .../templateOctetstr/TtemplateOctetstr.ttcn   |    2 +-
 regression_test/templateOctetstr/config.cfg   |    2 +-
 .../templateOmit/Common/Templates.ttcn        |   51 +
 .../templateOmit/Common/Types.ttcn            |   53 +
 .../LegacyTests/LegacyTestcases.ttcn          |  529 ++++
 .../templateOmit/LegacyTests/Makefile         |   58 +
 .../templateOmit/LegacyTests/legacy.cfg       |   14 +
 regression_test/templateOmit/Makefile         |   24 +
 .../templateOmit/NewTests/Makefile            |   56 +
 .../templateOmit/NewTests/NewTestcases.ttcn   |  423 +++
 regression_test/templateOmit/NewTests/new.cfg |   14 +
 regression_test/templateRec/Makefile          |    4 +-
 regression_test/templateRec/TtemplateRec.ttcn |   15 +-
 .../templateRec/TtemplateRecAsn.asn           |    2 +-
 regression_test/templateRec/config.cfg        |    2 +-
 regression_test/templateRecof/Makefile        |    2 +-
 .../templateRecof/TmultiplePermutations.ttcn  |    2 +-
 .../templateRecof/TtemplateRecof.ttcn         |    2 +-
 regression_test/templateRecof/config.cfg      |    2 +-
 regression_test/templateSet/Makefile          |    2 +-
 regression_test/templateSet/TtemplateSet.ttcn |    2 +-
 regression_test/templateSet/config.cfg        |    2 +-
 regression_test/templateSetof/Makefile        |    2 +-
 .../templateSetof/TtemplateSetof.ttcn         |    2 +-
 regression_test/templateSetof/config.cfg      |    2 +-
 regression_test/templateUnion/Makefile        |    2 +-
 .../templateUnion/TtemplateUnion.ttcn         |    2 +-
 regression_test/templateUnion/config.cfg      |    2 +-
 regression_test/testcase_defparam/Makefile    |    2 +-
 regression_test/testcase_defparam/config.cfg  |    2 +-
 .../testcase_defparam/tcdefparam.ttcn         |    2 +-
 regression_test/text2ttcn/Makefile            |  107 +-
 regression_test/text2ttcn/array_test.ttcn     |    2 +-
 regression_test/text2ttcn/bitstring_test.ttcn |    2 +-
 regression_test/text2ttcn/boolean_test.ttcn   |    2 +-
 .../text2ttcn/charstring_test.ttcn            |    8 +-
 regression_test/text2ttcn/component_test.ttcn |    2 +-
 regression_test/text2ttcn/enum_test.ttcn      |    2 +-
 regression_test/text2ttcn/float_test.ttcn     |    2 +-
 regression_test/text2ttcn/functions.ttcn      |    2 +-
 regression_test/text2ttcn/hexstring_test.ttcn |    2 +-
 regression_test/text2ttcn/integer_test.ttcn   |    2 +-
 regression_test/text2ttcn/objid_test.ttcn     |    2 +-
 .../text2ttcn/octetstring_test.ttcn           |    2 +-
 regression_test/text2ttcn/record_test.ttcn    |    2 +-
 regression_test/text2ttcn/recordof_test.ttcn  |    2 +-
 regression_test/text2ttcn/set_test.ttcn       |    3 +-
 regression_test/text2ttcn/setof_test.ttcn     |    2 +-
 regression_test/text2ttcn/text2ttcn_1.cfg     |    2 +-
 regression_test/text2ttcn/types.ttcn          |    2 +-
 .../text2ttcn/ucharstring_test.ttcn           |    2 +-
 regression_test/text2ttcn/union_test.ttcn     |    2 +-
 regression_test/transparent/Makefile          |    2 +-
 regression_test/transparent/run.cfg           |    2 +-
 regression_test/transparent/transparent.ttcn  |    2 +-
 regression_test/tryCatch/Makefile             |    2 +-
 regression_test/tryCatch/PCOType.cc           |    2 +-
 regression_test/tryCatch/PCOType.hh           |    2 +-
 regression_test/tryCatch/external_function.cc |    2 +-
 regression_test/tryCatch/tryCatch.cfg         |    2 +-
 .../tryCatch/tryCatch_Functions.ttcn          |    2 +-
 .../tryCatch/tryCatch_Testcases.ttcn          |    2 +-
 regression_test/ttcn2json/CompareSchemas.ttcn |   37 +-
 regression_test/ttcn2json/General_Types.ttcn  |    2 +-
 .../ttcn2json/General_Types_e.json            |  769 +++--
 regression_test/ttcn2json/Main_e.json         |    1 +
 regression_test/ttcn2json/Makefile            |    4 +-
 regression_test/ttcn2json/MiniRanap_e.json    |    1 +
 regression_test/ttcn2json/PIPEasp_PT.cc       |    2 +-
 regression_test/ttcn2json/PIPEasp_PT.hh       |    2 +-
 .../ttcn2json/PIPEasp_PortType.ttcn           |    2 +-
 .../ttcn2json/PIPEasp_Templates.ttcn          |    2 +-
 regression_test/ttcn2json/PIPEasp_Types.ttcn  |    2 +-
 regression_test/ttcn2json/Shell.ttcn          |    2 +-
 regression_test/ttcn2json/SubType.ttcn        |  125 +
 regression_test/ttcn2json/SubType_e.json      |  632 ++++
 regression_test/ttcn2json/Testcases.ttcn      |    9 +-
 .../ttcn2json/f_ext_import_schema.cc          |  149 +-
 regression_test/ttcn2json/one.ttcn            |   10 +-
 regression_test/ttcn2json/one_e.json          |  329 +-
 regression_test/ttcn2json/three.ttcn          |    5 +-
 regression_test/ttcn2json/three_e.json        |   78 +-
 regression_test/ttcn2json/two.ttcn            |   11 +-
 regression_test/ttcn2json/two_e.json          |   76 +-
 regression_test/ttcn2json/zero.asn            |    2 +-
 regression_test/typeCompat/ASN_Ext.asn        |    2 +-
 regression_test/typeCompat/Compat.ttcn        |    2 +-
 regression_test/typeCompat/Ext.ttcn           |    2 +-
 regression_test/typeCompat/Ext2.ttcn          |    2 +-
 regression_test/typeCompat/Makefile           |    2 +-
 regression_test/typeCompat/Std.ttcn           |    2 +-
 regression_test/typeCompat/config.cfg         |    2 +-
 .../ucharstrOper/Base64Testcases.ttcn         |    2 +-
 regression_test/ucharstrOper/Common.ttcn      |    2 +-
 regression_test/ucharstrOper/Makefile         |    2 +-
 .../ucharstrOper/TucharstrOper.ttcn           |    2 +-
 .../ucharstrOper/UTF16Testcases.ttcn          |    2 +-
 .../ucharstrOper/UTF32Testcases.ttcn          |    2 +-
 .../ucharstrOper/UTF8Testcases.ttcn           |    2 +-
 regression_test/ucharstrOper/config.cfg       |    2 +-
 .../ucharstrOper/cstr_content.ttcn            |    2 +-
 regression_test/ucharstrOper/external.cc      |    2 +-
 regression_test/unionOper/Makefile            |    2 +-
 regression_test/unionOper/TunionOper.ttcn     |    2 +-
 regression_test/unionOper/config.cfg          |    2 +-
 regression_test/vcheck.pl                     |    2 +-
 regression_test/verdictOper/Makefile          |    2 +-
 regression_test/verdictOper/TverdictOper.ttcn |    2 +-
 regression_test/verdictOper/config.cfg        |    2 +-
 regression_test/visibility/Makefile           |    2 +-
 regression_test/visibility/Visibility.ttcn    |    2 +-
 regression_test/visibility/config.cfg         |    2 +-
 regression_test/visibility/module1.ttcn       |    2 +-
 regression_test/visibility/module2.ttcn       |    2 +-
 regression_test/visibility/module3.ttcn       |    2 +-
 regression_test/visibility/module4.ttcn       |    2 +-
 repgen/Makefile                               |    2 +-
 repgen/logfilter.c                            |    5 +-
 repgen/logformat.l                            |   69 +-
 repgen/logmerge.c                             |    2 +-
 repgen/parser.l                               |    2 +-
 repgen/repgen.c                               |    2 +-
 repgen/repgen.h                               |    2 +-
 repgen/ttcn3_logfilter.1                      |    2 +-
 repgen/ttcn3_logformat.1                      |    5 +-
 repgen/ttcn3_logmerge.1                       |    2 +-
 .../TITAN_Executor_API/build.xml              |    2 +-
 .../javadoc-overview/javadoc-overview.html    |    2 +-
 .../TITAN_Executor_API/readme.txt             |    2 +-
 .../titan/executor/jni/ComponentStruct.java   |    2 +-
 .../titan/executor/jni/HcStateEnum.java       |    2 +-
 .../titan/executor/jni/HostStruct.java        |    2 +-
 .../titan/executor/jni/IJNICallback.java      |    2 +-
 .../titan/executor/jni/JNIMiddleWare.java     |    2 +-
 .../titan/executor/jni/McStateEnum.java       |    2 +-
 .../titan/executor/jni/QualifiedName.java     |    2 +-
 .../titan/executor/jni/TcStateEnum.java       |    2 +-
 .../eclipse/titan/executor/jni/Timeval.java   |    2 +-
 .../titan/executor/jni/TransportTypeEnum.java |    2 +-
 .../titan/executor/jni/VerdictTypeEnum.java   |    2 +-
 .../titan/executorapi/HostController.java     |    2 +-
 .../executorapi/IJniExecutorObserver.java     |    2 +-
 .../titan/executorapi/JniExecutor.java        |    2 +-
 .../exception/JniExecutorException.java       |    2 +-
 .../JniExecutorIllegalArgumentException.java  |    2 +-
 .../JniExecutorJniLoadException.java          |    2 +-
 .../JniExecutorStartSessionException.java     |    2 +-
 .../JniExecutorWrongStateException.java       |    2 +-
 .../titan/executorapi/package-info.java       |    2 +-
 .../eclipse/titan/executorapi/util/Log.java   |    2 +-
 .../titan/executorapi/util/StringUtil.java    |    2 +-
 .../titan/executorapi/demo/CommonData.java    |    2 +-
 .../titan/executorapi/demo/DemoFrame.java     |    2 +-
 .../executorapi/demo/ExecuteCfgDialog.java    |    2 +-
 .../demo/ExecuteControlDialog.java            |    2 +-
 .../demo/ExecuteTestcaseDialog.java           |    2 +-
 .../eclipse/titan/executorapi/demo/Main.java  |    2 +-
 .../TITAN_Executor_API_test/build.xml         |    2 +-
 .../build_and_run_test.sh                     |   82 +
 .../TITAN_Executor_API_test/readme.txt        |  101 +-
 .../HostControllerErrorIllegalArgTest.java    |    2 +-
 .../JniExecutorAsyncErrorIllegalArgTest.java  |    2 +-
 .../test/JniExecutorAsyncErrorTest.java       |    2 +-
 .../JniExecutorAsyncErrorWrongStateTest.java  |    2 +-
 .../test/JniExecutorAsyncHappySimpleTest.java |    2 +-
 .../test/JniExecutorAsyncHappyTest.java       |    2 +-
 .../test/JniExecutorAsyncTest.java            |    2 +-
 .../executorapi/test/JniExecutorSync.java     |    2 +-
 .../executorapi/test/JniExecutorSyncTest.java |    2 +-
 .../executorapi/test/JniExecutorTest.java     |    2 +-
 .../executorapi/test/NormalTestObserver.java  |    2 +-
 .../executorapi/test/StringUtilTest.java      |    2 +-
 .../titan/executorapi/test/Test1Observer.java |    2 +-
 .../titan/executorapi/test/Test2Observer.java |    2 +-
 .../titan/executorapi/test/TestConstants.java |    2 +-
 .../executorapi/test/TestObserverBase.java    |    2 +-
 .../titan/executorapi/test/TestUtil.java      |    2 +-
 .../doc/Titan_Executor_API_User_Guide.doc     |  Bin 64512 -> 74240 bytes
 usrguide/Makefile                             |    2 +-
 usrguide/PRI.doc                              |  Bin 84480 -> 0 bytes
 usrguide/PRI.docx                             |  Bin 0 -> 127610 bytes
 usrguide/apiguide.doc                         |  Bin 555520 -> 696832 bytes
 usrguide/installationguide.doc                |  Bin 118272 -> 118784 bytes
 usrguide/pdfgen.sh                            |    2 +-
 usrguide/referenceguide.doc                   |  Bin 1615360 -> 1682432 bytes
 usrguide/releasenotes.doc                     |  Bin 581120 -> 581120 bytes
 usrguide/userguide.doc                        |  Bin 847872 -> 849920 bytes
 xsdconvert/Annotation.cc                      |   38 +-
 xsdconvert/Annotation.hh                      |   17 +-
 xsdconvert/AttributeType.cc                   |  248 ++
 xsdconvert/AttributeType.hh                   |  131 +
 xsdconvert/ComplexType.cc                     | 2780 +++++++++++------
 xsdconvert/ComplexType.hh                     |  213 +-
 xsdconvert/FieldType.cc                       |  587 ----
 xsdconvert/FieldType.hh                       |   98 -
 xsdconvert/GeneralFunctions.cc                |  597 ++--
 xsdconvert/GeneralFunctions.hh                |   63 +-
 xsdconvert/GeneralTypes.hh                    |  125 +-
 xsdconvert/ImportStatement.cc                 |  126 +-
 xsdconvert/ImportStatement.hh                 |   45 +-
 xsdconvert/List.hh                            |  200 +-
 xsdconvert/Makefile                           |    6 +-
 xsdconvert/Mstring.cc                         |  182 +-
 xsdconvert/Mstring.hh                         |  127 +-
 xsdconvert/PredefinedModules.cc               |   10 +-
 xsdconvert/RootType.cc                        |  320 +-
 xsdconvert/RootType.hh                        |  174 +-
 xsdconvert/SimpleType.cc                      | 1472 +++++----
 xsdconvert/SimpleType.hh                      |  287 +-
 xsdconvert/TTCN3Module.cc                     |  358 ++-
 xsdconvert/TTCN3Module.hh                     |  187 +-
 xsdconvert/TTCN3ModuleInventory.cc            |  248 +-
 xsdconvert/TTCN3ModuleInventory.hh            |   66 +-
 xsdconvert/XMLParser.cc                       |  752 +++--
 xsdconvert/XMLParser.hh                       |  175 +-
 xsdconvert/converter.cc                       |  394 +--
 2787 files changed, 61901 insertions(+), 12236 deletions(-)
 create mode 100644 core/ProfMerge_main.cc
 create mode 100644 core/ProfilerTools.cc
 create mode 100644 core/ProfilerTools.hh
 create mode 100644 core/ttcn3_profmerge.1
 create mode 100644 function_test/Semantic_Analyser/template_restrictions/.gitignore
 create mode 100644 function_test/Semantic_Analyser/template_restrictions/Makefile
 create mode 100644 function_test/Semantic_Analyser/template_restrictions/TempRes_SE.ttcn
 create mode 100755 function_test/Semantic_Analyser/template_restrictions/t
 mode change 100644 => 100755 function_test/doc/TTCN3_Executor_TestReport.doc
 create mode 100644 hello/hello_world.ttcn
 create mode 100644 help/info/apply.html
 create mode 100644 help/info/derefers.html
 create mode 100644 help/info/int2enum.html
 create mode 100644 help/info/log2str.html
 create mode 100644 help/info/refers.html
 create mode 100644 makefiles/Makefile.personal.elx1pjld12-hz
 create mode 100644 regression_test/RAW/IntX/IntX.ttcn
 create mode 100644 regression_test/RAW/IntX/Makefile
 create mode 100644 regression_test/RAW/IntX/config.cfg
 create mode 100644 regression_test/XML/HU13380/HU13380.ttcn
 create mode 100644 regression_test/XML/HU13380/Makefile
 create mode 100644 regression_test/XML/HU13380/config.cfg
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/MyTypes_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/NoTargetNamespace.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/attribute_in_extension_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_complex_restriction_with_use_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv2_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv3_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_nillable_in_nillable_extension_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_seq_embeds_seq_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_wildcards_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_1_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/module_typename_conversion_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/name_conversion_extension_attrib_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/nillable_annotations_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_all_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattr_in_complex_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattrib_single_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attr_ext_rest_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_enum_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_a_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_b_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attribgroup_ingroup_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_boolean_variant_commented_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_comment_placement_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_complex_nillable_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_decimal_fractiondigits_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_dont_generate_element_substitution_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enum_field_names_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_remove_dup_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_restriction_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_generate_element_substitution_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_id_attrib_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_import_prefix_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported2_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_list_simpletype_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_long_extension_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_name_conv_http_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_namespaceas_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_nillable_fixed_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_no_ns_connector_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_not_a_number_minex_inf_maxex_inf_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_qualified_element_attrib_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_regex_square_brackets_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_self_recursion_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_enumeration_restriction_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_group_reference_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_base_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_ref_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_restrict_comp_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_1_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_2_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_complex_without_element_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_long_extension_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_main_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_ref_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_attributegroup_nillable_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_conversion_follow_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unnamed_union_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unqualified_element_attrib_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_xml_in_annotation_e.ttcn
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/anyattr_in_complex.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/anyattrib_single.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/anyattribute_optional.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attrib_enum.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attrib_order_a.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attrib_order_b.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attrib_order_c.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attrib_restriction_extension.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attribgroup_ingroup.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attribute_in_extension.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/attributegroup_nillable.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/boolean_variant_commented.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/comment_placement.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/complex_nillable.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/complex_restriction_with_use.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/complex_self_recursion.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/decimal_fractiondigits.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/dont_generate_element_substitution.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/element_in_all_minmax.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/element_in_all_mixed.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/enum_field_names.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/enumeration_remove_dup.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/enumeration_restriction.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/enumeration_restriction2.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/generate_element_substitution.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/id_attrib.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/import_prefix_name.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/imported2.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/imported_module.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/imported_module_.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/imported_prefix_name.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/list_simpletype.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/long_extension.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/module_typename_conversion.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/module_typename_conversion_1.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/name_conv_non_alphanumeric.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/name_conv_remove_seq_of_low_line.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/name_conv_with_z.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/name_conversion_extension_attrib.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/namespaceas.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/nillable_annotations.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/nillable_fixed.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/nillable_in_nillable_extension.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/no_ns_connector.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/not_a_number_minex_inf_maxex_-inf.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/qualified_element_attrib.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/regex_square_brackets.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/seq_group_reference.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/sequence_embeds_sequence.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/simpletype_base.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/simpletype_ref.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/simpletype_restrict_comp.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_1.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_2.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_complex_without_element.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_long_extension.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_main.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_neg.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/substitutiongroup_ref.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/type_conversion_follow.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/unqualified_element_attrib.xsd
 create mode 100644 regression_test/XML/XmlWorkflow/xsd/xml_in_annotation.xsd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/Abstract_Socket_CNL113384.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/AoC_v1.1.2_CNL113653.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BFCP_CNL113751.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BICC_ANSI_CNL113397.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BICC_Q.1902.1_CNL113359.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BICC_TTC_CNL113416.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BSSGP_v10.6.0_CNL113750.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BSSGP_v9.4.0_CNL113720.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v11.2.0_CNL113761.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v8.6.0_CNL113655.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CAP_v2_v6.4.0_CNL113483.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CAP_v4.7.0_CNL113425.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.2.0_CNL113572.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.6.0_CNL113721.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CCAPI_MINSAT_60_CNL113601.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CDR_v9.12.0_CNL113757.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_CNL113712.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_SGSN_CNL113728.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CIP_CS4.0_CNL113535.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/CIP_Orga_Italy_CNL113701.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/DHCP_CNL113461.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/DHCPv6_CNL113763.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/DNS_CNL113429.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/DSS1_ETSI_CNL113435.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EAP_CNL113722.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ECMS_CORBAmsg_CNL113687.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BICC_CNL113711.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BSSMAP_CNL113608.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAI3G_CNL113566.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_CNL113662.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_Common_CNL113662.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v2_CNL113662.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v3_CNL113662.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_CNL113662.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_v760_CNL113662.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_All_CNL113666.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_CNL113666.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_Orga_CNL113666.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DNS_CNL113597.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DSS1_CNL113748.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_Diameter_CNL113521.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_EricssonRTC_CNL113683.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_H248_CNL113523.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_HTTP_CNL113618.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_INAP_CNL113596.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_ISUP_CNL113681.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_IUA_CNL113747.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LANL2_CNL113698.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LNP_CNL113714.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MAP_CNL113595.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MLSim_CNL113568.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MSRP_CNL113564.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MobileL3_CNL113609.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_RANAP_CNL113647.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SDP_CNL113744.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SGsAP_CNL113723.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SIP_CNL113522.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SOAP_CNL113620.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SRVCC_CNL113741.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_STUN_CNL113645.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UPloadCP_CNL113634.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UserPlane_CNL113724.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_VXML_CNL113565.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_XCAP_CNL113534.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Base.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Buffer.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CLI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralScheduling.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralSchedulingUIHandler.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Common.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_DataSource.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl_UI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_FBQ.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_GUIViewer.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HashMap.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin_UI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILog.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogBase.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogString.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase_UI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulator.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulatorUI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Client.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Server.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_UI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NQueue.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NameService.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_PTCDeployment.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RandomNArray.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RedBlackTree.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Rendezvous.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RingBuffer.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Scheduler.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Semaphore.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCapture.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureControl.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureUI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler_UI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatManager.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatMeasure.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatReplay.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TimeProfileEditor.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TransportRouting.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_CommPortIPL4.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_Common.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL2.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL4.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_MessageBufferManager.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_UIHandler.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable_UI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_M3_CNL113682.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_SCCP_CNL113610.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_TCAP_CNL113592.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_FreeBusyQueue_demo.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AIR.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ASDP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ATandT.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_AC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_SSP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_WCE.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAI3G.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv2.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv3.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv4.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CCMP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP_Orga.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLFv2.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CNS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCFclient.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Common.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DIAMETER.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DNS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DSC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB_CLI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EPC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv2.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv3.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4_v760.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CCA.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CSCF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_DCC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_ECC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_HomeZone.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_LTE_INAP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_MCC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP21.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA2.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_H248.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLR.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLRsim.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HTTP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_INAP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ISUP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LDAP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LNP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LRF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LTE.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MABEZ.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MAP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MGW.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMESim.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMsim.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MRFC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MSS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS_noSS7.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWI.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWIAS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Meta.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NACF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NASS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Netconf.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_OCF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PCRFsim.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_HTTP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_SIP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ParlayX.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_RACF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SCP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SIP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SNA.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SOAP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UAAF.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_USSD.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UserPlane.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VMS.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VXML.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_WCE_HTTP_Client.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_XCAP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EPTF_ILog_demo.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/EricssonRTC_CNL113414.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/Ericsson_INAP_CS1plus_CNL113356.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/Ericsson_MAP_v2_CNL113725.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GCP_31r1_CNL113364.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTP_v9.11.0_CNL113765.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v10.5.0_CNL113740.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v11.4.0_CNL113777.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.1.0_CNL113703.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.7.0_CNL113730.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.8.0_CNL113737.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GTPv2_v11.x.0_CNL113753.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/GiGnREPLAYasp_CNL113604.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/H225.0_v0298_CNL113354.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/H245_v6_CNL113587.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/H248_v2_CNL113424.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/HTTPmsg_CNL113312.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IMSA2_CNL113693.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IOS_HRPD_CLN113752.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IPL4_EIN_SCTP.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531_Interface.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IP_CNL113418.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739_demo.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ISUP_ANSI_CNL113411.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_CNL113365.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_TCOM_CNL113762.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ISUP_for_Japan_CNL113727.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/IUA_CNL113439.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/JSON_v07_2006_CNL113676.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/JUnit.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/LANL2asp_CNL113519.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_Functions.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_TestPort.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/LNP_ANSI_CNL113715.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/LOADMEASasp_CNL113585.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/M2PA_CNL113558.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/M3AP_v9.4.0_CNL113735.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/M3UA_SCTP_Daemon_CNL113487.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673_demo.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_HLR.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123_HLR.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v10.4.0_CNL113736.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v10.6.0_CNL113764.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v1_CNL113431.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v2_CNL113432.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v6.11.0_CNL113500.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v6.3.0_CNL113366.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635_v123.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v7.8.0_CNL113569.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MAP_v9.3.0_CNL113710.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MIME_CNL113352.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MLSIMPLUSasp_CNL113749.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MLSIMasp_CNL113538.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MMLasp_CNL113490.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MSRP_CNL113467.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MTP3asp_CNL113337.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MTP3asp_EIN_CNL113421.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MobileL3_v10.5.0_CNL113758.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/MobileL3_v9.5.0_CNL113719.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v10.6.1_CNL113746.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v9.7.0_CNL113729.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/PIM_CNL113733.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/PIPEasp_CNL113334.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/PMIP_v10.5.0_CNL113759.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/PMIP_v8.5.0_CNL113704.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ParlayX_CNL113540.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ProtocolModules_Common.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/RANAP_v10.4.0_CNL113742.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/ROSE_CNL113369.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/RTP_CNL113392.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/RTSP_CNL113588.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/S1AP_v10.6.0_CNL113756.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/S1AP_v8.7.0_CNL113672.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.4.0_CNL113717.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.7.0_CNL113732.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v10.0.0_CNL113734.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v9.3.0_CNL113731.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SCCP_CNL113341.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SCCPasp_CNL113348.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_CNL113477.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_Dynamic_CNL113630.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SCTPasp_CNL113469.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SDP_CNL113353.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SGsAP_v9.0.0_CNL113684.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SIPmsg_CNL113319.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SNMP_CNL113774.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SNMPmsg_CNL113344.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SQLasp_CNL113760.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SRTP_CNL113769.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SS7Common_CNL113755.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SSHCLIENTasp_CNL113484.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/STDINOUTmsg_CNL113642.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/STUN_CNL113644.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SUA_CNL113478.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SUA_Daemon_CNL113743.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SUAasp_CNL113516.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SUNRPCasp_CNL113493.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/Socket_API_CNL113686.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/SubscriptionHistoryProtocol_1.0_CNL113584.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCAP_CNL113342.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCAPasp_CNL113349.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Common.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_IPsec.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Interface.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Maths.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Regexp.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Security.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_TitanSim.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_XPath.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCP_CNL113675.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TCPasp_CNL113347.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TELNET_Daemon_CNL113667.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TELNETasp_CNL113320.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/Tariffing_v8.0.0_CNL113654.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/TitanSim_evolution_files.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/Trigger_HSS4.2_CNL113583.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/UDP_CNL113420.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/UDPasp_CNL113346.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/UPloadCP_CNL113633.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/XML_RPC_CNL113488.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/XSDASN_CNL113474.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/XTDP_CNL113663.tpd
 create mode 100644 regression_test/XML/tpdValidTest/tpdTest/XTDPasp_CNL113494.tpd
 create mode 100644 regression_test/all_from/all_from_subrefs.ttcn
 create mode 100644 regression_test/cfgFile/module_parameters/references/Makefile
 create mode 100644 regression_test/cfgFile/module_parameters/references/references.cfg
 create mode 100644 regression_test/cfgFile/module_parameters/references/references.ttcn
 create mode 100644 regression_test/compileonly/openTypeNames/IO_based_message.asn
 create mode 100644 regression_test/compileonly/openTypeNames/Makefile
 create mode 100644 regression_test/compileonly/openTypeNames/Open_type_use.ttcn
 create mode 100644 regression_test/functionSubref/Makefile
 create mode 100644 regression_test/functionSubref/TfunctionSubref.ttcn
 create mode 100644 regression_test/functionSubref/TpardTemplateSubref.ttcn
 create mode 100644 regression_test/functionSubref/config.cfg
 create mode 100644 regression_test/logFiles/filtered_e.log2
 create mode 100644 regression_test/logFiles/lfilter.log2
 create mode 100755 regression_test/logFiles/logfilter.sh
 create mode 100644 regression_test/profiler/double_e.json
 create mode 100644 regression_test/profiler/double_e.stats
 create mode 100644 regression_test/profiler/merged_e.stats
 create mode 100644 regression_test/recofOper/Circular1.ttcn
 create mode 100644 regression_test/recofOper/Circular2.ttcn
 create mode 100644 regression_test/templateOmit/Common/Templates.ttcn
 create mode 100644 regression_test/templateOmit/Common/Types.ttcn
 create mode 100644 regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn
 create mode 100644 regression_test/templateOmit/LegacyTests/Makefile
 create mode 100644 regression_test/templateOmit/LegacyTests/legacy.cfg
 create mode 100644 regression_test/templateOmit/Makefile
 create mode 100644 regression_test/templateOmit/NewTests/Makefile
 create mode 100644 regression_test/templateOmit/NewTests/NewTestcases.ttcn
 create mode 100644 regression_test/templateOmit/NewTests/new.cfg
 create mode 100644 regression_test/ttcn2json/SubType.ttcn
 create mode 100644 regression_test/ttcn2json/SubType_e.json
 create mode 100755 titan_executor_api/TITAN_Executor_API_test/build_and_run_test.sh
 delete mode 100644 usrguide/PRI.doc
 create mode 100644 usrguide/PRI.docx
 create mode 100644 xsdconvert/AttributeType.cc
 create mode 100644 xsdconvert/AttributeType.hh
 delete mode 100644 xsdconvert/FieldType.cc
 delete mode 100644 xsdconvert/FieldType.hh

diff --git a/.gitignore b/.gitignore
index 4fb166858..c41dfb794 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,12 @@
 doxygen
 Install
 Makefile.personal
-.cproject
+.project
 .TITAN*
 *.o
+*.so
+*.so.0
+*.so.0.0
 *.exe
 *.pdf
 META-INF
diff --git a/JNI/Makefile b/JNI/Makefile
index 41753a5bc..3e9261c68 100644
--- a/JNI/Makefile
+++ b/JNI/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/JNI/jnimw.cc b/JNI/jnimw.cc
index 151afe13a..a4ca5d185 100644
--- a/JNI/jnimw.cc
+++ b/JNI/jnimw.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/JNI/jnimw.h b/JNI/jnimw.h
index 5b0da168b..9c00ec786 100644
--- a/JNI/jnimw.h
+++ b/JNI/jnimw.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/JNI/jninativelib.cc b/JNI/jninativelib.cc
index b472414ba..62a3c92d6 100644
--- a/JNI/jninativelib.cc
+++ b/JNI/jninativelib.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/JNI/org_eclipse_titan_executor_jni_JNIMiddleWare.h b/JNI/org_eclipse_titan_executor_jni_JNIMiddleWare.h
index d1443dd86..bca634ca5 100644
--- a/JNI/org_eclipse_titan_executor_jni_JNIMiddleWare.h
+++ b/JNI/org_eclipse_titan_executor_jni_JNIMiddleWare.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/Makefile b/Makefile
index 766ca7e36..74fc88d40 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/Makefile.cfg b/Makefile.cfg
index 6c8e47b9a..f4c5fb92b 100644
--- a/Makefile.cfg
+++ b/Makefile.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -75,20 +75,9 @@ OPENSSL_DIR := default
 # Location of libxml2
 XMLDIR := default
 
-## ## ## ## ## Variables below are automatically set ## ## ## ## ##
-
 # Flags for the C(++) preprocessor:
 # Prevent a warning about yyinput being defined but not used
 CPPFLAGS := -DYY_NO_INPUT
-ifeq ($(DEBUG), yes)
-  CPPFLAGS += -DMEMORY_DEBUG -DFATAL_DEBUG
-else
-  CPPFLAGS += -DNDEBUG
-endif
-
-# MingW flags need to be passed to the preprocessor during ctags configure
-CPPFLAGS += $(MINGW)
-
 
 # Flags shared between C and C++
 COMPILERFLAGS := -Wall
@@ -100,16 +89,55 @@ COMPILERFLAGS := -Wall
 # Flags for the C compiler.
 # std=gnu9x shuts up warnings about long long and variadic macros
 CCFLAGS = $(COMPILERFLAGS) -std=gnu9x
+
+# Flags for the C++ compiler:
+CXXFLAGS = $(COMPILERFLAGS) -Wno-long-long
+
+# The command for maintaining static libraries:
+AR := ar
+
+# The command for building the shared libraries:
+# It shall be set to either "$(CXX) -G" or "$(CXX) -shared" depending
+# on the linker you use.
+LD = $(CXX) -shared
+
+# Flags for linking binary executables (e.g. for profiling):
+LDFLAGS = $(MINGW)
+
+# The command for removing symbol table from the executables:
+STRIP := strip
+
+# Flags for flex:
+FLEXFLAGS := -B -s -Cr
+
+# Flags for bison:
+BISONFLAGS := -d
+
+# Override common settings with personal preferences if needed
+-include $(TOP)/Makefile.personal
+
+## ## ## ## ## Variables below are automatically set ## ## ## ## ##
+
+ifeq ($(DEBUG), yes)
+  CPPFLAGS += -DMEMORY_DEBUG -DFATAL_DEBUG
+else
+  CPPFLAGS += -DNDEBUG
+endif
+
+# MingW flags need to be passed to the preprocessor during ctags configure
+CPPFLAGS += $(MINGW)
+
 ifeq ($(DEBUG), yes)
   CCFLAGS += -g
   CCFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align \
     -Wstrict-prototypes
+else
+ifeq ($(COVERAGE), yes)
+  CCFLAGS += -O0
 else
   CCFLAGS += -O2
 endif
-
-# Flags for the C++ compiler:
-CXXFLAGS = $(COMPILERFLAGS) -Wno-long-long
+endif
 
 # Only the default Cygwin compiler can be used for Mingw.
 # Its version is 3.4.4, too low.
@@ -121,9 +149,13 @@ endif
 ifeq ($(DEBUG), yes)
   CXXFLAGS += -g
   CXXFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align
+else
+ifeq ($(COVERAGE), yes)
+  CXXFLAGS += -O0
 else
   CXXFLAGS += -O2
 endif
+endif
 
 # Flags for the C/C++ compilers to generate dependency list (-M or -MM
 # for gcc or clang, -xM or -xM1 for Sun C compiler).
@@ -137,25 +169,11 @@ CCDEPFLAG := -xM1
 CXXDEPFLAG := -xM1
 endif
 
-# The command for maintaining static libraries:
-AR := ar
-
-# The command for building the shared libraries:
-# It shall be set to either "$(CXX) -G" or "$(CXX) -shared" depending
-# on the linker you use.
-LD = $(CXX) -shared
-
-# Flags for linking binary executables (e.g. for profiling):
-LDFLAGS = $(MINGW)
 ifeq ($(DEBUG), yes)
   LDFLAGS += -g
 endif
 
-# The command for removing symbol table from the executables:
-STRIP := strip
 
-# Flags for flex:
-FLEXFLAGS := -B -s -Cr
 ifeq ($(DEBUG), yes)
   FLEXFLAGS += -b -p
 #  FLEXFLAGS += -d
@@ -165,21 +183,16 @@ else
   FLEXFLAGS += -Cfe
 endif
 
-# Flags for bison:
-BISONFLAGS := -d
+
 ifeq ($(DEBUG), yes)
   BISONFLAGS += -t -v
 endif
 
 ifeq ($(COVERAGE), yes)
-ifneq ($(DEBUG), yes)
-  $(error TURN ON DEBUG MODE FOR COVERAGE)
-else
   CPPFLAGS += -DCOVERAGE_BUILD
   COMPILERFLAGS += -fprofile-arcs -ftest-coverage
   LDFLAGS += -fprofile-arcs -ftest-coverage -lgcov
 endif
-endif
 
 # Directory which contains the code for POSIX regular expression handling.
 # It is needed on platforms where the system's libc does not support POSIX
@@ -206,8 +219,6 @@ endif
 # or installed.
 TEXPATH := /usr/local/teTeX2.0.2/bin/sparc-sun-solaris2.8
 
-# Override common settings with personal preferences if needed
--include $(TOP)/Makefile.personal
 
 ###########################################################################
 # You don't have to alter anything below this line.
diff --git a/Makefile.genrules b/Makefile.genrules
index b33ef4c21..eb33baba2 100644
--- a/Makefile.genrules
+++ b/Makefile.genrules
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -79,6 +79,10 @@ V_DEP = $(V_DEP_$(VD))
 %.o: %.c
 	$(V_CC)$(CC) -c $(CPPFLAGS) $(CCFLAGS) $< -o $@
 
+# Special rule for building profmerge files
+%.profmerge.o: %.cc
+	$(V_CXX)$(CXX) -c -DPROF_MERGE $(CPPFLAGS) $(CXXFLAGS) $< -o $@
+
 %.o: %.cc
 	$(V_CXX)$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) $< -o $@
 
diff --git a/README.linux b/README.linux
index 0d35fa76a..5534e3d45 100644
--- a/README.linux
+++ b/README.linux
@@ -17,13 +17,13 @@ sudo apt-get install xutils-dev
 The following packages may be needed for titan_eclipse/automatic_build:
 sudo apt-get install ant xsltproc
 
-2.Clone the titan directory from git  into /home/<user_id>/titan
+2.Clone the titan directory from git  into /home/<user_id>/titan.core
 
-git clone https://github.com/eclipse/titan.core  titan
+git clone https://github.com/eclipse/titan.core  titan.core
 
 3. Configure the build 
 
-cd titan
+cd titan.core
 check  that MakefileFOSS.cfg is present   and  has the following content:
 cat MakefileFOSS.cfg
 
@@ -37,15 +37,15 @@ Options can be overridden by the content of  a file named Makefile.personal whic
 adapt to local installation directories, change config options etc.
 Below, a small number of typical scenarios are presented.
 
-1) JNI  disabled
+a) JNI  disabled
 
 The JNI interface is used by the Eclipse Titan Executor or by the Java Executor API.
 If you don't need them , Titan can be compiled without JNI. 
 
-Create ~/titan/Makefile.personal to override settings in Makefile.cfg with the following content:
+Create ~/titan.core/Makefile.personal to override settings in Makefile.cfg with the following content:
 (replace paths with values relevant to your installation)
 
-TTCN3_DIR := /home/<user id>/titan/Install
+TTCN3_DIR := /home/<user id>/titan.core/Install
 OPENSSL_DIR := /usr
 #JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
 XMLDIR := /usr
@@ -55,14 +55,14 @@ GEN_PDF := no
 
 
 
-2) JNI  enabled
+b) JNI  enabled
 
 install JDK   into /home/<user id>/jdk
 
-Create ~/titan/Makefile.personal to override settings in Makefile.cfg with the following content:
+Create ~/titan.core/Makefile.personal to override settings in Makefile.cfg with the following content:
 (replace paths with values relevant to your installation)
 
-TTCN3_DIR := /home/<user id>/titan/Install
+TTCN3_DIR := /home/<user id>/titan.core/Install
 OPENSSL_DIR := /usr
 JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
 XMLDIR := /usr
@@ -77,7 +77,7 @@ make
 
 5. Set environment variables
 
-setenv TTCN3_DIR /home/<user id>/titan/Install
+setenv TTCN3_DIR /home/<user id>/titan.core/Install
 setenv PATH /home/<userid>/titan.core/Install/bin/:${PATH}
 setenv LD_LIBRARY_PATH /home/<userid>/titan.core/Install/lib:${LD_LIBRARY_PATH}
 
@@ -85,7 +85,7 @@ for csh
 
 or 
 
-export TTCN3_DIR=/home/<user id>/titan/Install
+export TTCN3_DIR=/home/<user id>/titan.core/Install
 export PATH=/home/<userid>/titan.core/Install/bin/:${PATH}
 export LD_LIBRARY_PATH=/home/<userid>/titan.core/Install/lib:${LD_LIBRARY_PATH}
 
@@ -95,15 +95,16 @@ for bash
 
 make install
 
-This will install Titan into  /home/<user id>/titan/Install
+This will install Titan into  /home/<user id>/titan.core/Install
 
 
 7. Optionally , run function/regression tests
 
-cd /home/<user id>/titan/function_test
+cd /home/<user id>/titan.core/function_test
 
 in the following Makefiles 
 
+BER_EncDec/Makefile
 XER_EncDec/Makefile
 Text_EncDec/Makefile
 RAW_EncDec/Makefile
@@ -116,7 +117,7 @@ make
 
 ( or make |& tee outputfile if you want to save the output for verification)
 
-cd /home/<user id>/titan/regression_test
+cd /home/<user id>/titan.core/regression_test
 make run
 
 ( or make run |& tee outputfile if you want to save the output for verification)
diff --git a/common/CharCoding.hh b/common/CharCoding.hh
index 9a4bde2be..c511a9255 100644
--- a/common/CharCoding.hh
+++ b/common/CharCoding.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/JSON_Tokenizer.cc b/common/JSON_Tokenizer.cc
index cb58f0cf3..b221e865e 100644
--- a/common/JSON_Tokenizer.cc
+++ b/common/JSON_Tokenizer.cc
@@ -1,3 +1,11 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
 #include <cstring>
 
 #include "JSON_Tokenizer.hh"
@@ -371,3 +379,50 @@ int JSON_Tokenizer::put_next_token(json_token_t p_token, const char* p_token_str
   return buf_len - start_len;
 }
 
+
+char* convert_to_json_string(const char* str)
+{
+  char* ret_val = mcopystrn("\"", 1);
+  // control characters (like \n) cannot be placed in a JSON string, replace
+  // them with JSON metacharacters
+  // double quotes and backslashes need to be escaped, too
+  size_t str_len = strlen(str);
+  for (size_t i = 0; i < str_len; ++i) {
+    switch (str[i]) {
+    case '\n':
+      ret_val = mputstrn(ret_val, "\\n", 2);
+      break;
+    case '\r':
+      ret_val = mputstrn(ret_val, "\\r", 2);
+      break;
+    case '\t':
+      ret_val = mputstrn(ret_val, "\\t", 2);
+      break;
+    case '\f':
+      ret_val = mputstrn(ret_val, "\\f", 2);
+      break;
+    case '\b':
+      ret_val = mputstrn(ret_val, "\\b", 2);
+      break;
+    case '\"':
+      ret_val = mputstrn(ret_val, "\\\"", 2);
+      break;
+    case '\\':
+      ret_val = mputstrn(ret_val, "\\\\", 2);
+      break;
+    default:
+      if (str[i] < 32 && str[i] > 0) {
+        // use the JSON \uHHHH notation for other control characters
+        // (this is just for esthetic reasons, these wouldn't break the JSON 
+        // string format)
+        ret_val = mputprintf(ret_val, "\\u00%d%c", str[i] / 16,
+          (str[i] % 16 < 10) ? (str[i] % 16 + '0') : (str[i] % 16 - 10 + 'A'));
+      }
+      else {
+        ret_val = mputc(ret_val, str[i]);
+      }
+      break;
+    }
+  }
+  return mputstrn(ret_val, "\"", 1);
+}
diff --git a/common/JSON_Tokenizer.hh b/common/JSON_Tokenizer.hh
index 6775c69a1..fb0748917 100644
--- a/common/JSON_Tokenizer.hh
+++ b/common/JSON_Tokenizer.hh
@@ -1,3 +1,11 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
 #ifndef JSON_TOKENIZER_HH
 #define	JSON_TOKENIZER_HH
 
@@ -155,6 +163,14 @@ public:
 // A dummy JSON tokenizer, use when there is no actual JSON document
 static JSON_Tokenizer DUMMY_BUFFER;
 
+/** Converts a string into a JSON string by replacing all control characters
+  * with JSON escape sequences, if available, or with the \uHHHH escape sequence.
+  * The string is also wrapped inside a set of double quotes and all double quotes
+  * and backslash characters are double-escaped.
+  *
+  * Returns an expstring, that needs to be freed. */
+extern char* convert_to_json_string(const char* str);
+
 
 #endif	/* JSON_TOKENIZER_HH */
 
diff --git a/common/Makefile b/common/Makefile
index 3b114518b..6675bc6d9 100644
--- a/common/Makefile
+++ b/common/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/common/ModuleVersion.cc b/common/ModuleVersion.cc
index b08d5c5bb..0d57b631f 100644
--- a/common/ModuleVersion.cc
+++ b/common/ModuleVersion.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/ModuleVersion.hh b/common/ModuleVersion.hh
index be54651bc..19890ec35 100644
--- a/common/ModuleVersion.hh
+++ b/common/ModuleVersion.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/NetworkHandler.cc b/common/NetworkHandler.cc
index 95a81cdd6..14019293e 100644
--- a/common/NetworkHandler.cc
+++ b/common/NetworkHandler.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/NetworkHandler.hh b/common/NetworkHandler.hh
index 138bb67b0..5dd982e7f 100644
--- a/common/NetworkHandler.hh
+++ b/common/NetworkHandler.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/Path2.cc b/common/Path2.cc
index a15030053..6a588bf23 100644
--- a/common/Path2.cc
+++ b/common/Path2.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/Path2.hh b/common/Path2.hh
index a2170c998..c0d785a5d 100644
--- a/common/Path2.hh
+++ b/common/Path2.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/Quadruple.cc b/common/Quadruple.cc
index 2b8111c24..a2f744a35 100644
--- a/common/Quadruple.cc
+++ b/common/Quadruple.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/Quadruple.hh b/common/Quadruple.hh
index 2b98dae3f..0efbb061e 100644
--- a/common/Quadruple.hh
+++ b/common/Quadruple.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/cfg_process_utils.hh b/common/cfg_process_utils.hh
index 05ecf16d2..35dfd3cfd 100644
--- a/common/cfg_process_utils.hh
+++ b/common/cfg_process_utils.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/config_preproc.cc b/common/config_preproc.cc
index db1d3d3ca..85ffdb452 100644
--- a/common/config_preproc.cc
+++ b/common/config_preproc.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/config_preproc.h b/common/config_preproc.h
index 026d09560..297498444 100644
--- a/common/config_preproc.h
+++ b/common/config_preproc.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/config_preproc_la.l b/common/config_preproc_la.l
index 1699f33a9..7c1520d3f 100644
--- a/common/config_preproc_la.l
+++ b/common/config_preproc_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -135,9 +135,18 @@ MACRO_REFERENCE_INT \$"{"{WS}{TTCN3IDENTIFIER}{WS}(","{WS}integer{WS})?"}"
 "["{WS}MODULE_PARAMETERS{WS}"]"   BEGIN(SC_module_parameters);
 "["{WS}TESTPORT_PARAMETERS{WS}"]" BEGIN(SC_testport_parameters);
 
-<SC_module_parameters,SC_testport_parameters>
+<SC_testport_parameters>
 {
   "["{NUMBER}"]" ;
+}
+
+<SC_module_parameters>
+{
+  "["[ \t0-9a-zA-Z+*/&-]*"]" ;
+}
+
+<SC_module_parameters,SC_testport_parameters>
+{
   "["[^\r\n\[\]]*{MACRO_REFERENCE_INT}{WS}[^\r\n\[\]]*"]" ;
 }
 
@@ -192,7 +201,7 @@ MACRO_REFERENCE_INT \$"{"{WS}{TTCN3IDENTIFIER}{WS}(","{WS}integer{WS})?"}"
         BEGIN(INITIAL);
       } else {
         preproc_error_flag = 1; 
-        config_preproc_error(error_msg.c_str());
+        config_preproc_error("%s", error_msg.c_str());
       }
     }
     /* no break */
diff --git a/common/config_preproc_p.y b/common/config_preproc_p.y
index 939e3941e..e76ee4f07 100644
--- a/common/config_preproc_p.y
+++ b/common/config_preproc_p.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/common/dbgnew.hh b/common/dbgnew.hh
index b0a8a2e54..b236a0e1f 100644
--- a/common/dbgnew.hh
+++ b/common/dbgnew.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/hostid.c b/common/hostid.c
index 2f0dc8aa7..50ffd067c 100644
--- a/common/hostid.c
+++ b/common/hostid.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/license.c b/common/license.c
index aa381f09f..3cad4c9e6 100644
--- a/common/license.c
+++ b/common/license.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/license.h b/common/license.h
index 560d1a072..b2d6d0bdc 100644
--- a/common/license.h
+++ b/common/license.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/memory.c b/common/memory.c
index 11ceec813..724fc746d 100644
--- a/common/memory.c
+++ b/common/memory.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -311,6 +311,7 @@ static void check_memory_address(memory_block *block_ptr, int oper)
 #define MALLOC_INTERNAL(f,l,s) Malloc_dbg(f,l,s)
 #define MEMPTYSTR_INTERNAL(f,l) memptystr_dbg(f,l)
 #define MCOPYSTR_INTERNAL(f,l,s) mcopystr_dbg(f,l,s)
+#define MCOPYSTRN_INTERNAL(f,l,s,l2) mcopystrn_dbg(f,l,s,l2)
 #define REALLOC_INTERNAL(f,l,p,s) Realloc_dbg(f,l,p,s)
 #define FREE_INTERNAL(f,l,p) Free_dbg(f,l,p)
 #define MPRINTF_VA_LIST_INTERNAL(f,l,s,p) mprintf_va_list_dbg(f,l,s,p)
@@ -333,6 +334,7 @@ static void extract_location(void *p, const char **fn, int *ln)
 #define MALLOC_INTERNAL(f,l,s) Malloc(s)
 #define MEMPTYSTR_INTERNAL(f,l) memptystr()
 #define MCOPYSTR_INTERNAL(f,l,s) mcopystr(s)
+#define MCOPYSTRN_INTERNAL(f,l,s,l2) mcopystrn(s,l2)
 #define REALLOC_INTERNAL(f,l,p,s) Realloc(p,s)
 #define FREE_INTERNAL(f,l,p) Free(p)
 #define MPRINTF_VA_LIST_INTERNAL(f,l,s,p) mprintf_va_list(s,p)
@@ -861,7 +863,7 @@ expstring_t mputstrn(expstring_t str, const char *str2, size_t len2)
                 memset(str + newlen, '\0', newsize - newlen);
             }
             memcpy(str + len, str2, len2);
-        } else str = MCOPYSTR_INTERNAL(filename, line, str2);
+        } else str = MCOPYSTRN_INTERNAL(filename, line, str2, len2);
     }
     return str;
 }
diff --git a/common/memory.h b/common/memory.h
index b048423f5..cf31f0a8f 100644
--- a/common/memory.h
+++ b/common/memory.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/new.cc b/common/new.cc
index 7506718b9..11eade373 100644
--- a/common/new.cc
+++ b/common/new.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/path.c b/common/path.c
index 59765c2ca..d9c4f3d27 100644
--- a/common/path.c
+++ b/common/path.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/path.h b/common/path.h
index b1594cb48..e72b743f1 100644
--- a/common/path.h
+++ b/common/path.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/pattern.hh b/common/pattern.hh
index f5db171cf..96104b6a4 100644
--- a/common/pattern.hh
+++ b/common/pattern.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -20,8 +20,12 @@
  *  charstring pattern to a POSIX Extended Regular Expression (ERE).
  *  If error occurs, returns a NULL-pointer. It uses the
  *  TTCN_pattern_error() and TTCN_pattern_warning() functions to
- *  report errors/warnings. */
-extern char* TTCN_pattern_to_regexp(const char* p_pattern);
+ *  report errors/warnings. 
+ *
+ *  The function is also used on universal charstring patterns (in UTF-8 format)
+ *  during JSON schema generation. In this case the 2nd parameter must be set
+ *  to true, so no errors are reported for the extended ASCII characters. */
+extern char* TTCN_pattern_to_regexp(const char* p_pattern, bool utf8 = false);
 
 extern char* TTCN_pattern_to_regexp_uni(const char* p_pattern,
   int** groups = 0);
diff --git a/common/pattern_la.l b/common/pattern_la.l
index 29e3d16d1..109c0c272 100644
--- a/common/pattern_la.l
+++ b/common/pattern_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/common/pattern_p.y b/common/pattern_p.y
index 8d01c5c01..90a59fe81 100644
--- a/common/pattern_p.y
+++ b/common/pattern_p.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -54,6 +54,8 @@
 
   /** The converted regexp. */
   static char *ret_val;
+  /** Turns error messages for extended ASCII characters on or off */
+  static bool allow_ext_ascii = false;
   /** The parser error reporting function. */
   static void pattern_yyerror(const char *error_str);
   /** Creates the POSIX equivalent of literal character \a c using the
@@ -406,8 +408,8 @@ RE_OneCharPos:
 | TOK_Char
   {
     unsigned char c = $1;
-    if (c == 0 || c > 127) TTCN_pattern_error("Character with code %u "
-      "(0x%02x) cannot be used in a pattern for type charstring.", c, c);
+    if (c == 0 || (c > 127 && !allow_ext_ascii)) TTCN_pattern_error("Character "
+      "with code %u (0x%02x) cannot be used in a pattern for type charstring.", c, c);
     $$ = translate_character($1);
   }
 | RE_Quadruple
@@ -551,8 +553,8 @@ RE_Set_Range_Char:
 | TOK_Char
   {
     unsigned char c = $1;
-    if (c == 0 || c > 127) TTCN_pattern_error("Character with code %u "
-      "(0x%02x) cannot be used in a pattern for type charstring.", c, c);
+    if (c == 0 || (c > 127 && !allow_ext_ascii)) TTCN_pattern_error("Character "
+      "with code %u (0x%02x) cannot be used in a pattern for type charstring.", c, c);
     $$ = $1;
   }
 | RE_Quadruple { $$ = $1; }
@@ -621,13 +623,16 @@ RE_Quadruple:
  * Interface
  *********************************************************************/
 
-char* TTCN_pattern_to_regexp(const char* p_pattern)
+char* TTCN_pattern_to_regexp(const char* p_pattern, bool utf8)
 {
   /* if you want to debug */
   //pattern_yydebug=1;
 
   ret_val=NULL;
 
+  /* allow extended ASCII characters if the pattern is in UTF-8 format */
+  allow_ext_ascii = utf8;
+
   yy_buffer_state *flex_buffer = pattern_yy_scan_string(p_pattern);
   if(flex_buffer == NULL) {
     TTCN_pattern_error("Flex buffer creation failed.");
diff --git a/common/pattern_uni.y b/common/pattern_uni.y
index 1d33ad7e3..18754ad8a 100644
--- a/common/pattern_uni.y
+++ b/common/pattern_uni.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/common/platform.h b/common/platform.h
index cc016fe5b..50dfb9f63 100644
--- a/common/platform.h
+++ b/common/platform.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/static_check.h b/common/static_check.h
index 40b8117c0..9a0be9df1 100644
--- a/common/static_check.h
+++ b/common/static_check.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/ttcn3float.hh b/common/ttcn3float.hh
index 9e8f5603a..4bc3c6d88 100644
--- a/common/ttcn3float.hh
+++ b/common/ttcn3float.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,6 +10,13 @@
 
 #include <math.h>
 
+/* TTCN-3 float values that have absolute value smaller than this
+   are displayed in exponential notation. */
+#define MIN_DECIMAL_FLOAT		1.0E-4
+/* TTCN-3 float values that have absolute value larger or equal than this
+   are displayed in exponential notation. */
+#define MAX_DECIMAL_FLOAT		1.0E+10
+
 #ifndef signbit
 // Probably Solaris.
 // Thankfully, IEEE Std 1003.1, 2004 Edition says that signbit is a macro,
diff --git a/common/usage_stats.cc b/common/usage_stats.cc
index c195d8421..36116ce4b 100644
--- a/common/usage_stats.cc
+++ b/common/usage_stats.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/usage_stats.hh b/common/usage_stats.hh
index 632508bc3..2396568a4 100644
--- a/common/usage_stats.hh
+++ b/common/usage_stats.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/userinfo.c b/common/userinfo.c
index 66db4b96f..843be53e3 100644
--- a/common/userinfo.c
+++ b/common/userinfo.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/userinfo.h b/common/userinfo.h
index 80ac1bab7..6113aeb02 100644
--- a/common/userinfo.h
+++ b/common/userinfo.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/common/version.h b/common/version.h
index 5ee284291..8f25a76df 100644
--- a/common/version.h
+++ b/common/version.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 
 /* Version numbers */
 #define TTCN3_MAJOR 5
-#define TTCN3_MINOR 3
+#define TTCN3_MINOR 4
 #define TTCN3_PATCHLEVEL 0
 //#define TTCN3_BUILDNUMBER 0
 
@@ -22,7 +22,7 @@
  * TTCN3_VERSION = TTCN3_MAJOR * 1000000 + TTCN3_MINOR * 10000 +
  *                 TTCN3_PATCHLEVEL * 100 + TTCN3_BUILDNUMBER
  */
-#define TTCN3_VERSION 50300
+#define TTCN3_VERSION 50400
 
 /* A monotonically increasing version number.
  * An official release is deemed to have the highest possible build number (99)
diff --git a/common/version.py b/common/version.py
index cc4346810..117b55eac 100644
--- a/common/version.py
+++ b/common/version.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/common/version_internal.h b/common/version_internal.h
index bc8da1bbf..38a9a93da 100644
--- a/common/version_internal.h
+++ b/common/version_internal.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -249,7 +249,7 @@
 #endif
 
 /* Copyright message */
-#define COPYRIGHT_STRING COMMENT_PREFIX "Copyright Ericsson Telecom AB 2000-2014"
+#define COPYRIGHT_STRING COMMENT_PREFIX "Copyright (c) 2000-2015 Ericsson Telecom AB"
 
 /* For prefixing the above messages. Default value: empty string. */
 #define COMMENT_PREFIX
diff --git a/compiler2/AST.cc b/compiler2/AST.cc
index 202d282f2..daae450dd 100644
--- a/compiler2/AST.cc
+++ b/compiler2/AST.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -878,6 +878,24 @@ namespace Common {
       output->functions.set_param = NULL;
       has_set_param = true;
     } else has_set_param = false;
+    // get_param function
+    bool has_get_param;
+    if (output->functions.get_param) {
+      output->source.static_function_prototypes = mputstr(output->source.static_function_prototypes,
+        "static Module_Param* get_module_param(Module_Param_Name& param_name);\n");
+      output->source.static_function_bodies = mputstr(output->source.static_function_bodies,
+        "static Module_Param* get_module_param(Module_Param_Name& param_name)\n"
+        "{\n"
+           "const char* const par_name = param_name.get_current_name();\n");
+      output->source.static_function_bodies =
+        mputstr(output->source.static_function_bodies, output->functions.get_param);
+      output->source.static_function_bodies =
+	mputstr(output->source.static_function_bodies, "return NULL;\n"
+	  "}\n\n");
+      Free(output->functions.get_param);
+      output->functions.get_param = NULL;
+      has_get_param = true;
+    } else has_get_param = false;
     // log_param function
     bool has_log_param;
     if (output->functions.log_param) {
@@ -1029,12 +1047,13 @@ namespace Common {
       }
       string extra_str = extra ? ( string('"') + extra + string('"') ) : string("NULL");
       output->source.global_vars = mputprintf(output->source.global_vars,
-	", %uU, %uU, %uU, %uU, %s, %luLU, %s, %s, %s, %s, %s, %s, %s",
+	", %uU, %uU, %uU, %uU, %s, %luLU, %s, %s, %s, %s, %s, %s, %s, %s",
         suffix, release, patch, build, extra_str.c_str(),
         (unsigned long)num_xml_namespaces,
         ((num_xml_namespaces || (control_ns && control_ns_prefix)) ? "xml_namespaces" : "0"),
 	has_post_init ? "post_init_module" : "NULL",
 	has_set_param ? "set_module_param" : "NULL",
+  has_get_param ? "get_module_param" : "NULL",
 	has_log_param ? "log_module_param" : "NULL",
 	has_init_comp ? "init_comp_type" : "NULL",
 	has_start ? "start_ptc_function" : "NULL",
@@ -1045,6 +1064,8 @@ namespace Common {
 	FATAL_ERROR("Module::generate_functions(): post_init function in ASN.1 module");
       if (has_set_param)
 	FATAL_ERROR("Module::generate_functions(): set_param function in ASN.1 module");
+      if (has_get_param)
+	FATAL_ERROR("Module::generate_functions(): get_param function in ASN.1 module");
       if (has_log_param)
 	FATAL_ERROR("Module::generate_functions(): log_param function in ASN.1 module");
       if (has_init_comp)
diff --git a/compiler2/AST.hh b/compiler2/AST.hh
index ddb99c274..7de62e88e 100644
--- a/compiler2/AST.hh
+++ b/compiler2/AST.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Code.cc b/compiler2/Code.cc
index f9769d9f8..e5ff3560e 100644
--- a/compiler2/Code.cc
+++ b/compiler2/Code.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -39,6 +39,7 @@ namespace Common {
     output->functions.pre_init = NULL;
     output->functions.post_init = NULL;
     output->functions.set_param = NULL;
+    output->functions.get_param = NULL;
     output->functions.log_param = NULL;
     output->functions.init_comp = NULL;
     output->functions.start = NULL;
@@ -92,6 +93,8 @@ namespace Common {
       mputstr(dest->functions.post_init, src->functions.post_init);
     dest->functions.set_param =
       mputstr(dest->functions.set_param, src->functions.set_param);
+    dest->functions.get_param =
+      mputstr(dest->functions.get_param, src->functions.get_param);
     dest->functions.log_param =
       mputstr(dest->functions.log_param, src->functions.log_param);
     dest->functions.init_comp =
@@ -124,6 +127,7 @@ namespace Common {
     Free(output->functions.pre_init);
     Free(output->functions.post_init);
     Free(output->functions.set_param);
+    Free(output->functions.get_param);
     Free(output->functions.log_param);
     Free(output->functions.init_comp);
     Free(output->functions.start);
diff --git a/compiler2/Code.hh b/compiler2/Code.hh
index 8f8cac7b2..a15d32ad9 100644
--- a/compiler2/Code.hh
+++ b/compiler2/Code.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CodeGenHelper.cc b/compiler2/CodeGenHelper.cc
index d0968839a..4d6f16b4b 100644
--- a/compiler2/CodeGenHelper.cc
+++ b/compiler2/CodeGenHelper.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -210,6 +210,7 @@ void CodeGenHelper::finalize_generation(Type* type) {
   transfer_value(dst.functions.post_init, src.functions.post_init);
 
   transfer_value(dst.functions.set_param, src.functions.set_param);
+  transfer_value(dst.functions.get_param, src.functions.get_param);
   transfer_value(dst.functions.log_param, src.functions.log_param);
   transfer_value(dst.functions.init_comp, src.functions.init_comp);
   transfer_value(dst.functions.start,     src.functions.start);
diff --git a/compiler2/CodeGenHelper.hh b/compiler2/CodeGenHelper.hh
index cee124237..d07c837e0 100644
--- a/compiler2/CodeGenHelper.hh
+++ b/compiler2/CodeGenHelper.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CompField.cc b/compiler2/CompField.cc
index 07a7b0a9d..bd3298d59 100644
--- a/compiler2/CompField.cc
+++ b/compiler2/CompField.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CompField.hh b/compiler2/CompField.hh
index c65aa0228..b07f61555 100644
--- a/compiler2/CompField.hh
+++ b/compiler2/CompField.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CompType.cc b/compiler2/CompType.cc
index 3f09be2d3..f14825f2f 100644
--- a/compiler2/CompType.cc
+++ b/compiler2/CompType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CompType.hh b/compiler2/CompType.hh
index eb142246b..c131d5787 100644
--- a/compiler2/CompType.hh
+++ b/compiler2/CompType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CompilerError.cc b/compiler2/CompilerError.cc
index 2b438fa90..e90ae493f 100644
--- a/compiler2/CompilerError.cc
+++ b/compiler2/CompilerError.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/CompilerError.hh b/compiler2/CompilerError.hh
index 9405a0043..bf62b0650 100644
--- a/compiler2/CompilerError.hh
+++ b/compiler2/CompilerError.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Constraint.cc b/compiler2/Constraint.cc
index 3ba9c5110..e820ed963 100644
--- a/compiler2/Constraint.cc
+++ b/compiler2/Constraint.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Constraint.hh b/compiler2/Constraint.hh
index 59d2faccd..5f8963836 100644
--- a/compiler2/Constraint.hh
+++ b/compiler2/Constraint.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/EnumItem.cc b/compiler2/EnumItem.cc
index c125b4882..5b24aceab 100644
--- a/compiler2/EnumItem.cc
+++ b/compiler2/EnumItem.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -61,21 +61,6 @@ void EnumItem::set_text(const string& p_text)
   text = p_text;
 }
 
-string EnumItem::get_name_hacked(Type *p_type) const
-{
-  if (p_type->is_asn1()) {
-    string hack_asnname(Identifier::name_2_asn(p_type->get_genname_own()));
-    hack_asnname += "-enum-";
-    hack_asnname += name->get_asnname();
-    return Identifier::asn_2_name(hack_asnname);
-  } else {
-    string hack_ttcnname(Identifier::name_2_ttcn(p_type->get_genname_own()));
-    hack_ttcnname += "_enum_";
-    hack_ttcnname += name->get_ttcnname();
-    return Identifier::ttcn_2_name(hack_ttcnname);
-  }
-}
-
 void EnumItem::dump(unsigned level) const
 {
   name->dump(level);
diff --git a/compiler2/EnumItem.hh b/compiler2/EnumItem.hh
index 62be404f8..2ff8fa332 100644
--- a/compiler2/EnumItem.hh
+++ b/compiler2/EnumItem.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -33,8 +33,6 @@ public:
   virtual EnumItem *clone() const;
   virtual void set_fullname(const string& p_fullname);
   const Identifier& get_name() const { return *name; }
-  /// Return the name for the "enum hack"
-  string get_name_hacked(Type *p_type) const;
   Value *get_value() const { return value; }
   void set_value(Value *p_value);
   const string& get_text() const { return text; }
diff --git a/compiler2/Identifier.cc b/compiler2/Identifier.cc
index 9632a0e36..10f8b4d81 100644
--- a/compiler2/Identifier.cc
+++ b/compiler2/Identifier.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Identifier.hh b/compiler2/Identifier.hh
index b0ee3e8e1..c01df15ac 100644
--- a/compiler2/Identifier.hh
+++ b/compiler2/Identifier.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Int.cc b/compiler2/Int.cc
index 3c1bee773..456f32b16 100644
--- a/compiler2/Int.cc
+++ b/compiler2/Int.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Int.hh b/compiler2/Int.hh
index 9f25995c8..8de6b0cfb 100644
--- a/compiler2/Int.hh
+++ b/compiler2/Int.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Makefile b/compiler2/Makefile
index 61ef64fc5..8499fe4e6 100644
--- a/compiler2/Makefile
+++ b/compiler2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/compiler2/PredefFunc.cc b/compiler2/PredefFunc.cc
index 9b0f083dd..746cde299 100644
--- a/compiler2/PredefFunc.cc
+++ b/compiler2/PredefFunc.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/PredefFunc.hh b/compiler2/PredefFunc.hh
index 0131b42f0..3720a2258 100644
--- a/compiler2/PredefFunc.hh
+++ b/compiler2/PredefFunc.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ProjectGenHelper.cc b/compiler2/ProjectGenHelper.cc
index 991449e58..4b475352a 100644
--- a/compiler2/ProjectGenHelper.cc
+++ b/compiler2/ProjectGenHelper.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -226,7 +226,7 @@ std::string ProjectDescriptor::setRelativePathTo(const std::string& absPathTo)
   }
   if (length == i) {  // got subdirectory
     if (projectAbsWorkingDir == absPathTo) {
-      return std::string("."); // the same pathes were given 
+      return std::string("."); // the same paths were given 
     }
     else if ((projectAbsWorkingDir.size() > absPathTo.size() && projectAbsWorkingDir.at(length) == SEPARATOR) ||
        (projectAbsWorkingDir.size() < absPathTo.size() && absPathTo.at(length) == SEPARATOR))
@@ -495,22 +495,22 @@ void ProjectGenHelper::getExternalLibs(std::vector<const char*>& extLibs)
   }
 }
 
-void ProjectGenHelper::getExternalLibSearchPathes(std::vector<const char*>& extLibPathes)
+void ProjectGenHelper::getExternalLibSearchPaths(std::vector<const char*>& extLibPaths)
 {
   if (!Zflag) return;
-  std::map<const char*, const char*, CompareStr> libPathes;
+  std::map<const char*, const char*, CompareStr> libPaths;
   for (std::map<std::string, ProjectDescriptor>::iterator it = projs.begin(); it != projs.end(); ++it) {
     if ((it->second).numOfLibSearchPaths() > 0) {
       for (size_t i = 0; i < (it->second).numOfLibSearchPaths(); ++i) {
         const char* key = (it->second).getLibSearchPath(i);
         const char* value = (it->second).getProjectName().c_str();
-        libPathes.insert(std::pair<const char*,const char*>(key,value)); // filter duplicates
+        libPaths.insert(std::pair<const char*,const char*>(key,value)); // filter duplicates
       }
     }
   }
   std::map<const char*, const char*>::iterator it;
-  for (it = libPathes.begin(); it != libPathes.end(); ++it) {
-    extLibPathes.push_back(it->first);
+  for (it = libPaths.begin(); it != libPaths.end(); ++it) {
+    extLibPaths.push_back(it->first);
   }
 }
 
diff --git a/compiler2/ProjectGenHelper.hh b/compiler2/ProjectGenHelper.hh
index 638633bdb..df661cb06 100644
--- a/compiler2/ProjectGenHelper.hh
+++ b/compiler2/ProjectGenHelper.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -122,7 +122,7 @@ public:
   std::map<std::string, ProjectDescriptor>::const_iterator getEnd() const;
   size_t numOfLibs() const;
   void getExternalLibs(std::vector<const char*>& extLibs);
-  void getExternalLibSearchPathes(std::vector<const char*>& extLibPathes);
+  void getExternalLibSearchPaths(std::vector<const char*>& extLibPaths);
   bool hasReferencedProject();
   size_t numOfProjects() const { return projs.size();};
   bool isCPPSourceFile(const char* fileName) const;
diff --git a/compiler2/Real.cc b/compiler2/Real.cc
index 0a15eda30..41f486b0a 100644
--- a/compiler2/Real.cc
+++ b/compiler2/Real.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Real.hh b/compiler2/Real.hh
index 1e5380b49..8920ed8fc 100644
--- a/compiler2/Real.hh
+++ b/compiler2/Real.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Setting.cc b/compiler2/Setting.cc
index 47e5a736c..b8262e02a 100644
--- a/compiler2/Setting.cc
+++ b/compiler2/Setting.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Setting.hh b/compiler2/Setting.hh
index 82f1bfcb1..b46986c0b 100644
--- a/compiler2/Setting.hh
+++ b/compiler2/Setting.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/SigParam.cc b/compiler2/SigParam.cc
index 739edfff3..e7f956f65 100644
--- a/compiler2/SigParam.cc
+++ b/compiler2/SigParam.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/SigParam.hh b/compiler2/SigParam.hh
index c32592c9c..1f2b9eee8 100644
--- a/compiler2/SigParam.hh
+++ b/compiler2/SigParam.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Stopwatch.cc b/compiler2/Stopwatch.cc
index 749507939..49f727ea0 100644
--- a/compiler2/Stopwatch.cc
+++ b/compiler2/Stopwatch.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Stopwatch.hh b/compiler2/Stopwatch.hh
index 8fcbdfbee..b2918fba7 100644
--- a/compiler2/Stopwatch.hh
+++ b/compiler2/Stopwatch.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Type.cc b/compiler2/Type.cc
index fd06d5d4c..40b83b8f3 100644
--- a/compiler2/Type.cc
+++ b/compiler2/Type.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -1591,6 +1591,10 @@ namespace Common {
       Ttcn::FieldOrArrayRef *ref = subrefs->get_ref(i);
       switch (ref->get_type()) {
       case Ttcn::FieldOrArrayRef::FIELD_REF: {
+        if (t->typetype == T_OPENTYPE) {
+          // allow the alternatives of open types as both lower and upper identifiers
+          ref->set_field_name_to_lowercase();
+        }
         const Identifier& id = *ref->get_id();
         switch (t->typetype) {
         case T_CHOICE_A:
@@ -2006,7 +2010,7 @@ namespace Common {
       }
       break;
     case T_SEQ_T:
-    case T_SET_T:
+    case T_SET_T: {
       if(rawattrib){
         size_t fieldnum;
         for(int c=0;c<rawattrib->taglist.nElements;c++) { // check TAG
@@ -2175,6 +2179,7 @@ namespace Common {
           }
         }
       }
+      int used_bits = 0; // number of bits used to store all previous fields
       for(size_t i = 0; i < get_nof_comps(); i++) { // field attributes
         CompField *cf = get_comp_byIndex(i);
         const Identifier& field_id = cf->get_name();
@@ -2183,6 +2188,27 @@ namespace Common {
         field_type->force_raw();
         RawAST *rawpar = field_type->rawattrib;
         if (rawpar) {
+          if (rawpar->prepadding != 0) {
+            used_bits = (used_bits + rawpar->prepadding - 1) / rawpar->prepadding *
+              rawpar->prepadding;
+          }
+          if (rawpar->intx && field_type_last->get_typetype() == T_INT) { // IntX
+            if (used_bits % 8 != 0 &&
+                (!rawattrib || rawattrib->fieldorder != XDEFMSB)) {
+              error("Using RAW parameter IntX in a record/set with FIELDORDER "
+                "set to 'lsb' is only supported if the IntX field starts at "
+                "the beginning of a new octet. There are %d unused bits in the "
+                "last octet before field %s.", 8 - (used_bits % 8),
+                field_id.get_dispname().c_str());
+            }
+          }
+          else {
+            used_bits += rawpar->fieldlength;
+          }
+          if (rawpar->padding != 0) {
+            used_bits = (used_bits + rawpar->padding - 1) / rawpar->padding *
+              rawpar->padding;
+          }
           for (int j = 0; j < rawpar->lengthto_num; j++) { // LENGTHTO
             Identifier *idf = rawpar->lengthto[j];
             if (!has_comp_withName(*idf)) {
@@ -2400,7 +2426,7 @@ namespace Common {
           }
         }
       }
-      break;
+      break; }
       case T_BSTR:
         if(rawattrib->fieldlength==0 && rawattrib->length_restrition!=-1){
           rawattrib->fieldlength=rawattrib->length_restrition;
@@ -2447,8 +2473,14 @@ namespace Common {
             "(64)", rawattrib->fieldlength, get_fullname().c_str());
         }
         break;
-      case T_ENUM_T:
       case T_INT:
+        if (rawattrib->intx) {
+          rawattrib->bitorderinfield = XDEFMSB;
+          rawattrib->bitorderinoctet = XDEFMSB;
+          rawattrib->byteorder = XDEFMSB;
+        }
+        break;
+      case T_ENUM_T:
       case T_BOOL:
     default:
       // nothing to do, ASN1 types or types without defined raw attribute
@@ -2617,6 +2649,17 @@ namespace Common {
       chk_text();
   }
   
+  static const char* JSON_SCHEMA_KEYWORDS[] = {
+    // built-in JSON schema keywords
+    "$ref", "type", "properties", "items", "anyOf", "enum", "pattern",
+    "default", "minItems", "maxItems", "additionalProperties", "fieldOrder",
+    "required", "$schema", "minLength", "maxLength", "minimum", "maximum",
+    "excludeMinimum", "excludeMaximum", "allOf"
+    // TITAN-specific keywords
+    "originalName", "unusedAlias", "subType", "numericValues", "omitAsNull",
+    "encoding", "decoding"
+  };
+  
   void Type::chk_json()
   {
     if (json_checked) return;
@@ -2637,6 +2680,7 @@ namespace Common {
       break; }
     case T_SEQOF:
     case T_SETOF:
+    case T_ARRAY:
       get_ofType()->force_json();
       break;
     default:
@@ -2671,6 +2715,71 @@ namespace Common {
       if (NULL != jsonattrib->default_value) {
         chk_json_default();
       }
+      
+      const size_t nof_extensions = jsonattrib->schema_extensions.size();
+      if (0 != nof_extensions) {
+        const size_t nof_keywords = sizeof(JSON_SCHEMA_KEYWORDS) / sizeof(char*);
+        
+        // these keep track of erroneous extensions so each warning is only
+        // displayed once
+        char* checked_extensions = new char[nof_extensions];
+        char* checked_keywords = new char[nof_keywords];
+        memset(checked_extensions, 0, nof_extensions);
+        memset(checked_keywords, 0, nof_keywords);
+
+        for (size_t i = 0; i < nof_extensions; ++i) {
+          for (size_t j = 0; j < nof_keywords; ++j) {
+            if (0 == checked_extensions[i] && 0 == checked_keywords[j] &&
+                0 == strcmp(jsonattrib->schema_extensions[i]->key,
+                JSON_SCHEMA_KEYWORDS[j])) {
+              // only report the warning once for each keyword
+              warning("JSON schema keyword '%s' should not be used as the key of "
+                "attribute 'extend'", JSON_SCHEMA_KEYWORDS[j]);
+              checked_keywords[j] = 1;
+              checked_extensions[i] = 1;
+              break;
+            }
+          }
+          if (0 == checked_extensions[i]) {
+            for (size_t k = i + 1; k < nof_extensions; ++k) {
+              if (0 == strcmp(jsonattrib->schema_extensions[i]->key,
+                  jsonattrib->schema_extensions[k]->key)) {
+                if (0 == checked_extensions[i]) {
+                  // only report the warning once for each unique key
+                  warning("Key '%s' is used multiple times in 'extend' attributes "
+                    "of type '%s'", jsonattrib->schema_extensions[i]->key,
+                    get_typename().c_str());
+                  checked_extensions[i] = 1;
+                }
+                checked_extensions[k] = 1;
+              }
+            }
+          }
+        }
+        delete[] checked_extensions;
+        delete[] checked_keywords;
+      }
+      if (jsonattrib->metainfo_unbound) {
+        Type* parent = get_parent_type();
+        if (T_SEQ_T == get_type_refd_last()->typetype ||
+            T_SET_T == get_type_refd_last()->typetype) {
+          // if it's set for the record/set, pass it onto its fields
+          size_t nof_comps = get_nof_comps();
+          for (size_t i = 0; i < nof_comps; i++) {
+            Type* comp_type = get_comp_byIndex(i)->get_type();
+            if (NULL == comp_type->jsonattrib) {
+              comp_type->jsonattrib = new JsonAST;
+            }
+            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
+          error("Invalid attribute 'metainfo for unbound', requires record, set, "
+            "or field of a record or set");
+        }
+      }
     }
   }
   
@@ -5258,9 +5367,6 @@ end_ext:
           const string& spec = s.get_attribSpec().get_spec();
           if (spec == get_encoding_name(encoding_type)) {
             return true;
-          } else {
-            // if it has an encode other than the one we're looking for, quit now
-            return false;
           }
         } // if ENCODE
       } // for
@@ -5512,8 +5618,6 @@ end_ext:
                 if (spec == ex_emm_ell // the right answer
                   ||spec == ex_ee_arr) // the acceptable answer
                   return memory.remember(t, ANSWER_YES);
-                else // if it has an encode other than XER, quit now
-                  return memory.remember(t, ANSWER_NO);
               } // if ENCODE
             } // for
           } // next a
diff --git a/compiler2/Type.hh b/compiler2/Type.hh
index 29f85957b..57eee7ae1 100644
--- a/compiler2/Type.hh
+++ b/compiler2/Type.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -1169,6 +1169,8 @@ namespace Common {
     /** Generates a reference to this type's schema segment and inserts it into
       * the given schema. */
     void generate_json_schema_ref(JSON_Tokenizer& json);
+    
+    JsonAST* get_json_attributes() const { return jsonattrib; }
   };
 
   /** @} end of AST_Type group */
diff --git a/compiler2/TypeCompat.cc b/compiler2/TypeCompat.cc
index 4e58d7a48..96400fb73 100644
--- a/compiler2/TypeCompat.cc
+++ b/compiler2/TypeCompat.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/TypeCompat.hh b/compiler2/TypeCompat.hh
index 02e2c7bbe..ef36e3bfd 100644
--- a/compiler2/TypeCompat.hh
+++ b/compiler2/TypeCompat.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Type_chk.cc b/compiler2/Type_chk.cc
index d3861ebb2..d3bf10e69 100644
--- a/compiler2/Type_chk.cc
+++ b/compiler2/Type_chk.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -1522,7 +1522,7 @@ void Type::chk_xer_untagged()
         // found the component
         if (cf->get_is_optional() || cf->get_defval() != 0) {
           error("Type with final encoding attribute UNTAGGED"
-            " shall not have OPIONAL or DEFAULT");
+            " shall not have OPTIONAL or DEFAULT");
         }
         break;
       }
@@ -3938,6 +3938,10 @@ bool Type::chk_this_value_Choice(Value *value, Common::Assignment *lhs,
     }
     // no break
   case Value::V_CHOICE: {
+    if (!value->is_asn1() && typetype == T_OPENTYPE) {
+      // allow the alternatives of open types as both lower and upper identifiers
+      value->set_alt_name_to_lowercase();
+    }
     const Identifier& alt_name = value->get_alt_name();
     if(!has_comp_withName(alt_name)) {
       if (value->is_asn1()) {
@@ -5354,7 +5358,8 @@ 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,
-        allow_omit, ANY_OR_OMIT_ALLOWED, sub_chk, implicit_omit, lhs);
+        omit_in_value_list ? OMIT_ALLOWED : 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() ==
          Ttcn::Template::ANY_OR_OMIT)
@@ -5724,10 +5729,10 @@ void Type::chk_this_template_Int_Real(Template *t)
         FATAL_ERROR("Type::chk_this_template_Int_Real()");
       }
     }
-    if (v_lower && !v_upper) {
+    if (v_lower && !vr->get_max_v()) {
       chk_range_boundary_infinity(v_lower, true);
     }
-    if (!v_lower && v_upper) {
+    if (!vr->get_min_v() && v_upper) {
       chk_range_boundary_infinity(v_upper, false);
     }
     break;}
@@ -5761,6 +5766,10 @@ bool Type::chk_this_template_Choice(Template *t, namedbool is_modified,
     // to have more than one here.
     for (size_t i = 0; i < nof_nts; i++) {
       Ttcn::NamedTemplate *nt = t->get_namedtemp_byIndex(i);
+      if (typetype == T_OPENTYPE) {
+        // allow the alternatives of open types as both lower and upper identifiers
+        nt->set_name_to_lowercase();
+      }
       const Identifier& nt_name = nt->get_name();
 
       if (!has_comp_withName(nt_name)) {
diff --git a/compiler2/Type_codegen.cc b/compiler2/Type_codegen.cc
index 5be67c25d..cfddb7ab7 100644
--- a/compiler2/Type_codegen.cc
+++ b/compiler2/Type_codegen.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -650,7 +650,12 @@ void Type::generate_code_rawdescriptor(output_struct *target)
     "extern const TTCN_RAWdescriptor_t %s_raw_;\n", gennameown_str);
   char *str = mprintf("const TTCN_RAWdescriptor_t %s_raw_ = {",
     gennameown_str);
-  str = mputprintf(str, "%d,", rawattrib->fieldlength);
+  if (rawattrib->intx) {
+    str = mputstr(str, "RAW_INTX,");
+  }
+  else {
+    str = mputprintf(str, "%d,", rawattrib->fieldlength);
+  }
   if (rawattrib->comp == XDEFCOMPL) str = mputstr(str, "SG_2COMPL,");
   else if (rawattrib->comp == XDEFSIGNBIT) str = mputstr(str, "SG_SG_BIT,");
   else str = mputstr(str, "SG_NO,");
@@ -967,19 +972,20 @@ void Type::generate_code_jsondescriptor(output_struct *target)
   
   if (NULL == jsonattrib) {
     target->source.global_vars = mputprintf(target->source.global_vars,
-      "const TTCN_JSONdescriptor_t %s_json_ = { false, NULL, false, NULL };\n"
+      "const TTCN_JSONdescriptor_t %s_json_ = { false, NULL, false, NULL, false };\n"
       , get_genname_own().c_str());
   } else {
     char* alias = jsonattrib->alias ? mputprintf(NULL, "\"%s\"", jsonattrib->alias) : NULL;
     char* def_val = jsonattrib->default_value ?
       mputprintf(NULL, "\"%s\"", jsonattrib->default_value) : NULL;
     target->source.global_vars = mputprintf(target->source.global_vars,
-      "const TTCN_JSONdescriptor_t %s_json_ = { %s, %s, %s, %s };\n"
+      "const TTCN_JSONdescriptor_t %s_json_ = { %s, %s, %s, %s, %s };\n"
       , get_genname_own().c_str() 
       , jsonattrib->omit_as_null ? "true" : "false"
       , alias ? alias : "NULL"
       , jsonattrib->as_value ? "true" : "false"
-      , def_val ? def_val : "NULL");
+      , def_val ? def_val : "NULL"
+      , jsonattrib->metainfo_unbound ? "true" : "false");
     Free(alias);
     Free(def_val);
   }
@@ -1098,6 +1104,25 @@ void Type::generate_code_Choice(output_struct *target)
   sdef.opentype_outermost = get_is_opentype_outermost();
   sdef.ot = generate_code_ot(pool);
   sdef.nElements = get_nof_comps();
+  sdef.isOptional = false;
+  if (parent_type != NULL) {
+    switch (parent_type->typetype) {
+    case T_SEQ_T:
+    case T_SEQ_A:
+    case T_SET_T:
+    case T_SET_A:
+      for (size_t x = 0; x < parent_type->get_nof_comps(); ++x) {
+        CompField * cf = parent_type->get_comp_byIndex(x);
+        if (cf->get_type() == this && cf->get_is_optional()) {
+          sdef.isOptional = true;
+          break; // from the for loop
+        }
+      }
+      break;
+    default:
+      break;
+    }
+  }
   sdef.elements = (struct_field*)
     Malloc(sdef.nElements*sizeof(*sdef.elements));
   memset(sdef.elements, 0, sdef.nElements*sizeof(*sdef.elements));
@@ -1124,30 +1149,56 @@ void Type::generate_code_Choice(output_struct *target)
       typetype_t tt = cftype->get_type_refd_last()->typetype;
       switch(tt) {
       case T_INT:
+      case T_INT_A:
         sdef.elements[i].jsonValueType = JSON_NUMBER;
         break;
       case T_REAL:
         sdef.elements[i].jsonValueType = JSON_NUMBER | JSON_STRING;
         break;
       case T_BOOL:
-        sdef.elements[i].jsonValueType = JSON_LITERAL;
+        sdef.elements[i].jsonValueType = JSON_BOOLEAN;
+        break;
+      case T_NULL:
+        sdef.elements[i].jsonValueType = JSON_NULL;
         break;
       case T_BSTR:
+      case T_BSTR_A:
       case T_HSTR:
       case T_OSTR:
       case T_CSTR:
       case T_USTR:
+      case T_UTF8STRING:
+      case T_NUMERICSTRING:
+      case T_PRINTABLESTRING:
+      case T_TELETEXSTRING:
+      case T_VIDEOTEXSTRING:
+      case T_IA5STRING:
+      case T_GRAPHICSTRING:
+      case T_VISIBLESTRING:
+      case T_GENERALSTRING:  
+      case T_UNIVERSALSTRING:
+      case T_BMPSTRING:
       case T_VERDICT:
       case T_ENUM_T:
+      case T_ENUM_A:
+      case T_OID:
+      case T_ROID:
+      case T_ANY:
         sdef.elements[i].jsonValueType = JSON_STRING;
         break;
       case T_SEQ_T:
+      case T_SEQ_A:
       case T_SET_T:
+      case T_SET_A:
       case T_CHOICE_T:
+      case T_CHOICE_A:
+      case T_ANYTYPE:
+      case T_OPENTYPE:
         sdef.elements[i].jsonValueType = JSON_OBJECT;
         break;
       case T_SEQOF:
       case T_SETOF:
+      case T_ARRAY:
         sdef.elements[i].jsonValueType = JSON_ARRAY;
         break;
       default:
@@ -1531,6 +1582,7 @@ void Type::generate_code_Se(output_struct *target)
       cur.jsonOmitAsNull = type->jsonattrib->omit_as_null;
       cur.jsonAlias = type->jsonattrib->alias;
       cur.jsonDefaultValue = type->jsonattrib->default_value;
+      cur.jsonMetainfoUnbound = type->jsonattrib->metainfo_unbound;
     } // if jsonattrib
   } // next element
 
@@ -1845,7 +1897,7 @@ void Type::generate_code_SeOf(output_struct *target)
     case T_UNIVERSALSTRING:
     case T_BMPSTRING:
     case T_OBJECTDESCRIPTOR:
-      target->header.typedefs = mputprintf(target->header.typedefs,
+      target->header.class_decls = mputprintf(target->header.class_decls,
         "typedef PreGenRecordOf::PREGEN__%s__OF__UNIVERSAL__CHARSTRING%s %s;\n"
         "typedef PreGenRecordOf::PREGEN__%s__OF__UNIVERSAL__CHARSTRING%s_template %s_template;\n",
         (typetype == T_SEQOF) ? "RECORD" : "SET",
@@ -1854,7 +1906,9 @@ void Type::generate_code_SeOf(output_struct *target)
         optimized_memalloc ? "__OPTIMIZED" : "", get_genname_own().c_str());
       return;
     default:
-      target->header.typedefs = mputprintf(target->header.typedefs,
+      // generate these in the class declarations part, they need to be
+      // outside of the include guard in case of circular imports
+      target->header.class_decls = mputprintf(target->header.class_decls,
         "typedef PreGenRecordOf::PREGEN__%s__OF__%s%s %s;\n"
         "typedef PreGenRecordOf::PREGEN__%s__OF__%s%s_template %s_template;\n",
         (typetype == T_SEQOF) ? "RECORD" : "SET", oftypename.c_str(), 
@@ -2172,7 +2226,7 @@ void Type::generate_code_done(output_struct *target)
      "component_reference.log();\n"
      "TTCN_Logger::log_event_str(\" failed: Return value does not match "
      "the template: \");\n"
-     "value_template.log_match(return_value);\n"
+     "value_template.log_match(return_value%s);\n"
      "TTCN_Logger::end_event();\n"
      "}\n"
      "return ALT_NO;\n"
@@ -2180,7 +2234,7 @@ void Type::generate_code_done(output_struct *target)
      "} else return ret_val;\n"
      "}\n\n",
      genname_str, genname_str, dispname_str, genname_str, dispname_str,
-     dispname_str);
+     dispname_str, omit_in_value_list ? ", TRUE" : "");
 }
 
 bool Type::ispresent_anyvalue_embedded_field(Type* t,
@@ -2352,8 +2406,9 @@ void Type::generate_code_ispresentbound(expression_struct *expr,
             is_template?"_template":"", tmp_id_str);
 
           expr->expr = mputprintf(expr->expr,
-            "%s = %s.%s();\n", global_id.c_str(),
-            tmp_id2_str, isbound ? "is_bound" : "is_present");
+            "%s = %s.%s(%s);\n", global_id.c_str(),
+            tmp_id2_str, isbound ? "is_bound" : "is_present",
+            (!isbound && is_template && omit_in_value_list) ? "TRUE" : "");
           Free(tmp_generalid_str);
           tmp_generalid_str = mcopystr(tmp_id2_str);
 
@@ -2409,8 +2464,9 @@ void Type::generate_code_ispresentbound(expression_struct *expr,
           id.get_name().c_str());
 
         expr->expr = mputprintf(expr->expr,
-          "%s = %s.%s();\n", global_id.c_str(),
-          tmp_id_str, isbound||(i!=(nof_refs-1)) ? "is_bound" : "is_present");
+          "%s = %s.%s(%s);\n", global_id.c_str(),
+          tmp_id_str, isbound||(i!=(nof_refs-1)) ? "is_bound" : "is_present",
+          (!(isbound||(i!=(nof_refs-1))) && is_template && omit_in_value_list) ? "TRUE" : "");
         Free(tmp_generalid_str);
         tmp_generalid_str = mcopystr(tmp_id_str);
       }
@@ -2496,9 +2552,10 @@ void Type::generate_code_ispresentbound(expression_struct *expr,
 
       if (is_string_element) {
         expr->expr = mputprintf(expr->expr,
-          "%s = %s[%s].%s();\n", global_id.c_str(),
+          "%s = %s[%s].%s(%s);\n", global_id.c_str(),
           tmp_generalid_str, tmp_index_id_str,
-          isbound||(i!=(nof_refs-1)) ? "is_bound" : "is_present");
+          isbound||(i!=(nof_refs-1)) ? "is_bound" : "is_present",
+          (!(isbound||(i!=(nof_refs-1))) && is_template && omit_in_value_list) ? "TRUE" : "");
       } else {
         if (is_template) {
             expr->expr = mputprintf(expr->expr,
@@ -2515,8 +2572,9 @@ void Type::generate_code_ispresentbound(expression_struct *expr,
         }
         
         expr->expr = mputprintf(expr->expr,
-          "%s = %s.%s();\n", global_id.c_str(), tmp_id_str, 
-          isbound||(i!=(nof_refs-1)) ? "is_bound" : "is_present");
+          "%s = %s.%s(%s);\n", global_id.c_str(), tmp_id_str, 
+          isbound||(i!=(nof_refs-1)) ? "is_bound" : "is_present",
+          (!(isbound||(i!=(nof_refs-1))) && is_template && omit_in_value_list) ? "TRUE" : "");
       }
 
       Free(tmp_generalid_str);
@@ -2689,22 +2747,56 @@ void Type::generate_json_schema(JSON_Tokenizer& json, bool embedded, bool as_val
       Free(alias_str);
     }
   }
-  
+
   // get the type at the end of the reference chain
   Type* last = get_type_refd_last();
   
-  // if the type has its own definition and it's embedded in another type, then
-  // its schema already exists, only add a reference to it
+  // check if this is a reference to another type that has its own definition
+  Type* refd_type = NULL;
+  if (is_ref()) {
+    Type* iter = this;
+    while (iter->is_ref()) {
+      iter = iter->get_type_refd();
+      if (iter->ownertype == OT_TYPE_DEF || /* TTCN-3 type definition */
+          iter->ownertype == OT_TYPE_ASS) { /* ASN.1 type assignment */
+        refd_type = iter;
+        break;
+      }
+    }
+  }
+  
+  // check if there are any type restrictions
+  boolean has_restrictions = sub_type != NULL && sub_type->has_json_schema();
+
+  // if it's a referenced type, then its schema already exists, only add a pointer to it
   // exception: instances of ASN.1 parameterized types, always embed their schemas
-  if (embedded && (!is_ref() || !get_type_refd()->pard_type_instance) &&
-      (last->ownertype == OT_TYPE_DEF /* TTCN-3 type definition */
-      || last->ownertype == OT_TYPE_ASS /* ASN.1 type assignment */ )) {
+  if (refd_type != NULL && !get_type_refd()->pard_type_instance) {
+    if (has_restrictions) {
+      // an 'allOf' structure is needed if this is a subtype,
+      // insert the pointer in the first part
+      json.put_next_token(JSON_TOKEN_NAME, "allOf");
+      json.put_next_token(JSON_TOKEN_ARRAY_START);
+      json.put_next_token(JSON_TOKEN_OBJECT_START);
+    }
     json.put_next_token(JSON_TOKEN_NAME, "$ref");
     char* ref_str = mprintf("\"#/definitions/%s/%s\"",
-      last->my_scope->get_scope_mod()->get_modid().get_ttcnname().c_str(),
-      (is_ref() && last->pard_type_instance) ? get_type_refd()->get_dispname().c_str() : last->get_dispname().c_str());
+      refd_type->my_scope->get_scope_mod()->get_modid().get_ttcnname().c_str(),
+      refd_type->get_dispname().c_str());
     json.put_next_token(JSON_TOKEN_STRING, ref_str);
     Free(ref_str);
+    if (has_restrictions) {
+      // close the first part of the 'allOf' and insert the type restrictions
+      // in the second part
+      json.put_next_token(JSON_TOKEN_OBJECT_END);
+      json.put_next_token(JSON_TOKEN_OBJECT_START);
+      
+      // pass the tokenizer to the subtype to insert the type restrictions' schema
+      sub_type->generate_json_schema(json);
+      
+      // close the second part and the 'allOf' structure itself
+      json.put_next_token(JSON_TOKEN_OBJECT_END);
+      json.put_next_token(JSON_TOKEN_ARRAY_END);
+    }
   } else {
     // generate the schema for the referenced type
     switch (last->typetype) {
@@ -2720,22 +2812,32 @@ void Type::generate_json_schema(JSON_Tokenizer& json, bool embedded, bool as_val
       json.put_next_token(JSON_TOKEN_STRING, "\"integer\"");
       break;
     case T_REAL:
-      // any of: JSON number or the special values as strings (in an enum)
-      json.put_next_token(JSON_TOKEN_NAME, "anyOf");
-      json.put_next_token(JSON_TOKEN_ARRAY_START);
-      json.put_next_token(JSON_TOKEN_OBJECT_START);
-      json.put_next_token(JSON_TOKEN_NAME, "type");
-      json.put_next_token(JSON_TOKEN_STRING, "\"number\"");
-      json.put_next_token(JSON_TOKEN_OBJECT_END);
-      json.put_next_token(JSON_TOKEN_OBJECT_START);
-      json.put_next_token(JSON_TOKEN_NAME, "enum");
-      json.put_next_token(JSON_TOKEN_ARRAY_START);
-      json.put_next_token(JSON_TOKEN_STRING, "\"not_a_number\"");
-      json.put_next_token(JSON_TOKEN_STRING, "\"infinity\"");
-      json.put_next_token(JSON_TOKEN_STRING, "\"-infinity\"");
-      json.put_next_token(JSON_TOKEN_ARRAY_END);
-      json.put_next_token(JSON_TOKEN_OBJECT_END);
-      json.put_next_token(JSON_TOKEN_ARRAY_END);
+      if (has_restrictions) {
+        // adding restrictions after the type's schema wouldn't work here
+        // if the restrictions affect the special values
+        // use a special function that generates the schema segment for both
+        // the float type and its restrictions
+        sub_type->generate_json_schema_float(json);
+        has_restrictions = false; // so they aren't generated twice
+      }
+      else {
+        // any of: JSON number or the special values as strings (in an enum)
+        json.put_next_token(JSON_TOKEN_NAME, "anyOf");
+        json.put_next_token(JSON_TOKEN_ARRAY_START);
+        json.put_next_token(JSON_TOKEN_OBJECT_START);
+        json.put_next_token(JSON_TOKEN_NAME, "type");
+        json.put_next_token(JSON_TOKEN_STRING, "\"number\"");
+        json.put_next_token(JSON_TOKEN_OBJECT_END);
+        json.put_next_token(JSON_TOKEN_OBJECT_START);
+        json.put_next_token(JSON_TOKEN_NAME, "enum");
+        json.put_next_token(JSON_TOKEN_ARRAY_START);
+        json.put_next_token(JSON_TOKEN_STRING, "\"not_a_number\"");
+        json.put_next_token(JSON_TOKEN_STRING, "\"infinity\"");
+        json.put_next_token(JSON_TOKEN_STRING, "\"-infinity\"");
+        json.put_next_token(JSON_TOKEN_ARRAY_END);
+        json.put_next_token(JSON_TOKEN_OBJECT_END);
+        json.put_next_token(JSON_TOKEN_ARRAY_END);
+      }
       break;
     case T_BSTR:
     case T_BSTR_A:
@@ -2791,15 +2893,23 @@ void Type::generate_json_schema(JSON_Tokenizer& json, bool embedded, bool as_val
       json.put_next_token(JSON_TOKEN_STRING, "\"^[0-2][.][1-3]?[0-9]([.][0-9]|([1-9][0-9]+))*$\"");
       break;
     case T_VERDICT:
-      // enumerate the possible values
-      json.put_next_token(JSON_TOKEN_NAME, "enum");
-      json.put_next_token(JSON_TOKEN_ARRAY_START);
-      json.put_next_token(JSON_TOKEN_STRING, "\"none\"");
-      json.put_next_token(JSON_TOKEN_STRING, "\"pass\"");
-      json.put_next_token(JSON_TOKEN_STRING, "\"inconc\"");
-      json.put_next_token(JSON_TOKEN_STRING, "\"fail\"");
-      json.put_next_token(JSON_TOKEN_STRING, "\"error\"");
-      json.put_next_token(JSON_TOKEN_ARRAY_END);
+      if (has_restrictions) {
+        // the restrictions would only add another JSON enum (after the one
+        /// generated below), instead just insert the one with the restrictions
+        sub_type->generate_json_schema(json);
+        has_restrictions = false; // so they aren't generated twice
+      }
+      else {
+        // enumerate the possible values
+        json.put_next_token(JSON_TOKEN_NAME, "enum");
+        json.put_next_token(JSON_TOKEN_ARRAY_START);
+        json.put_next_token(JSON_TOKEN_STRING, "\"none\"");
+        json.put_next_token(JSON_TOKEN_STRING, "\"pass\"");
+        json.put_next_token(JSON_TOKEN_STRING, "\"inconc\"");
+        json.put_next_token(JSON_TOKEN_STRING, "\"fail\"");
+        json.put_next_token(JSON_TOKEN_STRING, "\"error\"");
+        json.put_next_token(JSON_TOKEN_ARRAY_END);
+      }
       break;
     case T_ENUM_T:
     case T_ENUM_A:
@@ -2847,6 +2957,11 @@ void Type::generate_json_schema(JSON_Tokenizer& json, bool embedded, bool as_val
     default:
       FATAL_ERROR("Type::generate_json_schema");
     }
+    
+    if (has_restrictions) {
+      // pass the tokenizer to the subtype to insert the type restrictions' schema
+      sub_type->generate_json_schema(json);
+    }
   }
   
   // insert default value (if any)
@@ -2880,6 +2995,16 @@ void Type::generate_json_schema(JSON_Tokenizer& json, bool embedded, bool as_val
       FATAL_ERROR("Type::generate_json_schema");
     }
   }
+  
+  // insert schema extensions (if any)
+  if (jsonattrib != NULL) {
+    for (size_t i = 0; i < jsonattrib->schema_extensions.size(); ++i) {
+      json.put_next_token(JSON_TOKEN_NAME, jsonattrib->schema_extensions[i]->key);
+      char* value_str = mprintf("\"%s\"", jsonattrib->schema_extensions[i]->value);
+      json.put_next_token(JSON_TOKEN_STRING, value_str);
+      Free(value_str);
+    }
+  }
 
   // end of type's schema
   json.put_next_token(JSON_TOKEN_OBJECT_END);
diff --git a/compiler2/Typestuff.cc b/compiler2/Typestuff.cc
index 28125f47d..867cad5d4 100644
--- a/compiler2/Typestuff.cc
+++ b/compiler2/Typestuff.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Typestuff.hh b/compiler2/Typestuff.hh
index 034e8f0ec..20c2f0e24 100644
--- a/compiler2/Typestuff.hh
+++ b/compiler2/Typestuff.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Value.cc b/compiler2/Value.cc
index 7fb2f0b5d..1ea0cb097 100644
--- a/compiler2/Value.cc
+++ b/compiler2/Value.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -30,6 +30,7 @@
 #include "ttcn3/Statement.hh"
 
 #include "ttcn3/Attributes.hh"
+#include "../common/JSON_Tokenizer.hh"
 
 #include <math.h>
 #include <regex.h>
@@ -9082,6 +9083,25 @@ error:
     if (valuetype != V_CHOICE) FATAL_ERROR("Value::get_alt_value()");
     return u.choice.alt_value;
   }
+  
+  void Value::set_alt_name_to_lowercase()
+  {
+    if (valuetype != V_CHOICE) FATAL_ERROR("Value::set_alt_name_to_lowercase()");
+    string new_name = u.choice.alt_name->get_name();
+    if (isupper(new_name[0])) {
+      new_name[0] = tolower(new_name[0]);
+      if (new_name[new_name.size() - 1] == '_') {
+        // an underscore is inserted at the end of the alternative name if it's
+        // a basic type's name (since it would conflict with the class generated
+        // for that type)
+        // remove the underscore, it won't conflict with anything if its name
+        // starts with a lowercase letter
+        new_name.replace(new_name.size() - 1, 1, "");
+      }
+      delete u.choice.alt_name;
+      u.choice.alt_name = new Identifier(Identifier::ID_NAME, new_name);
+    }
+  }
 
   bool Value::has_oid_error()
   {
@@ -11343,7 +11363,7 @@ error:
     }
     expr->expr = mputstr(expr->expr, ".log_match(");
     u.expr.v1->generate_code_expr(expr);
-    expr->expr = mputc(expr->expr, ')');
+    expr->expr = mputprintf(expr->expr, "%s)", omit_in_value_list ? ", TRUE" : "");
   }
 
   void Value::generate_code_expr_expr(expression_struct *expr)
@@ -11657,7 +11677,8 @@ error:
         expr->expr=mputstr(expr->expr, ".is_bound()");
         break;
       case OPTYPE_ISPRESENT:
-        expr->expr=mputstr(expr->expr, ".is_present()");
+        expr->expr=mputprintf(expr->expr, ".is_present(%s)",
+          omit_in_value_list ? "TRUE" : "");
         break;
       case OPTYPE_SIZEOF:
         expr->expr=mputstr(expr->expr, ".size_of()");
@@ -11680,7 +11701,7 @@ error:
       u.expr.t2->generate_code(expr);
       expr->expr = mputstr(expr->expr, ".match(");
       u.expr.v1->generate_code_expr(expr);
-      expr->expr = mputc(expr->expr, ')');
+      expr->expr = mputprintf(expr->expr, "%s)", omit_in_value_list ? ", TRUE" : "");
       break;
     case OPTYPE_UNDEF_RUNNING:
       // it is resolved during semantic check
@@ -12046,7 +12067,7 @@ error:
       Value* v4_last = v4->get_value_refd_last();
       if ((v4_last->valuetype == V_SEQOF || v4_last->valuetype == V_SETOF)
           && !v4_last->u.val_vs->is_indexed() && v4_last->u.val_vs->get_nof_vs() == 0) {
-        expr->expr = mputprintf(expr->expr, "(%s)", v4->my_governor->get_stringRepr().c_str());
+        expr->expr = mputprintf(expr->expr, "(%s)", v4->my_governor->get_genname_value(my_scope).c_str());
       }
       v4->generate_code_expr_mandatory(expr);
     }
@@ -12610,6 +12631,205 @@ error:
     }
     return str;
   }
+  
+  /** This type contains the JSON encoding type of an omitted optional field */
+  enum omitted_json_value_t {
+    NOT_OMITTED,     // the field is not omitted
+    OMITTED_ABSENT,  // the omitted field is not present in the JSON object
+    OMITTED_NULL     // the omitted field is set to 'null' in the JSON object
+  };
+  
+  /** JSON code for omitted optional fields of can be generated in 2 ways:
+    * - the field is not present in the JSON object or
+    * - the field is present and its value is 'null'.
+    * Because of this all record/set values containing omitted fields have 2^N
+    * possible JSON encodings, where N is the number of omitted fields.
+    * 
+    * This function helps go through all the possible encodings, by generating
+    * the next combination from a previous one.
+    * 
+    * The algorithm is basically adding 1 to a binary number (where OMITTED_ABSENT
+    * is zero, OMITTED_NULL is one, all NOT_OMITTEDs are ignored and the first bit
+    * is the least significant bit).
+    *
+    * Usage: generate the first combination, where all omitted fields are absent
+    * (=all zeros), and keep calling this function until the last combination 
+    * (where all omitted fields are 'null', = all ones) is reached.
+    * 
+    * @return true, if the next combination was successfully generated, or
+    * false, when called with the last combination */
+  static bool next_omitted_json_combo(int* omitted_fields, size_t len)
+  {
+    for (size_t i = 0; i < len; ++i) {
+      if (omitted_fields[i] == OMITTED_ABSENT) {
+        omitted_fields[i] = OMITTED_NULL;
+        for (size_t j = 0; j < i; ++j) {
+          if (omitted_fields[j] == OMITTED_NULL) {
+            omitted_fields[j] = OMITTED_ABSENT;
+          }
+        }
+        return true;
+      }
+    }
+    return false;
+  }
+  
+  void Value::generate_json_value(JSON_Tokenizer& json, bool allow_special_float /* = true */)
+  {
+    switch (valuetype) {
+    case V_INT:
+      json.put_next_token(JSON_TOKEN_NUMBER, get_val_Int()->t_str().c_str());
+      break;
+    case V_REAL: {
+      Real r = get_val_Real();
+      if (r == REAL_INFINITY) {
+        if (allow_special_float) {
+          json.put_next_token(JSON_TOKEN_STRING, "\"infinity\"");
+        }
+      }
+      else if (r == -REAL_INFINITY) {
+        if (allow_special_float) {
+          json.put_next_token(JSON_TOKEN_STRING, "\"-infinity\"");
+        }
+      }
+      else if (r != r) {
+        if (allow_special_float) {
+          json.put_next_token(JSON_TOKEN_STRING, "\"not_a_number\"");
+        }
+      }
+      else {
+        // true if decimal representation possible (use %f format)
+        bool decimal_repr = (r == 0.0)
+          || (r > -MAX_DECIMAL_FLOAT && r <= -MIN_DECIMAL_FLOAT)
+          || (r >= MIN_DECIMAL_FLOAT && r < MAX_DECIMAL_FLOAT);
+        char* number_str = mprintf(decimal_repr ? "%f" : "%e", r);
+        json.put_next_token(JSON_TOKEN_NUMBER, number_str);
+        Free(number_str);
+      }
+      break; }
+    case V_BOOL:
+      json.put_next_token(get_val_bool() ? JSON_TOKEN_LITERAL_TRUE : JSON_TOKEN_LITERAL_FALSE);
+      break;
+    case V_BSTR:
+    case V_HSTR:
+    case V_OSTR:
+    case V_CSTR: {
+      char* str = convert_to_json_string(get_val_str().c_str());
+      json.put_next_token(JSON_TOKEN_STRING, str);
+      Free(str);
+      break; }
+    case V_USTR: {
+      char* str = convert_to_json_string(ustring_to_uft8(get_val_ustr()).c_str());
+      json.put_next_token(JSON_TOKEN_STRING, str);
+      Free(str);
+      break; }
+    case V_VERDICT:
+    case V_ENUM:
+      json.put_next_token(JSON_TOKEN_STRING,
+        (string('\"') + create_stringRepr() + string('\"')).c_str());
+      break;
+    case V_SEQOF:
+    case V_SETOF:
+      json.put_next_token(JSON_TOKEN_ARRAY_START);
+      if (!u.val_vs->is_indexed()) {
+        for (size_t i = 0; i < u.val_vs->get_nof_vs(); ++i) {
+          u.val_vs->get_v_byIndex(i)->generate_json_value(json);
+        }
+      }
+      else {
+        for (size_t i = 0; i < u.val_vs->get_nof_ivs(); ++i) {
+          // look for the entry with index equal to i
+          for (size_t j = 0; j < u.val_vs->get_nof_ivs(); ++j) {
+            if (u.val_vs->get_iv_byIndex(j)->get_index()->get_val_Int()->get_val() == (Int)i) {
+              u.val_vs->get_iv_byIndex(j)->get_value()->generate_json_value(json);
+              break;
+            }
+          }
+        }
+      }
+      json.put_next_token(JSON_TOKEN_ARRAY_END);
+      break;
+    case V_SEQ:
+    case V_SET: {
+      // omitted fields have 2 possible JSON values (the field is absent, or it's
+      // present with value 'null'), each combination of omitted values must be
+      // generated
+      size_t len = get_nof_comps();
+      int* omitted_fields = new int[len]; // stores one combination
+      for (size_t i = 0; i < len; ++i) {
+        if (get_se_comp_byIndex(i)->get_value()->valuetype == V_OMIT) {
+          // all omitted fields are absent in the first combination
+          omitted_fields[i] = OMITTED_ABSENT;
+        }
+        else {
+          omitted_fields[i] = NOT_OMITTED;
+        }
+      }
+      do {
+        // generate the JSON object from the present combination
+        json.put_next_token(JSON_TOKEN_OBJECT_START);
+        for (size_t i = 0; i < len; ++i) {
+          if (omitted_fields[i] == OMITTED_ABSENT) {
+            // the field is absent, don't insert anything
+            continue;
+          }
+          // use the field's alias, if it has one
+          const char* alias = NULL;
+          if (my_governor != NULL) {
+            JsonAST* field_attrib = my_governor->get_comp_byName(
+              get_se_comp_byIndex(i)->get_name())->get_type()->get_json_attributes();
+            if (field_attrib != NULL) {
+              alias = field_attrib->alias;
+            }
+          }
+          json.put_next_token(JSON_TOKEN_NAME, (alias != NULL) ? alias :
+            get_se_comp_byIndex(i)->get_name().get_ttcnname().c_str());
+          if (omitted_fields[i] == OMITTED_NULL) {
+            json.put_next_token(JSON_TOKEN_LITERAL_NULL);
+          }
+          else {
+            get_se_comp_byIndex(i)->get_value()->generate_json_value(json);
+          }
+        }
+        json.put_next_token(JSON_TOKEN_OBJECT_END);
+      } // generate the next combination, until all combinations have been processed
+      while (next_omitted_json_combo(omitted_fields, len));
+      break; }
+    case V_CHOICE: {
+      bool as_value = my_governor != NULL && 
+        my_governor->get_type_refd_last()->get_json_attributes() != NULL &&
+        my_governor->get_type_refd_last()->get_json_attributes()->as_value;
+      if (!as_value) {
+        // no 'as value' coding instruction, insert an object with one field
+        json.put_next_token(JSON_TOKEN_OBJECT_START);
+        // use the field's alias, if it has one
+        const char* alias = NULL;
+        if (my_governor != NULL) {
+          JsonAST* field_attrib = my_governor->get_comp_byName(
+            get_alt_name())->get_type()->get_json_attributes();
+          if (field_attrib != NULL) {
+            alias = field_attrib->alias;
+          }
+        }
+        json.put_next_token(JSON_TOKEN_NAME, (alias != NULL) ? alias :
+          get_alt_name().get_ttcnname().c_str());
+      }
+      get_alt_value()->generate_json_value(json);
+      if (!as_value) {
+        json.put_next_token(JSON_TOKEN_OBJECT_END);
+      }
+      break; }
+    case V_REFD: {
+      Value* v = get_value_refd_last();
+      if (this != v) {
+        v->generate_json_value(json);
+        return;
+      }
+    } // no break
+    default:
+      FATAL_ERROR("Value::generate_json_value - %d", valuetype);
+    }
+  }
 
   bool Value::explicit_cast_needed(bool forIsValue)
   {
diff --git a/compiler2/Value.hh b/compiler2/Value.hh
index 61d324cf9..a163c219a 100644
--- a/compiler2/Value.hh
+++ b/compiler2/Value.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -15,6 +15,7 @@
 #include "../common/ttcn3float.hh"
 
 class ustring;
+class JSON_Tokenizer;
 
 namespace Asn {
   class Block;
@@ -686,6 +687,12 @@ namespace Common {
     bool is_indexed() const;
     const Identifier& get_alt_name();
     Value *get_alt_value();
+    /** Sets the first letter in the name of the alternative to lowercase
+      * if it's an uppercase letter.
+      * Used on open types (the name of their alternatives can be given with both
+      * an uppercase or a lowercase first letter, and the generated code will need
+      * to use the lowercase version). */
+    void set_alt_name_to_lowercase();
     /** Returns whether the embedded object identifier components
      *  contain any error. Applicable to OID/ROID values only. */
     bool has_oid_error();
@@ -904,6 +911,11 @@ namespace Common {
     char *generate_code_init_refd(char *str, const char *name);
 
   public:
+    /** Generates JSON code from this value. Used in JSON schema generation.
+      * No code is generated for special float values NaN, INF and -INF if the
+      * 2nd parameter is false. */
+    void generate_json_value(JSON_Tokenizer& json, bool allow_special_float = true);
+    
     /** Returns whether C++ explicit cast (type conversion) is necessary when
      * \a this is the argument of a send() or log() statement. True is returned
      * when the type of the C++ equivalent is ambiguous or is a built-in type
@@ -979,7 +991,7 @@ namespace Common {
     static void generate_code_ap_default_value(expression_struct *expr, Value* value, Scope* scope);
     static void generate_code_ap_default_ti(expression_struct *expr, TemplateInstance* ti, Scope* scope);
   };
-
+  
 } // namespace Common
 
 #endif // _Common_Value_HH
diff --git a/compiler2/Valuestuff.cc b/compiler2/Valuestuff.cc
index bc243baa8..5d49a4bfe 100644
--- a/compiler2/Valuestuff.cc
+++ b/compiler2/Valuestuff.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/Valuestuff.hh b/compiler2/Valuestuff.hh
index 619b5dc38..a9b0c7c55 100644
--- a/compiler2/Valuestuff.hh
+++ b/compiler2/Valuestuff.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/XerAttributes.cc b/compiler2/XerAttributes.cc
index c10a0fce5..62dd84b1b 100644
--- a/compiler2/XerAttributes.cc
+++ b/compiler2/XerAttributes.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/XerAttributes.hh b/compiler2/XerAttributes.hh
index d9cd43769..82e6028a8 100644
--- a/compiler2/XerAttributes.hh
+++ b/compiler2/XerAttributes.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/AST_asn1.cc b/compiler2/asn1/AST_asn1.cc
index 6e83b0b2a..342f3c4c1 100644
--- a/compiler2/asn1/AST_asn1.cc
+++ b/compiler2/asn1/AST_asn1.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/AST_asn1.hh b/compiler2/asn1/AST_asn1.hh
index 43eba0332..33ad2f9bd 100644
--- a/compiler2/asn1/AST_asn1.hh
+++ b/compiler2/asn1/AST_asn1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Block.cc b/compiler2/asn1/Block.cc
index 8764ddf0b..bbfd7ea7f 100644
--- a/compiler2/asn1/Block.cc
+++ b/compiler2/asn1/Block.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Block.hh b/compiler2/asn1/Block.hh
index e5a87fa7d..6c6862e2e 100644
--- a/compiler2/asn1/Block.hh
+++ b/compiler2/asn1/Block.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Makefile b/compiler2/asn1/Makefile
index 8dc4f9922..473bbddae 100644
--- a/compiler2/asn1/Makefile
+++ b/compiler2/asn1/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/compiler2/asn1/OCSV.cc b/compiler2/asn1/OCSV.cc
index b217b4a73..c41732417 100644
--- a/compiler2/asn1/OCSV.cc
+++ b/compiler2/asn1/OCSV.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/OCSV.hh b/compiler2/asn1/OCSV.hh
index a9618edbc..abaae0f04 100644
--- a/compiler2/asn1/OCSV.hh
+++ b/compiler2/asn1/OCSV.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Object.cc b/compiler2/asn1/Object.cc
index 38d4d3296..21751cdb5 100644
--- a/compiler2/asn1/Object.cc
+++ b/compiler2/asn1/Object.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Object.hh b/compiler2/asn1/Object.hh
index 3a801a8c2..98027d7cf 100644
--- a/compiler2/asn1/Object.hh
+++ b/compiler2/asn1/Object.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Object0.hh b/compiler2/asn1/Object0.hh
index 310fd65db..3339107bc 100644
--- a/compiler2/asn1/Object0.hh
+++ b/compiler2/asn1/Object0.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Ref.cc b/compiler2/asn1/Ref.cc
index 0c7b52f7b..7c92d288b 100644
--- a/compiler2/asn1/Ref.cc
+++ b/compiler2/asn1/Ref.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Ref.hh b/compiler2/asn1/Ref.hh
index ef8686ca2..77bf44cde 100644
--- a/compiler2/asn1/Ref.hh
+++ b/compiler2/asn1/Ref.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/TableConstraint.cc b/compiler2/asn1/TableConstraint.cc
index fd6a820b9..42b6267e5 100644
--- a/compiler2/asn1/TableConstraint.cc
+++ b/compiler2/asn1/TableConstraint.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/TableConstraint.hh b/compiler2/asn1/TableConstraint.hh
index d89b24738..188083d13 100644
--- a/compiler2/asn1/TableConstraint.hh
+++ b/compiler2/asn1/TableConstraint.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Tag.cc b/compiler2/asn1/Tag.cc
index 72b6c6409..9da124588 100644
--- a/compiler2/asn1/Tag.cc
+++ b/compiler2/asn1/Tag.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Tag.hh b/compiler2/asn1/Tag.hh
index 00b0eb82a..e9dd5e400 100644
--- a/compiler2/asn1/Tag.hh
+++ b/compiler2/asn1/Tag.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/TokenBuf.cc b/compiler2/asn1/TokenBuf.cc
index 4435280be..90babcdb8 100644
--- a/compiler2/asn1/TokenBuf.cc
+++ b/compiler2/asn1/TokenBuf.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/TokenBuf.hh b/compiler2/asn1/TokenBuf.hh
index a53f8490f..2f34defed 100644
--- a/compiler2/asn1/TokenBuf.hh
+++ b/compiler2/asn1/TokenBuf.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/Type_parse.cc b/compiler2/asn1/Type_parse.cc
index f3b3fbe58..edf2d6802 100644
--- a/compiler2/asn1/Type_parse.cc
+++ b/compiler2/asn1/Type_parse.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/asn1.hh b/compiler2/asn1/asn1.hh
index bef4c7eba..957d1310c 100644
--- a/compiler2/asn1/asn1.hh
+++ b/compiler2/asn1/asn1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/asn1_preparser.h b/compiler2/asn1/asn1_preparser.h
index 5d41eedb6..3be85a9cf 100644
--- a/compiler2/asn1/asn1_preparser.h
+++ b/compiler2/asn1/asn1_preparser.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/asn1/asn1_preparser.l b/compiler2/asn1/asn1_preparser.l
index f15099c47..ede9eca48 100644
--- a/compiler2/asn1/asn1_preparser.l
+++ b/compiler2/asn1/asn1_preparser.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/compiler2/asn1/asn1la.l b/compiler2/asn1/asn1la.l
index 244302f29..63dba4887 100644
--- a/compiler2/asn1/asn1la.l
+++ b/compiler2/asn1/asn1la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -378,8 +378,6 @@ TITAN_ID [A-Za-z0-9 \-_]+
 }
 
 <<EOF>> {
-  Location loc(asn1_infile, yylineno);
-  loc.error("Unterminated `--' (missing newline at the end of file)");
   yy_pop_state();
   return 0;
 }
diff --git a/compiler2/asn1/asn1p.y b/compiler2/asn1/asn1p.y
index 8b7da2e1b..9131608e2 100644
--- a/compiler2/asn1/asn1p.y
+++ b/compiler2/asn1/asn1p.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/compiler2/asn1/asn1p_old.h b/compiler2/asn1/asn1p_old.h
index 146d57e8f..c328ff567 100644
--- a/compiler2/asn1/asn1p_old.h
+++ b/compiler2/asn1/asn1p_old.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/compiler.1 b/compiler2/compiler.1
index 2df9a3418..9739703d7 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 "[\| " \-abcdfgijlLpqrRsStuwxXyY " \|]"
+.RB "[\| " \-abcdfgijlLMpqrRsStuwxXyY " \|]"
 .RB "[\| " \-V
 .IR " verb_level" " \|]"
 .RB "[\| " \-K
@@ -141,6 +141,22 @@ Usage of this option a bit enlarges the size of the generated code and slightly
 reduces execution speed. This flag is not recommended when the TTCN-3 test
 suite is used for load generation.
 .TP
+.B \-M
+Allows the use of the value
+.B omit
+in template lists and complemented template lists (legacy behavior).
+If set, an omitted field will match a template list, if the value
+.B omit
+appears in the list, and it will match a complemented template list, if
+.B omit
+is not in the list (the
+.B ifpresent
+attribute can still be used for matching omitted fields). This also affects the
+.B ispresent
+operation and the
+.B present
+template restriction accordingly.
+.TP
 .BI \-o " dir"
 The output files (including Test Port skeletons) will be placed into
 the directory specified by
@@ -385,7 +401,7 @@ ITU-T Recommendations X.680-683:
 .SH AUTHOR
 This manpage is written by Janos Zoltan Szabo, Ericsson Telecom AB
 .br
-Copyright (c) 2000-2014 Ericsson Telecom AB
+Copyright (c) 2000-2015 Ericsson Telecom AB
 .br
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
diff --git a/compiler2/datatypes.h b/compiler2/datatypes.h
index a49fe4be8..66c7ff038 100644
--- a/compiler2/datatypes.h
+++ b/compiler2/datatypes.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -36,11 +36,12 @@ typedef enum {
 typedef enum {
   JSON_NONE       = 0x00, // no value type set (default)
   JSON_NUMBER     = 0x01, // integer and float
-  JSON_STRING     = 0x02, // all string types, the verdict type and enumerated values
-  JSON_LITERAL    = 0x04, // boolean (true or false)
-  JSON_OBJECT     = 0x08, // records, sets and unions
-  JSON_ARRAY      = 0x10, // record of and set of
-  JSON_ANY_VALUE  = 0x1F  // unions with the "as value" coding instruction
+  JSON_STRING     = 0x02, // all string types, the objid type, the verdict type and enumerated values
+  JSON_BOOLEAN    = 0x04, // boolean (true or false)
+  JSON_OBJECT     = 0x08, // records, sets, unions and the anytype
+  JSON_ARRAY      = 0x10, // record of, set of and array
+  JSON_NULL       = 0x20, // ASN.1 null type
+  JSON_ANY_VALUE  = 0x3F  // unions with the "as value" coding instruction
 } json_value_t;
 
 /* Compound type definitions */
@@ -68,6 +69,7 @@ typedef struct {
   unsigned short jsonValueType;
   boolean xerAttribute;
   boolean jsonOmitAsNull;
+  boolean jsonMetainfoUnbound;
   const char* jsonAlias;
   const char* jsonDefaultValue;
   /** true if the field is a record-of or set-of with optimized memory allocation */
@@ -105,6 +107,7 @@ typedef struct {
   boolean has_opentypes;
   boolean opentype_outermost;
   Opentype_t *ot;
+  boolean isOptional; /**< this structure is an optional field in a record/set */
 } struct_def;
 
 /** record of, set of descriptor for code generation */
diff --git a/compiler2/encdec.c b/compiler2/encdec.c
index 4d5362d21..64bd7faed 100644
--- a/compiler2/encdec.c
+++ b/compiler2/encdec.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/encdec.h b/compiler2/encdec.h
index 3f9f88b79..9a107ae7c 100644
--- a/compiler2/encdec.h
+++ b/compiler2/encdec.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/enum.c b/compiler2/enum.c
index 15ad0b576..1d58b2e87 100644
--- a/compiler2/enum.c
+++ b/compiler2/enum.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -298,6 +298,16 @@ void defEnumClass(const enum_def *edef, output_struct *output)
   def = mputstr(def,
     "int as_int() const { return enum2int(enum_value); }\n"
     "void from_int(int p_val) { *this = p_val; }\n");
+  
+  /* TTCN-3 predefined function int2enum() */
+  def = mputstr(def, "void int2enum(int int_val);\n");
+  src = mputprintf(src, "void %s::int2enum(int int_val)\n"
+    "{\n"
+    "if (!is_valid_enum(int_val)) "
+    "TTCN_error(\"Assigning invalid numeric value %%d to a variable of "
+    "enumerated type %s.\", int_val);\n"
+    "enum_value = (%s)int_val;\n"
+    "}\n\n", name, dispname, enum_type);
 
   /* miscellaneous members */
   def = mputprintf(def, "operator %s() const;\n", enum_type);
@@ -354,12 +364,36 @@ void defEnumClass(const enum_def *edef, output_struct *output)
      "void %s::set_param(Module_Param& param)\n"
      "{\n"
      "  param.basic_check(Module_Param::BC_VALUE, \"enumerated value\");\n"
-     "  if (param.get_type()!=Module_Param::MP_Enumerated) param.type_error(\"enumerated value\", \"%s\");\n"
-     "  enum_value = str_to_enum(param.get_enumerated());\n"
-     "  if (!is_valid_enum(enum_value)) {\n "
+     "  Module_Param_Ptr mp = &param;\n"
+     "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+     /* enumerated values are also treated as references (containing only 1 name) by the parser;
+        first check if the reference name is a valid enumerated value */
+     "    char* enum_name = param.get_enumerated();\n"
+     /* get_enumerated() returns NULL if the reference contained more than one name */
+     "    enum_value = (enum_name != NULL) ? str_to_enum(enum_name) : %s;\n"
+     "    if (is_valid_enum(enum_value)) {\n"
+     "      return;\n"
+     "    }\n"
+     /* it's not a valid enum value => dereference it! */
+     "    mp = param.get_referenced_param();\n"
+     "  }\n"
+     "  if (mp->get_type()!=Module_Param::MP_Enumerated) param.type_error(\"enumerated value\", \"%s\");\n"
+     "  enum_value = str_to_enum(mp->get_enumerated());\n"
+     "  if (!is_valid_enum(enum_value)) {\n"
      "    param.error(\"Invalid enumerated value for type %s.\");\n"
      "  }\n"
-     "}\n\n", name, dispname, dispname);
+     "}\n\n", name, unknown_value, dispname, dispname);
+  
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf
+    (src,
+    "Module_Param* %s::get_param(Module_Param_Name& /* param_name */) const\n"
+    "{\n"
+    "  if (!is_bound()) {\n"
+    "    return new Module_Param_Unbound();\n"
+    "  }\n"
+    "  return new Module_Param_Enumerated(mcopystr(enum_to_str(enum_value)));\n"
+    "}\n\n", name);
 
   /* encoders/decoders */
   def = mputstr(def, "void encode_text(Text_Buf& text_buf) const;\n");
@@ -808,9 +842,10 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
   char *def = NULL, *src = NULL;
   const char *name = edef->name, *dispname = edef->dispname;
 
-  char *enum_type, *unbound_value;
+  char *enum_type, *unbound_value, *unknown_value;
   enum_type = mprintf("%s::enum_type", name);
   unbound_value = mprintf("%s::UNBOUND_VALUE", name);
+  unknown_value = mprintf("%s::UNKNOWN_VALUE", name);
 
   /* Class declaration */
   output->header.class_decls = mputprintf(output->header.class_decls,
@@ -1054,10 +1089,10 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "}\n\n", name, name, name);
 
   /* match operators */
-  def = mputprintf(def, "boolean match(%s other_value) const;\n", enum_type);
+  def = mputprintf(def, "boolean match(%s other_value, boolean legacy = FALSE) "
+    "const;\n", enum_type);
   src = mputprintf(src,
-    "boolean %s_template::match(%s other_value) "
-    "const\n"
+    "boolean %s_template::match(%s other_value, boolean) const\n"
     "{\n"
     "switch (template_selection) {\n"
     "case SPECIFIC_VALUE:\n"
@@ -1081,10 +1116,10 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "return FALSE;\n"
     "}\n\n", name, enum_type, dispname);
 
-  def = mputprintf(def, "boolean match(const %s& other_value) const;\n",
-                   name);
+  def = mputprintf(def, "boolean match(const %s& other_value, boolean legacy "
+    "= FALSE) const;\n", name);
   src = mputprintf(src,
-    "boolean %s_template::match(const %s& other_value) const\n"
+    "boolean %s_template::match(const %s& other_value, boolean) const\n"
     "{\n"
     "if (other_value.enum_value == %s) "
     "TTCN_error(\"Matching a template of enumerated type %s with an unbound "
@@ -1143,8 +1178,8 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
       "void copy_value(const Base_Type* other_value);\n"
       "Base_Template* clone() const;\n"
       "const TTCN_Typedescriptor_t* get_descriptor() const;\n"
-      "boolean matchv(const Base_Type* other_value) const;\n"
-      "void log_matchv(const Base_Type* match_value) const;\n");
+      "boolean matchv(const Base_Type* other_value, boolean legacy) const;\n"
+      "void log_matchv(const Base_Type* match_value, boolean legacy) const;\n");
     src = mputprintf(src,
       "void %s_template::valueofv(Base_Type* value) const "
         "{ *(static_cast<%s*>(value)) = valueof(); }\n"
@@ -1156,10 +1191,12 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
         "{ return new %s_template(*this); }\n"
       "const TTCN_Typedescriptor_t* %s_template::get_descriptor() const "
         "{ return &%s_descr_; }\n"
-      "boolean %s_template::matchv(const Base_Type* other_value) const "
-        "{ return match(*(static_cast<const %s*>(other_value))); }\n"
-      "void %s_template::log_matchv(const Base_Type* match_value) const "
-        " { log_match(*(static_cast<const %s*>(match_value))); }\n",
+      "boolean %s_template::matchv(const Base_Type* other_value, "
+        "boolean legacy) const "
+        "{ return match(*(static_cast<const %s*>(other_value)), legacy); }\n"
+      "void %s_template::log_matchv(const Base_Type* match_value, "
+        "boolean legacy) const "
+        " { log_match(*(static_cast<const %s*>(match_value)), legacy); }\n",
       name, name,
       name,
       name, name,
@@ -1196,11 +1233,10 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
      "log_ifpresent();\n"
      "}\n\n", name, name);
 
-  def = mputprintf(def, "void log_match(const %s& match_value) const;\n",
-                   name);
+  def = mputprintf(def, "void log_match(const %s& match_value, "
+    "boolean legacy = FALSE) const;\n", name);
   src = mputprintf(src,
-    "void %s_template::log_match(const %s& match_value) "
-    "const\n"
+    "void %s_template::log_match(const %s& match_value, boolean) const\n"
     "{\n"
     "match_value.log();\n"
     "TTCN_Logger::log_event_str(\" with \");\n"
@@ -1267,18 +1303,18 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "}\n\n", name, enum_type, name, dispname, name, dispname);
 
   /* TTCN-3 ispresent() function */
-  def = mputstr(def, "boolean is_present() const;\n");
+  def = mputstr(def, "boolean is_present(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::is_present() const\n"
+    "boolean %s_template::is_present(boolean legacy) const\n"
     "{\n"
     "if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;\n"
-    "return !match_omit();\n"
+    "return !match_omit(legacy);\n"
     "}\n\n", name);
 
   /* match_omit() */
-  def = mputstr(def, "boolean match_omit() const;\n");
+  def = mputstr(def, "boolean match_omit(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::match_omit() const\n"
+    "boolean %s_template::match_omit(boolean legacy) const\n"
     "{\n"
     "if (is_ifpresent) return TRUE;\n"
     "switch (template_selection) {\n"
@@ -1287,10 +1323,12 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "return TRUE;\n"
     "case VALUE_LIST:\n"
     "case COMPLEMENTED_LIST:\n"
+    "if (legacy) {\n"
     "for (unsigned int i=0; i<value_list.n_values; i++)\n"
     "if (value_list.list_value[i].match_omit())\n"
     "return template_selection==VALUE_LIST;\n"
     "return template_selection==COMPLEMENTED_LIST;\n"
+    "} // else fall through\n"
     "default:\n"
     "return FALSE;\n"
     "}\n"
@@ -1303,7 +1341,22 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "void %s_template::set_param(Module_Param& param)\n"
     "{\n"
     "  param.basic_check(Module_Param::BC_TEMPLATE, \"enumerated template\");\n"
-    "  switch (param.get_type()) {\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    /* enumerated values are also treated as references (containing only 1 name) by the parser;
+       first check if the reference name is a valid enumerated value */
+    "    char* enum_name = param.get_enumerated();\n"
+    /* get_enumerated() returns NULL if the reference contained more than one name */
+    "    %s enum_val = (enum_name != NULL) ? %s::str_to_enum(enum_name) : %s;\n"
+    "    if (%s::is_valid_enum(enum_val)) {\n"
+    "      *this = enum_val;\n"
+    "      is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();\n"
+    "      return;\n"
+    "    }\n"
+    /* it's not a valid enum value => dereference it! */
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
+    "  switch (mp->get_type()) {\n"
     "  case Module_Param::MP_Omit:\n"
     "    *this = OMIT_VALUE;\n"
     "    break;\n"
@@ -1314,14 +1367,17 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "    *this = ANY_OR_OMIT;\n"
     "    break;\n"
     "  case Module_Param::MP_List_Template:\n"
-    "  case Module_Param::MP_ComplementList_Template:\n"
-    "    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); p_i++) {\n"
-    "      list_item(p_i).set_param(*param.get_elem(p_i));\n"
+    "  case Module_Param::MP_ComplementList_Template: {\n"
+    "    %s_template temp;\n"
+    "    temp.set_type(mp->get_type()==Module_Param::MP_List_Template ? "
+    "VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); p_i++) {\n"
+    "      temp.list_item(p_i).set_param(*mp->get_elem(p_i));\n"
     "    }\n"
-    "    break;\n"
+    "    *this = temp;\n"
+    "    break; }\n"
     "  case Module_Param::MP_Enumerated: {\n"
-    "    %s enum_val = %s::str_to_enum(param.get_enumerated());\n"
+    "    %s enum_val = %s::str_to_enum(mp->get_enumerated());\n"
     "    if (!%s::is_valid_enum(enum_val)) {\n"
     "      param.error(\"Invalid enumerated value for type %s.\");\n"
     "    }\n"
@@ -1330,15 +1386,61 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
     "  default:\n"
     "    param.type_error(\"enumerated template\", \"%s\");\n"
     "  }\n"
-    "  is_ifpresent = param.get_ifpresent();\n"
-    "}\n\n", name, enum_type, name, name, dispname, dispname);
+    "  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();\n"
+    "}\n\n", name, enum_type, name, unknown_value, name
+    , name, enum_type, name, name, dispname, dispname);
+
+  /* get_param() */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf
+    (src,
+    "Module_Param* %s_template::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  Module_Param* mp = NULL;\n"
+    "  switch (template_selection) {\n"
+    "  case UNINITIALIZED_TEMPLATE:\n"
+    "    mp = new Module_Param_Unbound();\n"
+    "    break;\n"
+    "  case OMIT_VALUE:\n"
+    "    mp = new Module_Param_Omit();\n"
+    "    break;\n"
+    "  case ANY_VALUE:\n"
+    "    mp = new Module_Param_Any();\n"
+    "    break;\n"
+    "  case ANY_OR_OMIT:\n"
+    "    mp = new Module_Param_AnyOrNone();\n"
+    "    break;\n"
+    "  case SPECIFIC_VALUE:\n"
+    "    mp = new Module_Param_Enumerated(mcopystr(%s::enum_to_str(single_value)));\n"
+    "    break;\n"
+    "  case VALUE_LIST:\n"
+    "  case COMPLEMENTED_LIST: {\n"
+    "    if (template_selection == VALUE_LIST) {\n"
+    "      mp = new Module_Param_List_Template();\n"
+    "    }\n"
+    "    else {\n"
+    "      mp = new Module_Param_ComplementList_Template();\n"
+    "    }\n"
+    "    for (size_t i = 0; i < value_list.n_values; ++i) {\n"
+    "      mp->add_elem(value_list.list_value[i].get_param(param_name));\n"
+    "    }\n"
+    "    break; }\n"
+    "  default:\n"
+    "    break;\n"
+    "  }\n"
+    "  if (is_ifpresent) {\n"
+    "    mp->set_ifpresent();\n"
+    "  }\n"
+    "  return mp;\n"
+    "}\n\n", name, name);
 
   if (!use_runtime_2) {
     /* check template restriction */
     def = mputstr(def, "void check_restriction(template_res t_res, "
-      "const char* t_name=NULL) const;\n");
+      "const char* t_name=NULL, boolean legacy = FALSE) const;\n");
     src = mputprintf(src,
-      "void %s_template::check_restriction(template_res t_res, const char* t_name) const\n"
+      "void %s_template::check_restriction(template_res t_res, const char* t_name,\n"
+      "boolean legacy) const\n"
       "{\n"
       "if (template_selection==UNINITIALIZED_TEMPLATE) return;\n"
       "switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {\n"
@@ -1350,7 +1452,7 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
         "template_selection==SPECIFIC_VALUE)) return;\n"
       "break;\n"
       "case TR_PRESENT:\n"
-      "if (!match_omit()) return;\n"
+      "if (!match_omit(legacy)) return;\n"
       "break;\n"
       "default:\n"
       "return;\n"
@@ -1370,4 +1472,5 @@ void defEnumTemplate(const enum_def *edef, output_struct *output)
 
   Free(enum_type);
   Free(unbound_value);
+  Free(unknown_value);
 }
diff --git a/compiler2/enum.h b/compiler2/enum.h
index 0c460df2b..f1b21221c 100644
--- a/compiler2/enum.h
+++ b/compiler2/enum.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/error.h b/compiler2/error.h
index 687e9ffed..03602eb66 100644
--- a/compiler2/error.h
+++ b/compiler2/error.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/functionref.c b/compiler2/functionref.c
index f81764b20..b7d1a720a 100644
--- a/compiler2/functionref.c
+++ b/compiler2/functionref.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -275,6 +275,13 @@ void defFunctionrefClass(const funcref_def *fdef, output_struct *output)
     "{\n"
     "  param.error(\"Not supported.\");\n"
     "}\n\n", name);
+  
+  /* get_param */
+  def = mputstr(def,"Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,"Module_Param* %s::get_param(Module_Param_Name& /* param_name */) const\n"
+    "{\n"
+    "  return NULL;\n"
+    "}\n\n", name);
 
   /* encode_text / decode_text */
   def = mputstr(def,"void encode_text(Text_Buf& text_buf) const;\n");
@@ -508,9 +515,9 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
 
   /* match functions */
   def = mputprintf(def,"boolean match(%s::function_pointer "
-      "other_value) const;\n", name);
+      "other_value, boolean legacy = FALSE) const;\n", name);
   src = mputprintf(src,"boolean %s_template::match(%s::function_pointer "
-      "other_value) const\n"
+      "other_value, boolean) const\n"
     "{\n"
     "switch(template_selection) {\n"
     "case SPECIFIC_VALUE:\n"
@@ -532,11 +539,12 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
     "};\n"
     "return FALSE;\n"
     "}\n\n", name, name, dispname);
-  def = mputprintf(def,"boolean match(const %s& other_value) const;\n", name);
-  src = mputprintf(src,"boolean %s_template::match(const %s& other_value) "
-      "const\n"
+  def = mputprintf(def,"boolean match(const %s& other_value, boolean legacy "
+    "= FALSE) const;\n", name);
+  src = mputprintf(src,"boolean %s_template::match(const %s& other_value, "
+    "boolean) const\n"
     "{\n"
-	"  if (!other_value.is_bound()) return FALSE;\n"
+    "  if (!other_value.is_bound()) return FALSE;\n"
     "return match(other_value.referred_function);\n"
     "}\n\n", name, name);
 
@@ -588,8 +596,8 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
       "void copy_value(const Base_Type* other_value);\n"
       "Base_Template* clone() const;\n"
       "const TTCN_Typedescriptor_t* get_descriptor() const;\n"
-      "boolean matchv(const Base_Type* other_value) const;\n"
-      "void log_matchv(const Base_Type* match_value) const;\n");
+      "boolean matchv(const Base_Type* other_value, boolean legacy) const;\n"
+      "void log_matchv(const Base_Type* match_value, boolean legacy) const;\n");
     src = mputprintf(src,
       "void %s_template::valueofv(Base_Type* value) const "
         "{ *(static_cast<%s*>(value)) = valueof(); }\n"
@@ -601,10 +609,12 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
         "{ return new %s_template(*this); }\n"
       "const TTCN_Typedescriptor_t* %s_template::get_descriptor() const "
         "{ return &%s_descr_; }\n"
-      "boolean %s_template::matchv(const Base_Type* other_value) const "
-        "{ return match(*(static_cast<const %s*>(other_value))); }\n"
-      "void %s_template::log_matchv(const Base_Type* match_value) const "
-        " { log_match(*(static_cast<const %s*>(match_value))); }\n",
+      "boolean %s_template::matchv(const Base_Type* other_value, "
+        "boolean legacy) const "
+        "{ return match(*(static_cast<const %s*>(other_value)), legacy); }\n"
+      "void %s_template::log_matchv(const Base_Type* match_value, "
+        "boolean legacy) const "
+        " { log_match(*(static_cast<const %s*>(match_value)), legacy); }\n",
       name, name,
       name,
       name, name,
@@ -639,14 +649,15 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
     "}\n\n", name, fat_string);
 
   /* log_match function */
-  def = mputprintf(def,"void log_match(const %s& match_value) const;\n", name);
-  src = mputprintf(src,"void %s_template::log_match(const %s& match_value) "
-      "const\n"
+  def = mputprintf(def,"void log_match(const %s& match_value, "
+    "boolean legacy = FALSE) const;\n", name);
+  src = mputprintf(src,"void %s_template::log_match(const %s& match_value, "
+    "boolean legacy) const\n"
     "{\n"
     "log();\n"
     "TTCN_Logger::log_event_str(\" with \");\n"
     "match_value.log();\n"
-    "if(match(match_value)) TTCN_Logger::log_event_str(\" matched\");\n"
+    "if(match(match_value, legacy)) TTCN_Logger::log_event_str(\" matched\");\n"
     "else TTCN_Logger::log_event_str(\" unmatched\");\n"
     "}\n\n", name, name);
 
@@ -716,18 +727,18 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
   src = mputstr(src,"}\n\n");
 
   /* TTCN-3 ispresent() function */
-  def = mputstr(def, "boolean is_present() const;\n");
+  def = mputstr(def, "boolean is_present(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::is_present() const\n"
+    "boolean %s_template::is_present(boolean legacy) const\n"
     "{\n"
     "if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;\n"
-    "return !match_omit();\n"
+    "return !match_omit(legacy);\n"
     "}\n\n", name);
 
   /* match_omit() */
-  def = mputstr(def, "boolean match_omit() const;\n");
+  def = mputstr(def, "boolean match_omit(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::match_omit() const\n"
+    "boolean %s_template::match_omit(boolean legacy) const\n"
     "{\n"
     "if (is_ifpresent) return TRUE;\n"
     "switch (template_selection) {\n"
@@ -736,10 +747,12 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
     "return TRUE;\n"
     "case VALUE_LIST:\n"
     "case COMPLEMENTED_LIST:\n"
+    "if (legacy) {\n"
     "for (unsigned int i=0; i<value_list.n_values; i++)\n"
     "if (value_list.list_value[i].match_omit())\n"
     "return template_selection==VALUE_LIST;\n"
     "return template_selection==COMPLEMENTED_LIST;\n"
+    "} // else fall through\n"
     "default:\n"
     "return FALSE;\n"
     "}\n"
@@ -752,14 +765,21 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
     "{\n"
     "  param.error(\"Not supported.\");\n"
     "}\n\n", name);
+  
+  /* get_param */
+  def = mputstr(def,"Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,"Module_Param* %s_template::get_param(Module_Param_Name& /* param_name */) const\n"
+    "{\n"
+    "  return NULL;\n"
+    "}\n\n", name);
 
   if (!use_runtime_2) {
     /* check template restriction */
     def = mputstr(def, "void check_restriction(template_res t_res, "
-      "const char* t_name=NULL) const;\n");
+      "const char* t_name=NULL, boolean legacy = FALSE) const;\n");
     src = mputprintf(src,
       "void %s_template::check_restriction"
-        "(template_res t_res, const char* t_name) const\n"
+        "(template_res t_res, const char* t_name, boolean legacy) const\n"
       "{\n"
       "if (template_selection==UNINITIALIZED_TEMPLATE) return;\n"
       "switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {\n"
@@ -771,7 +791,7 @@ void defFunctionrefTemplate(const funcref_def *fdef, output_struct *output)
         "template_selection==SPECIFIC_VALUE)) return;\n"
       "break;\n"
       "case TR_PRESENT:\n"
-      "if (!match_omit()) return;\n"
+      "if (!match_omit(legacy)) return;\n"
       "break;\n"
       "default:\n"
       "return;\n"
diff --git a/compiler2/functionref.h b/compiler2/functionref.h
index cdd9f4518..9a8421b21 100644
--- a/compiler2/functionref.h
+++ b/compiler2/functionref.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/main.cc b/compiler2/main.cc
index 7a0d19b5e..c4e8ff387 100644
--- a/compiler2/main.cc
+++ b/compiler2/main.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -71,7 +71,7 @@ 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;
+  force_gen_seof = FALSE, omit_in_value_list = FALSE;
 
 // Default code splitting mode is set to 'no splitting'.
 CodeGenHelper::split_type code_splitting_mode = CodeGenHelper::SPLIT_NONE;
@@ -349,7 +349,9 @@ static bool check_file_list(const char *file_name, module_struct *module_list,
 
 static boolean is_valid_asn1_filename(const char* file_name)
 {
-  if (0 == strchr(file_name, '-' )) {
+  // only check the actual file name, not the whole path
+  const char* file_name_start = strrchr(file_name, '/');
+  if (0 == strchr(file_name_start != NULL ? file_name_start : file_name, '-' )) {
     return TRUE;
   }
   return FALSE;
@@ -373,9 +375,10 @@ static void usage()
     "	-g:		emulate GCC error/warning message format\n"
     "	-i:		use only line numbers in error/warning messages\n"
     "	-j:		disable JSON encoder/decoder functions\n"
+    "	-K file:	enable selective code coverage\n"
     "	-l:		include source line info in C++ code\n"
     "	-L:		add source line info for logging\n"
-    "	-K file:	enable selective code coverage\n"
+    "	-M:		allow 'omit' in template value lists (legacy behavior)\n"
     "	-o dir:		output files will be placed into dir\n"
     "	-p:		parse only (no semantic check or code generation)\n"
     "	-P pduname:	define top-level pdu\n"
@@ -393,7 +396,7 @@ static void usage()
     "	-x:		disable TEXT encoder/decoder functions\n"
     "	-X:		disable XER encoder/decoder functions\n"
     "	-y:		disable subtype checking\n"
-    "	-Y:		Enforces legacy behaviour of the \"out\" function parameters (see refguide)\n"
+    "	-Y:		enforce legacy behaviour for \"out\" function parameters (see refguide)\n"
     "	-z file:	enable profiling and code coverage for the TTCN-3 files in the argument\n"
     "	-T file:	force interpretation of file as TTCN-3 module\n"
     "	-A file:	force interpretation of file as ASN.1 module\n"
@@ -452,7 +455,7 @@ 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,
-    errflag = false, print_usage = false, ttcn2json = false;
+    Mflag = false, errflag = false, print_usage = false, ttcn2json = false;
 
   CodeGenHelper cgh;
 
@@ -544,7 +547,7 @@ int main(int argc, char *argv[])
 
   if (!ttcn2json) {
     for ( ; ; ) {
-      int c = getopt(argc, argv, "aA:C:K:LP:T:V:bcdfFgilo:YpqQ:rRs0StuU:vwxXjyz:-");
+      int c = getopt(argc, argv, "aA:C:K:LP:T:V:bcdfFgilMo:YpqQ:rRs0StuU:vwxXjyz:-");
       if (c == -1) break;
       switch (c) {
       case 'a':
@@ -707,6 +710,10 @@ int main(int argc, char *argv[])
         SET_FLAG(F);
         force_gen_seof = TRUE;
         break;
+      case 'M':
+        SET_FLAG(M);
+        omit_in_value_list = TRUE;
+        break;
 
       case 'Q': {
         long max_errs;
@@ -751,7 +758,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) {
+        Uflag || yflag || Kflag || jflag || zflag || Fflag || Mflag) {
         errflag = true;
         print_usage = true;
       }
diff --git a/compiler2/main.hh b/compiler2/main.hh
index 4e522034a..10192d71d 100644
--- a/compiler2/main.hh
+++ b/compiler2/main.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -35,7 +35,8 @@ extern boolean generate_skeleton, force_overwrite, include_line_info,
   include_location_info, duplicate_underscores, parse_only, semantic_check_only,
   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;
+  implicit_json_encoding, json_refs_for_all_types, force_gen_seof,
+  omit_in_value_list;
 
 extern const char *expected_platform;
 
diff --git a/compiler2/makefile.c b/compiler2/makefile.c
index 4252d22e3..3bf80cfe5 100644
--- a/compiler2/makefile.c
+++ b/compiler2/makefile.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -207,6 +207,7 @@ struct makefile_struct {
   char *code_splitting_mode;
   boolean coverage;
   char *tcov_file_name;
+  struct string_list* profiled_file_list; /* not owned */
   boolean library;
   boolean linkingStrategy;
   boolean hierarchical;
@@ -236,6 +237,7 @@ struct makefile_struct {
   boolean addsourcelineinfo;
   boolean suppresswarnings;
   boolean outparamboundness;
+  boolean omit_in_value_list;
   struct string_list* solspeclibraries; /* not owned */
   struct string_list* sol8speclibraries; /* not owned */
   struct string_list* linuxspeclibraries; /* not owned */
@@ -289,6 +291,7 @@ static void init_makefile_struct(struct makefile_struct *makefile)
   makefile->code_splitting_mode = NULL;
   makefile->coverage = FALSE;
   makefile->tcov_file_name = NULL;
+  makefile->profiled_file_list = NULL;
   makefile->library = FALSE;
   makefile->linkingStrategy = FALSE;
   makefile->hierarchical = FALSE;
@@ -297,6 +300,7 @@ static void init_makefile_struct(struct makefile_struct *makefile)
   makefile->prep_includes = NULL;
   makefile->prep_defines = NULL;
   makefile->outparamboundness = FALSE;
+  makefile->omit_in_value_list = FALSE;
   makefile->solspeclibraries = NULL;
   makefile->sol8speclibraries = NULL;
   makefile->linuxspeclibraries = NULL;
@@ -472,6 +476,16 @@ static void dump_makefile_struct(const struct makefile_struct *makefile,
   DEBUG(level + 1, "Code coverage file: %s",
     makefile->tcov_file_name != NULL ?
       makefile->tcov_file_name : "<unknown>");
+  if (makefile->profiled_file_list) {
+    char* lists = mcopystr(makefile->profiled_file_list->str);
+    struct string_list* iter = makefile->profiled_file_list->next;
+    while(iter != NULL) {
+      lists = mputprintf(lists, " %s", iter->str);
+      iter = iter->next;
+    }
+    DEBUG(level + 1, "Profiled file list(s): %s", lists);
+    Free(lists);
+  }
 #ifdef COVERAGE_BUILD
   DEBUG(level + 1, "Enable coverage: %s", makefile->coverage ? "yes" : "no");
 #endif
@@ -1961,7 +1975,7 @@ 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\n\n"
+          "COMPILER_FLAGS =%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
@@ -1997,7 +2011,9 @@ static void print_makefile(struct makefile_struct *makefile)
           /*(makefile->addsourcelineinfo ? " -L" : ""),*/
           (makefile->suppresswarnings ? " -w" : ""),
           (makefile->outparamboundness ? " -Y" : ""),
+          (makefile->omit_in_value_list ? " -M" : ""),
           (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"),
@@ -2169,6 +2185,29 @@ static void print_makefile(struct makefile_struct *makefile)
         }
       }
     }
+    if (makefile->profiled_file_list) {
+      if (makefile->profiled_file_list->next && !makefile->central_storage) {
+        // merge all profiled file lists into one list
+        fprintf(fp, "\n\n"
+                "# Text file containing the list of profiled TTCN-3 files of "
+                "this project:\n"
+                "PROFILED_FILE_LIST = %s.merged\n"
+                "PROFILED_FILE_LIST_SEGMENTS =",
+                makefile->profiled_file_list->str);
+        struct string_list* iter = makefile->profiled_file_list;
+        while(iter != NULL) {
+          fprintf(fp, " %s", iter->str);
+          iter = iter->next;
+        }
+      }
+      else {
+        // only one profiled file list is needed
+        fprintf(fp, "\n\n"
+                "# Text file containing the list of profiled TTCN-3 files of "
+                "this project:\n"
+                "PROFILED_FILE_LIST = %s", makefile->profiled_file_list->str);
+      }
+    }
     fputs("\n\n"
           "# C++ source & header files generated from the TTCN-3 & ASN.1 "
           "modules of\n"
@@ -3040,7 +3079,7 @@ static void print_makefile(struct makefile_struct *makefile)
        }
        free_string2_list(head);
 
-       struct string_list* act_head = getExternalLibPathes(makefile->project_name);
+       struct string_list* act_head = getExternalLibPaths(makefile->project_name);
        struct string_list* act_ext_elem = act_head;
        while (act_ext_elem) {
          if (act_ext_elem->str) {
@@ -3099,7 +3138,7 @@ static void print_makefile(struct makefile_struct *makefile)
           act_elem = act_elem->next;
         }
         free_string2_list(head);
-        struct string_list* act_head = getExternalLibPathes(makefile->project_name);
+        struct string_list* act_head = getExternalLibPaths(makefile->project_name);
         struct string_list* act_ext_elem = act_head;
         while (act_ext_elem) {
           if (act_ext_elem->str) {
@@ -3210,6 +3249,8 @@ static void print_makefile(struct makefile_struct *makefile)
             "preprocess: $(PREPROCESSED_TTCN3_MODULES) ;\n\n", fp);
     }
 
+    boolean merge_profiled_file_lists = makefile->profiled_file_list
+      && makefile->profiled_file_list->next && !makefile->central_storage;
     if (makefile->central_storage) {
       boolean is_first = TRUE;
       fprintf(fp, "$(GENERATED_SOURCES) $(GENERATED_HEADERS):%s compile-all compile ",
@@ -3275,8 +3316,14 @@ static void print_makefile(struct makefile_struct *makefile)
           "endif\n"
           "endif",fp);
         }
+        if (makefile->profiled_file_list) {
+          fputs("\n\n"
+            "compile:: $(PROFILED_FILE_LIST)\n"
+            "\ttouch $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) "
+            "$(ASN1_MODULES)", fp);
+        }
         fprintf(fp, "\n\n"
-        "compile: $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) "
+        "compile:%s $(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) "
         "$(ASN1_MODULES)\n"
         "\t@echo \"compiling \"'$(patsubst %%.tpd, %%, $(TPD))';\n"
         "\t$(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) \\\n"
@@ -3284,6 +3331,7 @@ static void print_makefile(struct makefile_struct *makefile)
         "\t$(PREPROCESSED_TTCN3_MODULES) $(BASE_PREPROCESSED_TTCN3_MODULES) %s\\\n"
         "\t$(ASN1_MODULES) $(BASE_ASN1_MODULES) %s - $?\n"
         "\ttouch $@\n\n",
+        makefile->profiled_file_list ? ":" : "",
         makefile->linkingStrategy ? "$(BASE2_TTCN3_MODULES) ":"",
         makefile->linkingStrategy ? "$(BASE2_PREPROCESSED_TTCN3_MODULES) ":"",
         makefile->linkingStrategy ? "$(BASE2_ASN1_MODULES)":"");
@@ -3304,7 +3352,7 @@ static void print_makefile(struct makefile_struct *makefile)
         makefile->linkingStrategy ? "$(BASE2_TTCN3_MODULES) ":"",
         makefile->linkingStrategy ? "$(BASE2_PREPROCESSED_TTCN3_MODULES) ":"",
         makefile->linkingStrategy ? "$(BASE2_ASN1_MODULES) ":"");
-      } 
+      }
       else {
         fprintf(fp, "\n"
         "\t@if [ ! -f $@ ]; then %s compile-all; $(MAKE) compile-all; fi\n", rm_command);
@@ -3342,14 +3390,20 @@ static void print_makefile(struct makefile_struct *makefile)
           "endif",fp);
         }
 
+        if (makefile->profiled_file_list) {
+          fputs("\n\n"
+            "compile:: $(PROFILED_FILE_LIST)\n"
+            "\ttouch $(TTCN3_MODULES) $(ASN1_MODULES)", fp);
+        }
         fprintf(fp, "\n\n"
-        "compile: $(TTCN3_MODULES) $(ASN1_MODULES)\n"
+        "compile:%s $(TTCN3_MODULES) $(ASN1_MODULES)\n"
         "\t@echo \"compiling \"'$(patsubst %%.tpd, %%, $(TPD))';\n"
         "\t$(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) \\\n"
         "\t$(TTCN3_MODULES) $(BASE_TTCN3_MODULES) %s\\\n"
         "\t$(ASN1_MODULES) $(BASE_ASN1_MODULES) %s\\\n"
         "\t- $?\n"
         "\ttouch $@\n\n",
+        makefile->profiled_file_list ? ":" : "",
         makefile->linkingStrategy ? "$(BASE2_TTCN3_MODULES) " : "",
         makefile->linkingStrategy ? "$(BASE2_ASN1_MODULES) " : "");
         fprintf(fp,
@@ -3393,11 +3447,14 @@ static void print_makefile(struct makefile_struct *makefile)
                     "\t@exit 2\n\n", base_dir->dir_name);
           }
         }
-    } 
+    }
     else { /* not central storage */
       fprintf(fp, "$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile\n"
               "\t@if [ ! -f $@ ]; then %s compile; $(MAKE) compile; fi\n\n"
-              "check: $(TTCN3_MODULES) ", rm_command);
+              "%s"
+              "check:%s $(TTCN3_MODULES) ", rm_command,
+              merge_profiled_file_lists ? "check:: $(PROFILED_FILE_LIST)\n\n" : "",
+              merge_profiled_file_lists ? ":" : "");
       if (makefile->preprocess) fputs("$(PREPROCESSED_TTCN3_MODULES) ", fp);
       fputs("$(ASN1_MODULES)\n"
             "\t$(TTCN3_DIR)/bin/compiler -s $(COMPILER_FLAGS) ", fp);
@@ -3407,8 +3464,14 @@ static void print_makefile(struct makefile_struct *makefile)
               "\t$(TTCN3_MODULES) $(PREPROCESSED_TTCN3_MODULES) $(ASN1_MODULES)",
               fp);
       }
-      fputs("\n\n"
-            "compile: $(TTCN3_MODULES) ", fp);
+      if (makefile->profiled_file_list) {
+        fputs("\n\ncompile:: $(PROFILED_FILE_LIST)\n"
+              "\ttouch $(TTCN3_MODULES) ", fp);
+        if (makefile->preprocess) fputs("$(PREPROCESSED_TTCN3_MODULES) ", fp);
+        fputs("$(ASN1_MODULES)", fp);
+      }
+      fprintf(fp, "\n\n"
+            "compile:%s $(TTCN3_MODULES) ", makefile->profiled_file_list ? ":" : "");
       if (makefile->preprocess) fputs("$(PREPROCESSED_TTCN3_MODULES) ", fp);
       fputs("$(ASN1_MODULES)\n"
             "\t$(TTCN3_DIR)/bin/compiler $(COMPILER_FLAGS) ", fp);
@@ -3422,6 +3485,10 @@ static void print_makefile(struct makefile_struct *makefile)
       fputs(" - $?\n"
             "\ttouch $@\n"
             "\n", fp);
+      if (merge_profiled_file_lists) {
+        fputs("$(PROFILED_FILE_LIST): $(PROFILED_FILE_LIST_SEGMENTS)\n"
+              "\tcat $(PROFILED_FILE_LIST_SEGMENTS) > $(PROFILED_FILE_LIST)\n\n", fp);
+      }
     }
 // clean:
     if (makefile->linkingStrategy) {
@@ -3438,6 +3505,9 @@ static void print_makefile(struct makefile_struct *makefile)
       fputs("compile", fp);
       if (makefile->central_storage) fputs(" compile-all", fp);
       if (makefile->gcc_dep) fputs(" $(DEPFILES)", fp);
+      if (merge_profiled_file_lists) {
+        fputs(" $(PROFILED_FILE_LIST)", fp);
+      }
       fprintf(fp, " \\\n"
         "\ttags *.log%s%s\n\n",
         add_refd_prjs?" referenced*":"",
@@ -3452,6 +3522,9 @@ static void print_makefile(struct makefile_struct *makefile)
       fputs("compile", fp);
       if (makefile->central_storage) fputs(" compile-all", fp);
       if (makefile->gcc_dep) fputs(" $(DEPFILES)", fp);
+      if (merge_profiled_file_lists) {
+        fputs(" $(PROFILED_FILE_LIST)", fp);
+      }
       fprintf(fp, " \\\n"
         "\ttags *.log%s",
         add_refd_prjs?" referenced*":"");
@@ -3639,14 +3712,14 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
   boolean central_storage, boolean absolute_paths, boolean preprocess,
   boolean dump_makefile_data, boolean force_overwrite, boolean use_runtime_2,
   boolean dynamic, boolean makedepend, boolean coverage,
-  const char *code_splitting_mode, const char *tcov_file_name,
+  const char *code_splitting_mode, const char *tcov_file_name, struct string_list* profiled_file_list,
   boolean Lflag, boolean Zflag, boolean Hflag, struct string_list* sub_project_dirs, struct string_list* ttcn3_prep_includes,
   struct string_list* ttcn3_prep_defines, struct string_list* ttcn3_prep_undefines, struct string_list* prep_includes,
   struct string_list* prep_defines, struct string_list* prep_undefines, boolean codesplittpd, boolean quietly, boolean disablesubtypecheck,
   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, struct string_list* solspeclibraries, struct string_list* sol8speclibraries,
+  boolean outparamboundness, boolean omit_in_value_list, 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,
@@ -3696,6 +3769,7 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
   makefile.addsourcelineinfo = addsourcelineinfo;
   makefile.suppresswarnings = suppresswarnings;
   makefile.outparamboundness = outparamboundness;
+  makefile.omit_in_value_list = omit_in_value_list;
   makefile.solspeclibraries = solspeclibraries;
   makefile.sol8speclibraries = sol8speclibraries;
   makefile.linuxspeclibraries = linuxspeclibraries;
@@ -3773,7 +3847,11 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
   }
 
   if (tcov_file_name != NULL) {
-    makefile.tcov_file_name = mputprintf(makefile.tcov_file_name, "-K %s", tcov_file_name);
+    makefile.tcov_file_name = mprintf(" -K %s", tcov_file_name);
+  }
+  
+  if (profiled_file_list != NULL) {
+    makefile.profiled_file_list = profiled_file_list;
   }
 
   if (makefile.nTTCN3Modules >= 1) {
@@ -3826,7 +3904,7 @@ static void generate_makefile(size_t n_arguments, char *arguments[],
 static void usage(void)
 {
   fprintf(stderr, "\n"
-    "usage: %s [-abc" C_flag "dDfFglLmprRstTVwWXZ] [-K file] [-P dir]"
+    "usage: %s [-abc" C_flag "dDfFglLmMprRstTVwWXZ] [-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"
@@ -3842,10 +3920,11 @@ static void usage(void)
     "	-e ets_name:	name of the target executable\n"
     "	-f:		force overwriting of the output Makefile\n"
     "	-g:		generate Makefile for use with GNU make\n"
+    "	-K file:	enable selective code coverage\n"
     "	-l:		use dynamic linking\n"
     "	-L:		create makefile with library archive as the default target\n"
     "	-m:		always use makedepend for dependencies\n"
-    "	-K file:	enable selective code coverage\n"
+    "	-M:		allow 'omit' in template value lists (legacy behavior)\n"
     "	-o dir|file:	write the Makefile to the given directory or file\n"
     "	-O file:	add the given file to the Makefile as other file\n"
     "	-p:		generate Makefile with TTCN-3 preprocessing\n"
@@ -3855,6 +3934,7 @@ static void usage(void)
     "	-v:		show version\n"
     "	-w:		suppress warnings\n"
     "	-Y:		Enforces legacy behaviour of the \"out\" function parameters (see refguide)\n"
+    "	-z file:	enable profiling and code coverage for the TTCN-3 files in the argument\n"
     "Options for processing the Titan Project Descriptor file(s):\n"
     "	-t tpd:		read project descriptor file\n"
     "	-b buildconfig:	use the specified build config instead of the default\n"
@@ -3911,7 +3991,8 @@ int main(int argc, char *argv[])
     dxflag = FALSE, fxflag = FALSE, doflag = FALSE,
     gfflag = FALSE, lnflag = FALSE, isflag = FALSE, asflag = FALSE,
     swflag = FALSE, Vflag = FALSE, Dflag = FALSE, Wflag = FALSE,
-    djflag = FALSE, Zflag = FALSE, Hflag = FALSE;
+    djflag = FALSE, Zflag = FALSE, Hflag = FALSE, Mflag = FALSE,
+    zflag = FALSE;
   boolean error_flag = FALSE;
   char *output_file = NULL;
   char *ets_name = NULL;
@@ -3922,6 +4003,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;
+  struct string_list* profiled_file_list = NULL;
+  const char *profiled_file_list_zflag = NULL;
   const char *file_list_path = NULL;
   enum tpd_result tpd_processed = FALSE;
   struct string_list* sub_project_dirs = NULL;
@@ -3964,7 +4047,7 @@ int main(int argc, char *argv[])
   }
 
   for ( ; ; ) {
-    int c = getopt(argc, argv, "O:ab:c" C_flag "dDe:fFgK:o:lLmpP:rRst:TU:vVwWXYZH");
+    int c = getopt(argc, argv, "O:ab:c" C_flag "dDe:fFgK:o:lLmMpP:rRst:TU:vVwWXYz:ZH");
     if (c == -1) break;
     switch (c) {
     case 'O':
@@ -4027,6 +4110,9 @@ int main(int argc, char *argv[])
     case 'm':
       SET_FLAG(m);
       break;
+    case 'M':
+      SET_FLAG(M);
+      break;
     case 'p':
       SET_FLAG(p);
       break;
@@ -4084,6 +4170,10 @@ int main(int argc, char *argv[])
     case 'X':
       SET_FLAG(X);
       break;
+    case 'z':
+      SET_FLAG(z);
+      profiled_file_list_zflag = optarg;
+      break;
     case 'Z':
       SET_FLAG(Z);
       break;
@@ -4099,7 +4189,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 || n_other_files > 0)
+      || Zflag || Hflag || Mflag || zflag || n_other_files > 0)
       error_flag = TRUE;
   }
 
@@ -4261,9 +4351,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, solspeclibraries, sol8speclibraries, linuxspeclibraries, freebsdspeclibraries, win32speclibraries, &ttcn3prep,
+      &asflag, &swflag, &Yflag, &Mflag, solspeclibraries, sol8speclibraries, linuxspeclibraries, freebsdspeclibraries, win32speclibraries, &ttcn3prep,
       linkerlibraries, additionalObjects, linkerlibsearchpath, Vflag, Dflag, &Zflag, &Hflag,
-      &generatorCommandOutput, target_placement_list, Wflag, run_command_list, required_configs);
+      &generatorCommandOutput, target_placement_list, Wflag, run_command_list, required_configs, &profiled_file_list);
 
     Free(abs_work_dir);
     if (prj_graph_fp) {
@@ -4274,6 +4364,16 @@ int main(int argc, char *argv[])
       ERROR("Failed to process %s", tpd_file_name);
       exit(EXIT_FAILURE);
     }
+    if (zflag) {
+      WARNING("Compiler option '-z' and its argument will be overwritten by "
+        "the settings in the TPD");
+    }
+  }
+  else if (zflag) {
+    // use the argument given in the command line if there is no TPD
+    profiled_file_list = (struct string_list*)Malloc(sizeof(struct string_list));
+    profiled_file_list->str = mcopystr(profiled_file_list_zflag);
+    profiled_file_list->next = NULL;
   }
 
   if (!Pflag) {
@@ -4287,9 +4387,10 @@ int main(int argc, char *argv[])
     }
     generate_makefile(argc - optind, argv + optind, n_other_files, other_files,
       output_file, ets_name, project_name, gflag, sflag, cflag, aflag, pflag, dflag, fflag||Fflag,
-      Rflag, lflag, mflag, Cflag, code_splitting_mode, tcov_file_name, Lflag, Zflag, Hflag, rflag ? sub_project_dirs : NULL, ttcn3_prep_includes,
+      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, solspeclibraries,
+      drflag, dtflag, dxflag, djflag, fxflag, doflag, gfflag, lnflag, isflag, asflag, swflag, Yflag, Mflag, solspeclibraries,
       sol8speclibraries, linuxspeclibraries, freebsdspeclibraries, win32speclibraries, ttcn3prep, linkerlibraries, additionalObjects,
       linkerlibsearchpath, generatorCommandOutput, target_placement_list);
   }
@@ -4309,6 +4410,7 @@ int main(int argc, char *argv[])
   free_string_list(linkerlibraries);
   free_string_list(additionalObjects);
   free_string_list(linkerlibsearchpath);
+  free_string_list(profiled_file_list);
 
   Free(generatorCommandOutput);
   free_string2_list(target_placement_list);
diff --git a/compiler2/map.hh b/compiler2/map.hh
index 477f52419..38880f6fe 100644
--- a/compiler2/map.hh
+++ b/compiler2/map.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/record.c b/compiler2/record.c
index eeda17628..097ffe763 100644
--- a/compiler2/record.c
+++ b/compiler2/record.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -2689,6 +2689,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
     src = mputprintf(src,
       "    {\n"
       "    field_%s.set_size(0);\n"
+      "    if (!tag_closed) {\n" /* Nothing to order if there are no child elements */
       "    int e_val, num_seen = 0, *seen_f = new int[%lu];\n"
       , sdef->elements[uo].name
       , (unsigned long)(n_embed)
@@ -2700,6 +2701,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       src = mputstr(src, "    int last_embval_index = 0;\n");
     }
     src = mputprintf(src,
+      "    bool early_exit = false;\n"
       "    for (int i=0; i < %lu; ++i) {\n"
       "      for (rd_ok=p_reader.Ok(); rd_ok==1; rd_ok=p_reader.Read()) {\n"
       , (unsigned long)(n_embed));
@@ -2717,8 +2719,12 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
     src = mputstr(src,
       "        type = p_reader.NodeType();\n"
       "        if (type==XML_READER_TYPE_ELEMENT) break;\n"
+      "        if (type == XML_READER_TYPE_END_ELEMENT) {\n"
+      "          early_exit = true;\n"
+      "          break;\n"
+      "        }\n"
       "      }\n"
-      "      if (rd_ok != 1) break;\n"
+      "      if (rd_ok != 1 || early_exit) break;\n"
       "      const char * x_name = (const char*)p_reader.LocalName();\n" /* Name or LocalName ? */);
     
     if (sdef->xerEmbedValuesPossible) {
@@ -2793,7 +2799,11 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
     }
 
     src = mputstr(src,
-      "        continue; \n" /* take care of the dangling else */
+      " {\n" /* take care of the dangling else */
+      "          TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,\n"
+      "            \"Bad XML tag '%s' instead of a valid field\", x_name);\n"
+      "          break;\n"
+      "        }\n"
       "      }\n"
       "      for (int d_f = 0; d_f < num_seen; ++d_f)\n"
       "        if (e_val == seen_f[d_f])\n"
@@ -2828,6 +2838,7 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
       "        TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_CONSTRAINT, \"Wrong number of elements\");\n"
       "      }\n"
       "    }\n"
+      "  } // !tag_closed\n"
       "  } else { // !uo\n"
       , sdef->elements[uo].dispname
       , min_ordered, max_ordered
@@ -2959,7 +2970,20 @@ void gen_xer(const struct_def *sdef, char **pdef, char **psrc)
   }
   
   src = mputstr(src,
-    "  } // errorcontext\n" /* End scope for error context objects */
+    "  } // errorcontext\n"); /* End scope for error context objects */
+
+  /* Check if every non-optional field has been set */
+  for (i = 0; i < sdef->nElements; ++i) {
+    if (!sdef->elements[i].isOptional) {
+      src = mputprintf(src,
+        "  if (!field_%s.is_bound()) {\n"
+        "    TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,\n"
+        "      \"No data found for non-optional field '%s'\");\n"
+        "  }\n"
+        , sdef->elements[i].name, sdef->elements[i].dispname);
+    }
+  }
+  src = mputstr(src,
     "  if (!omit_tag) {\n"
     "    int current_depth;\n"
     "    for (rd_ok = p_reader.Ok(); rd_ok == 1; rd_ok = p_reader.Read()) {\n"
@@ -3307,27 +3331,31 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
      "param.error(\"Field `%%s' not found in %s type `%s'\", param_field);\n"
      "  }\n"
      "  param.basic_check(Module_Param::BC_VALUE, \"%s value\");\n"
-     "  switch (param.get_type()) {\n"
+     "  Module_Param_Ptr mp = &param;\n"
+     "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+     "    mp = param.get_referenced_param();\n"
+     "  }\n"
+     "  switch (mp->get_type()) {\n"
      "  case Module_Param::MP_Value_List:\n"
-     "    if (%lu<param.get_size()) {\n"
-     "      param.error(\"%s value of type %s has %lu fields but list value has %%d fields\", (int)param.get_size());\n"
+     "    if (%lu<mp->get_size()) {\n"
+     "      param.error(\"%s value of type %s has %lu fields but list value has %%d fields\", (int)mp->get_size());\n"
      "    }\n",
      kind_str, dispname, kind_str, (unsigned long)sdef->nElements, kind_str, dispname, (unsigned long)sdef->nElements);
 
   for (i = 0; i < sdef->nElements; ++i) {
     src = mputprintf(src,
-      "    if (param.get_size()>%lu && param.get_elem(%lu)->get_type()!=Module_Param::MP_NotUsed) %s().set_param(*param.get_elem(%lu));\n",
+      "    if (mp->get_size()>%lu && mp->get_elem(%lu)->get_type()!=Module_Param::MP_NotUsed) %s().set_param(*mp->get_elem(%lu));\n",
       (unsigned long)i, (unsigned long)i, sdef->elements[i].name, (unsigned long)i);
   } 
   src = mputstr(src,
       "    break;\n"
       "  case Module_Param::MP_Assignment_List: {\n"
-      "    Vector<bool> value_used(param.get_size());\n"
-      "    value_used.resize(param.get_size(), false);\n");
+      "    Vector<bool> value_used(mp->get_size());\n"
+      "    value_used.resize(mp->get_size(), false);\n");
   for (i = 0; i < sdef->nElements; ++i) {
     src = mputprintf(src,
-      "    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {\n"
-      "      Module_Param* const curr_param = param.get_elem(val_idx);\n"
+      "    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {\n"
+      "      Module_Param* const curr_param = mp->get_elem(val_idx);\n"
       "      if (!strcmp(curr_param->get_id()->get_name(), \"%s\")) {\n"
       "        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {\n"
       "          %s().set_param(*curr_param);\n"
@@ -3338,8 +3366,8 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       , sdef->elements[i].dispname, sdef->elements[i].name);
   }
   src = mputprintf(src,
-      "    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {\n"
-      "      param.get_elem(val_idx)->error(\"Non existent field name in type %s: %%s\", param.get_elem(val_idx)->get_id()->get_name());\n"
+      "    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {\n"
+      "      mp->get_elem(val_idx)->error(\"Non existent field name in type %s: %%s\", mp->get_elem(val_idx)->get_id()->get_name());\n"
       "      break;\n"
       "    }\n"
       "  } break;\n"
@@ -3347,6 +3375,48 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "    param.type_error(\"%s value\", \"%s\");\n"
       "  }\n"
       "}\n\n", dispname, kind_str, dispname);
+  
+  /* get param function */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,
+    "Module_Param* %s::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (!is_bound()) {\n"
+    "    return new Module_Param_Unbound();\n"
+    "  }\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the fields, not to the whole record
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] >= '0' && param_field[0] <= '9') {\n"
+    "      TTCN_error(\"Unexpected array index in module parameter reference, \"\n"
+    "        \"expected a valid field name for %s type `%s'\");\n"
+    "    }\n"
+    "    ", name, kind_str, dispname);
+  for (i = 0; i < sdef->nElements; i++) {
+    src = mputprintf(src,
+      "if (strcmp(\"%s\", param_field) == 0) {\n"
+      "      return %s().get_param(param_name);\n"
+      "    } else ",
+      sdef->elements[i].dispname, sdef->elements[i].name);
+  }
+  src = mputprintf(src,
+    "TTCN_error(\"Field `%%s' not found in %s type `%s'\", param_field);\n"
+    "  }\n"
+    "  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();\n"
+    , kind_str, dispname);
+  for (i = 0; i < sdef->nElements; i++) {
+    src = mputprintf(src,
+      "  Module_Param* mp_field_%s = field_%s.get_param(param_name);\n"
+      "  mp_field_%s->set_id(new Module_Param_FieldName(mcopystr(\"%s\")));\n"
+      "  mp->add_elem(mp_field_%s);\n"
+      , sdef->elements[i].name, sdef->elements[i].name
+      , sdef->elements[i].name, sdef->elements[i].dispname
+      , sdef->elements[i].name);
+  }
+  src = mputstr(src,
+    "  return mp;\n"
+    "  }\n\n");
 
   /* set implicit omit function, recursive */
   def = mputstr(def, "  void set_implicit_omit();\n");
@@ -4250,17 +4320,30 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "  int enc_len = p_tok.put_next_token(JSON_TOKEN_OBJECT_START, NULL);\n\n"
       , name, dispname);
     for (i = 0; i < sdef->nElements; ++i) {
-      if (sdef->elements[i].isOptional && !sdef->elements[i].jsonOmitAsNull) {
+      if (sdef->elements[i].isOptional && !sdef->elements[i].jsonOmitAsNull &&
+          !sdef->elements[i].jsonMetainfoUnbound) {
         src = mputprintf(src,
           "  if (field_%s.is_present())\n"
           , sdef->elements[i].name);
       }
-      src=mputprintf(src,
+      src = mputprintf(src,
         "  {\n"
-        "    enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, \"%s\");\n"
-        "    enc_len += field_%s.JSON_encode(%s_descr_, p_tok);\n"
+        "    enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, \"%s\");\n    "
+        , sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname);
+      if (sdef->elements[i].jsonMetainfoUnbound) {
+        src = mputprintf(src,
+          "if (!field_%s.is_bound()) {\n"
+          "      enc_len += p_tok.put_next_token(JSON_TOKEN_LITERAL_NULL);\n"
+          "      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, \"metainfo %s\");\n"
+          "      enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, \"\\\"unbound\\\"\");\n"
+          "    }\n"
+          "    else "
+          , sdef->elements[i].name
+          , sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname);
+      }
+      src = mputprintf(src,
+        "enc_len += field_%s.JSON_encode(%s_descr_, p_tok);\n"
         "  }\n\n"
-        , sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname
         , sdef->elements[i].name, sdef->elements[i].typedescrname);
     }
     src = mputstr(src, 
@@ -4282,8 +4365,20 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "    return JSON_ERROR_INVALID_TOKEN;\n"
       "  }\n"
       "  bound_flag = TRUE;\n\n"
-         // Read name - value token pairs until we reach some other token
-      "  while (true) {\n"
+      , name);
+    boolean has_metainfo_enabled = FALSE;
+    for (i = 0; i < sdef->nElements; ++i) {
+      if (sdef->elements[i].jsonMetainfoUnbound) {
+        // initialize meta info states
+        src = mputprintf(src, 
+          "  int metainfo_%s = JSON_METAINFO_NONE;\n"
+          , sdef->elements[i].name);
+        has_metainfo_enabled = TRUE;
+      }
+    }
+    src = mputstr(src,
+      // Read name - value token pairs until we reach some other token
+      "\n  while (true) {\n"
       "    char* fld_name = 0;\n"
       "    size_t name_len = 0;\n"
       "    size_t buf_pos = p_tok.get_buf_pos();\n"
@@ -4297,31 +4392,96 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "      p_tok.set_buf_pos(buf_pos);\n"
       "      break;\n"
       "    }\n"
-      "    else {\n      "
-      , name);
+      "    else {\n      ");
+    if (has_metainfo_enabled) {
+      // check for meta info
+      src = mputstr(src,
+        "boolean is_metainfo = FALSE;\n"
+        "      if (name_len > 9 && 0 == strncmp(fld_name, \"metainfo \", 9)) {\n"
+        "        fld_name += 9;\n"
+        "        name_len -= 9;\n"
+        "        is_metainfo = TRUE;\n"
+        "      }\n      ");
+    }
     for (i = 0; i < sdef->nElements; ++i) {
       src = mputprintf(src,
         // check field name
         "if (%d == name_len && 0 == strncmp(fld_name, \"%s\", name_len)) {\n"
-        "        int ret_val = field_%s.JSON_decode(%s_descr_, p_tok, p_silent);\n"        
-        "        if (0 > ret_val) {\n"
-        "          if (JSON_ERROR_INVALID_TOKEN) {\n"
-        "            JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_FIELD_TOKEN_ERROR, \"%s\");\n"
-        "          }\n"
-        "          return JSON_ERROR_FATAL;\n"
-        "        }\n"
-        "        dec_len += ret_val;\n"
-        "      } else "
         , (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].name, sdef->elements[i].typedescrname
+        , sdef->elements[i].jsonAlias ? sdef->elements[i].jsonAlias : sdef->elements[i].dispname);
+      if (has_metainfo_enabled) {
+        src = mputstr(src, "        if (is_metainfo) {\n");
+        if (sdef->elements[i].jsonMetainfoUnbound) {
+          src = mputprintf(src,
+            // check meta info
+            "          char* info_value = 0;\n"
+            "          size_t info_len = 0;\n"
+            "          dec_len += p_tok.get_next_token(&j_token, &info_value, &info_len);\n"
+            "          if (JSON_TOKEN_STRING == j_token && 9 == info_len &&\n"
+            "              0 == strncmp(info_value, \"\\\"unbound\\\"\", 9)) {\n"
+            "            metainfo_%s = JSON_METAINFO_UNBOUND;\n"
+            "          }\n"
+            "          else {\n"
+            "            JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_METAINFO_VALUE_ERROR, \"%s\");\n"
+            "            return JSON_ERROR_FATAL;\n"
+            "          }\n"
+            , sdef->elements[i].name, sdef->elements[i].dispname);
+        }
+        else {
+          src = mputprintf(src,
+            "          JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_METAINFO_NOT_APPLICABLE, \"%s\");\n"
+            "          return JSON_ERROR_FATAL;\n"
+            , sdef->elements[i].dispname);
+        }
+        src = mputstr(src,
+          "        }\n"
+          "        else {\n");
+        if (sdef->elements[i].jsonMetainfoUnbound) {
+          src = mputstr(src, "         buf_pos = p_tok.get_buf_pos();\n");
+        }
+      }
+      src = mputprintf(src,
+        "         int ret_val = field_%s.JSON_decode(%s_descr_, p_tok, p_silent);\n"
+        "         if (0 > ret_val) {\n"
+        "           if (JSON_ERROR_INVALID_TOKEN == ret_val) {\n"
+        , sdef->elements[i].name, sdef->elements[i].typedescrname);
+      if (sdef->elements[i].jsonMetainfoUnbound) {
+        src = mputprintf(src,
+          // undo the last action on the buffer, check if the invalid token was a null token 
+          "             p_tok.set_buf_pos(buf_pos);\n"
+          "             p_tok.get_next_token(&j_token, NULL, NULL);\n"
+          "             if (JSON_TOKEN_LITERAL_NULL == j_token) {\n"
+          "               if (JSON_METAINFO_NONE == metainfo_%s) {\n"
+          // delay reporting an error for now, there might be meta info later
+          "                 metainfo_%s = JSON_METAINFO_NEEDED;\n"
+          "                 continue;\n"
+          "               }\n"
+          "               else if (JSON_METAINFO_UNBOUND == metainfo_%s) {\n"
+          // meta info already found
+          "                 continue;\n"
+          "               }\n"
+          "             }\n"
+          , sdef->elements[i].name, sdef->elements[i].name, sdef->elements[i].name);
+      }
+      src = mputprintf(src,
+        "             JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_FIELD_TOKEN_ERROR, \"%s\");\n"
+        "           }\n"
+        "           return JSON_ERROR_FATAL;\n"
+        "         }\n"
+        "         dec_len += ret_val;\n"
         , sdef->elements[i].dispname);
+      if (has_metainfo_enabled) {
+        src = mputstr(src, "        }\n");
+      }
+      src = mputstr(src,
+        "      }\n"
+        "      else ");
     }
-    src = mputstr(src,
+    src = mputprintf(src,
       "{\n"
                // invalid field name
       "        char* fld_name2 = mcopystrn(fld_name, name_len);\n"
-      "        JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_INVALID_NAME_ERROR, fld_name2);\n"
+      "        JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, %sJSON_DEC_INVALID_NAME_ERROR, fld_name2);\n"
                // if this is set to a warning, skip the value of the field
       "        dec_len += p_tok.get_next_token(&j_token, NULL, NULL);\n"
       "        if (JSON_TOKEN_NUMBER != j_token && JSON_TOKEN_STRING != j_token &&\n"
@@ -4339,11 +4499,25 @@ void defRecordClass1(const struct_def *sdef, output_struct *output)
       "  if (JSON_TOKEN_OBJECT_END != j_token) {\n"
       "    JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_OBJECT_END_TOKEN_ERROR, \"\");\n"
       "    return JSON_ERROR_FATAL;\n"
-      "  }\n\n");
-    // Check if every field has been set
+      "  }\n\n  "
+      , has_metainfo_enabled ? "is_metainfo ?\n          JSON_DEC_METAINFO_NAME_ERROR : " : "");
+    // Check if every field has been set and handle meta info
     for (i = 0; i < sdef->nElements; ++i) {
+      if (sdef->elements[i].jsonMetainfoUnbound) {
+        src = mputprintf(src,
+          "if (JSON_METAINFO_UNBOUND == metainfo_%s) {\n"
+          "    field_%s.clean_up();\n"
+          "  }\n"
+          "  else if (JSON_METAINFO_NEEDED == metainfo_%s) {\n"
+          // no meta info was found for this field, report the delayed error
+          "    JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_FIELD_TOKEN_ERROR, \"%s\");\n"
+          "  }\n"
+          "  else "
+          , sdef->elements[i].name, sdef->elements[i].name
+          , sdef->elements[i].name, sdef->elements[i].dispname);
+      }
       src = mputprintf(src,
-        "  if (!field_%s.is_bound()) {\n"
+        "if (!field_%s.is_bound()) {\n"
         , sdef->elements[i].name);
       if (sdef->elements[i].jsonDefaultValue) {
         src = mputprintf(src,
@@ -4952,11 +5126,11 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
 	"}\n\n", name, name, name);
 
     /* match operation (template matching) */
-    def = mputprintf(def, "boolean match(const %s& other_value) const;\n",
-	name);
+    def = mputprintf(def, "boolean match(const %s& other_value, boolean legacy "
+      "= FALSE) const;\n", name);
 
     src = mputprintf(src,
-	"boolean %s_template::match(const %s& other_value) const\n"
+	"boolean %s_template::match(const %s& other_value, boolean legacy) const\n"
 	"{\n"
     "if (!other_value.is_bound()) return FALSE;\n"
 	"switch (template_selection) {\n"
@@ -4970,13 +5144,13 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
       src = mputprintf(src,"if(!other_value.%s().is_bound()) return FALSE;\n", sdef->elements[i].name);
 	if (sdef->elements[i].isOptional) src = mputprintf(src,
 	    "if((other_value.%s().ispresent() ? "
-	    "!single_value->field_%s.match((const %s&)other_value.%s()) : "
-	    "!single_value->field_%s.match_omit()))",
+	    "!single_value->field_%s.match((const %s&)other_value.%s(), legacy) : "
+	    "!single_value->field_%s.match_omit(legacy)))",
 	    sdef->elements[i].name, sdef->elements[i].name,
 	    sdef->elements[i].type, sdef->elements[i].name,
 	    sdef->elements[i].name);
 	else src = mputprintf(src,
-	    "if(!single_value->field_%s.match(other_value.%s()))",
+	    "if(!single_value->field_%s.match(other_value.%s(), legacy))",
 	    sdef->elements[i].name, sdef->elements[i].name);
 	  src = mputstr(src, "return FALSE;\n");
     }
@@ -4986,7 +5160,7 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
 	"case COMPLEMENTED_LIST:\n"
 	"for (unsigned int list_count = 0; list_count < value_list.n_values; "
 	    "list_count++)\n"
-	"if (value_list.list_value[list_count].match(other_value)) "
+	"if (value_list.list_value[list_count].match(other_value, legacy)) "
 	    "return template_selection == VALUE_LIST;\n"
 	"return template_selection == COMPLEMENTED_LIST;\n"
 	"default:\n"
@@ -5244,14 +5418,14 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
 	"}\n\n");
 
     /* log_match function */
-    def = mputprintf(def, "void log_match(const %s& match_value) "
-	"const;\n", name);
+    def = mputprintf(def, "void log_match(const %s& match_value, "
+      "boolean legacy = FALSE) const;\n", name);
     src = mputprintf(src,
-	"void %s_template::log_match(const %s& match_value) const\n"
-	"{\n"
+    "void %s_template::log_match(const %s& match_value, boolean legacy) const\n"
+    "{\n"
     "if(TTCN_Logger::VERBOSITY_COMPACT"
       " == TTCN_Logger::get_matching_verbosity()){\n"
-    "if(match(match_value)){\n"
+    "if(match(match_value, legacy)){\n"
     "TTCN_Logger::print_logmatch_buffer();\n"
     "TTCN_Logger::log_event_str(\" matched\");\n"
     "} else{\n"
@@ -5262,13 +5436,13 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
       if (sdef->elements[i].isOptional){
         src = mputprintf(src,
         "if (match_value.%s().ispresent()){\n"
-        "if(!single_value->field_%s.match(match_value.%s())){\n"
+        "if(!single_value->field_%s.match(match_value.%s(), legacy)){\n"
         "TTCN_Logger::log_logmatch_info(\".%s\");\n"
-        "single_value->field_%s.log_match(match_value.%s());\n"
+        "single_value->field_%s.log_match(match_value.%s(), legacy);\n"
         "TTCN_Logger::set_logmatch_buffer_len(previous_size);\n"
         "}\n"
         "} else {\n"
-        "if (!single_value->field_%s.match_omit()){\n "
+        "if (!single_value->field_%s.match_omit(legacy)){\n "
         "TTCN_Logger::log_logmatch_info(\".%s := omit with \");\n"
         "TTCN_Logger::print_logmatch_buffer();\n"
         "single_value->field_%s.log();\n"
@@ -5283,9 +5457,9 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
         sdef->elements[i].name);
       }else{
         src = mputprintf(src,
-        "if(!single_value->field_%s.match(match_value.%s())){\n"
+        "if(!single_value->field_%s.match(match_value.%s(), legacy)){\n"
         "TTCN_Logger::log_logmatch_info(\".%s\");\n"
-        "single_value->field_%s.log_match(match_value.%s());\n"
+        "single_value->field_%s.log_match(match_value.%s(), legacy);\n"
         "TTCN_Logger::set_logmatch_buffer_len(previous_size);\n"
         "}\n",sdef->elements[i].name, sdef->elements[i].name,
         sdef->elements[i].dispname, sdef->elements[i].name,
@@ -5311,11 +5485,11 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
 	src = mputprintf(src, " %s := \");\n", sdef->elements[i].dispname);
 	if (sdef->elements[i].isOptional) src = mputprintf(src,
 	    "if (match_value.%s().ispresent()) "
-	    "single_value->field_%s.log_match(match_value.%s());\n"
+	    "single_value->field_%s.log_match(match_value.%s(), legacy);\n"
 	    "else {\n"
 	    "TTCN_Logger::log_event_str(\"omit with \");\n"
 	    "single_value->field_%s.log();\n"
-            "if (single_value->field_%s.match_omit()) "
+            "if (single_value->field_%s.match_omit(legacy)) "
               "TTCN_Logger::log_event_str(\" matched\");\n"
             "else TTCN_Logger::log_event_str(\" unmatched\");\n"
 	    "}\n",
@@ -5323,7 +5497,7 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
 	    sdef->elements[i].name, sdef->elements[i].name,
 	    sdef->elements[i].name);
 	else src = mputprintf(src,
-	    "single_value->field_%s.log_match(match_value.%s());\n",
+	    "single_value->field_%s.log_match(match_value.%s(), legacy);\n",
 	    sdef->elements[i].name, sdef->elements[i].name);
     }
     src = mputstr(src,
@@ -5332,7 +5506,7 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
 	"match_value.log();\n"
 	"TTCN_Logger::log_event_str(\" with \");\n"
 	"log();\n"
-	"if (match(match_value)) TTCN_Logger::log_event_str(\" matched\");\n"
+	"if (match(match_value, legacy)) TTCN_Logger::log_event_str(\" matched\");\n"
 	"else TTCN_Logger::log_event_str(\" unmatched\");\n"
 	"}\n"
 	"}\n\n");
@@ -5427,7 +5601,11 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
     "param.error(\"Field `%%s' not found in %s template type `%s'\", param_field);\n"
     "  }\n"
     "  param.basic_check(Module_Param::BC_TEMPLATE, \"%s template\");\n"
-    "  switch (param.get_type()) {\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
+    "  switch (mp->get_type()) {\n"
     "  case Module_Param::MP_Omit:\n"
     "    *this = OMIT_VALUE;\n"
     "    break;\n"
@@ -5438,31 +5616,34 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
     "    *this = ANY_OR_OMIT;\n"
     "    break;\n"
     "  case Module_Param::MP_List_Template:\n"
-    "  case Module_Param::MP_ComplementList_Template:\n"
-    "    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); p_i++) {\n"
-    "      list_item(p_i).set_param(*param.get_elem(p_i));\n"
+    "  case Module_Param::MP_ComplementList_Template: {\n"
+    "    %s_template temp;\n"
+    "    temp.set_type(mp->get_type()==Module_Param::MP_List_Template ? "
+    "VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); p_i++) {\n"
+    "      temp.list_item(p_i).set_param(*mp->get_elem(p_i));\n"
     "    }\n"
-    "    break;\n"
+    "    *this = temp;\n"
+    "    break; }\n"
     "  case Module_Param::MP_Value_List:\n"
-    "    if (%lu<param.get_size()) {\n"
-    "      param.error(\"%s template of type %s has %lu fields but list value has %%d fields\", (int)param.get_size());\n"
+    "    if (%lu<mp->get_size()) {\n"
+    "      param.error(\"%s template of type %s has %lu fields but list value has %%d fields\", (int)mp->get_size());\n"
     "    }\n",
-    kind_str, dispname, kind_str, (unsigned long)sdef->nElements, kind_str, dispname, (unsigned long)sdef->nElements);
+    kind_str, dispname, kind_str, name, (unsigned long)sdef->nElements, kind_str, dispname, (unsigned long)sdef->nElements);
   for (i = 0; i < sdef->nElements; ++i) {
     src = mputprintf(src,
-      "    if (param.get_size()>%lu && param.get_elem(%lu)->get_type()!=Module_Param::MP_NotUsed) %s().set_param(*param.get_elem(%lu));\n",
+      "    if (mp->get_size()>%lu && mp->get_elem(%lu)->get_type()!=Module_Param::MP_NotUsed) %s().set_param(*mp->get_elem(%lu));\n",
       (unsigned long)i, (unsigned long)i, sdef->elements[i].name, (unsigned long)i);
   }
   src = mputstr(src,
     "    break;\n"
     "  case Module_Param::MP_Assignment_List: {\n"
-    "    Vector<bool> value_used(param.get_size());\n"
-    "    value_used.resize(param.get_size(), false);\n");
+    "    Vector<bool> value_used(mp->get_size());\n"
+    "    value_used.resize(mp->get_size(), false);\n");
   for (i = 0; i < sdef->nElements; ++i) {
     src = mputprintf(src,
-      "    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {\n"
-      "      Module_Param* const curr_param = param.get_elem(val_idx);\n"
+      "    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {\n"
+      "      Module_Param* const curr_param = mp->get_elem(val_idx);\n"
       "      if (!strcmp(curr_param->get_id()->get_name(), \"%s\")) {\n"
       "        if (curr_param->get_type()!=Module_Param::MP_NotUsed) {\n"
       "          %s().set_param(*curr_param);\n"
@@ -5473,23 +5654,96 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
       , sdef->elements[i].dispname, sdef->elements[i].name);
   }
   src = mputprintf(src,
-    "    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {\n"
-    "      param.get_elem(val_idx)->error(\"Non existent field name in type %s: %%s\", param.get_elem(val_idx)->get_id()->get_name());\n"
+    "    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {\n"
+    "      mp->get_elem(val_idx)->error(\"Non existent field name in type %s: %%s\", mp->get_elem(val_idx)->get_id()->get_name());\n"
     "      break;\n"
     "    }\n"
     "  } break;\n"
     "  default:\n"
     "    param.type_error(\"%s template\", \"%s\");\n"
     "  }\n"
-    "  is_ifpresent = param.get_ifpresent();\n"
+    "  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();\n"
     "}\n\n", dispname, kind_str, dispname);
+  
+  /* get_param() */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,
+    "Module_Param* %s_template::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the fields, not to the whole record
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] >= '0' && param_field[0] <= '9') {\n"
+    "      TTCN_error(\"Unexpected array index in module parameter reference, \"\n"
+    "        \"expected a valid field name for %s template type `%s'\");\n"
+    "    }\n"
+    "    ", name, kind_str, dispname);
+  for (i = 0; i < sdef->nElements; i++) {
+    src = mputprintf(src,
+      "if (strcmp(\"%s\", param_field) == 0) {\n"
+      "      return %s().get_param(param_name);\n"
+      "    } else ",
+      sdef->elements[i].dispname, sdef->elements[i].name);
+  }
+  src = mputprintf(src,
+    "TTCN_error(\"Field `%%s' not found in %s type `%s'\", param_field);\n"
+    "  }\n"
+    "  Module_Param* mp = NULL;\n"
+    "  switch (template_selection) {\n"
+    "  case UNINITIALIZED_TEMPLATE:\n"
+    "    mp = new Module_Param_Unbound();\n"
+    "    break;\n"
+    "  case OMIT_VALUE:\n"
+    "    mp = new Module_Param_Omit();\n"
+    "    break;\n"
+    "  case ANY_VALUE:\n"
+    "    mp = new Module_Param_Any();\n"
+    "    break;\n"
+    "  case ANY_OR_OMIT:\n"
+    "    mp = new Module_Param_AnyOrNone();\n"
+    "    break;\n"
+    "  case SPECIFIC_VALUE: {\n"
+    "    mp = new Module_Param_Assignment_List();\n"
+    , kind_str, dispname);
+  for (i = 0; i < sdef->nElements; i++) {
+    src = mputprintf(src,
+      "    Module_Param* mp_field_%s = single_value->field_%s.get_param(param_name);\n"
+      "    mp_field_%s->set_id(new Module_Param_FieldName(mcopystr(\"%s\")));\n"
+      "    mp->add_elem(mp_field_%s);\n"
+      , sdef->elements[i].name, sdef->elements[i].name
+      , sdef->elements[i].name, sdef->elements[i].dispname
+      , sdef->elements[i].name);
+  }
+  src = mputstr(src,
+    "    break; }\n"
+    "  case VALUE_LIST:\n"
+    "  case COMPLEMENTED_LIST: {\n"
+    "    if (template_selection == VALUE_LIST) {\n"
+    "      mp = new Module_Param_List_Template();\n"
+    "    }\n"
+    "    else {\n"
+    "      mp = new Module_Param_ComplementList_Template();\n"
+    "    }\n"
+    "    for (size_t i = 0; i < value_list.n_values; ++i) {\n"
+    "      mp->add_elem(value_list.list_value[i].get_param(param_name));\n"
+    "    }\n"
+    "    break; }\n"
+    "  default:\n"
+    "    break;\n"
+    "  }\n"
+    "  if (is_ifpresent) {\n"
+    "    mp->set_ifpresent();\n"
+    "  }\n"
+    "  return mp;\n"
+    "}\n\n");
 
     /* check template restriction */
     def = mputstr(def, "void check_restriction(template_res t_res, "
-        "const char* t_name=NULL) const;\n");
+        "const char* t_name=NULL, boolean legacy = FALSE) const;\n");
     src = mputprintf(src,
         "void %s_template::check_restriction("
-          "template_res t_res, const char* t_name) const\n"
+          "template_res t_res, const char* t_name, boolean legacy) const\n"
         "{\n"
         "if (template_selection==UNINITIALIZED_TEMPLATE) return;\n"
         "switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {\n"
@@ -5506,7 +5760,7 @@ void defRecordTemplate1(const struct_def *sdef, output_struct *output)
     src = mputprintf(src,
         "return;\n"
         "case TR_PRESENT:\n"
-        "if (!match_omit()) return;\n"
+        "if (!match_omit(legacy)) return;\n"
         "break;\n"
         "default:\n"
         "return;\n"
@@ -5649,15 +5903,30 @@ static void defEmptyRecordClass(const struct_def *sdef,
 	"}\n\n", name);
 
     /* set_param function */
-    def = mputstr(def, "void set_param(const Module_Param& param);\n");
-    src = mputprintf(src, "void %s::set_param(const Module_Param& param)\n"
+    def = mputstr(def, "void set_param(Module_Param& param);\n");
+    src = mputprintf(src, "void %s::set_param(Module_Param& param)\n"
       "{\n"
       "  param.basic_check(Module_Param::BC_VALUE, \"empty record/set value (i.e. { })\");\n"
-      "  if (param.get_type()!=Module_Param::MP_Value_List || param.get_size()>0) {\n"
+      "  Module_Param_Ptr mp = &param;\n"
+      "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+      "    mp = param.get_referenced_param();\n"
+      "  }\n"
+      "  if (mp->get_type()!=Module_Param::MP_Value_List || mp->get_size()>0) {\n"
       "    param.type_error(\"empty record/set value (i.e. { })\", \"%s\");\n"
       "  }\n"
       "  bound_flag = TRUE;\n"
       "}\n\n", name, dispname);
+    
+    /* get param function */
+    def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+    src = mputprintf(src,
+      "Module_Param* %s::get_param(Module_Param_Name& /* param_name */) const\n"
+      "{\n"
+      "  if (!is_bound()) {\n"
+      "    return new Module_Param_Unbound();\n"
+      "  }\n"
+      "  return new Module_Param_Value_List();\n"
+      "}\n\n", name);
 
     /* encode_text function */
     def = mputstr(def, "void encode_text(Text_Buf& text_buf) const;\n");
@@ -6108,9 +6377,10 @@ static void defEmptyRecordTemplate(const char *name, const char *dispname,
 	"}\n\n", name, name, name);
 
     /* match operation with {} */
-    def = mputstr(def, "boolean match(null_type other_value) const;\n");
-    src = mputprintf(src, "boolean %s_template::match(null_type other_value) "
-	"const\n"
+    def = mputstr(def, "boolean match(null_type other_value, boolean legacy "
+      "= FALSE) const;\n");
+    src = mputprintf(src, "boolean %s_template::match(null_type other_value,"
+      "boolean) const\n"
 	"{\n"
 	"switch (template_selection) {\n"
 	"case ANY_VALUE:\n"
@@ -6134,10 +6404,10 @@ static void defEmptyRecordTemplate(const char *name, const char *dispname,
 	"}\n\n", name, dispname);
 
     /* match operation with specific value */
-    def = mputprintf(def, "boolean match(const %s& other_value) const;\n",
-	name);
-    src = mputprintf(src, "boolean %s_template::match(const %s& other_value) "
-	"const\n"
+    def = mputprintf(def, "boolean match(const %s& other_value, boolean legacy "
+      "= FALSE) const;\n", name);
+    src = mputprintf(src, "boolean %s_template::match(const %s& other_value, "
+      "boolean) const\n"
 	"{\n"
     "if (!other_value.is_bound()) return FALSE;"
 	"return match(NULL_VALUE);\n"
@@ -6215,10 +6485,10 @@ static void defEmptyRecordTemplate(const char *name, const char *dispname,
 	"}\n\n", name);
 
     /* log_match function */
-    def = mputprintf(def, "void log_match(const %s& match_value) const;\n",
-	name);
-    src = mputprintf(src, "void %s_template::log_match(const %s& match_value) "
-	    "const\n"
+    def = mputprintf(def, "void log_match(const %s& match_value, "
+      "boolean legacy = FALSE) const;\n", name);
+    src = mputprintf(src, "void %s_template::log_match(const %s& match_value, "
+      "boolean) const\n"
 	"{\n"
 	"match_value.log();\n"
 	"TTCN_Logger::log_event_str(\" with \");\n"
@@ -6279,12 +6549,16 @@ static void defEmptyRecordTemplate(const char *name, const char *dispname,
 	"}\n\n", name, name, dispname);
 
   /* set_param() */
-  def = mputstr(def, "void set_param(const Module_Param& param);\n");
+  def = mputstr(def, "void set_param(Module_Param& param);\n");
   src = mputprintf(src,
-    "void %s_template::set_param(const Module_Param& param)\n"
+    "void %s_template::set_param(Module_Param& param)\n"
     "{\n"
     "  param.basic_check(Module_Param::BC_TEMPLATE, \"empty record/set template\");\n"
-    "  switch (param.get_type()) {\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
+    "  switch (mp->get_type()) {\n"
     "  case Module_Param::MP_Omit:\n"
     "    *this = OMIT_VALUE;\n"
     "    break;\n"
@@ -6295,28 +6569,74 @@ static void defEmptyRecordTemplate(const char *name, const char *dispname,
     "    *this = ANY_OR_OMIT;\n"
     "    break;\n"
     "  case Module_Param::MP_List_Template:\n"
-    "  case Module_Param::MP_ComplementList_Template:\n"
-    "    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); p_i++) {\n"
-    "      list_item(p_i).set_param(*param.get_elem(p_i));\n"
+    "  case Module_Param::MP_ComplementList_Template: {\n"
+    "    %s_template temp;\n"
+    "    temp.set_type(mp->get_type()==Module_Param::MP_List_Template ? "
+    "VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); p_i++) {\n"
+    "      temp.list_item(p_i).set_param(*mp->get_elem(p_i));\n"
     "    }\n"
-    "    break;\n"
+    "    *this = temp;\n"
+    "    break; }\n"
     "  case Module_Param::MP_Value_List:\n"
-    "    if (param.get_size()>0) param.type_error(\"empty record/set template\", \"%s\");\n"
+    "    if (mp->get_size()>0) param.type_error(\"empty record/set template\", \"%s\");\n"
     "    *this = NULL_VALUE;\n"
     "    break;\n"
     "  default:\n"
     "    param.type_error(\"empty record/set template\", \"%s\");\n"
     "  }\n"
-    "  is_ifpresent = param.get_ifpresent();\n"
-    "}\n\n", name, dispname, dispname);
+    "  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();\n"
+    "}\n\n", name, name, dispname, dispname);
+  
+  /* get_param() */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,
+    "Module_Param* %s_template::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  Module_Param* mp = NULL;\n"
+    "  switch (template_selection) {\n"
+    "  case UNINITIALIZED_TEMPLATE:\n"
+    "    mp = new Module_Param_Unbound();\n"
+    "    break;\n"
+    "  case OMIT_VALUE:\n"
+    "    mp = new Module_Param_Omit();\n"
+    "    break;\n"
+    "  case ANY_VALUE:\n"
+    "    mp = new Module_Param_Any();\n"
+    "    break;\n"
+    "  case ANY_OR_OMIT:\n"
+    "    mp = new Module_Param_AnyOrNone();\n"
+    "    break;\n"
+    "  case SPECIFIC_VALUE:\n"
+    "    mp = new Module_Param_Value_List();\n"
+    "    break;\n"
+    "  case VALUE_LIST:\n"
+    "  case COMPLEMENTED_LIST: {\n"
+    "    if (template_selection == VALUE_LIST) {\n"
+    "      mp = new Module_Param_List_Template();\n"
+    "    }\n"
+    "    else {\n"
+    "      mp = new Module_Param_ComplementList_Template();\n"
+    "    }\n"
+    "    for (size_t i = 0; i < value_list.n_values; ++i) {\n"
+    "      mp->add_elem(value_list.list_value[i].get_param(param_name));\n"
+    "    }\n"
+    "    break; }\n"
+    "  default:\n"
+    "    break;\n"
+    "  }\n"
+    "  if (is_ifpresent) {\n"
+    "    mp->set_ifpresent();\n"
+    "  }\n"
+    "  return mp;\n"
+    "}\n\n", name);
 
     /* check template restriction */
     def = mputstr(def, "void check_restriction(template_res t_res, "
-        "const char* t_name=NULL) const;\n");
+        "const char* t_name=NULL, boolean legacy = FALSE) const;\n");
     src = mputprintf(src,
         "void %s_template::check_restriction("
-          "template_res t_res, const char* t_name) const\n"
+          "template_res t_res, const char* t_name, boolean legacy) const\n"
         "{\n"
         "if (template_selection==UNINITIALIZED_TEMPLATE) return;\n"
         "switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {\n"
@@ -6326,7 +6646,7 @@ static void defEmptyRecordTemplate(const char *name, const char *dispname,
         "if (template_selection!=SPECIFIC_VALUE || is_ifpresent) break;\n"
         "return;\n"
         "case TR_PRESENT:\n"
-        "if (!match_omit()) return;\n"
+        "if (!match_omit(legacy)) return;\n"
         "break;\n"
         "default:\n"
         "return;\n"
@@ -6350,18 +6670,18 @@ static void defCommonRecordTemplate(const char *name,
   char **def, char **src)
 {
     /* TTCN-3 ispresent() function */
-    *def = mputstr(*def, "boolean is_present() const;\n");
+    *def = mputstr(*def, "boolean is_present(boolean legacy = FALSE) const;\n");
     *src = mputprintf(*src,
-        "boolean %s_template::is_present() const\n"
+        "boolean %s_template::is_present(boolean legacy) const\n"
         "{\n"
         "if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;\n"
-        "return !match_omit();\n"
+        "return !match_omit(legacy);\n"
         "}\n\n", name);
 
     /* match_omit() */
-    *def = mputstr(*def, "boolean match_omit() const;\n");
+    *def = mputstr(*def, "boolean match_omit(boolean legacy = FALSE) const;\n");
     *src = mputprintf(*src,
-        "boolean %s_template::match_omit() const\n"
+        "boolean %s_template::match_omit(boolean legacy) const\n"
         "{\n"
         "if (is_ifpresent) return TRUE;\n"
         "switch (template_selection) {\n"
@@ -6370,10 +6690,12 @@ static void defCommonRecordTemplate(const char *name,
         "return TRUE;\n"
         "case VALUE_LIST:\n"
         "case COMPLEMENTED_LIST:\n"
+        "if (legacy) {\n"
         "for (unsigned int l_idx=0; l_idx<value_list.n_values; l_idx++)\n"
         "if (value_list.list_value[l_idx].match_omit())\n"
         "return template_selection==VALUE_LIST;\n"
         "return template_selection==COMPLEMENTED_LIST;\n"
+        "} // else fall through\n"
         "default:\n"
         "return FALSE;\n"
         "}\n"
@@ -6922,12 +7244,14 @@ void defRecordTemplate2(const struct_def *sdef, output_struct *output)
     }
 
     /* match operation (template matching) */
-    def = mputprintf(def, "inline boolean match(const %s& other_value) const "
-      "{ return matchv(&other_value); }\n", name);
+    def = mputprintf(def, "inline boolean match(const %s& other_value, "
+      "boolean legacy = FALSE) const "
+      "{ return matchv(&other_value, legacy); }\n", name);
 
     /* log_match */
-    def = mputprintf(def, "inline void log_match(const %s& match_value) const "
-      "{ log_matchv(&match_value); }\n", name);
+    def = mputprintf(def, "inline void log_match(const %s& match_value, "
+      "boolean legacy = FALSE) const "
+      "{ log_matchv(&match_value, legacy); }\n", name);
 
     /* valueof operation */
     def = mputprintf(def, "%s valueof() const;\n", name);
diff --git a/compiler2/record.h b/compiler2/record.h
index 09bf71379..cb9e6710d 100644
--- a/compiler2/record.h
+++ b/compiler2/record.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/record_of.c b/compiler2/record_of.c
index 5f97b3d90..875a06c41 100644
--- a/compiler2/record_of.c
+++ b/compiler2/record_of.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -603,25 +603,29 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
     "    return;\n"
     "  }\n"
     "  param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, \"%s value\");\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
     "  switch (param.get_operation_type()) {\n"
     "  case Module_Param::OT_ASSIGN:\n"
-    "    if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {\n"
+    "    if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) {\n"
     "      *this = NULL_VALUE;\n"
     "      return;\n"
     "    }\n"
-    "    switch (param.get_type()) {\n"
+    "    switch (mp->get_type()) {\n"
     "    case Module_Param::MP_Value_List:\n"
-    "      set_size(param.get_size());\n"
-    "      for (size_t i=0; i<param.get_size(); ++i) {\n"
-    "        Module_Param* const curr = param.get_elem(i);\n"
+    "      set_size(mp->get_size());\n"
+    "      for (size_t i=0; i<mp->get_size(); ++i) {\n"
+    "        Module_Param* const curr = mp->get_elem(i);\n"
     "        if (curr->get_type()!=Module_Param::MP_NotUsed) {\n"
     "          (*this)[i].set_param(*curr);\n"
     "        }\n"
     "      }\n"
     "      break;\n"
     "    case Module_Param::MP_Indexed_List:\n"
-    "      for (size_t i=0; i<param.get_size(); ++i) {\n"
-    "        Module_Param* const curr = param.get_elem(i);\n"
+    "      for (size_t i=0; i<mp->get_size(); ++i) {\n"
+    "        Module_Param* const curr = mp->get_elem(i);\n"
     "        (*this)[curr->get_id()->get_index()].set_param(*curr);\n"
     "      }\n"
     "      break;\n"
@@ -630,12 +634,12 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
     "    }\n"
     "    break;\n"
     "  case Module_Param::OT_CONCAT:\n"
-    "    switch (param.get_type()) {\n"
+    "    switch (mp->get_type()) {\n"
     "    case Module_Param::MP_Value_List: {\n"
     "      if (!is_bound()) *this = NULL_VALUE;\n"
     "      int start_idx = lengthof();\n"
-    "      for (size_t i=0; i<param.get_size(); ++i) {\n"
-    "        Module_Param* const curr = param.get_elem(i);\n"
+    "      for (size_t i=0; i<mp->get_size(); ++i) {\n"
+    "        Module_Param* const curr = mp->get_elem(i);\n"
     "        if ((curr->get_type()!=Module_Param::MP_NotUsed)) {\n"
     "          (*this)[start_idx+(int)i].set_param(*curr);\n"
     "        }\n"
@@ -651,10 +655,41 @@ void defRecordOfClass1(const struct_of_def *sdef, output_struct *output)
     "  default:\n"
     "    TTCN_error(\"Internal error: Unknown operation type.\");\n"
     "  }\n"
-    "}\n", name, sdef->kind == RECORD_OF ? "record of" : "set of",
+    "}\n\n", name, sdef->kind == RECORD_OF ? "record of" : "set of",
     dispname, sdef->kind == RECORD_OF ? "record of" : "set of",
     sdef->kind == RECORD_OF ? "record of" : "set of", dispname,
     sdef->kind == RECORD_OF ? "record of" : "set of", dispname);
+  
+  /* get param function */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf
+    (src,
+    "Module_Param* %s::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (!is_bound()) {\n"
+    "    return new Module_Param_Unbound();\n"
+    "  }\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] < '0' || param_field[0] > '9') {\n"
+    "      TTCN_error(\"Unexpected record field name in module parameter reference, \"\n"
+    "        \"expected a valid index for %s type `%s'\");\n"
+    "    }\n"
+    "    int param_index = -1;\n"
+    "    sscanf(param_field, \"%%d\", &param_index);\n"
+    "    return (*this)[param_index].get_param(param_name);\n"
+    "  }\n"
+    "  Vector<Module_Param*> values;\n"
+    "  for (int i = 0; i < val_ptr->n_elements; ++i) {\n"
+    "    values.push_back((*this)[i].get_param(param_name));\n"
+    "  }\n"
+    "  Module_Param_Value_List* mp = new Module_Param_Value_List();\n"
+    "  mp->add_list_with_implicit_ids(&values);\n"
+    "  values.clear();\n"
+    "  return mp;\n"
+    "}\n\n", name, sdef->kind == RECORD_OF ? "record of" : "set of", dispname);
 
   /* set implicit omit function, recursive */
   def = mputstr(def, "  void set_implicit_omit();\n");
@@ -2083,25 +2118,29 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
     "    return;\n"
     "  }\n"
     "  param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, \"%s value\");\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
     "  switch (param.get_operation_type()) {\n"
     "  case Module_Param::OT_ASSIGN:\n"
-    "    if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {\n"
+    "    if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) {\n"
     "      *this = NULL_VALUE;\n"
     "      return;\n"
     "    }\n"
-    "    switch (param.get_type()) {\n"
+    "    switch (mp->get_type()) {\n"
     "    case Module_Param::MP_Value_List:\n"
-    "      set_size(param.get_size());\n"
-    "      for (size_t i=0; i<param.get_size(); ++i) {\n"
-    "        Module_Param* const curr = param.get_elem(i);\n"
+    "      set_size(mp->get_size());\n"
+    "      for (size_t i=0; i<mp->get_size(); ++i) {\n"
+    "        Module_Param* const curr = mp->get_elem(i);\n"
     "        if (curr->get_type()!=Module_Param::MP_NotUsed) {\n"
     "          (*this)[i].set_param(*curr);\n"
     "        }\n"
     "      }\n"
     "      break;\n"
     "    case Module_Param::MP_Indexed_List:\n"
-    "      for (size_t i=0; i<param.get_size(); ++i) {\n"
-    "        Module_Param* const curr = param.get_elem(i);\n"
+    "      for (size_t i=0; i<mp->get_size(); ++i) {\n"
+    "        Module_Param* const curr = mp->get_elem(i);\n"
     "        (*this)[curr->get_id()->get_index()].set_param(*curr);\n"
     "      }\n"
     "      break;\n"
@@ -2110,12 +2149,12 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
     "    }\n"
     "    break;\n"
     "  case Module_Param::OT_CONCAT:\n"
-    "    switch (param.get_type()) {\n"
+    "    switch (mp->get_type()) {\n"
     "    case Module_Param::MP_Value_List: {\n"
     "      if (!is_bound()) *this = NULL_VALUE;\n"
     "      int start_idx = lengthof();\n"
-    "      for (size_t i=0; i<param.get_size(); ++i) {\n"
-    "        Module_Param* const curr = param.get_elem(i);\n"
+    "      for (size_t i=0; i<mp->get_size(); ++i) {\n"
+    "        Module_Param* const curr = mp->get_elem(i);\n"
     "        if ((curr->get_type()!=Module_Param::MP_NotUsed)) {\n"
     "          (*this)[start_idx+(int)i].set_param(*curr);\n"
     "        }\n"
@@ -2135,6 +2174,37 @@ void defRecordOfClassMemAllocOptimized(const struct_of_def *sdef, output_struct
     sdef->kind == RECORD_OF ? "record of" : "set of",
     sdef->kind == RECORD_OF ? "record of" : "set of", dispname,
     sdef->kind == RECORD_OF ? "record of" : "set of", dispname);
+  
+  /* get param function */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf
+    (src,
+    "Module_Param* %s::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (!is_bound()) {\n"
+    "    return new Module_Param_Unbound();\n"
+    "  }\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] < '0' || param_field[0] > '9') {\n"
+    "      TTCN_error(\"Unexpected record field name in module parameter reference, \"\n"
+    "        \"expected a valid index for %s type `%s'\");\n"
+    "    }\n"
+    "    int param_index = -1;\n"
+    "    sscanf(param_field, \"%%d\", &param_index);\n"
+    "    return (*this)[param_index].get_param(param_name);\n"
+    "  }\n"
+    "  Vector<Module_Param*> values;\n"
+    "  for (int i = 0; i < n_elements; ++i) {\n"
+    "    values.push_back((*this)[i].get_param(param_name));\n"
+    "  }\n"
+    "  Module_Param_Value_List* mp = new Module_Param_Value_List();\n"
+    "  mp->add_list_with_implicit_ids(&values);\n"
+    "  values.clear();\n"
+    "  return mp;\n"
+    "}\n\n", name, sdef->kind == RECORD_OF ? "record of" : "set of", dispname);
 
   /* encoding / decoding functions */
   def = mputstr(def, "void encode_text(Text_Buf& text_buf) const;\n");
@@ -3388,15 +3458,15 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
   def = mputstr(def,
     "static boolean match_function_specific(const Base_Type *value_ptr, "
       "int value_index, const Restricted_Length_Template *template_ptr, "
-      "int template_index);\n");
+      "int template_index, boolean legacy);\n");
   src = mputprintf(src,
     "boolean %s_template::match_function_specific(const Base_Type *value_ptr, "
       "int value_index, const Restricted_Length_Template *template_ptr, "
-      "int template_index)\n"
+      "int template_index, boolean legacy)\n"
     "{\n"
     "if (value_index >= 0) return ((const %s_template*)template_ptr)->"
       "single_value.value_elements[template_index]->"
-      "match((*(const %s*)value_ptr)[value_index]);\n"
+      "match((*(const %s*)value_ptr)[value_index], legacy);\n"
     "else return ((const %s_template*)template_ptr)->"
       "single_value.value_elements[template_index]->is_any_or_omit();\n"
     "}\n\n", name, name, name, name);
@@ -3406,15 +3476,15 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     def = mputstr(def,
       "static boolean match_function_set(const Base_Type *value_ptr, "
 	"int value_index, const Restricted_Length_Template *template_ptr, "
-	"int template_index);\n");
+	"int template_index, boolean legacy);\n");
     src = mputprintf(src,
       "boolean %s_template::match_function_set(const Base_Type *value_ptr, "
 	"int value_index, const Restricted_Length_Template *template_ptr, "
-	"int template_index)\n"
+	"int template_index, boolean legacy)\n"
       "{\n"
       "if (value_index >= 0) return ((const %s_template*)template_ptr)->"
 	"value_set.set_items[template_index].match("
-	"(*(const %s*)value_ptr)[value_index]);\n"
+	"(*(const %s*)value_ptr)[value_index], legacy);\n"
       "else return ((const %s_template*)template_ptr)->"
 	"value_set.set_items[template_index].is_any_or_omit();\n"
       "}\n\n", name, name, name, name);
@@ -3423,16 +3493,16 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     def = mputstr(def,
       "static void log_function(const Base_Type *value_ptr, "
 	"const Restricted_Length_Template *template_ptr,"
-    " int index_value, int index_template);\n");
+    " int index_value, int index_template, boolean legacy);\n");
     src = mputprintf(src,
       "void %s_template::log_function(const Base_Type *value_ptr, "
 	"const Restricted_Length_Template *template_ptr,"
-    " int index_value, int index_template)\n"
+    " int index_value, int index_template, boolean legacy)\n"
       "{\n"
       "if (value_ptr != NULL && template_ptr != NULL)"
       "((const %s_template*)template_ptr)"
       "->single_value.value_elements[index_template]"
-      "->log_match((*(const %s*)value_ptr)[index_value]);\n"
+      "->log_match((*(const %s*)value_ptr)[index_value], legacy);\n"
       "else if (value_ptr != NULL) (*(const %s*)value_ptr)[index_value].log();\n"
       "else if (template_ptr != NULL) ((const %s_template*)template_ptr)"
 	"->single_value.value_elements[index_template]->log();\n"
@@ -3860,10 +3930,10 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     dispname, dispname, dispname, dispname, dispname, dispname);
 
   /* match operation */
-  def = mputprintf(def, "boolean match(const %s& other_value) const;\n",
-                   name);
+  def = mputprintf(def, "boolean match(const %s& other_value, boolean legacy "
+    "= FALSE) const;\n", name);
   src = mputprintf(src,
-    "boolean %s_template::match(const %s& other_value) const\n"
+    "boolean %s_template::match(const %s& other_value, boolean legacy) const\n"
     "{\n"
     "if (!other_value.is_bound()) return FALSE;\n"
     "int value_length = other_value.size_of();\n"
@@ -3871,7 +3941,7 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "switch (template_selection) {\n"
     "case SPECIFIC_VALUE:\n"
     "return match_%s_of(&other_value, value_length, this, "
-      "single_value.n_elements, match_function_specific);\n"
+      "single_value.n_elements, match_function_specific, legacy);\n"
     "case OMIT_VALUE:\n"
     "return FALSE;\n"
     "case ANY_VALUE:\n"
@@ -3881,7 +3951,7 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "case COMPLEMENTED_LIST:\n"
     "for (unsigned int list_count = 0; list_count < value_list.n_values; "
       "list_count++)\n"
-    "if (value_list.list_value[list_count].match(other_value)) "
+    "if (value_list.list_value[list_count].match(other_value, legacy)) "
       "return template_selection == VALUE_LIST;\n"
     "return template_selection == COMPLEMENTED_LIST;\n",
     name, name, sdef->kind == RECORD_OF ? "record" : "set");
@@ -3890,7 +3960,7 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
       "case SUPERSET_MATCH:\n"
       "case SUBSET_MATCH:\n"
       "return match_set_of(&other_value, value_length, this, "
-	"value_set.n_items, match_function_set);\n");
+	"value_set.n_items, match_function_set, legacy);\n");
   }
   src = mputprintf(src,
     "default:\n"
@@ -4091,13 +4161,13 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
      "log_ifpresent();\n"
      "}\n\n");
 
-  def = mputprintf(def, "void log_match(const %s& match_value) const;\n",
-                   name);
-  src = mputprintf(src, "void %s_template::log_match(const %s& match_value) "
-                   "const\n"
+  def = mputprintf(def, "void log_match(const %s& match_value, "
+    "boolean legacy = FALSE) const;\n", name);
+  src = mputprintf(src, "void %s_template::log_match(const %s& match_value, "
+    "boolean legacy) const\n"
     "{\n"
     "if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){\n"
-    "if(match(match_value)){\n"
+    "if(match(match_value, legacy)){\n"
     "TTCN_Logger::print_logmatch_buffer();\n"
     "TTCN_Logger::log_event_str(\" matched\");\n"
     "}else{\n", name, name);
@@ -4110,9 +4180,9 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();\n"
     "for (int elem_count = 0; elem_count < single_value.n_elements; "
     "elem_count++) {\n"
-    "if(!single_value.value_elements[elem_count]->match(match_value[elem_count])){\n"
+    "if(!single_value.value_elements[elem_count]->match(match_value[elem_count], legacy)){\n"
     "TTCN_Logger::log_logmatch_info(\"[%d]\", elem_count);\n"
-    "single_value.value_elements[elem_count]->log_match(match_value[elem_count]);\n"
+    "single_value.value_elements[elem_count]->log_match(match_value[elem_count], legacy);\n"
     "TTCN_Logger::set_logmatch_buffer_len(previous_size);\n"
     "}\n"
     "}\n"
@@ -4130,7 +4200,7 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();\n"
     "if (template_selection == SPECIFIC_VALUE)\n"
     "  log_match_heuristics(&match_value, match_value.size_of(), this, "
-    "single_value.n_elements, match_function_specific, log_function);\n"
+    "single_value.n_elements, match_function_specific, log_function, legacy);\n"
     "else{\n"
     "if(previous_size != 0){\n"
     "TTCN_Logger::print_logmatch_buffer();\n"
@@ -4159,7 +4229,7 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
 	"elem_count++) {\n"
       "if (elem_count > 0) TTCN_Logger::log_event_str(\", \");\n"
       "single_value.value_elements[elem_count]->log_match"
-      "(match_value[elem_count]);\n"
+      "(match_value[elem_count], legacy);\n"
       "}\n"
       "TTCN_Logger::log_event_str(\" }\");\n"
       "log_match_length(single_value.n_elements);\n"
@@ -4169,13 +4239,13 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "match_value.log();\n"
     "TTCN_Logger::log_event_str(\" with \");\n"
     "log();\n"
-    "if (match(match_value)) TTCN_Logger::log_event_str(\" matched\");\n");
+    "if (match(match_value, legacy)) TTCN_Logger::log_event_str(\" matched\");\n");
   if (sdef->kind == SET_OF) {
     src = mputstr(src, "else {\n"
       "TTCN_Logger::log_event_str(\" unmatched\");\n"
       "if (template_selection == SPECIFIC_VALUE) log_match_heuristics("
 	"&match_value, match_value.size_of(), this, single_value.n_elements, "
-	"match_function_specific, log_function);\n"
+	"match_function_specific, log_function, legacy);\n"
       "}\n");
   } else {
     src = mputstr(src, "else TTCN_Logger::log_event_str(\" unmatched\");\n"
@@ -4273,18 +4343,18 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "}\n\n", dispname);
 
   /* TTCN-3 ispresent() function */
-  def = mputstr(def, "boolean is_present() const;\n");
+  def = mputstr(def, "boolean is_present(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::is_present() const\n"
+    "boolean %s_template::is_present(boolean legacy) const\n"
     "{\n"
     "if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;\n"
-    "return !match_omit();\n"
+    "return !match_omit(legacy);\n"
     "}\n\n", name);
 
   /* match_omit() */
-  def = mputstr(def, "boolean match_omit() const;\n");
+  def = mputstr(def, "boolean match_omit(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::match_omit() const\n"
+    "boolean %s_template::match_omit(boolean legacy) const\n"
     "{\n"
     "if (is_ifpresent) return TRUE;\n"
     "switch (template_selection) {\n"
@@ -4293,10 +4363,12 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "return TRUE;\n"
     "case VALUE_LIST:\n"
     "case COMPLEMENTED_LIST:\n"
+    "if (legacy) {\n"
     "for (unsigned int i=0; i<value_list.n_values; i++)\n"
     "if (value_list.list_value[i].match_omit())\n"
     "return template_selection==VALUE_LIST;\n"
     "return template_selection==COMPLEMENTED_LIST;\n"
+    "} // else fall through\n"
     "default:\n"
     "return FALSE;\n"
     "}\n"
@@ -4323,7 +4395,11 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "    return;\n"
     "  }\n"
     "  param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, \"%s of template\");\n"
-    "  switch (param.get_type()) {\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
+    "  switch (mp->get_type()) {\n"
     "  case Module_Param::MP_Omit:\n"
     "    *this = OMIT_VALUE;\n"
     "    break;\n"
@@ -4334,40 +4410,43 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "    *this = ANY_OR_OMIT;\n"
     "    break;\n"
     "  case Module_Param::MP_List_Template:\n"
-    "  case Module_Param::MP_ComplementList_Template:\n"
-    "    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); p_i++) {\n"
-    "      list_item(p_i).set_param(*param.get_elem(p_i));\n"
+    "  case Module_Param::MP_ComplementList_Template: {\n"
+    "    %s_template temp;\n"
+    "    temp.set_type(mp->get_type()==Module_Param::MP_List_Template ? "
+    "VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); p_i++) {\n"
+    "      temp.list_item(p_i).set_param(*mp->get_elem(p_i));\n"
     "    }\n"
-    "    break;\n"
+    "    *this = temp;\n"
+    "    break; }\n"
     "  case Module_Param::MP_Indexed_List:\n"
     "    if (template_selection!=SPECIFIC_VALUE) set_size(0);\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {\n"
-    "      (*this)[(int)(param.get_elem(p_i)->get_id()->get_index())].set_param(*param.get_elem(p_i));\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); ++p_i) {\n"
+    "      (*this)[(int)(mp->get_elem(p_i)->get_id()->get_index())].set_param(*mp->get_elem(p_i));\n"
     "    }\n"
     "    break;\n",
-    name, sdef->kind==RECORD_OF?"record":"set", dispname, sdef->kind==RECORD_OF?"record":"set");
+    name, sdef->kind==RECORD_OF?"record":"set", dispname, sdef->kind==RECORD_OF?"record":"set", name);
   if (sdef->kind == RECORD_OF) {
     src = mputstr(src,
     "  case Module_Param::MP_Value_List: {\n"
-    "    set_size(param.get_size());\n"
+    "    set_size(mp->get_size());\n"
     "    int curr_idx = 0;\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {\n"
-    "      switch (param.get_elem(p_i)->get_type()) {\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); ++p_i) {\n"
+    "      switch (mp->get_elem(p_i)->get_type()) {\n"
     "      case Module_Param::MP_NotUsed:\n"
     "        curr_idx++;\n"
     "        break;\n"
     "      case Module_Param::MP_Permutation_Template: {\n"
     "        int perm_start_idx = curr_idx;\n"
-    "        for (size_t perm_i=0; perm_i<param.get_elem(p_i)->get_size(); perm_i++) {\n"
-    "          (*this)[curr_idx].set_param(*(param.get_elem(p_i)->get_elem(perm_i)));\n"
+    "        for (size_t perm_i=0; perm_i<mp->get_elem(p_i)->get_size(); perm_i++) {\n"
+    "          (*this)[curr_idx].set_param(*(mp->get_elem(p_i)->get_elem(perm_i)));\n"
     "          curr_idx++;\n"
     "        }\n"
     "        int perm_end_idx = curr_idx - 1;\n"
     "        add_permutation(perm_start_idx, perm_end_idx);\n"
     "      } break;\n"
     "      default:\n"
-    "        (*this)[curr_idx].set_param(*param.get_elem(p_i));\n"
+    "        (*this)[curr_idx].set_param(*mp->get_elem(p_i));\n"
     "        curr_idx++;\n"
     "      }\n"
     "    }\n"
@@ -4375,18 +4454,18 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
   } else {
     src = mputstr(src,
     "  case Module_Param::MP_Value_List:\n"
-    "    set_size(param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); ++p_i) {\n"
-    "      if (param.get_elem(p_i)->get_type()!=Module_Param::MP_NotUsed) {\n"
-    "        (*this)[p_i].set_param(*param.get_elem(p_i));\n"
+    "    set_size(mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); ++p_i) {\n"
+    "      if (mp->get_elem(p_i)->get_type()!=Module_Param::MP_NotUsed) {\n"
+    "        (*this)[p_i].set_param(*mp->get_elem(p_i));\n"
     "      }\n"
     "    }\n"
     "    break;\n"
     "  case Module_Param::MP_Superset_Template:\n"
     "  case Module_Param::MP_Subset_Template:\n"
-    "    set_type(param.get_type()==Module_Param::MP_Superset_Template ? SUPERSET_MATCH : SUBSET_MATCH, param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); p_i++) {\n"
-    "      set_item(p_i).set_param(*param.get_elem(p_i));\n"
+    "    set_type(mp->get_type()==Module_Param::MP_Superset_Template ? SUPERSET_MATCH : SUBSET_MATCH, mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); p_i++) {\n"
+    "      set_item(p_i).set_param(*mp->get_elem(p_i));\n"
     "    }\n"
     "    break;\n");
   }
@@ -4394,16 +4473,84 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
     "  default:\n"
     "    param.type_error(\"%s of template\", \"%s\");\n"
     "  }\n"
-    "  is_ifpresent = param.get_ifpresent();\n"
-    "  set_length_range(param);\n"
+    "  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();\n"
+    "  if (param.get_length_restriction() != NULL) {\n"
+    "    set_length_range(param);\n"
+    "  }\n"
+    "  else {\n"
+    "    set_length_range(*mp);\n"
+    "  };\n"
     "}\n\n", sdef->kind==RECORD_OF?"record":"set", dispname);
+  
+  /* get_param() */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf
+    (src,
+    "Module_Param* %s_template::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] < '0' || param_field[0] > '9') {\n"
+    "      TTCN_error(\"Unexpected record field name in module parameter reference, \"\n"
+    "        \"expected a valid index for %s template type `%s'\");\n"
+    "    }\n"
+    "    int param_index = -1;\n"
+    "    sscanf(param_field, \"%%d\", &param_index);\n"
+    "    return (*this)[param_index].get_param(param_name);\n"
+    "  }\n"
+    "  Module_Param* mp = NULL;\n"
+    "  switch (template_selection) {\n"
+    "  case UNINITIALIZED_TEMPLATE:\n"
+    "    mp = new Module_Param_Unbound();\n"
+    "    break;\n"
+    "  case OMIT_VALUE:\n"
+    "    mp = new Module_Param_Omit();\n"
+    "    break;\n"
+    "  case ANY_VALUE:\n"
+    "    mp = new Module_Param_Any();\n"
+    "    break;\n"
+    "  case ANY_OR_OMIT:\n"
+    "    mp = new Module_Param_AnyOrNone();\n"
+    "    break;\n"
+    "  case SPECIFIC_VALUE: {\n"
+    "    Vector<Module_Param*> values;\n"
+    "    for (int i = 0; i < single_value.n_elements; ++i) {\n"
+    "      values.push_back((*this)[i].get_param(param_name));\n"
+    "    }\n"
+    "    mp = new Module_Param_Value_List();\n"
+    "    mp->add_list_with_implicit_ids(&values);\n"
+    "    values.clear();\n"
+    "    break; }\n"
+    "  case VALUE_LIST:\n"
+    "  case COMPLEMENTED_LIST: {\n"
+    "    if (template_selection == VALUE_LIST) {\n"
+    "      mp = new Module_Param_List_Template();\n"
+    "    }\n"
+    "    else {\n"
+    "      mp = new Module_Param_ComplementList_Template();\n"
+    "    }\n"
+    "    for (size_t i = 0; i < value_list.n_values; ++i) {\n"
+    "      mp->add_elem(value_list.list_value[i].get_param(param_name));\n"
+    "    }\n"
+    "    break; }\n"
+    "  default:\n"
+    "    break;\n"
+    "  }\n"
+    "  if (is_ifpresent) {\n"
+    "    mp->set_ifpresent();\n"
+    "  }\n"
+    "  mp->set_length_restriction(get_length_range());\n"
+    "  return mp;\n"
+    "}\n\n", name, sdef->kind==RECORD_OF ? "record of" : "set of", dispname);
 
   /* check template restriction */
   def = mputstr(def, "void check_restriction(template_res t_res, "
-    "const char* t_name=NULL) const;\n");
+    "const char* t_name=NULL, boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
     "void %s_template::check_restriction("
-      "template_res t_res, const char* t_name) const\n"
+      "template_res t_res, const char* t_name, boolean legacy) const\n"
     "{\n"
     "if (template_selection==UNINITIALIZED_TEMPLATE) return;\n"
     "switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {\n"
@@ -4416,7 +4563,7 @@ void defRecordOfTemplate1(const struct_of_def *sdef, output_struct *output)
       "t_res, t_name ? t_name : \"%s\");\n"
     "return;\n"
     "case TR_PRESENT:\n"
-    "if (!match_omit()) return;\n"
+    "if (!match_omit(legacy)) return;\n"
     "break;\n"
     "default:\n"
     "return;\n"
@@ -4552,8 +4699,9 @@ void defRecordOfTemplate2(const struct_of_def *sdef, output_struct *output)
     type, name, type);
 
   /* match operation */
-  def = mputprintf(def, "inline boolean match(const %s& match_value) const "
-    "{ return matchv(&match_value); }\n", name);
+  def = mputprintf(def, "inline boolean match(const %s& match_value, "
+    "boolean legacy = FALSE) const "
+    "{ return matchv(&match_value, legacy); }\n", name);
 
   /* valueof operation */
   def = mputprintf(def, "%s valueof() const;\n", name);
@@ -4611,8 +4759,9 @@ void defRecordOfTemplate2(const struct_of_def *sdef, output_struct *output)
   }
 
   /* logging functions */
-  def = mputprintf(def, "inline void log_match(const %s& match_value) const "
-    "{ log_matchv(&match_value); }\n", name);
+  def = mputprintf(def, "inline void log_match(const %s& match_value, "
+    "boolean legacy = FALSE) const "
+    "{ log_matchv(&match_value, legacy); }\n", name);
 
   /* virtual helper functions */
   def = mputprintf(def,
diff --git a/compiler2/record_of.h b/compiler2/record_of.h
index 45ec92344..ca0c1714b 100644
--- a/compiler2/record_of.h
+++ b/compiler2/record_of.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/stack.hh b/compiler2/stack.hh
index 17c98dd38..de35cfeca 100644
--- a/compiler2/stack.hh
+++ b/compiler2/stack.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/string.cc b/compiler2/string.cc
index 1917183ff..fac350757 100644
--- a/compiler2/string.cc
+++ b/compiler2/string.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/string.hh b/compiler2/string.hh
index 886e953e1..cc57780c1 100644
--- a/compiler2/string.hh
+++ b/compiler2/string.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/subtype.cc b/compiler2/subtype.cc
index 60f81ae5b..bb448b307 100644
--- a/compiler2/subtype.cc
+++ b/compiler2/subtype.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -17,6 +17,7 @@
 #include "ttcn3/Templatestuff.hh"
 #include "ttcn3/PatternString.hh"
 #include "Constraint.hh"
+#include "../common/JSON_Tokenizer.hh"
 
 #include <limits.h>
 
@@ -3040,4 +3041,267 @@ void SubType::generate_code(output_struct &)
   if (checked!=STC_YES) FATAL_ERROR("SubType::generate_code()");
 }
 
+void SubType::generate_json_schema(JSON_Tokenizer& json, bool allow_special_float /* = true */)
+{
+  bool has_value_list = false;
+  size_t nof_ranges = 0;
+  for (size_t i = 0; i < parsed->size(); ++i) {
+    SubTypeParse *parse = (*parsed)[i];
+    switch (parse->get_selection()) {
+    case SubTypeParse::STP_SINGLE:
+      // single values will be added later, all at once
+      has_value_list = true;
+      break;
+    case SubTypeParse::STP_RANGE:
+      ++nof_ranges;
+      break;
+    case SubTypeParse::STP_LENGTH: {
+      Ttcn::LengthRestriction* len_res = parse->Length();
+      Value* min_val = len_res->get_is_range() ? len_res->get_lower_value() :
+        len_res->get_single_value();
+      Value* max_val = len_res->get_is_range() ? len_res->get_upper_value() :
+        len_res->get_single_value();
+      const char* json_min = NULL;
+      const char* json_max = NULL;
+      switch (subtype) {
+      case ST_RECORDOF:
+      case ST_SETOF:
+        // use minItems and maxItems for record of/set of
+        json_min = "minItems";
+        json_max = "maxItems";
+        break;
+      case ST_BITSTRING:
+      case ST_HEXSTRING:
+      case ST_OCTETSTRING:
+      case ST_CHARSTRING:
+      case ST_UNIVERSAL_CHARSTRING:
+        // use minLength and maxLength for string types
+        json_min = "minLength";
+        json_max = "maxLength";
+        break;
+      default:
+        FATAL_ERROR("SubType::generate_json_schema - length %d", subtype);
+      }
+      json.put_next_token(JSON_TOKEN_NAME, json_min);
+      min_val->generate_json_value(json);
+      if (max_val != NULL) {
+        json.put_next_token(JSON_TOKEN_NAME, json_max);
+        max_val->generate_json_value(json);
+      }
+      break; }
+    case SubTypeParse::STP_PATTERN: {
+      json.put_next_token(JSON_TOKEN_NAME, "pattern");
+      char* json_pattern = parse->Pattern()->convert_to_json();
+      json.put_next_token(JSON_TOKEN_STRING, json_pattern);
+      Free(json_pattern);
+      break; }
+    default:
+      break;
+    }
+  }
+
+  bool need_anyOf = (subtype == ST_INTEGER || subtype == ST_FLOAT) &&
+    (nof_ranges + (has_value_list ? 1 : 0) > 1);
+  if (need_anyOf) {
+    // there are multiple value range/value list restrictions,
+    // they need to be grouped in an 'anyOf' structure
+    json.put_next_token(JSON_TOKEN_NAME, "anyOf");
+    json.put_next_token(JSON_TOKEN_ARRAY_START);
+    json.put_next_token(JSON_TOKEN_OBJECT_START);
+  }
+  if (has_value_list) {
+    // generate the value list into an enum
+    json.put_next_token(JSON_TOKEN_NAME, "enum");
+    json.put_next_token(JSON_TOKEN_ARRAY_START);
+    generate_json_schema_value_list(json, allow_special_float);
+    json.put_next_token(JSON_TOKEN_ARRAY_END);
+  }
+  if (need_anyOf && has_value_list) {
+    // end of the value list and beginning of the first value range
+    json.put_next_token(JSON_TOKEN_OBJECT_END);
+    json.put_next_token(JSON_TOKEN_OBJECT_START);
+  }
+  if (nof_ranges > 0) {
+    switch (subtype) {
+    case ST_INTEGER:
+    case ST_FLOAT:
+      generate_json_schema_number_ranges(json);
+      break;
+    case ST_CHARSTRING:
+    case ST_UNIVERSAL_CHARSTRING: {
+      // merge all string range restrictions into one JSON schema pattern
+      char* pattern_str = mcopystrn("\"^[", 3);
+      pattern_str = generate_json_schema_string_ranges(pattern_str);
+      pattern_str = mputstrn(pattern_str, "]*$\"", 4);
+      json.put_next_token(JSON_TOKEN_NAME, "pattern");
+      json.put_next_token(JSON_TOKEN_STRING, pattern_str);
+      Free(pattern_str);
+      break; }
+    default:
+      FATAL_ERROR("SubType::generate_json_schema - range %d", subtype);
+    }
+  }
+  if (need_anyOf) {
+    // end of the 'anyOf' structure
+    json.put_next_token(JSON_TOKEN_OBJECT_END);
+    json.put_next_token(JSON_TOKEN_ARRAY_END);
+  }
+}
+
+void SubType::generate_json_schema_value_list(JSON_Tokenizer& json, bool allow_special_float)
+{
+  for (size_t i = 0; i < parsed->size(); ++i) {
+    SubTypeParse *parse = (*parsed)[i];
+    if (parse->get_selection() == SubTypeParse::STP_SINGLE) {
+      if (parse->Single()->get_valuetype() == Value::V_REFD) {
+        Common::Assignment* ass = parse->Single()->get_reference()->get_refd_assignment();
+        if (ass->get_asstype() == Common::Assignment::A_TYPE) {
+          // it's a reference to another subtype, insert its value list here
+          ass->get_Type()->get_sub_type()->generate_json_schema_value_list(json, allow_special_float);
+        }
+      }
+      else {
+        parse->Single()->generate_json_value(json, allow_special_float);
+      }
+    }
+  }
+}
+
+bool SubType::generate_json_schema_number_ranges(JSON_Tokenizer& json, bool first /* = true */)
+{
+  for (size_t i = 0; i < parsed->size(); ++i) {
+    SubTypeParse *parse = (*parsed)[i];
+    if (parse->get_selection() == SubTypeParse::STP_SINGLE) {
+      if (parse->Single()->get_valuetype() == Value::V_REFD) {
+        Common::Assignment* ass = parse->Single()->get_reference()->get_refd_assignment();
+        if (ass->get_asstype() == Common::Assignment::A_TYPE) {
+          // it's a reference to another subtype, insert its value ranges here
+          first = ass->get_Type()->get_sub_type()->generate_json_schema_number_ranges(json, first);
+        }
+      }
+    }
+    else if (parse->get_selection() == SubTypeParse::STP_RANGE) {
+      if (!first) {
+        // the ranges are in an 'anyOf' structure, they need to be placed in an object
+        json.put_next_token(JSON_TOKEN_OBJECT_END);
+        json.put_next_token(JSON_TOKEN_OBJECT_START);
+      }
+      else {
+        first = false;
+      }
+      // add the minimum and/or maximum values as numbers
+      if (parse->Min() != NULL) {
+        json.put_next_token(JSON_TOKEN_NAME, "minimum");
+        parse->Min()->generate_json_value(json);
+        json.put_next_token(JSON_TOKEN_NAME, "exclusiveMinimum");
+        json.put_next_token(parse->MinExclusive() ? JSON_TOKEN_LITERAL_TRUE : JSON_TOKEN_LITERAL_FALSE);
+      }
+      if (parse->Max() != NULL) {
+        json.put_next_token(JSON_TOKEN_NAME, "maximum");
+        parse->Max()->generate_json_value(json);
+        json.put_next_token(JSON_TOKEN_NAME, "exclusiveMaximum");
+        json.put_next_token(parse->MaxExclusive() ? JSON_TOKEN_LITERAL_TRUE : JSON_TOKEN_LITERAL_FALSE);
+      }
+    }
+  }
+  return first;
+}
+
+char* SubType::generate_json_schema_string_ranges(char* pattern_str)
+{
+  for (size_t i = 0; i < parsed->size(); ++i) {
+    SubTypeParse *parse = (*parsed)[i];
+    if (parse->get_selection() == SubTypeParse::STP_SINGLE) {
+      if (parse->Single()->get_valuetype() == Value::V_REFD) {
+        Common::Assignment* ass = parse->Single()->get_reference()->get_refd_assignment();
+        if (ass->get_asstype() == Common::Assignment::A_TYPE) {
+          // it's a reference to another subtype, insert its string ranges here
+          pattern_str = ass->get_Type()->get_sub_type()->generate_json_schema_string_ranges(pattern_str);
+        }
+      }
+    }
+    else if (parse->get_selection() == SubTypeParse::STP_RANGE) {
+      // insert the string range into the pattern string
+      string lower_str = (subtype == ST_CHARSTRING) ? parse->Min()->get_val_str() :
+        ustring_to_uft8(parse->Min()->get_val_ustr());
+      string upper_str = (subtype == ST_CHARSTRING) ? parse->Max()->get_val_str() :
+        ustring_to_uft8(parse->Max()->get_val_ustr());
+      pattern_str = mputprintf(pattern_str, "%s-%s", lower_str.c_str(), upper_str.c_str());
+    }
+  }
+  return pattern_str;
+}
+
+void SubType::generate_json_schema_float(JSON_Tokenizer& json)
+{
+  bool has_nan = float_st->is_element(make_ttcn3float(REAL_NAN));
+  bool has_pos_inf = float_st->is_element(make_ttcn3float(REAL_INFINITY));
+  bool has_neg_inf = float_st->is_element(make_ttcn3float(-REAL_INFINITY));
+  bool has_special = has_nan || has_pos_inf || has_neg_inf;
+  bool has_number = false;
+  for (size_t i = 0; i < parsed->size() && !has_number; ++i) {
+    // go through the restrictions and check if at least one number is allowed
+    SubTypeParse *parse = (*parsed)[i];
+    switch (parse->get_selection()) {
+    case SubTypeParse::STP_SINGLE: {
+      Real r = parse->Single()->get_val_Real();
+      if (r == r && r != REAL_INFINITY && r != -REAL_INFINITY) {
+        // a single value other than NaN, INF and -INF is a number
+        has_number = true;
+      }
+      break; }
+    case SubTypeParse::STP_RANGE: {
+      if (parse->Min() != NULL) {
+        if (parse->Min()->get_val_Real() != REAL_INFINITY) {
+          // a minimum value other than INF means a number is allowed
+          has_number = true;
+        }
+      }
+      if (parse->Max() != NULL) {
+        // a maximum value other than -INF means a number is allowed
+        if (parse->Max()->get_val_Real() != -REAL_INFINITY) {
+          has_number = true;
+        }
+      }
+      break; }
+    default:
+      break;
+    }
+  }
+  if (has_number && has_special) {
+    json.put_next_token(JSON_TOKEN_NAME, "anyOf");
+    json.put_next_token(JSON_TOKEN_ARRAY_START);
+    json.put_next_token(JSON_TOKEN_OBJECT_START);
+  }
+  if (has_number) {
+    json.put_next_token(JSON_TOKEN_NAME, "type");
+    json.put_next_token(JSON_TOKEN_STRING, "\"number\"");
+    // generate the restrictions' schema elements here
+    // (the 2nd parameter makes sure that NaN, INF and -INF are ignored)
+    generate_json_schema(json, false);
+  }
+  if (has_number && has_special) {
+    json.put_next_token(JSON_TOKEN_OBJECT_END);
+    json.put_next_token(JSON_TOKEN_OBJECT_START);
+  }
+  if (has_special) {
+    json.put_next_token(JSON_TOKEN_NAME, "enum");
+    json.put_next_token(JSON_TOKEN_ARRAY_START);
+    if (has_nan) {
+      json.put_next_token(JSON_TOKEN_STRING, "\"not_a_number\"");
+    }
+    if (has_pos_inf) {
+      json.put_next_token(JSON_TOKEN_STRING, "\"infinity\"");
+    }
+    if (has_neg_inf) {
+      json.put_next_token(JSON_TOKEN_STRING, "\"-infinity\"");
+    }
+    json.put_next_token(JSON_TOKEN_ARRAY_END);
+  }
+  if (has_number && has_special) {
+    json.put_next_token(JSON_TOKEN_OBJECT_END);
+    json.put_next_token(JSON_TOKEN_ARRAY_END);
+  }
+}
+
 } // namespace Common
diff --git a/compiler2/subtype.hh b/compiler2/subtype.hh
index f7fde1aa5..c6fb5a15a 100644
--- a/compiler2/subtype.hh
+++ b/compiler2/subtype.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -18,6 +18,8 @@
 
 #include "subtypestuff.hh"
 
+class JSON_Tokenizer;
+
 namespace Ttcn {
   class LengthRestriction;
   class Template;
@@ -255,6 +257,45 @@ public:
 
   /// No-op.
   void generate_code(output_struct &);
+  
+  /** Returns true if there are JSON schema elements to be generated for this subtype */
+  boolean has_json_schema() const { return parsed != NULL; }
+  
+  /** Generates the JSON schema segment for the type restrictions.
+    * 
+    * The float special values NaN, INF and -INF are not included in the code 
+    * generated for float value list restrictions if the 2nd parameter is false. */
+  void generate_json_schema(JSON_Tokenizer& json, bool allow_special_float = true);
+  
+  /** Generates the JSON values inside the subtype's value list restriction.
+    * Recursive (it also inserts the values of referenced subtypes into the list).
+    * 
+    * The float special values NaN, INF and -INF are not included in the code 
+    * generated for float value lists if the 2nd parameter is false. */
+  void generate_json_schema_value_list(JSON_Tokenizer& json, bool allow_special_float);
+  
+  /** Generates the JSON schema elements for integer and float range restrictions.
+    * If there are multiple restrictions, then they are placed in an 'anyOf' structure,
+    * each one in a JSON object. The function also inserts the separators between these
+    * objects (the 2nd parameter indicates whether the first range has been inserted).
+    *
+    * Recursive (it also inserts the value ranges of referenced subtypes).
+    * @return true, if the first value range has not been inserted yet */
+  bool generate_json_schema_number_ranges(JSON_Tokenizer& json, bool first = true);
+  
+  /** Generates the segments of the JSON schema string pattern (regex) used for
+    * representing the range restrictions of charstrings and universal charstrings.
+    * A value range (inside a regex set expression) is generated for each TTCN-3
+    * range restriction.
+    *
+    * Recursive (it also inserts the string ranges of referenced subtypes). */
+  char* generate_json_schema_string_ranges(char* pattern_str);
+  
+  /** Generates the JSON schema segment of the float type this subtype belongs to
+    * (the schema segment for the whole type is generated, not only the type's
+    * restrictions).
+    * This replaces the schema segment generated by Type::generate_json_schema().*/
+  void generate_json_schema_float(JSON_Tokenizer& json);
 
   void dump(unsigned level) const;
 
diff --git a/compiler2/subtypestuff.cc b/compiler2/subtypestuff.cc
index bc18d923b..ed38eb673 100644
--- a/compiler2/subtypestuff.cc
+++ b/compiler2/subtypestuff.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/subtypestuff.hh b/compiler2/subtypestuff.hh
index 473213e7b..f6f94c5a8 100644
--- a/compiler2/subtypestuff.hh
+++ b/compiler2/subtypestuff.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/tcov.xsd b/compiler2/tcov.xsd
index f8b0b24d4..99b71736d 100644
--- a/compiler2/tcov.xsd
+++ b/compiler2/tcov.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (c) 2000-2014 Ericsson Telecom AB
+  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
diff --git a/compiler2/tcov.xsl b/compiler2/tcov.xsl
index cd26bc71a..4c55ea16b 100644
--- a/compiler2/tcov.xsl
+++ b/compiler2/tcov.xsl
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (c) 2000-2014 Ericsson Telecom AB
+  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
diff --git a/compiler2/tcov2lcov.cc b/compiler2/tcov2lcov.cc
index 15b26cef6..e3c98a8c7 100644
--- a/compiler2/tcov2lcov.cc
+++ b/compiler2/tcov2lcov.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/tcov2lcov.hh b/compiler2/tcov2lcov.hh
index 33ec9799a..684762045 100644
--- a/compiler2/tcov2lcov.hh
+++ b/compiler2/tcov2lcov.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/titanver b/compiler2/titanver
index 012358c85..4bdd48caf 100644
--- a/compiler2/titanver
+++ b/compiler2/titanver
@@ -1,6 +1,6 @@
 #!/bin/sh
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/compiler2/ttcn3/AST_ttcn3.cc b/compiler2/ttcn3/AST_ttcn3.cc
index 8449e696b..efe3c18a4 100644
--- a/compiler2/ttcn3/AST_ttcn3.cc
+++ b/compiler2/ttcn3/AST_ttcn3.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -178,6 +178,25 @@ namespace Ttcn {
       str += "<unknown sub-reference>";
     }
   }
+  
+  void FieldOrArrayRef::set_field_name_to_lowercase()
+  {
+    if (ref_type != FIELD_REF) FATAL_ERROR("FieldOrArrayRef::set_field_name_to_lowercase()");
+    string new_name = u.id->get_name();
+    if (isupper(new_name[0])) {
+      new_name[0] = tolower(new_name[0]);
+      if (new_name[new_name.size() - 1] == '_') {
+        // an underscore is inserted at the end of the field name if it's
+        // a basic type's name (since it would conflict with the class generated
+        // for that type)
+        // remove the underscore, it won't conflict with anything if its name
+        // starts with a lowercase letter
+        new_name.replace(new_name.size() - 1, 1, "");
+      }
+      delete u.id;
+      u.id = new Identifier(Identifier::ID_NAME, new_name);
+    }
+  }
 
   // =================================
   // ===== FieldOrArrayRefs
@@ -706,7 +725,9 @@ namespace Ttcn {
 
       expr->expr = mputprintf(expr->expr, "%s", tmp_generalid_str);
     } else {
-      expr->expr = mputprintf(expr->expr, "%s.%s()", ass_id_str, isbound ? "is_bound":"is_present");
+      expr->expr = mputprintf(expr->expr, "%s.%s(%s)", ass_id_str,
+        isbound ? "is_bound":"is_present",
+        (!isbound && is_template && omit_in_value_list) ? "TRUE" : "");
     }
   }
 
@@ -942,28 +963,34 @@ namespace Ttcn {
 
     bool is_template;
     switch (ass->get_asstype()) {
+    case Common::Assignment::A_TEMPLATE:
+      if (NULL == ass->get_FormalParList()) {
+        // not a parameterized template
+        is_template = true;
+        break;
+      }
+      // else fall through
     case Common::Assignment::A_CONST:
     case Common::Assignment::A_EXT_CONST:
     case Common::Assignment::A_ALTSTEP:
     case Common::Assignment::A_TESTCASE:
     case Common::Assignment::A_FUNCTION:
     case Common::Assignment::A_EXT_FUNCTION:
+    case Common::Assignment::A_FUNCTION_RVAL:
+    case Common::Assignment::A_EXT_FUNCTION_RVAL:
+    case Common::Assignment::A_FUNCTION_RTEMP:
+    case Common::Assignment::A_EXT_FUNCTION_RTEMP:
       generate_code(expr);
       return;
     case Common::Assignment::A_MODULEPAR:
     case Common::Assignment::A_VAR:
-    case Common::Assignment::A_FUNCTION_RVAL:
-    case Common::Assignment::A_EXT_FUNCTION_RVAL:
     case Common::Assignment::A_PAR_VAL_IN:
     case Common::Assignment::A_PAR_VAL_OUT:
     case Common::Assignment::A_PAR_VAL_INOUT: {
       is_template = false;
       break; }
     case Common::Assignment::A_MODULEPAR_TEMP:
-    case Common::Assignment::A_TEMPLATE:
     case Common::Assignment::A_VAR_TEMPLATE:
-    case Common::Assignment::A_FUNCTION_RTEMP:
-    case Common::Assignment::A_EXT_FUNCTION_RTEMP:
     case Common::Assignment::A_PAR_TEMPL_IN:
     case Common::Assignment::A_PAR_TEMPL_OUT:
     case Common::Assignment::A_PAR_TEMPL_INOUT: {
@@ -1632,10 +1659,12 @@ namespace Ttcn {
       if (!covered) im->generate_code(target);
     }
     if (base_lib_needed) {
-      // if no real import was found the base library definitions has to be
-      // #include'd
-      target->header.includes = mputstr(target->header.includes,
-        "#include <TTCN3.hh>\n");
+      // if no real import was found the base library definitions have to be
+      // #include'd (also, make sure this is the first include)
+      char* temp = target->header.includes;
+      target->header.includes = mcopystr("#include <TTCN3.hh>\n");
+      target->header.includes = mputstr(target->header.includes, temp);
+      Free(temp);
     }
   }
 
@@ -3585,6 +3614,10 @@ namespace Ttcn {
       "modulepar_%s.set_param(param);\n"
       "return TRUE;\n"
       "} else ", dispname, name);
+    target->functions.get_param = mputprintf(target->functions.get_param,
+      "if (!strcmp(par_name, \"%s\")) {\n"
+      "return modulepar_%s.get_param(param_name);\n"
+      "} else ", dispname, name);
 
     if (target->functions.log_param) {
       // this is not the first modulepar
@@ -3753,6 +3786,10 @@ namespace Ttcn {
       "modulepar_%s.set_param(param);\n"
       "return TRUE;\n"
       "} else ", dispname, name);
+    target->functions.get_param = mputprintf(target->functions.get_param,
+      "if (!strcmp(par_name, \"%s\")) {\n"
+      "return modulepar_%s.get_param(param_name);\n"
+      "} else ", dispname, name);
 
     if (target->functions.log_param) {
       // this is not the first modulepar
@@ -3922,7 +3959,7 @@ namespace Ttcn {
       Error_Context ec(this, "While checking template restriction `%s'",
                        Template::get_restriction_name(template_restriction));
       gen_restriction_check =
-        body->chk_restriction("template definition", template_restriction);
+        body->chk_restriction("template definition", template_restriction, body);
       if (fp_list && template_restriction!=TR_PRESENT) {
         size_t nof_fps = fp_list->get_nof_fps();
         for (size_t i=0; i<nof_fps; i++) {
@@ -4656,7 +4693,7 @@ namespace Ttcn {
         OMIT_ALLOWED, ANY_OR_OMIT_ALLOWED, SUB_CHK, IMPLICIT_OMIT, 0);
       gen_restriction_check =
         initial_value->chk_restriction("template variable definition",
-                                       template_restriction);
+                                       template_restriction, initial_value);
       if (!semantic_check_only) {
         initial_value->set_genname_recursive(get_genname());
         initial_value->set_code_section(GovernedSimple::CS_INLINE);
@@ -7787,7 +7824,8 @@ namespace Ttcn {
     if (template_restriction!=TR_NONE) {
       bool needs_runtime_check =
         ret_val->get_TemplateInstance()->chk_restriction(
-          "template formal parameter", template_restriction);
+          "template formal parameter", template_restriction,
+          ret_val->get_TemplateInstance());
       if (needs_runtime_check)
         ret_val->set_gen_restriction_check(template_restriction);
     }
@@ -7887,7 +7925,7 @@ namespace Ttcn {
         case A_PAR_TEMPL_OUT:
         case A_PAR_TEMPL_INOUT: {
           FormalPar* fp = dynamic_cast<FormalPar*>(ass);
-          if (!fp) FATAL_ERROR("Template::chk_restriction_refd()");
+          if (!fp) FATAL_ERROR("FormalPar::chk_actual_par_by_ref()");
           refd_tr = fp->get_template_restriction();
         } break;
         default:
diff --git a/compiler2/ttcn3/AST_ttcn3.hh b/compiler2/ttcn3/AST_ttcn3.hh
index 06a57a6a9..119f4a3ee 100644
--- a/compiler2/ttcn3/AST_ttcn3.hh
+++ b/compiler2/ttcn3/AST_ttcn3.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -209,6 +209,12 @@ namespace Ttcn {
     Value* get_val() const;
     /** Appends the string representation of the sub-reference to \a str. */
     void append_stringRepr(string& str) const;
+    /** Sets the first letter in the name of the field to lowercase if it's an
+      * uppercase letter.
+      * Used on open types (the name of their alternatives can be given with both
+      * an uppercase or a lowercase first letter, and the generated code will need
+      * to use the lowercase version). */
+    void set_field_name_to_lowercase();
   };
 
   /** A vector of FieldOrArrayRef objects */
diff --git a/compiler2/ttcn3/ArrayDimensions.cc b/compiler2/ttcn3/ArrayDimensions.cc
index b971b2b4d..d8cddb134 100644
--- a/compiler2/ttcn3/ArrayDimensions.cc
+++ b/compiler2/ttcn3/ArrayDimensions.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/ArrayDimensions.hh b/compiler2/ttcn3/ArrayDimensions.hh
index d3f896aa2..9a6cf7b95 100644
--- a/compiler2/ttcn3/ArrayDimensions.hh
+++ b/compiler2/ttcn3/ArrayDimensions.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/Attributes.cc b/compiler2/ttcn3/Attributes.cc
index c63f0444f..8465ed877 100644
--- a/compiler2/ttcn3/Attributes.cc
+++ b/compiler2/ttcn3/Attributes.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -1205,14 +1205,14 @@ namespace Ttcn {
           case SingleWithAttrib::AT_VARIANT: {
             // Ignore JSON variants, these should not produce warnings
             const string& spec = act_single->get_attribSpec().get_spec();
-            size_t i = 0;
-            while (i < spec.size()) {
-              if (spec[i] != ' ' && spec[i] != '\t') {
+            size_t i2 = 0;
+            while (i2 < spec.size()) {
+              if (spec[i2] != ' ' && spec[i2] != '\t') {
                 break;
               }
-              ++i;
+              ++i2;
             }
-            if (i == spec.size() || spec.find("JSON", i) != i) {
+            if (i2 == spec.size() || spec.find("JSON", i2) != i2) {
               self_has_variant = true;
             }
             break; }
diff --git a/compiler2/ttcn3/Attributes.hh b/compiler2/ttcn3/Attributes.hh
index 780786c36..e070d9c98 100644
--- a/compiler2/ttcn3/Attributes.hh
+++ b/compiler2/ttcn3/Attributes.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/BerAST.cc b/compiler2/ttcn3/BerAST.cc
index 4d1bfa87e..7c503ef9e 100644
--- a/compiler2/ttcn3/BerAST.cc
+++ b/compiler2/ttcn3/BerAST.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/BerAST.hh b/compiler2/ttcn3/BerAST.hh
index c4e8fa7bf..fe151bc5b 100644
--- a/compiler2/ttcn3/BerAST.hh
+++ b/compiler2/ttcn3/BerAST.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/ILT.cc b/compiler2/ttcn3/ILT.cc
index 7ab2076be..043afa758 100644
--- a/compiler2/ttcn3/ILT.cc
+++ b/compiler2/ttcn3/ILT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/ILT.hh b/compiler2/ttcn3/ILT.hh
index 36dfc69b9..4d90e3996 100644
--- a/compiler2/ttcn3/ILT.hh
+++ b/compiler2/ttcn3/ILT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/JsonAST.cc b/compiler2/ttcn3/JsonAST.cc
index d7bc09200..b3ead3a6e 100644
--- a/compiler2/ttcn3/JsonAST.cc
+++ b/compiler2/ttcn3/JsonAST.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,12 +10,25 @@
 #include <cstddef>
 #include <cstdio>
 
+void JsonSchemaExtension::init(const char* p_key, const char* p_value)
+{
+  key = mcopystr(p_key);
+  value = mcopystr(p_value);
+}
+
+JsonSchemaExtension::~JsonSchemaExtension()
+{
+  Free(key);
+  Free(value);
+}
+
 void JsonAST::init_JsonAST()
 {
   omit_as_null = false;
   alias = NULL;
   as_value = false;
   default_value = NULL;
+  metainfo_unbound = false;
 }
 
 JsonAST::JsonAST(const JsonAST *other_val)
@@ -26,6 +39,10 @@ JsonAST::JsonAST(const JsonAST *other_val)
     alias = (NULL != other_val->alias) ? mcopystr(other_val->alias) : NULL;
     as_value = other_val->as_value;
     default_value = (NULL != other_val->default_value) ? mcopystr(other_val->default_value) : NULL;
+    for (size_t i = 0; i < other_val->schema_extensions.size(); ++i) {
+      schema_extensions.add(new JsonSchemaExtension(*other_val->schema_extensions[i]));
+    }
+    metainfo_unbound = other_val->metainfo_unbound;
   }
 }
 
@@ -33,6 +50,10 @@ JsonAST::~JsonAST()
 {
   Free(alias);
   Free(default_value);
+  for (size_t i = 0; i < schema_extensions.size(); ++i) {
+    delete schema_extensions[i];
+  }
+  schema_extensions.clear();
 }
 
 void JsonAST::print_JsonAST() const
@@ -52,4 +73,13 @@ void JsonAST::print_JsonAST() const
   if (default_value) {
     printf("Default value: %s\n\r", default_value);
   }
+  if (0 != schema_extensions.size()) {
+    printf("Extensions:");
+    for (size_t i = 0; i < schema_extensions.size(); ++i) {
+      printf(" \"%s\" : \"%s\"", schema_extensions[i]->key, schema_extensions[i]->value);
+    }
+  }
+  if (metainfo_unbound) {
+    printf("Metainfo for unbound field(s)\n\r");
+  }
 }
diff --git a/compiler2/ttcn3/JsonAST.hh b/compiler2/ttcn3/JsonAST.hh
index 91748d4b7..fe24901df 100644
--- a/compiler2/ttcn3/JsonAST.hh
+++ b/compiler2/ttcn3/JsonAST.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -9,6 +9,19 @@
 #define	JSONAST_HH_
 
 #include "../datatypes.h"
+#include "../vector.hh"
+
+class JsonSchemaExtension {
+private:
+  void init(const char* p_key, const char* p_value);
+public:
+  char* key;
+  char* value;
+  
+  JsonSchemaExtension(const char* p_key, const char* p_value) { init(p_key, p_value); }
+  JsonSchemaExtension(const JsonSchemaExtension& x) { init(x.key, x.value); }
+  ~JsonSchemaExtension();
+};
 
 class JsonAST {
   private:
@@ -20,6 +33,8 @@ class JsonAST {
     char* alias;
     boolean as_value;
     char* default_value;
+    vector<JsonSchemaExtension> schema_extensions;
+    boolean metainfo_unbound;
   
     JsonAST() { init_JsonAST(); }
     JsonAST(const JsonAST *other_val);
diff --git a/compiler2/ttcn3/Makefile b/compiler2/ttcn3/Makefile
index cdac82771..3c8b3111c 100644
--- a/compiler2/ttcn3/Makefile
+++ b/compiler2/ttcn3/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/compiler2/ttcn3/PatternString.cc b/compiler2/ttcn3/PatternString.cc
index 668fc4e25..277653453 100644
--- a/compiler2/ttcn3/PatternString.cc
+++ b/compiler2/ttcn3/PatternString.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -9,6 +9,7 @@
 #include "../../common/pattern.hh"
 #include "../CompilerError.hh"
 #include "../Code.hh"
+#include "../../common/JSON_Tokenizer.hh"
 
 #include "TtcnTemplate.hh"
 
@@ -491,6 +492,55 @@ namespace Ttcn {
         new string(get_full_str()));
     return cstr_value;
   }
+  
+  char* PatternString::convert_to_json()
+  {
+    string pstr = get_value()->get_val_str();
+    
+    // convert the pattern into an extended regular expression
+    char* regex_str = NULL;
+    if (CSTR_PATTERN == pattern_type) {
+      regex_str = TTCN_pattern_to_regexp(pstr.c_str());
+    }
+    else { // USTR_PATTERN
+      // handle the unicode characters in \q{g,p,r,c} format
+      string utf8str;
+      for (size_t i = 0; i < pstr.size(); ++i) {
+        if ('\\' == pstr[i]) {
+          if ('q' == pstr[i + 1]) {
+            // extract the unicode character
+            unsigned int group, plane, row, cell;
+            i = pstr.find('{', i + 1);
+            sscanf(pstr.c_str() + i + 1, "%u", &group);
+            i = pstr.find(',', i + 1);
+            sscanf(pstr.c_str() + i + 1, "%u", &plane);
+            i = pstr.find(',', i + 1);
+            sscanf(pstr.c_str() + i + 1, "%u", &row);
+            i = pstr.find(',', i + 1);
+            sscanf(pstr.c_str() + i + 1, "%u", &cell);
+            i = pstr.find('}', i + 1);
+            
+            // convert the character to UTF-8 format
+            utf8str += ustring_to_uft8(ustring(group, plane, row, cell));
+            continue;
+          }
+          else if ('\\' == pstr[i + 1]) {
+            // must be handled separately, so we don't confuse \\q with \q
+            ++i;
+            utf8str += '\\';
+          }
+        }
+        utf8str += pstr[i];
+      }
+      
+      // use the pattern converter for charstrings, the pattern should be in UTF-8
+      // format now (setting the 2nd parameter will make sure that no error
+      // messages are displayed for extended ASCII characters)
+      regex_str = TTCN_pattern_to_regexp(utf8str.c_str(), true);
+    }
+    
+    return convert_to_json_string(regex_str);
+  }
 
 } // namespace Ttcn
 
diff --git a/compiler2/ttcn3/PatternString.hh b/compiler2/ttcn3/PatternString.hh
index db99d7911..5a35dd1a9 100644
--- a/compiler2/ttcn3/PatternString.hh
+++ b/compiler2/ttcn3/PatternString.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -79,6 +79,9 @@ namespace Ttcn {
 
     /** Called by Value::get_value_refd_last() */
     Value* get_value();
+    
+    /** Converts this string pattern into a JSON schema string pattern. */
+    char* convert_to_json();
   };
 
 } // namespace Ttcn
diff --git a/compiler2/ttcn3/RawAST.cc b/compiler2/ttcn3/RawAST.cc
index 47ec94d8d..7f1699b61 100644
--- a/compiler2/ttcn3/RawAST.cc
+++ b/compiler2/ttcn3/RawAST.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -56,6 +56,7 @@ RawAST::RawAST(RawAST *other,bool int_type){
     topleveleind=other->topleveleind;
     toplevel.bitorder=other->toplevel.bitorder;
     length_restrition=other->length_restrition;
+    intx = other->intx;
     }
     else init_rawast(int_type);
 }
@@ -94,7 +95,7 @@ void RawAST::init_rawast(bool int_type){
     presence.nElements=0;
     presence.keyList=NULL;
     topleveleind=0;
-
+    intx = false;
 }
 
 RawAST::~RawAST(){
@@ -183,7 +184,7 @@ void RawAST::print_RawAST(){
         printf("\n\r");
       }
     }
-
+    printf("%sIntX encoding\n\r", intx ? "" : "not ");
 }
 
 void copy_rawAST_to_struct(RawAST *from, raw_attrib_struct *to){
@@ -291,5 +292,6 @@ int compare_raw_attrib(RawAST *a, RawAST *b){
            a->padding!=b->padding ||
            a->ptroffset!=b->ptroffset ||
            a->repeatable!=b->repeatable ||
-           a->unit!=b->unit;
+           a->unit!=b->unit ||
+           a->intx != b->intx;
 }
diff --git a/compiler2/ttcn3/RawAST.hh b/compiler2/ttcn3/RawAST.hh
index ca0837af9..d1e3e2678 100644
--- a/compiler2/ttcn3/RawAST.hh
+++ b/compiler2/ttcn3/RawAST.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -104,6 +104,7 @@ public:
     int topleveleind;
     rawAST_toplevel toplevel;      /**< Toplevel attributes */
     int length_restrition;
+    bool intx; /**< IntX encoding for integers */
     /** Default constructor.
      *  Calls \c init_rawast(false).
      *  \todo should be merged with the next one */
diff --git a/compiler2/ttcn3/Statement.cc b/compiler2/ttcn3/Statement.cc
index 02d28a669..b6f201c73 100644
--- a/compiler2/ttcn3/Statement.cc
+++ b/compiler2/ttcn3/Statement.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -675,8 +675,9 @@ namespace Ttcn {
       delete fau_refd.ap_list2;
       break;
     case S_STRING2TTCN:
-      delete str2ttcn.val;
-      delete str2ttcn.ref;
+    case S_INT2ENUM:
+      delete convert_op.val;
+      delete convert_op.ref;
       break;
     default:
       FATAL_ERROR("Statement::clean_up()");
@@ -1324,11 +1325,21 @@ namespace Ttcn {
     }
   }
 
-  Statement::Statement(statementtype_t p_st, Value* p_val, Reference* p_ref): statementtype(p_st), my_sb(0)
+  Statement::Statement(statementtype_t p_st, Value* p_val, Reference* p_ref)
+    : statementtype(p_st), my_sb(0)
   {
-    if (p_st!=S_STRING2TTCN || p_val==NULL || p_ref==NULL) FATAL_ERROR("Statement::Statement()");
-    str2ttcn.val = p_val;
-    str2ttcn.ref = p_ref;
+    switch (statementtype) {
+    case S_STRING2TTCN:
+    case S_INT2ENUM:
+      if (p_val==NULL || p_ref==NULL) {
+        FATAL_ERROR("Statement::Statement()");
+      }
+      convert_op.val = p_val;
+      convert_op.ref = p_ref;
+      break;
+    default:
+      FATAL_ERROR("Statement::Statement()");
+    }
   }
 
   Statement::~Statement()
@@ -1455,6 +1466,7 @@ namespace Ttcn {
     case S_TESTCASE_INSTANCE_REFD:
       return "execute";
     case S_STRING2TTCN: return "string2ttcn";
+    case S_INT2ENUM: return "int2enum";
     case S_START_PROFILER: return "@profiler.start";
     case S_STOP_PROFILER: return "@profiler.stop";
     default:
@@ -1745,8 +1757,9 @@ namespace Ttcn {
       fau_refd.t_list1->set_my_scope(p_scope);
       break;
     case S_STRING2TTCN:
-      str2ttcn.val->set_my_scope(p_scope);
-      str2ttcn.ref->set_my_scope(p_scope);
+    case S_INT2ENUM:
+      convert_op.val->set_my_scope(p_scope);
+      convert_op.ref->set_my_scope(p_scope);
       break;
     default:
       FATAL_ERROR("Statement::set_my_scope()");
@@ -1991,8 +2004,9 @@ namespace Ttcn {
       fau_refd.t_list1->set_fullname(p_fullname+".<parameters>");
       break;
     case S_STRING2TTCN:
-      str2ttcn.val->set_fullname(p_fullname+".ti");
-      str2ttcn.ref->set_fullname(p_fullname+".ref");
+    case S_INT2ENUM:
+      convert_op.val->set_fullname(p_fullname+".ti");
+      convert_op.ref->set_fullname(p_fullname+".ref");
       break;
     default:
       FATAL_ERROR("Statement::set_fullname()");
@@ -2268,6 +2282,7 @@ namespace Ttcn {
     case S_TESTCASE_INSTANCE_REFD:
     case S_START_PROFILER:
     case S_STOP_PROFILER:
+    case S_INT2ENUM:
       return false;
     case S_ALT:
     case S_INTERLEAVE:
@@ -2508,6 +2523,9 @@ namespace Ttcn {
     case S_STRING2TTCN:
       chk_string2ttcn();
       break;
+    case S_INT2ENUM:
+      chk_int2enum();
+      break;
     case S_START_PROFILER:
     case S_STOP_PROFILER:
       // do nothing
@@ -2520,9 +2538,9 @@ namespace Ttcn {
   void Statement::chk_string2ttcn()
   {
     Error_Context cntxt(this, "In string2ttcn() statement");
-    str2ttcn.val->chk_expr_type(Type::T_CSTR, "charstring", Type::EXPECTED_DYNAMIC_VALUE);
+    convert_op.val->chk_expr_type(Type::T_CSTR, "charstring", Type::EXPECTED_DYNAMIC_VALUE);
     ///
-    Common::Assignment* refd_ass = str2ttcn.ref->get_refd_assignment();
+    Common::Assignment* refd_ass = convert_op.ref->get_refd_assignment();
     if (refd_ass==NULL) {
       error("Could not determine the assignment for second parameter");
       goto error;
@@ -2530,7 +2548,7 @@ namespace Ttcn {
     switch (refd_ass->get_asstype()) {
     case Definition::A_PAR_VAL_IN:
     case Definition::A_PAR_TEMPL_IN:
-      refd_ass->use_as_lvalue(*str2ttcn.ref);
+      refd_ass->use_as_lvalue(*convert_op.ref);
     case Definition::A_VAR:
     case Definition::A_VAR_TEMPLATE:
     case Definition::A_PAR_VAL_OUT:
@@ -2540,16 +2558,38 @@ namespace Ttcn {
       // valid assignment types
       break;
     default:
-      str2ttcn.ref->error("Reference to '%s' cannot be used as the second parameter", refd_ass->get_assname());
+      convert_op.ref->error("Reference to '%s' cannot be used as the second parameter", refd_ass->get_assname());
       goto error;
     }
     return;
   error:
-    delete str2ttcn.val;
-    delete str2ttcn.ref;
+    delete convert_op.val;
+    delete convert_op.ref;
     statementtype = S_ERROR;
   }
-
+  
+  void Statement::chk_int2enum()
+  {
+    Error_Context cntxt(this, "In int2enum() statement");
+    convert_op.val->chk_expr_type(Type::T_INT, "integer", Type::EXPECTED_DYNAMIC_VALUE);
+    ///
+    Common::Assignment* refd_ass = convert_op.ref->get_refd_assignment();
+    if (refd_ass==NULL) {
+      error("Could not determine the assignment for second parameter");
+      goto error;
+    }
+    if (Type::T_ENUM_T != convert_op.ref->chk_variable_ref()->get_type_refd_last()->get_typetype_ttcn3()) {
+      convert_op.ref->error("A reference to variable or value parameter of "
+        "type enumerated was expected");
+      goto error;
+    }
+    return;
+  error:
+    delete convert_op.val;
+    delete convert_op.ref;
+    statementtype = S_ERROR;
+  }
+  
   void Statement::chk_allowed_interleave()
   {
     switch (statementtype) {
@@ -3073,7 +3113,7 @@ error:
         if (!dfb) FATAL_ERROR("Statement::chk_return()");
         returnexpr.gen_restriction_check =
           returnexpr.t->chk_restriction("return template",
-            dfb->get_template_restriction());
+            dfb->get_template_restriction(), this);
       }
       break;
     case Definition::A_ALTSTEP:
@@ -5302,8 +5342,9 @@ error:
             fau_refd.ap_list2->get_par(i)->set_code_section(p_code_section);
       break;
     case S_STRING2TTCN:
-      str2ttcn.val->set_code_section(p_code_section);
-      str2ttcn.ref->set_code_section(p_code_section);
+    case S_INT2ENUM:
+      convert_op.val->set_code_section(p_code_section);
+      convert_op.ref->set_code_section(p_code_section);
       break;
     default:
       FATAL_ERROR("Statement::set_code_section()");
@@ -5485,6 +5526,9 @@ error:
     case S_STRING2TTCN:
       str=generate_code_string2ttcn(str);
       break;
+    case S_INT2ENUM:
+      str = generate_code_int2enum(str);
+      break;
     case S_START_PROFILER:
       str = mputstr(str, "ttcn3_prof.start();\n");
       break;
@@ -5501,11 +5545,11 @@ error:
   {
     expression_struct val_expr;
     Code::init_expr(&val_expr);
-    str2ttcn.val->generate_code_expr(&val_expr);
+    convert_op.val->generate_code_expr(&val_expr);
 
     expression_struct ref_expr;
     Code::init_expr(&ref_expr);
-    str2ttcn.ref->generate_code(&ref_expr);
+    convert_op.ref->generate_code(&ref_expr);
 
     str = mputstr(str, val_expr.preamble);
     str = mputstr(str, ref_expr.preamble);
@@ -5520,7 +5564,52 @@ error:
 
     return str;
   }
+  
+  char* Statement::generate_code_int2enum(char* str)
+  {
+    expression_struct val_expr;
+    Code::init_expr(&val_expr);
+    convert_op.val->generate_code_expr(&val_expr);
+
+    expression_struct ref_expr;
+    Code::init_expr(&ref_expr);
+    convert_op.ref->generate_code(&ref_expr);
+    
+    // check if the reference is an optional field
+    bool is_optional = false;
+    FieldOrArrayRefs* subrefs = convert_op.ref->get_subrefs();
+    if (NULL != subrefs) {
+      Type* ref_type = convert_op.ref->get_refd_assignment()->get_Type()->get_type_refd_last();
+      for (size_t i = 0; i < subrefs->get_nof_refs(); ++i) {
+        FieldOrArrayRef* subref = subrefs->get_ref(i);
+        if (FieldOrArrayRef::ARRAY_REF == subref->get_type()) {
+          ref_type = ref_type->get_ofType()->get_type_refd_last();
+        }
+        else { // FIELD_REF
+          CompField* cf = ref_type->get_comp_byName(*subref->get_id());
+          if (i == subrefs->get_nof_refs() - 1 && cf->get_is_optional()) {
+            is_optional = true;
+          }
+          ref_type = cf->get_type()->get_type_refd_last();
+        }
+      }
+    }
 
+    str = mputstr(str, val_expr.preamble);
+    str = mputstr(str, ref_expr.preamble);
+
+    str = mputprintf(str, "%s%s.int2enum(%s);\n", ref_expr.expr,
+      is_optional ? "()" : "", val_expr.expr);
+
+    str = mputstr(str, val_expr.postamble);
+    str = mputstr(str, ref_expr.postamble);
+
+    Code::free_expr(&val_expr);
+    Code::free_expr(&ref_expr);
+
+    return str;
+  }
+  
   void Statement::generate_code_expr(expression_struct *expr)
   {
     switch (statementtype) {
@@ -7150,6 +7239,7 @@ error:
         case S_STRING2TTCN:
         case S_START_PROFILER:
         case S_STOP_PROFILER:
+        case S_INT2ENUM:
           break;
         default:
           FATAL_ERROR("Statement::set_parent_path()");
@@ -7548,7 +7638,7 @@ error:
     template_restriction = Template::get_sub_restriction(template_restriction, ref);
     // check the template restriction
     gen_restriction_check =
-      templ->chk_restriction("template", template_restriction);
+      templ->chk_restriction("template", template_restriction, this);
   }
 
   char *Assignment::generate_code(char *str)
@@ -9138,7 +9228,8 @@ error:
         if(!exprs.preamble && !exprs.postamble) {
           str=mputstr(str, "if(");
           if(!is_value)
-            str=mputprintf(str, "%s.match(%s)", exprs.expr, expr_name);
+            str=mputprintf(str, "%s.match(%s%s)", exprs.expr, expr_name,
+              omit_in_value_list ? ", TRUE" : "");
           else str=mputprintf(str, "%s == %s", expr_name, exprs.expr);
           str=mputprintf(str, ") goto %s_%lu;\n", tmp_prefix,
             (unsigned long) idx);
@@ -9150,7 +9241,8 @@ error:
           char *s=exprs.expr;
           exprs.expr=mprintf("%s_%lub = ", tmp_prefix, (unsigned long) idx);
           if(!is_value)
-            exprs.expr=mputprintf(exprs.expr, "%s.match(%s)", s, expr_name);
+            exprs.expr=mputprintf(exprs.expr, "%s.match(%s%s)", s, expr_name,
+              omit_in_value_list ? ", TRUE" : "");
           else exprs.expr=mputprintf(exprs.expr, "(%s == %s)", expr_name, s);
           Free(s);
           str=Code::merge_free_expr(str, &exprs);
diff --git a/compiler2/ttcn3/Statement.hh b/compiler2/ttcn3/Statement.hh
index 7abce565f..139091caa 100644
--- a/compiler2/ttcn3/Statement.hh
+++ b/compiler2/ttcn3/Statement.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -235,10 +235,12 @@ namespace Ttcn {
       /* control statement */
       S_TESTCASE_INSTANCE, // testcase_inst
       S_TESTCASE_INSTANCE_REFD, //execute_refd
-      S_STRING2TTCN, // str2ttcn
       /* TTCN-3 Profiler statements */
       S_START_PROFILER,
-      S_STOP_PROFILER
+      S_STOP_PROFILER,
+      /* Conversion statements */
+      S_STRING2TTCN, // convert_op
+      S_INT2ENUM // convert_op
     };
 
     enum component_t {
@@ -433,7 +435,7 @@ namespace Ttcn {
       struct { // S_STRING2TTCN
         Value* val;
         Reference* ref;
-      } str2ttcn;
+      } convert_op;
     };
 
     Statement(const Statement& p); ///< copy disabled
@@ -543,7 +545,7 @@ namespace Ttcn {
     /** Constructor used by S_ACTIVATE_REFD */
     Statement(statementtype_t p_st, Value *p_derefered_value,
                TemplateInstances *p_ap_list, Value *p_val);
-    /** Constructor used by S_STRING2TTCN */
+    /** Constructor used by S_STRING2TTCN, S_INT2ENUM */
     Statement(statementtype_t p_st, Value* p_val, Reference* p_ref);
     virtual ~Statement();
     virtual Statement* clone() const;
@@ -715,6 +717,7 @@ namespace Ttcn {
     Type *chk_conn_endpoint(Value *p_compref, Reference *p_portref,
                             bool allow_system);
     void chk_string2ttcn();
+    void chk_int2enum();
   public:
     /** Sets the code section selector of all embedded values and
      *  templates to \a p_code_section. */
@@ -802,6 +805,7 @@ namespace Ttcn {
      *  component reference. */
     static void generate_code_portref(expression_struct *expr,
       Reference *p_ref);
+    char* generate_code_int2enum(char* str);
   };
 
   /**
diff --git a/compiler2/ttcn3/Templatestuff.cc b/compiler2/ttcn3/Templatestuff.cc
index 94af53796..535c718cd 100644
--- a/compiler2/ttcn3/Templatestuff.cc
+++ b/compiler2/ttcn3/Templatestuff.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -319,6 +319,24 @@ namespace Ttcn {
     Node::set_my_scope(p_scope);
     temp->set_my_scope(p_scope);
   }
+  
+  void NamedTemplate::set_name_to_lowercase()
+  {
+    string new_name = name->get_name();
+    if (isupper(new_name[0])) {
+      new_name[0] = tolower(new_name[0]);
+      if (new_name[new_name.size() - 1] == '_') {
+        // an underscore is inserted at the end of the alternative name if it's
+        // a basic type's name (since it would conflict with the class generated
+        // for that type)
+        // remove the underscore, it won't conflict with anything if its name
+        // starts with a lowercase letter
+        new_name.replace(new_name.size() - 1, 1, "");
+      }
+      delete name;
+      name = new Identifier(Identifier::ID_NAME, new_name);
+    }
+  }
 
   Template* NamedTemplate::extract_template()
   {
diff --git a/compiler2/ttcn3/Templatestuff.hh b/compiler2/ttcn3/Templatestuff.hh
index be5b020be..54dd73a41 100644
--- a/compiler2/ttcn3/Templatestuff.hh
+++ b/compiler2/ttcn3/Templatestuff.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -163,6 +163,12 @@ namespace Ttcn {
     const Identifier& get_name() const { return *name; }
     /* \todo this should be called get_Template, like in TemplateInstance */
     Template *get_template() const { return temp; }
+    /** Sets the first letter in the name of the named template to lowercase
+      * if it's an uppercase letter.
+      * Used on open types (the name of their alternatives can be given with both
+      * an uppercase or a lowercase first letter, and the generated code will need
+      * to use the lowercase version). */
+    void set_name_to_lowercase();
     /** Remove the template from the ownership of NamedTemplate.
      * @return \a temp
      * @post \a temp == 0 */
diff --git a/compiler2/ttcn3/TextAST.cc b/compiler2/ttcn3/TextAST.cc
index 295ec30df..73019a2e3 100644
--- a/compiler2/ttcn3/TextAST.cc
+++ b/compiler2/ttcn3/TextAST.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/TextAST.hh b/compiler2/ttcn3/TextAST.hh
index 93bb3a616..45e0b9454 100644
--- a/compiler2/ttcn3/TextAST.hh
+++ b/compiler2/ttcn3/TextAST.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/Ttcn2Json.cc b/compiler2/ttcn3/Ttcn2Json.cc
index fb70102fb..92d913e1d 100644
--- a/compiler2/ttcn3/Ttcn2Json.cc
+++ b/compiler2/ttcn3/Ttcn2Json.cc
@@ -1,3 +1,11 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
 #include "Ttcn2Json.hh"
 
 #include "compiler.h"
@@ -32,6 +40,10 @@ void Ttcn2Json::create_schema(JSON_Tokenizer& json)
   // top-level object start
   json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
   
+  // insert the schema header
+  json.put_next_token(JSON_TOKEN_NAME, "$schema");
+  json.put_next_token(JSON_TOKEN_STRING, "\"http://json-schema.org/draft-04/schema#\"");
+  
   // start of type definitions
   json.put_next_token(JSON_TOKEN_NAME, "definitions");
   json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
diff --git a/compiler2/ttcn3/Ttcn2Json.hh b/compiler2/ttcn3/Ttcn2Json.hh
index c7a9701e7..52402dc51 100644
--- a/compiler2/ttcn3/Ttcn2Json.hh
+++ b/compiler2/ttcn3/Ttcn2Json.hh
@@ -1,3 +1,11 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
 #ifndef TTCN2JSON_HH
 #define	TTCN2JSON_HH
 
diff --git a/compiler2/ttcn3/TtcnTemplate.cc b/compiler2/ttcn3/TtcnTemplate.cc
index 03f6d5ee0..5342d34c8 100644
--- a/compiler2/ttcn3/TtcnTemplate.cc
+++ b/compiler2/ttcn3/TtcnTemplate.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -1549,6 +1549,9 @@ namespace Ttcn {
       Template *t = u.templates->get_t_byIndex(i);
       switch (t->templatetype) {
       case ANY_OR_OMIT:
+      case ALL_FROM:
+        // 'all from' clauses not known at compile time are also considered
+        // as 'AnyOrNone'
         return true;
       case PERMUTATION_MATCH:
         // walk recursively
@@ -1578,13 +1581,14 @@ namespace Ttcn {
       Template *t = u.templates->get_t_byIndex(i);
       switch (t->templatetype) {
       case ANY_OR_OMIT:
+      case ALL_FROM:
         // do not count it
         break;
       case PERMUTATION_MATCH:
         // walk recursively
         ret_val += t->get_nof_comps_not_anyornone();
         break;
-      default:
+     default:
         // other types are counted as 1
         ret_val++;
         break;
@@ -1968,8 +1972,6 @@ end:
       // check for subreferences in the 'all from' target
       FieldOrArrayRefs* subrefs = ref->get_subrefs();
       if (NULL != subrefs) {
-        // flattening values/templates with subreferences is not implemented yet
-        can_flatten = false;
         for (size_t i = 0; i < subrefs->get_nof_refs(); ++i) {
           FieldOrArrayRef* subref = subrefs->get_ref(i);
           if (FieldOrArrayRef::ARRAY_REF == subref->get_type()) {
@@ -1986,97 +1988,219 @@ end:
 
       Common::Assignment::asstype_t asst = ass->get_asstype();
       switch (asst) {
-      case Common::Assignment::A_MODULEPAR_TEMP:
-      case Common::Assignment::A_VAR_TEMPLATE: 
-      case Common::Assignment::A_FUNCTION_RTEMP: 
-      case Common::Assignment::A_EXT_FUNCTION_RTEMP: {
-        // Cannot flatten at compile time
-        delete new_templates;
-        new_templates = 0;
-        break; }
-
       case Common::Assignment::A_TEMPLATE: {
         Template *tpl = ass->get_Template();
         // tpl is the template whose name appears after the "all from"
-         Template::templatetype_t tpltt = tpl->get_templatetype();
-        switch (tpltt) {
-        case TEMPLATE_REFD: {
-          delete new_templates;
-          new_templates = 0;
-          killer = false;
-        break; }
-        case TEMPLATE_LIST:
-        // ALL_FROM ?
-        case VALUE_LIST: {
-          size_t nvl = tpl->get_nof_comps();
-          for (size_t ti = 0; ti < nvl; ++ti) {
-            Template *orig = tpl->get_temp_byIndex(ti);
-            switch (orig->templatetype) {
-            case SPECIFIC_VALUE: {
-              if (can_flatten) {
-                Value *val = orig->get_specific_value();
-                if (val->get_valuetype() == Value::V_REFD) {
-                  if (dynamic_cast<Ttcn::Ref_pard*>(val->get_reference())) {
-                    // Cannot flatten at compile time if one of the values or templates has parameters.
-                    can_flatten = false;
+        Common::Type *type = ass->get_Type()->get_type_refd_last();
+        if (NULL != subrefs) {
+          // walk through the subreferences to determine the type and value of the 'all from' target
+          // Note: the templates referenced by the array indexes and field names
+          // have not been checked yet
+          for (size_t i = 0; i < subrefs->get_nof_refs(); ++i) {
+            FieldOrArrayRef* subref = subrefs->get_ref(i);
+            if (FieldOrArrayRef::ARRAY_REF == subref->get_type()) {
+              // check if the type can be indexed
+              Common::Type::typetype_t tt = type->get_typetype();
+              if (Common::Type::T_SEQOF != tt && Common::Type::T_SETOF != tt &&
+                  Common::Type::T_ARRAY != tt) {
+                subref->error("Cannot apply an array index to type '%s'",
+                  type->get_typename().c_str());
+                i = subrefs->get_nof_refs(); // quit from the cycle, too
+                tpl = NULL;
+                break;
+              }
+              if (can_flatten && !subref->get_val()->is_unfoldable()) {
+                switch(tpl->get_templatetype()) {
+                case TEMPLATE_LIST:
+                case VALUE_LIST: {
+                  Int index = subref->get_val()->get_val_Int()->get_val();
+                  // check for index overflow
+                  if (index >= static_cast<Int>(tpl->get_nof_comps())) {
+                    subref->error("Index overflow in a template %s type `%s':"
+                      " the index is %s, but the template has only %lu elements",
+                      Common::Type::T_ARRAY == tt ? "array of" : 
+                      (Common::Type::T_SEQOF == tt ? "of 'record of'" : "of 'set of'"),
+                      type->get_typename().c_str(), Int2string(index).c_str(),
+                      (unsigned long)tpl->get_nof_comps());
+                    i = subrefs->get_nof_refs(); // quit from the cycle, too
+                    tpl = NULL;
+                    break;
                   }
+                  tpl = tpl->get_temp_byIndex(index);
+                  // check if the element is initialized
+                  if (TEMPLATE_NOTUSED == tpl->get_templatetype()) {
+                    subref->error("An uninitialized list element can not be used as target of 'all from'");
+                    i = subrefs->get_nof_refs(); // quit from the cycle, too
+                    tpl = NULL;
+                    break;
+                  }
+                  break; }
+                case INDEXED_TEMPLATE_LIST:
+                  can_flatten = false; // currently not supported
+                  break;
+                default:
+                  subref->error("Expected a specific value of type '%s' instead of %s",
+                    type->get_typename().c_str(), tpl->get_templatetype_str());
+                  i = subrefs->get_nof_refs(); // quit from the cycle, too
+                  tpl = NULL;
+                  break;
                 }
               }
-              break; }
-            case ANY_OR_OMIT:
-              if (from_permutation) {
-                break; // AnyElementOrNone allowed in "all from" now
+              else {
+                // one of the array indexes is a reference => cannot flatten
+                can_flatten = false;
               }
-              // no break
-            case PERMUTATION_MATCH:
-              t->error("'all from' can not refer to permutation or AnyElementsOrNone");
-              t->set_templatetype(TEMPLATE_ERROR);
-            default:
-              break;
+              type = type->get_ofType()->get_type_refd_last();
+            }
+            else { // FIELD_REF
+              // check if the type can have fields
+              Common::Type::typetype_t tt = type->get_typetype();
+              if (Common::Type::T_SEQ_T != tt && Common::Type::T_SEQ_A != tt &&
+                  Common::Type::T_SET_T != tt && Common::Type::T_SET_A != tt &&
+                  Common::Type::T_CHOICE_T != tt && Common::Type::T_CHOICE_A != tt) {
+                subref->error("Cannot apply a field name to type '%s'",
+                  type->get_typename().c_str());
+                tpl = NULL;
+                break;
+              }
+              // check if the field name is valid
+              if (!type->has_comp_withName(*subref->get_id())) {
+                subref->error("Type '%s' does not have a field with name '%s'",
+                  type->get_typename().c_str(), subref->get_id()->get_dispname().c_str());
+                tpl = NULL;
+                break;
+              }
+              if (can_flatten) {
+                switch(tpl->get_templatetype()) {
+                case NAMED_TEMPLATE_LIST: {
+                  // check if there is any data in the template for this field
+                  // (no data means it's uninitialized)
+                  if (!tpl->u.named_templates->has_nt_withName(*subref->get_id())) {
+                    subref->error("An uninitialized field can not be used as target of 'all from'");
+                    i = subrefs->get_nof_refs(); // quit from the cycle, too
+                    tpl = NULL;
+                    break;
+                  }
+                  tpl = tpl->u.named_templates->get_nt_byName(*subref->get_id())->get_template();
+                  // check if the field is initialized and present (not omitted)
+                  if (OMIT_VALUE == tpl->get_templatetype() || TEMPLATE_NOTUSED == tpl->get_templatetype()) {
+                    subref->error("An %s field can not be used as target of 'all from'",
+                      OMIT_VALUE == tpl->get_templatetype() ? "omitted" : "uninitialized");
+                    i = subrefs->get_nof_refs(); // quit from the cycle, too
+                    tpl = NULL;
+                    break;
+                  }
+                  break; }
+                default:
+                  subref->error("Expected a specific value of type '%s' instead of %s",
+                    type->get_typename().c_str(), tpl->get_templatetype_str());
+                  i = subrefs->get_nof_refs(); // quit from the cycle, too
+                  tpl = NULL;
+                  break;
+                }
+              }
+              type = type->get_comp_byName(*subref->get_id())->get_type()->get_type_refd_last();
             }
           }
+        }
+        if (NULL != tpl) { // tpl is set to null if an error occurs
           if (can_flatten) {
-            for (size_t ti = 0; ti < nvl; ++ti) {
+            Template::templatetype_t tpltt = tpl->get_templatetype();
+            switch (tpltt) {
+            case INDEXED_TEMPLATE_LIST: // currently not supported
+            case TEMPLATE_REFD: {
+              delete new_templates;
+              new_templates = 0;
+              killer = false;
+            break; }
+
+            case TEMPLATE_LIST:
+          // ALL_FROM ?
+            case VALUE_LIST: {
+              size_t nvl = tpl->get_nof_comps();
+              for (size_t ti = 0; ti < nvl; ++ti) {
               Template *orig = tpl->get_temp_byIndex(ti);
-              Template *copy = orig->clone();
-              copy->set_my_scope(orig->get_my_scope());
-              new_templates->add_t(copy);
-            }
-          }
-          else {
-            // Cannot flatten at compile time
-            delete new_templates;
-            new_templates = 0;
-            killer = false;
-          }
-          break; }
+                switch (orig->templatetype) {
+                case SPECIFIC_VALUE: {
+                  Value *val = orig->get_specific_value();
+                  if (val->get_valuetype() == Value::V_REFD) {
+                    if (dynamic_cast<Ttcn::Ref_pard*>(val->get_reference())) {
+                      // Cannot flatten at compile time if one of the values or templates has parameters.
+                      can_flatten = false;
+                    }
+                  }
+                  break; }
+                case ANY_OR_OMIT:
+                  if (from_permutation) {
+                    break; // AnyElementOrNone allowed in "all from" now
+                  }
+                  // no break
+                case PERMUTATION_MATCH:
+                  t->error("'all from' can not refer to permutation or AnyElementsOrNone");
+                  t->set_templatetype(TEMPLATE_ERROR);
+                default:
+                  break;
+                }
+              }
+              if (can_flatten) {
+                for (size_t ti = 0; ti < nvl; ++ti) {
+                Template *orig = tpl->get_temp_byIndex(ti);
+                  Template *copy = orig->clone();
+                  copy->set_my_scope(orig->get_my_scope());
+                  new_templates->add_t(copy);
+                }
+              }
+              else {
+                // Cannot flatten at compile time
+                delete new_templates;
+                new_templates = 0;
+                killer = false;
+              }
+              break; }
 
-        case NAMED_TEMPLATE_LIST: {
-          size_t nvl = tpl->get_nof_comps();
-          for (size_t ti = 0; ti < nvl; ++ti) {
-            NamedTemplate *orig = tpl->get_namedtemp_byIndex(ti);
-            switch (orig->get_template()->get_templatetype()) {
-              case ANY_OR_OMIT:
-                break;
-              case PERMUTATION_MATCH:
-                t->error("'all from' can not refer to permutation or AnyElementsOrNone");
-                t->set_templatetype(TEMPLATE_ERROR);
-              default:
-                break;
+            case NAMED_TEMPLATE_LIST: {
+              size_t nvl = tpl->get_nof_comps();
+              for (size_t ti = 0; ti < nvl; ++ti) {
+                NamedTemplate *orig = tpl->get_namedtemp_byIndex(ti);
+                switch (orig->get_template()->get_templatetype()) {
+                  case ANY_OR_OMIT:
+                    break;
+                  case PERMUTATION_MATCH:
+                    t->error("'all from' can not refer to permutation or AnyElementsOrNone");
+                    t->set_templatetype(TEMPLATE_ERROR);
+                  default:
+                    break;
+                }
+              }
+              delete new_templates;
+              new_templates = 0;
+              killer = false;
+              break; }
+
+            case ANY_VALUE:
+            case ANY_OR_OMIT:
+              tpl->error("Matching mechanism can not be used as target of 'all from'");
+              break;
+            default:
+              tpl->error("A template of type '%s' can not be used as target of 'all from'",
+                type->get_typename().c_str());
+              break;
             }
           }
-          delete new_templates;
-          new_templates = 0;
-          killer = false;
-          break; }
-
-        case ANY_VALUE:
-        case ANY_OR_OMIT:
-          tpl->error("Matching mechanism can not be used as target of 'all from'");
-          break;
-        default:
-          FATAL_ERROR("harbinger");
-          break;
+          else { // cannot flatten
+            switch (type->get_typetype()) {
+            case Common::Type::T_SEQOF: case Common::Type::T_SETOF:
+            case Common::Type::T_ARRAY:
+              delete new_templates;
+              new_templates = 0;
+              killer = false;
+              break;
+            default:
+              type->error("A template of type `%s' can not be used as target of 'all from'",
+                type->get_typename().c_str());
+              break;
+            } // switch(typetype)
+          }
         }
 
         if (killer) delete t;
@@ -2085,43 +2209,218 @@ end:
 
       case Common::Assignment::A_CONST: { // all from a constant definition
         Common::Value *val = ass->get_Value();
-        switch (val->get_valuetype()) {
-        case Common::Value::V_SEQOF: case Common::Value::V_SETOF:
-        case Common::Value::V_ARRAY: {
-          if (can_flatten) {
-            const size_t ncomp = val->get_nof_comps();
-            for (size_t i = 0; i < ncomp; ++i) {
-              Value *v = val->get_comp_byIndex(i);
-              Template *newt = new Template(v->clone());
-              new_templates->add_t(newt);
+        Common::Type *type = ass->get_Type()->get_type_refd_last();
+        if (NULL != subrefs) {
+          // walk through the subreferences to determine the type and value of the 'all from' target
+          for (size_t i = 0; i < subrefs->get_nof_refs(); ++i) {
+            FieldOrArrayRef* subref = subrefs->get_ref(i);
+            if (FieldOrArrayRef::ARRAY_REF == subref->get_type()) {
+              // check if the type can be indexed
+              Common::Type::typetype_t tt = type->get_typetype();
+              if (Common::Type::T_SEQOF != tt && Common::Type::T_SETOF != tt &&
+                  Common::Type::T_ARRAY != tt) {
+                subref->error("Cannot apply an array index to type '%s'",
+                  type->get_typename().c_str());
+                val = NULL;
+                break;
+              }
+              if (can_flatten && !subref->get_val()->is_unfoldable()) {
+                Int index = subref->get_val()->get_val_Int()->get_val();
+                // check for index overflow
+                if (index >= static_cast<Int>(val->get_nof_comps())) {
+                  subref->error("Index overflow in a value %s type `%s':"
+                    " the index is %s, but the template has only %lu elements",
+                    Common::Type::T_ARRAY == tt ? "array of" : 
+                    (Common::Type::T_SEQOF == tt ? "of 'record of'" : "of 'set of'"),
+                    type->get_typename().c_str(), Int2string(index).c_str(),
+                    (unsigned long)val->get_nof_comps());
+                  val = NULL;
+                  break;
+                }
+                val = val->get_comp_byIndex(index);
+                // check if the element is initialized
+                if (Common::Value::V_NOTUSED == val->get_valuetype()) {
+                  subref->error("An unbound list element can not be used as target of 'all from'");
+                  val = NULL;
+                  break;
+                }
+              }
+              else {
+                // one of the array indexes is a reference => cannot flatten
+                can_flatten = false;
+              }
+              type = type->get_ofType()->get_type_refd_last();
+            }
+            else { // FIELD_REF
+              // check if the type can have fields
+              Common::Type::typetype_t tt = type->get_typetype();
+              if (Common::Type::T_SEQ_T != tt && Common::Type::T_SEQ_A != tt &&
+                  Common::Type::T_SET_T != tt && Common::Type::T_SET_A != tt &&
+                  Common::Type::T_CHOICE_T != tt && Common::Type::T_CHOICE_A != tt) {
+                subref->error("Cannot apply a field name to type '%s'",
+                  type->get_typename().c_str());
+                val = NULL;
+                break;
+              }
+              // check if the field name is valid
+              if (!type->has_comp_withName(*subref->get_id())) {
+                subref->error("Type '%s' does not have a field with name '%s'",
+                  type->get_typename().c_str(), subref->get_id()->get_dispname().c_str());
+                val = NULL;
+                break;
+              }
+              type = type->get_comp_byName(*subref->get_id())->get_type()->get_type_refd_last();
+              if (can_flatten) {
+                // check if the value has any data for this field (no data = unbound)
+                if (!val->has_comp_withName(*subref->get_id())) {
+                  subref->error("An unbound field can not be used as target of 'all from'");
+                  val = NULL;
+                  break;
+                }
+                val = val->get_comp_value_byName(*subref->get_id());
+                // check if the field is bound and present (not omitted)
+                if (Common::Value::V_OMIT == val->get_valuetype() ||
+                    Common::Value::V_NOTUSED == val->get_valuetype()) {
+                  subref->error("An %s field can not be used as target of 'all from'",
+                    Common::Value::V_OMIT == val->get_valuetype() ? "omitted" : "unbound");
+                  val = NULL;
+                  break;
+                }
+              }
             }
           }
-          else {
-            delete new_templates;
-            new_templates = 0;
-            killer = false;
-          }
-          break; }
+        }
+        if (NULL != val) { // val is set to null if an error occurs
+          switch (type->get_typetype()) {
+          case Common::Type::T_SEQOF: case Common::Type::T_SETOF:
+          case Common::Type::T_ARRAY: {
+            if (can_flatten) {
+              const size_t ncomp = val->get_nof_comps();
+              for (size_t i = 0; i < ncomp; ++i) {
+                Value *v = val->get_comp_byIndex(i);
+                Template *newt = new Template(v->clone());
+                new_templates->add_t(newt);
+              }
+            }
+            else {
+              delete new_templates;
+              new_templates = 0;
+              killer = false;
+            }
+            break; }
 
-        default:
-          val->error("A constant of type `%s' can not be used as target of 'all from'",
-            val->get_my_governor()->get_typename().c_str());
-          break;
-        } // switch(valuetype)
+          default:
+            type->error("A constant of type `%s' can not be used as target of 'all from'",
+              type->get_typename().c_str());
+            break;
+          } // switch(typetype)
+        }
         if (killer) delete t;
         break; }
 
+      case Common::Assignment::A_MODULEPAR_TEMP:
+      case Common::Assignment::A_VAR_TEMPLATE: 
+      case Common::Assignment::A_FUNCTION_RTEMP: 
+      case Common::Assignment::A_EXT_FUNCTION_RTEMP:
       case Common::Assignment::A_PAR_TEMPL_IN:
       case Common::Assignment::A_PAR_TEMPL_INOUT:
+      case Common::Assignment::A_PAR_TEMPL_OUT:
 //TODO: flatten if the actual par is const template
       case Common::Assignment::A_MODULEPAR: // all from a module parameter
       case Common::Assignment::A_VAR: // all from a variable
       case Common::Assignment::A_PAR_VAL_IN:
-      case Common::Assignment::A_PAR_VAL_INOUT: 
+      case Common::Assignment::A_PAR_VAL_INOUT:
+      case Common::Assignment::A_PAR_VAL_OUT:
       case Common::Assignment::A_FUNCTION_RVAL:
       case Common::Assignment::A_EXT_FUNCTION_RVAL: {
-        delete new_templates; // cannot flatten at compile time
-        new_templates = 0;
+        Common::Type *type = ass->get_Type()->get_type_refd_last();
+        if (NULL != subrefs) {
+          // walk through the subreferences to determine the type of the 'all from' target
+          for (size_t i = 0; i < subrefs->get_nof_refs(); ++i) {
+            FieldOrArrayRef* subref = subrefs->get_ref(i);
+            if (FieldOrArrayRef::ARRAY_REF == subref->get_type()) {
+              // check if the type can be indexed
+              Common::Type::typetype_t tt = type->get_typetype();
+              if (Common::Type::T_SEQOF != tt && Common::Type::T_SETOF != tt &&
+                  Common::Type::T_ARRAY != tt) {
+                subref->error("Cannot apply an array index to type '%s'",
+                  type->get_typename().c_str());
+                type = NULL;
+                break;
+              }
+              type = type->get_ofType()->get_type_refd_last();
+            }
+            else { // FIELD_REF
+              // check if the type can have fields
+              Common::Type::typetype_t tt = type->get_typetype();
+              if (Common::Type::T_SEQ_T != tt && Common::Type::T_SEQ_A != tt &&
+                  Common::Type::T_SET_T != tt && Common::Type::T_SET_A != tt &&
+                  Common::Type::T_CHOICE_T != tt && Common::Type::T_CHOICE_A != tt) {
+                subref->error("Cannot apply a field name to type '%s'",
+                  type->get_typename().c_str());
+                type = NULL;
+                break;
+              }
+              // check if the field name is valid
+              if (!type->has_comp_withName(*subref->get_id())) {
+                subref->error("Type '%s' does not have a field with name '%s'",
+                  type->get_typename().c_str(), subref->get_id()->get_dispname().c_str());
+                type = NULL;
+                break;
+              }
+              type = type->get_comp_byName(*subref->get_id())->get_type()->get_type_refd_last();
+            }
+          }
+        }
+        if (NULL != type) {
+          switch (type->get_typetype()) {
+          case Common::Type::T_SEQOF: case Common::Type::T_SETOF:
+          case Common::Type::T_ARRAY:
+            delete new_templates; // cannot flatten at compile time
+            new_templates = 0;
+            break;
+          default: {
+            // not an array type => error
+            const char* ass_name = ass->get_assname();
+            string descr;
+            switch(asst) {
+            case Common::Assignment::A_MODULEPAR_TEMP:
+            case Common::Assignment::A_VAR_TEMPLATE:
+            case Common::Assignment::A_MODULEPAR:
+            case Common::Assignment::A_VAR:
+            case Common::Assignment::A_PAR_TEMPL_IN:
+            case Common::Assignment::A_PAR_VAL_IN:
+              descr = "A ";
+              descr += ass_name;
+              break;
+            case Common::Assignment::A_PAR_TEMPL_INOUT:
+            case Common::Assignment::A_PAR_TEMPL_OUT:
+            case Common::Assignment::A_PAR_VAL_INOUT:
+            case Common::Assignment::A_PAR_VAL_OUT:
+              descr = "An ";
+              descr += ass_name;
+              break;
+            // the assignment name string for functions is no good here
+            case Common::Assignment::A_FUNCTION_RTEMP:
+              descr = "A function returning a template";
+              break;
+            case Common::Assignment::A_FUNCTION_RVAL:
+              descr = "A function returning a value";
+              break;
+            case Common::Assignment::A_EXT_FUNCTION_RTEMP:
+              descr = "An external function returning a template";
+              break;
+            case Common::Assignment::A_EXT_FUNCTION_RVAL:
+              descr = "An external function returning a value";
+              break;
+            default:
+              break;
+            }
+            type->error("%s of type `%s' can not be used as target of 'all from'",
+              descr.c_str(), type->get_typename().c_str());
+            break; }
+          }
+        } // switch(typetype)
         break; }
 
       default:
@@ -2333,12 +2632,14 @@ end:
     default:
       FATAL_ERROR("Template::generate_restriction_check_code()");
     }
-    return mputprintf(str, "%s.check_restriction(%s);\n", name, tr_name);
+    return mputprintf(str, "%s.check_restriction(%s%s);\n", name, tr_name,
+      (omit_in_value_list ? ", NULL, TRUE" : ""));
   }
 
   // embedded templates -> check needed only for case of TR_OMIT
   bool Template::chk_restriction_named_list(const char* definition_name,
-    map<string, void>& checked_map, size_t needed_checked_cnt)
+    map<string, void>& checked_map, size_t needed_checked_cnt,
+    const Location* usage_loc)
   {
     bool needs_runtime_check = false;
     if (checked_map.size()>=needed_checked_cnt) return needs_runtime_check;
@@ -2349,14 +2650,14 @@ end:
         const string& name =
           u.named_templates->get_nt_byIndex(i)->get_name().get_name();
         if (!checked_map.has_key(name)) {
-          bool nrc = tmpl->chk_restriction(definition_name, TR_OMIT);
+          bool nrc = tmpl->chk_restriction(definition_name, TR_OMIT, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
           checked_map.add(name, 0);
         }
       }
       if (base_template) {
         bool nrc = base_template->chk_restriction_named_list(definition_name,
-                     checked_map, needed_checked_cnt);
+                     checked_map, needed_checked_cnt, usage_loc);
         needs_runtime_check = needs_runtime_check || nrc;
       }
       break;
@@ -2373,7 +2674,7 @@ end:
   }
 
   bool Template::chk_restriction_refd(const char* definition_name,
-    template_restriction_t template_restriction)
+    template_restriction_t template_restriction, const Location* usage_loc)
   {
     bool needs_runtime_check = false;
     Common::Assignment* ass = u.ref.ref->get_refd_assignment();
@@ -2386,7 +2687,7 @@ end:
       Template* t_last = get_template_refd_last();
       if (t_last!=this) {
         bool nrc = t_last->chk_restriction(definition_name,
-                                           template_restriction);
+          template_restriction, usage_loc);
         needs_runtime_check = needs_runtime_check || nrc;
       }
       break; }
@@ -2438,27 +2739,33 @@ end:
   }
 
   bool Template::chk_restriction(const char* definition_name,
-                                 template_restriction_t template_restriction)
+                                 template_restriction_t template_restriction,
+                                 const Location* usage_loc)
   {
     bool needs_runtime_check = false;
+    bool erroneous = false;
     switch (template_restriction) {
     case TR_NONE:
       break;
     case TR_OMIT:
     case TR_VALUE:
-      if (length_restriction)
-        error("Restriction on %s does not allow usage of length restriction",
-              definition_name);
-      if (is_ifpresent)
-        error("Restriction on %s does not allow usage of `ifpresent'",
-              definition_name);
+      if (length_restriction) {
+        usage_loc->error("Restriction on %s does not allow usage of length "
+          "restriction", definition_name);
+        erroneous = true;
+      }
+      if (is_ifpresent) {
+        usage_loc->error("Restriction on %s does not allow usage of `ifpresent'",
+          definition_name);
+        erroneous = true;
+      }
       switch(templatetype) {
       case TEMPLATE_ERROR:
         break;
       case TEMPLATE_NOTUSED:
         if (base_template) {
           bool nrc = base_template->chk_restriction(definition_name,
-                                                    template_restriction);
+            template_restriction, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
         }
         else needs_runtime_check = true;
@@ -2467,13 +2774,14 @@ end:
       case TEMPLATE_INVOKE:
         break;
       case TEMPLATE_REFD: {
-        bool nrc = chk_restriction_refd(definition_name, template_restriction);
+        bool nrc = chk_restriction_refd(definition_name, template_restriction,
+          usage_loc);
         needs_runtime_check = needs_runtime_check || nrc;
       } break;
       case TEMPLATE_LIST:
         for (size_t i = 0; i < u.templates->get_nof_ts(); i++) {
           bool nrc = u.templates->get_t_byIndex(i)->
-                       chk_restriction(definition_name, TR_OMIT);
+                       chk_restriction(definition_name, TR_OMIT, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
         }
         break;
@@ -2495,7 +2803,7 @@ end:
         }
         for (size_t i = 0;i < u.named_templates->get_nof_nts(); i++) {
           bool nrc = u.named_templates->get_nt_byIndex(i)->get_template()->
-                       chk_restriction(definition_name, TR_OMIT);
+                       chk_restriction(definition_name, TR_OMIT, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
           if (needed_checked_cnt)
             checked_map.add(
@@ -2503,7 +2811,7 @@ end:
         }
         if (needed_checked_cnt) {
           bool nrc = base_template->chk_restriction_named_list(definition_name,
-                       checked_map, needed_checked_cnt);
+                       checked_map, needed_checked_cnt, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
           checked_map.clear();
         }
@@ -2511,7 +2819,7 @@ end:
       case INDEXED_TEMPLATE_LIST:
         for (size_t i = 0; i < u.indexed_templates->get_nof_its(); i++) {
           bool nrc = u.indexed_templates->get_it_byIndex(i)->get_template()->
-                       chk_restriction(definition_name, TR_OMIT);
+                       chk_restriction(definition_name, TR_OMIT, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
         }
         needs_runtime_check = true; // only basic check, needs runtime check
@@ -2521,46 +2829,57 @@ end:
         // Else restriction is TR_VALUE, but template type is OMIT:
         // fall through to error.
       default:
-        error("Restriction on %s does not allow usage of %s",
-              definition_name, get_templatetype_str());
+        usage_loc->error("Restriction on %s does not allow usage of %s",
+          definition_name, get_templatetype_str());
+        erroneous = true;
         break;
       }
       break;
     case TR_PRESENT:
-      if (is_ifpresent)
-        error("Restriction on %s does not allow usage of `ifpresent'",
-              definition_name);
+      if (is_ifpresent) {
+        usage_loc->error("Restriction on %s does not allow usage of `ifpresent'",
+          definition_name);
+        erroneous = true;
+      }
       switch(templatetype) {
       case TEMPLATE_REFD: {
-        bool nrc = chk_restriction_refd(definition_name, template_restriction);
+        bool nrc = chk_restriction_refd(definition_name, template_restriction,
+          usage_loc);
         needs_runtime_check = needs_runtime_check || nrc;
       } break;
       case VALUE_LIST:
         for (size_t i = 0; i < u.templates->get_nof_ts(); i++) {
           bool nrc = u.templates->get_t_byIndex(i)->
-                       chk_restriction(definition_name, template_restriction);
+            chk_restriction(definition_name, template_restriction, usage_loc);
           needs_runtime_check = needs_runtime_check || nrc;
         }
         break;
-      case COMPLEMENTED_LIST: {
+      case COMPLEMENTED_LIST:
         // some basic check, always needs runtime check
         needs_runtime_check = true;
-        bool has_any_or_omit = false;
-        for (size_t i = 0; i < u.templates->get_nof_ts(); i++) {
-          templatetype_t item_templatetype =
-            u.templates->get_t_byIndex(i)->templatetype;
-          if (item_templatetype==OMIT_VALUE || item_templatetype==ANY_OR_OMIT) {
-            has_any_or_omit = true;
-            break;
+        if (omit_in_value_list) {
+          bool has_any_or_omit = false;
+          for (size_t i = 0; i < u.templates->get_nof_ts(); i++) {   
+            templatetype_t item_templatetype =   
+            u.templates->get_t_byIndex(i)->templatetype;   
+            if (item_templatetype==OMIT_VALUE || item_templatetype==ANY_OR_OMIT) {   
+              has_any_or_omit = true;   
+              break;   
+            }   
+          }   
+          if (!has_any_or_omit) {
+            usage_loc->error("Restriction on %s does not allow usage of %s without "
+              "omit or AnyValueOrNone in the list", definition_name,
+              get_templatetype_str());
+            erroneous = true;
           }
         }
-        if (has_any_or_omit) break;
-      }
-      // FIXME really no break?
+        break;
       case OMIT_VALUE:
       case ANY_OR_OMIT:
-        error("Restriction on %s does not allow usage of %s",
-              definition_name, get_templatetype_str());
+        usage_loc->error("Restriction on %s does not allow usage of %s",
+          definition_name, get_templatetype_str());
+        erroneous = true;
         break;
       default:
         break; // all others are ok
@@ -2569,6 +2888,10 @@ end:
     default:
       FATAL_ERROR("Template::chk_restriction()");
     }
+    if (erroneous && usage_loc != this) {
+      // display the template's location, too
+      note("Referenced template is here");
+    }
     return needs_runtime_check;
   }
 
@@ -3143,6 +3466,25 @@ end:
                     Code::free_expr(&expr);
                   }
                 }
+
+                switch(ass->get_asstype()) {
+                case Common::Assignment::A_CONST:
+                case Common::Assignment::A_EXT_CONST:
+                case Common::Assignment::A_MODULEPAR:
+                case Common::Assignment::A_VAR:
+                case Common::Assignment::A_PAR_VAL_IN:
+                case Common::Assignment::A_PAR_VAL_OUT:
+                case Common::Assignment::A_PAR_VAL_INOUT:
+                case Common::Assignment::A_FUNCTION_RVAL:
+                case Common::Assignment::A_EXT_FUNCTION_RVAL:
+                  if (ass->get_Type()->field_is_optional(subrefs)) {
+                    str_set_size = mputstrn(str_set_size, "()", 2);
+                  }
+                  break;
+                default:
+                  break;
+                }
+
                 str_set_size = mputstr(str_set_size, ".n_elem()");
               }
             }
@@ -3155,7 +3497,7 @@ end:
           Free(str_set_size);
 
           str = mputstrn(str, ");\n", 3); // finally done set_size
-
+          
           size_t index = 0;
           string skipper, hopper;
           for (size_t i = 0; i < nof_ts; i++) {
@@ -3183,6 +3525,25 @@ end:
                         ref_pard->generate_code_cached(&expr);
                       else
                         ref->generate_code(&expr);
+
+                      Common::Assignment* ass = ref->get_refd_assignment();
+                      switch(ass->get_asstype()) {
+                      case Common::Assignment::A_CONST:
+                      case Common::Assignment::A_EXT_CONST:
+                      case Common::Assignment::A_MODULEPAR:
+                      case Common::Assignment::A_VAR:
+                      case Common::Assignment::A_PAR_VAL_IN:
+                      case Common::Assignment::A_PAR_VAL_OUT:
+                      case Common::Assignment::A_PAR_VAL_INOUT:
+                      case Common::Assignment::A_FUNCTION_RVAL:
+                      case Common::Assignment::A_EXT_FUNCTION_RVAL:
+                        if (ass->get_Type()->field_is_optional(ref->get_subrefs())) {
+                          expr.expr = mputstrn(expr.expr, "()", 2);
+                        }
+                        break;
+                      default:
+                        break;
+                      }
                       
                       break; }
                     default:
@@ -3289,6 +3650,25 @@ end:
                   Code::free_expr(&expr);
                 }
               }
+
+              switch(ass->get_asstype()) {
+              case Common::Assignment::A_CONST:
+              case Common::Assignment::A_EXT_CONST:
+              case Common::Assignment::A_MODULEPAR:
+              case Common::Assignment::A_VAR:
+              case Common::Assignment::A_PAR_VAL_IN:
+              case Common::Assignment::A_PAR_VAL_OUT:
+              case Common::Assignment::A_PAR_VAL_INOUT:
+              case Common::Assignment::A_FUNCTION_RVAL:
+              case Common::Assignment::A_EXT_FUNCTION_RVAL:
+                if (ass->get_Type()->field_is_optional(subrefs)) {
+                  str_set_size = mputstrn(str_set_size, "()", 2);
+                }
+                break;
+              default:
+                break;
+              }
+
               str_set_size = mputstr(str_set_size, ".n_elem()");
             }
           }
@@ -3298,7 +3678,7 @@ end:
         Free(str_preamble);
         Free(str_set_size);
         str = mputstrn(str, ");\n", 3); // finally done set_size
-
+        
         size_t index = 0;
         string skipper;
         for (size_t i = 0; i < nof_ts; i++) {
@@ -3319,6 +3699,26 @@ end:
                       ref_pard->generate_code_cached(&expr);
                     else
                       ref->generate_code(&expr);
+
+                    Common::Assignment* ass = ref->get_refd_assignment();
+                    switch(ass->get_asstype()) {
+                    case Common::Assignment::A_CONST:
+                    case Common::Assignment::A_EXT_CONST:
+                    case Common::Assignment::A_MODULEPAR:
+                    case Common::Assignment::A_VAR:
+                    case Common::Assignment::A_PAR_VAL_IN:
+                    case Common::Assignment::A_PAR_VAL_OUT:
+                    case Common::Assignment::A_PAR_VAL_INOUT:
+                    case Common::Assignment::A_FUNCTION_RVAL:
+                    case Common::Assignment::A_EXT_FUNCTION_RVAL:
+                      if (ass->get_Type()->field_is_optional(ref->get_subrefs())) {
+                        expr.expr = mputstrn(expr.expr, "()", 2);
+                      }
+                      break;
+                    default:
+                      break;
+                    }
+
                     break; }
                   default:
                     FATAL_ERROR("vtype %d", spec->get_valuetype());
@@ -3344,8 +3744,6 @@ end:
               ++index;
               break; }
             default: {
-              printf("generate_code_init_seof allfrom default:  %s\n", 
-                (Int2string(index_offset + index) + skipper).c_str());
                str = t->generate_code_init_seof_element(str, name,
                  (Int2string(index_offset + index) + skipper).c_str(), oftype_name_str);
                // no break
@@ -3468,6 +3866,26 @@ compile_time:
           ref_pard->generate_code_cached(&expr);
         else
           ref->generate_code(&expr);
+
+        Common::Assignment* ass = ref->get_refd_assignment();
+        switch(ass->get_asstype()) {
+        case Common::Assignment::A_CONST:
+        case Common::Assignment::A_EXT_CONST:
+        case Common::Assignment::A_MODULEPAR:
+        case Common::Assignment::A_VAR:
+        case Common::Assignment::A_PAR_VAL_IN:
+        case Common::Assignment::A_PAR_VAL_OUT:
+        case Common::Assignment::A_PAR_VAL_INOUT:
+        case Common::Assignment::A_FUNCTION_RVAL:
+        case Common::Assignment::A_EXT_FUNCTION_RVAL:
+          if (ass->get_Type()->field_is_optional(ref->get_subrefs())) {
+            expr.expr = mputstrn(expr.expr, "()", 2);
+          }
+          break;
+        default:
+          break;
+        }
+        
         str = mputprintf(str, "%s = %s[i_i];\n", name, expr.expr);
         // The caller will have to provide the for cycle with this variable
         Code::free_expr(&expr);
@@ -3593,7 +4011,7 @@ compile_time:
 
     if (variables.size() > 0) {
       char* str_preamble = 0;
-      char* str_set_type = mputprintf(0, "%s.set_type(%s, %lu", name,
+      char* str_set_type = mprintf("%s.set_type(%s, %lu", name,
         (is_complemented ? "COMPLEMENTED_LIST" : "VALUE_LIST"),
         (unsigned long)fixed_part);
       // The code to compute the number of elements at run time (the variable part).
@@ -3633,11 +4051,30 @@ compile_time:
             Code::init_expr(&expr);
 
             subrefs->generate_code(&expr, ass);
-            str_set_type = mputprintf(str, "%s", expr.expr);
+            str_set_type = mputprintf(str_set_type, "%s", expr.expr);
 
             Code::free_expr(&expr);
           }
         }
+        
+        switch(ass->get_asstype()) {
+        case Common::Assignment::A_CONST:
+        case Common::Assignment::A_EXT_CONST:
+        case Common::Assignment::A_MODULEPAR:
+        case Common::Assignment::A_VAR:
+        case Common::Assignment::A_PAR_VAL_IN:
+        case Common::Assignment::A_PAR_VAL_OUT:
+        case Common::Assignment::A_PAR_VAL_INOUT:
+        case Common::Assignment::A_FUNCTION_RVAL:
+        case Common::Assignment::A_EXT_FUNCTION_RVAL:
+          if (ass->get_Type()->field_is_optional(subrefs)) {
+            str_set_type = mputstrn(str_set_type, "()", 2);
+          }
+          break;
+        default:
+          break;
+        }
+        
         str_set_type = mputstr(str_set_type, ".n_elem()");
       }
       
@@ -3648,7 +4085,7 @@ compile_time:
       Free(str_set_type);
       
       str = mputstrn(str, ");\n", 3);
-
+      
       string shifty; // contains the expression used to calculate
       // the size increase due to the runtime expansion of "all from".
       // In nof_ts, each "all from" appears as 1, but actually contributes
@@ -3674,7 +4111,27 @@ compile_time:
               if (ref_pard)
                 ref_pard->generate_code_cached(&expr);
               else
-                ref->generate_code(&expr);             
+                ref->generate_code(&expr);
+
+              Common::Assignment* ass = ref->get_refd_assignment();
+              switch(ass->get_asstype()) {
+              case Common::Assignment::A_CONST:
+              case Common::Assignment::A_EXT_CONST:
+              case Common::Assignment::A_MODULEPAR:
+              case Common::Assignment::A_VAR:
+              case Common::Assignment::A_PAR_VAL_IN:
+              case Common::Assignment::A_PAR_VAL_OUT:
+              case Common::Assignment::A_PAR_VAL_INOUT:
+              case Common::Assignment::A_FUNCTION_RVAL:
+              case Common::Assignment::A_EXT_FUNCTION_RVAL:
+                if (ass->get_Type()->field_is_optional(ref->get_subrefs())) {
+                  expr.expr = mputstrn(expr.expr, "()", 2);
+                }
+                break;
+              default:
+                break;
+              }
+
               break; }
 
             default:
@@ -3818,6 +4275,25 @@ compile_time:
             Code::free_expr(&expr);
           }
         }
+
+        switch(ass->get_asstype()) {
+        case Common::Assignment::A_CONST:
+        case Common::Assignment::A_EXT_CONST:
+        case Common::Assignment::A_MODULEPAR:
+        case Common::Assignment::A_VAR:
+        case Common::Assignment::A_PAR_VAL_IN:
+        case Common::Assignment::A_PAR_VAL_OUT:
+        case Common::Assignment::A_PAR_VAL_INOUT:
+        case Common::Assignment::A_FUNCTION_RVAL:
+        case Common::Assignment::A_EXT_FUNCTION_RVAL:
+          if (ass->get_Type()->field_is_optional(subrefs)) {
+            str_set_type = mputstrn(str_set_type, "()", 2);
+          }
+          break;
+        default:
+          break;
+        }
+        
         str_set_type = mputstr(str_set_type, ".n_elem()");
       }
       
@@ -3848,6 +4324,26 @@ compile_time:
                 ref_pard->generate_code_cached(&expr);
               else
                 ref->generate_code(&expr);
+
+              Common::Assignment* ass = ref->get_refd_assignment();
+              switch(ass->get_asstype()) {
+              case Common::Assignment::A_CONST:
+              case Common::Assignment::A_EXT_CONST:
+              case Common::Assignment::A_MODULEPAR:
+              case Common::Assignment::A_VAR:
+              case Common::Assignment::A_PAR_VAL_IN:
+              case Common::Assignment::A_PAR_VAL_OUT:
+              case Common::Assignment::A_PAR_VAL_INOUT:
+              case Common::Assignment::A_FUNCTION_RVAL:
+              case Common::Assignment::A_EXT_FUNCTION_RVAL:
+                if (ass->get_Type()->field_is_optional(ref->get_subrefs())) {
+                  expr.expr = mputstrn(expr.expr, "()", 2);
+                }
+                break;
+              default:
+                break;
+              }
+
               break; }
 
             default:
@@ -4468,7 +4964,7 @@ compile_time:
   }
 
   bool TemplateInstance::chk_restriction(const char* definition_name,
-    template_restriction_t template_restriction)
+    template_restriction_t template_restriction, const Location* usage_loc)
   {
     bool needs_runtime_check = false;
     if (derived_reference) // if modified
@@ -4478,7 +4974,7 @@ compile_time:
       case Common::Assignment::A_TEMPLATE:
         // already added to template_body as base template by chk_DerivedRef()
         needs_runtime_check = template_body->chk_restriction(
-          definition_name, template_restriction);
+          definition_name, template_restriction, usage_loc);
         break;
       case Common::Assignment::A_MODULEPAR_TEMP:
       case Common::Assignment::A_VAR_TEMPLATE:
@@ -4493,7 +4989,7 @@ compile_time:
           FATAL_ERROR("TemplateInstance::chk_restriction()");
         template_body->set_base_template(new Template(derived_reference));
         needs_runtime_check = template_body->chk_restriction(
-          definition_name, template_restriction);
+          definition_name, template_restriction, usage_loc);
         delete template_body->get_base_template();
         template_body->set_base_template(0);
       } break;
@@ -4502,7 +4998,7 @@ compile_time:
       }
     } else { // simple
       needs_runtime_check = template_body->chk_restriction(definition_name,
-                              template_restriction);
+                              template_restriction, usage_loc);
     }
     return needs_runtime_check;
   }
diff --git a/compiler2/ttcn3/TtcnTemplate.hh b/compiler2/ttcn3/TtcnTemplate.hh
index 9e49bec99..8925f8e0a 100644
--- a/compiler2/ttcn3/TtcnTemplate.hh
+++ b/compiler2/ttcn3/TtcnTemplate.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -360,9 +360,10 @@ namespace Ttcn {
   private:
     /** helper functions used by chk_restriction() */
     bool chk_restriction_named_list(const char* definition_name,
-      map<string, void>& checked_map, size_t needed_checked_cnt);
+      map<string, void>& checked_map, size_t needed_checked_cnt,
+      const Location* usage_loc);
     bool chk_restriction_refd(const char* definition_name,
-      template_restriction_t template_restriction);
+      template_restriction_t template_restriction, const Location* usage_loc);
   public:
     /** Checks if this template conforms to the restriction, return value:
      *  false = always satisfies restriction -> no runtime check needed or
@@ -371,9 +372,12 @@ namespace Ttcn {
      *          time -> runtime check needed and compiler warning given when
      *          inadequate restrictions are used, in other cases there's
      *          no warning
-     *  The return value is used by code generation to avoid useless checks */
+     *  The return value is used by code generation to avoid useless checks
+     *  @param usage_loc contains the location, where the template is used
+     *  (errors are issued here, instead of where the template is declared) */
     bool chk_restriction(const char* definition_name,
-                         template_restriction_t template_restriction);
+                         template_restriction_t template_restriction,
+                         const Location* usage_loc);
 
     /** Public entry points for code generation. */
     /** Generates the equivalent C++ code for the template. It is used
@@ -541,7 +545,7 @@ namespace Ttcn {
     bool is_string_type(Type::expected_value_t exp_val);
 
     bool chk_restriction(const char* definition_name,
-      template_restriction_t template_restriction);
+      template_restriction_t template_restriction, const Location* usage_loc);
 
     /** Returns whether the template instance can be represented by an in-line
      *  C++ expression. */
diff --git a/compiler2/ttcn3/Ttcnstuff.cc b/compiler2/ttcn3/Ttcnstuff.cc
index 44df932c9..3044da218 100644
--- a/compiler2/ttcn3/Ttcnstuff.cc
+++ b/compiler2/ttcn3/Ttcnstuff.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/Ttcnstuff.hh b/compiler2/ttcn3/Ttcnstuff.hh
index 2e09f946d..fa5cc1399 100644
--- a/compiler2/ttcn3/Ttcnstuff.hh
+++ b/compiler2/ttcn3/Ttcnstuff.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/charstring_la.l b/compiler2/ttcn3/charstring_la.l
index 59fe270ee..b401aa1c1 100644
--- a/compiler2/ttcn3/charstring_la.l
+++ b/compiler2/ttcn3/charstring_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -112,7 +112,7 @@ HEXDIGIT [0-9A-Fa-f]
   Location loc(current_file, current_line, current_column, current_line,
     current_column + yyleng);
   loc.warning("Unknown escape sequence `%s' was treated literally", yytext);
-  for (int i = 0; i < yyleng; i++) ADD_CHAR(yytext[i]);
+  for (size_t i = 0; i < yyleng; i++) ADD_CHAR(yytext[i]);
   current_column += 2;
 }
 
@@ -126,7 +126,7 @@ HEXDIGIT [0-9A-Fa-f]
 {NEWLINE}   {
   Location loc(current_file, current_line, current_column, current_line + 1, 0);
   loc.warning("Unescaped newline character");
-  for (int i = 0; i < yyleng; i++) ADD_CHAR(yytext[i]);
+  for (size_t i = 0; i < yyleng; i++) ADD_CHAR(yytext[i]);
   current_line++;
   current_column = 0;
 }
diff --git a/compiler2/ttcn3/coding_attrib_la.l b/compiler2/ttcn3/coding_attrib_la.l
index 77f69afcb..4830661ff 100644
--- a/compiler2/ttcn3/coding_attrib_la.l
+++ b/compiler2/ttcn3/coding_attrib_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/compiler2/ttcn3/coding_attrib_p.y b/compiler2/ttcn3/coding_attrib_p.y
index 04ff85409..a5eb4f5fe 100644
--- a/compiler2/ttcn3/coding_attrib_p.y
+++ b/compiler2/ttcn3/coding_attrib_p.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/compiler2/ttcn3/compiler.c b/compiler2/ttcn3/compiler.c
index b9cb1af8a..cd26df641 100644
--- a/compiler2/ttcn3/compiler.c
+++ b/compiler2/ttcn3/compiler.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/compiler.h b/compiler2/ttcn3/compiler.h
index 556de501d..c5fa2fc71 100644
--- a/compiler2/ttcn3/compiler.h
+++ b/compiler2/ttcn3/compiler.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -45,6 +45,7 @@ extern "C" {
       char *pre_init;  /**< Code for pre_init_module() */
       char *post_init; /**< Code for post_init_module() */
       char *set_param; /**< Code for set_module_param() */
+      char *get_param; /**< Code for get_module_param() */
       char *log_param; /**< Code for log_module_param() */
       char *init_comp; /**< Code for init_comp_type() */
       char *start;     /**< Code for start_ptc_function() */
diff --git a/compiler2/ttcn3/compiler.l b/compiler2/ttcn3/compiler.l
index 4497b6ca7..063baffe5 100644
--- a/compiler2/ttcn3/compiler.l
+++ b/compiler2/ttcn3/compiler.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -256,10 +256,6 @@ TITAN "$#&&&(#TITANERRONEOUS$#&&^#% "
 }
 
 {LINECOMMENT} {
-  Location loc(infile, current_line, current_column, current_line,
-    current_column + yyleng);
-  loc.error("Unterminated line comment (missing newline character at the end "
-    "of file)");
   current_column += yyleng;
 }
 
@@ -523,6 +519,7 @@ hex2oct		RETURN(hex2octKeyword);
 hex2str		RETURN(hex2strKeyword);
 int2bit		RETURN(int2bitKeyword);
 int2char	RETURN(int2charKeyword);
+int2enum  RETURN(int2enumKeyword);
 int2float	RETURN(int2floatKeyword);
 int2hex		RETURN(int2hexKeyword);
 int2oct		RETURN(int2octKeyword);
diff --git a/compiler2/ttcn3/compiler.y b/compiler2/ttcn3/compiler.y
index 5f07d0285..e8719923a 100644
--- a/compiler2/ttcn3/compiler.y
+++ b/compiler2/ttcn3/compiler.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -756,6 +756,7 @@ static const string anyname("anytype");
 %token hex2strKeyword
 %token int2bitKeyword
 %token int2charKeyword
+%token int2enumKeyword
 %token int2floatKeyword
 %token int2hexKeyword
 %token int2octKeyword
@@ -901,7 +902,7 @@ static const string anyname("anytype");
   StartTimerStatement StopExecutionStatement StopStatement StopTCStatement
   StopTimerStatement TimeoutStatement TimerStatements TriggerStatement
   UnmapStatement VerdictStatements WhileStatement SelectCaseConstruct
-  StopTestcaseStatement String2TtcnStatement ProfilerStatement
+  StopTestcaseStatement String2TtcnStatement ProfilerStatement int2enumStatement
 %type <statementblock> StatementBlock optElseClause FunctionStatementOrDefList
   ControlStatementOrDefList ModuleControlBody
 %type <subtypeparse> ValueOrRange
@@ -1148,6 +1149,7 @@ IDentifier
 IdentifierOrAddressKeyword
 ImportFromSpec
 InLineTemplate
+int2enumStatement
 IntegerValue
 InterleavedConstruct
 InterleavedGuardElement
@@ -1714,20 +1716,20 @@ optRunsOnComprefOrSelf
 %left '*' '/' ModKeyword RemKeyword
 %left UnarySign
 
-%expect 25
+%expect 26
 
 %start GrammarRoot
 
 /*
-XXX Source of conflicts (25 S/R):
+XXX Source of conflicts (26 S/R):
 
-1.) 8 conflicts in one state
+1.) 9 conflicts in one state
 The Expression after 'return' keyword is optional in ReturnStatement.
-For 8 tokens the parser cannot decide whether the token is a part of
+For 9 tokens the parser cannot decide whether the token is a part of
 the return expression (shift) or it is the beginning of the next statement
 (reduce).
 
-2.) 8 distinct states, each with one conflict caused by token '['
+2.) 9 distinct states, each with one conflict caused by token '['
 The local definitions in altsteps can be followed immediately by the guard
 expression. When the parser sees the '[' token it cannot decide whether it
 belongs to the local definition as array dimension or array subreference
@@ -1741,6 +1743,7 @@ The situations are the following:
 - var t v <here> [
 - var t v := ref.objid{...}.subref <here> [
 - var template t v <here> [
+- var t v := function(...)<subrefs> <here> [
 
 3.) 1 conflict
 The sequence identifier.objid can be either the beginning of a module name
@@ -1757,16 +1760,8 @@ non-standard language extension.
 
 6.) 1 Conflict due to pattern concatenation
 
-7.) 1 conflict
-The TitanSpecificProfilerKeyword following the ReturnKeyword in a ReturnStatement
-can either be the returned boolean value if followed by the DotRunningKeyword (shift)
-or the next statement if followed by the DotStartKeyword or the DotStopKeyword (reduce).
-
 Note that the parser implemented by bison always chooses to shift instead of
-reduce in case of conflicts. This is the desired behaviour in situations 1.),
-2.), 4.) and 7.) since the opposite alternative can be forced by the correct usage
-of semi-colons. Situation 3.) does not cause any problems as anytype is not
-supported at the moment.
+reduce in case of conflicts.
 */
 
 %%
@@ -3919,6 +3914,7 @@ FunctionStatement: // 180
 | StopExecutionStatement { $$ = $1; }
 | StopTestcaseStatement { $$ = $1; }
 | ProfilerStatement { $$ = $1; }
+| int2enumStatement { $$ = $1; }
 ;
 
 FunctionInstance: /* refpard */ // 181
@@ -5088,6 +5084,7 @@ ControlStatement: /* Statement *stmt */ // 295
 | SUTStatements { $$ = $1; }
 | StopExecutionStatement { $$ = $1; }
 | ProfilerStatement { $$ = $1; }
+| int2enumStatement { $$ = $1; }
 ;
 
 /* A.1.6.2.1 Variable instantiation */
@@ -7560,6 +7557,20 @@ ProfilerStatement:
   }
 ;
 
+int2enumStatement:
+  int2enumKeyword '(' optError Expression optError ',' optError Reference optError ')'
+  {
+    Ttcn::Reference* out_ref;
+    if ($8.is_ref) out_ref = $8.ref;
+    else {
+      out_ref = new Ttcn::Reference($8.id);
+      out_ref->set_location(infile, @8);
+    }
+    $$ = new Statement(Statement::S_INT2ENUM, $4, out_ref);
+    $$->set_location(infile, @$);
+  }
+;
+
 ProfilerRunningOp:
   TitanSpecificProfilerKeyword DotRunningKeyword
   {
@@ -8345,8 +8356,10 @@ OpCall: // 611
     else $$ = new Value(Value::V_ERROR);
     $$->set_location(infile, @$);
   }
-| FunctionInstance
+| FunctionInstance optExtendedFieldReference
   {
+    for (size_t i = 0; i < $2.nElements; i++) $1->add($2.elements[i]);
+    Free($2.elements);
     $$ = new Value(Value::V_REFD, $1);
     $$->set_location(infile, @$);
   }
diff --git a/compiler2/ttcn3/comptype_attrib_la.l b/compiler2/ttcn3/comptype_attrib_la.l
index ab77ee649..1a9a2088f 100644
--- a/compiler2/ttcn3/comptype_attrib_la.l
+++ b/compiler2/ttcn3/comptype_attrib_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/compiler2/ttcn3/port.c b/compiler2/ttcn3/port.c
index 2889ab5f4..74b6e8950 100644
--- a/compiler2/ttcn3/port.c
+++ b/compiler2/ttcn3/port.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -620,8 +620,9 @@ static void generate_receive(char **def_ptr, char **src_ptr,
       failed_str, message_type->dispname);
   if (is_trigger) src = mputstr(src, "remove_msg_queue_head();\n");
   src = mputprintf(src, "return %s;\n"
-    "} else if (!value_template.match(*my_head->message_%lu)) {\n",
-    failed_status, (unsigned long) message_index);
+    "} else if (!value_template.match(*my_head->message_%lu%s)) {\n",
+    failed_status, (unsigned long) message_index,
+    (omit_in_value_list ? ", TRUE" : ""));
   src = mputprintf(src,
     "const TTCN_Logger::Severity log_sev = %s;\n"
     "if (TTCN_Logger::log_this_event(log_sev)) {\n"
@@ -629,7 +630,7 @@ static void generate_receive(char **def_ptr, char **src_ptr,
     "port_name, my_head->sender_component,\n"
     "TitanLoggerApiSimple::MatchingFailureType_reason::message__does__not__match__template,\n"
     "(TTCN_Logger::begin_event(log_sev, TRUE),"
-    " value_template.log_match(*my_head->message_%lu),\n"
+    " value_template.log_match(*my_head->message_%lu%s),\n"
     " TTCN_Logger::end_event_log2str())"
     ");\n"
     "}\n",
@@ -637,7 +638,8 @@ static void generate_receive(char **def_ptr, char **src_ptr,
       "TTCN_Logger::MATCHING_MMUNSUCC" :
       "my_head->sender_component==SYSTEM_COMPREF ? "
       "TTCN_Logger::MATCHING_MMUNSUCC : TTCN_Logger::MATCHING_MCUNSUCC"),
-      (unsigned long) message_index);
+      (unsigned long) message_index,
+      (omit_in_value_list ? ", TRUE" : ""));
   if (is_trigger) src = mputstr(src, "remove_msg_queue_head();\n");
   src = mputprintf(src, "return %s;\n"
     "} else {\n"
@@ -653,7 +655,7 @@ static void generate_receive(char **def_ptr, char **src_ptr,
       "TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__,\n"
       "port_name, SYSTEM_COMPREF,\n"
       "(TTCN_Logger::begin_event(TTCN_Logger::MATCHING_MMSUCCESS, TRUE),"
-      " value_template.log_match(*my_head->message_%lu),\n"
+      " value_template.log_match(*my_head->message_%lu%s),\n"
       " TTCN_Logger::end_event_log2str()));\n"
       "}\n"
       "if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_MMRECV)) "
@@ -666,7 +668,8 @@ static void generate_receive(char **def_ptr, char **src_ptr,
       " TTCN_Logger::log_event_str(\": %s : \"),\n"
       "my_head->message_%lu->log(), TTCN_Logger::end_event_log2str()),\n"
       "msg_head_count+1);\n"
-      "}\n", (unsigned long) message_index, logger_operation,
+      "}\n", (unsigned long) message_index,
+      (omit_in_value_list ? ", TRUE" : ""), logger_operation,
       message_type->dispname, (unsigned long) message_index);
   } else {
     src = mputprintf(src,
@@ -677,7 +680,7 @@ static void generate_receive(char **def_ptr, char **src_ptr,
       "TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::message__,\n"
       "port_name, my_head->sender_component,\n"
       "(TTCN_Logger::begin_event(log_sev, TRUE),"
-      " value_template.log_match(*my_head->message_%lu),\n"
+      " value_template.log_match(*my_head->message_%lu%s),\n"
       " TTCN_Logger::end_event_log2str()));\n"
       "}\n"
       "log_sev = my_head->sender_component==SYSTEM_COMPREF?"
@@ -689,7 +692,8 @@ static void generate_receive(char **def_ptr, char **src_ptr,
       "(TTCN_Logger::begin_event(log_sev,TRUE), TTCN_Logger::log_event_str(\": %s : \"),\n"
       "my_head->message_%lu->log(), TTCN_Logger::end_event_log2str()),\n"
       "msg_head_count+1);\n"
-      "}\n", (unsigned long) message_index, logger_operation,
+      "}\n", (unsigned long) message_index,
+      (omit_in_value_list ? ", TRUE" : ""), logger_operation,
       message_type->dispname, (unsigned long) message_index);
   }
 
@@ -893,7 +897,7 @@ static void generate_proc_incoming_data_logging(char **src_ptr,
       "TTCN_Logger::log_matching_success(TitanLoggerApiSimple::PortType::procedure__,\n"
       "port_name, SYSTEM_COMPREF,\n"
       "(TTCN_Logger::begin_event(TTCN_Logger::MATCHING_PMSUCCESS, TRUE),"
-      " %s(*proc_queue_head->%s_%lu),\n"
+      " %s(*proc_queue_head->%s_%lu%s),\n"
       " TTCN_Logger::end_event_log2str()));\n"
       "}\n"
       "if (TTCN_Logger::log_this_event(TTCN_Logger::PORTEVENT_PMIN)) "
@@ -905,6 +909,7 @@ static void generate_proc_incoming_data_logging(char **src_ptr,
       " TTCN_Logger::end_event_log2str()),\n"
       "msg_head_count+1);\n"
       "}\n", match_str, op_str, (unsigned long) signature_index,
+      (omit_in_value_list ? ", TRUE" : ""),
       op_str, (is_check ? "TRUE" : "FALSE"), op_str, (unsigned long) signature_index);
   } else {
     *src_ptr = mputprintf(*src_ptr, "TTCN_Logger::Severity log_sev = "
@@ -1012,12 +1017,13 @@ static void generate_getcall(char **def_ptr, char **src_ptr,
     "signature %s.\", port_name);\n"
     "return ALT_NO;\n"
     "} else if (!getcall_template.match_call"
-    "(*proc_queue_head->call_%lu)) {\n",
+    "(*proc_queue_head->call_%lu%s)) {\n",
     (unsigned long) signature_index,
     is_address ? "TTCN_Logger::MATCHING_PMUNSUCC" :
       "proc_queue_head->sender_component==SYSTEM_COMPREF ? "
       "TTCN_Logger::MATCHING_PMUNSUCC:TTCN_Logger::MATCHING_PCUNSUCC",
-      signature->dispname, (unsigned long) signature_index);
+      signature->dispname, (unsigned long) signature_index,
+      (omit_in_value_list ? ", TRUE" : ""));
   src = mputprintf(src,
     "const TTCN_Logger::Severity log_sev = %s;\n"
     "if (TTCN_Logger::log_this_event(log_sev)) {\n"
@@ -1025,7 +1031,7 @@ static void generate_getcall(char **def_ptr, char **src_ptr,
     "port_name, proc_queue_head->sender_component,\n"
     "TitanLoggerApiSimple::MatchingFailureType_reason::parameters__of__call__do__not__match__template,\n"
     "(TTCN_Logger::begin_event(log_sev, TRUE),"
-    " getcall_template.log_match_call(*proc_queue_head->call_%lu),"
+    " getcall_template.log_match_call(*proc_queue_head->call_%lu%s),"
     " TTCN_Logger::end_event_log2str()));\n"
     "}\n"
     "return ALT_NO;\n"
@@ -1036,7 +1042,9 @@ static void generate_getcall(char **def_ptr, char **src_ptr,
       "TTCN_Logger::MATCHING_PMUNSUCC" :
       "proc_queue_head->sender_component==SYSTEM_COMPREF ? "
       "TTCN_Logger::MATCHING_PMUNSUCC : TTCN_Logger::MATCHING_PCUNSUCC"),
-    (unsigned long) signature_index, (unsigned long) signature_index);
+    (unsigned long) signature_index,
+    (omit_in_value_list ? ", TRUE" : ""),
+    (unsigned long) signature_index);
   if (is_address) src = mputstr(src, "*proc_queue_head->sender_address;\n");
   else src = mputstr(src, "proc_queue_head->sender_component;\n");
 
@@ -1131,11 +1139,12 @@ static void generate_getreply(char **def_ptr, char **src_ptr,
     "signature %s.\", port_name);\n"
     "return ALT_NO;\n"
     "} else if (!getreply_template.match_reply"
-    "(*proc_queue_head->reply_%lu)) {\n", (unsigned long) signature_index,
+    "(*proc_queue_head->reply_%lu%s)) {\n", (unsigned long) signature_index,
     is_address ? "TTCN_Logger::MATCHING_PMUNSUCC" :
       "proc_queue_head->sender_component==SYSTEM_COMPREF?"
       "TTCN_Logger::MATCHING_PMUNSUCC:TTCN_Logger::MATCHING_PCUNSUCC",
-      signature->dispname, (unsigned long) signature_index);
+      signature->dispname, (unsigned long) signature_index,
+      (omit_in_value_list ? ", TRUE" : ""));
 
   src = mputprintf(src,
     "const TTCN_Logger::Severity log_sev = %s;\n"
@@ -1144,7 +1153,7 @@ static void generate_getreply(char **def_ptr, char **src_ptr,
     "port_name, proc_queue_head->sender_component,\n"
     "TitanLoggerApiSimple::MatchingFailureType_reason::parameters__of__reply__do__not__match__template,\n"
     "(TTCN_Logger::begin_event(log_sev, TRUE),"
-    " getreply_template.log_match_reply(*proc_queue_head->reply_%lu), "
+    " getreply_template.log_match_reply(*proc_queue_head->reply_%lu%s), "
     " TTCN_Logger::end_event_log2str()));\n"
     "}\n"
     "return ALT_NO;\n"
@@ -1155,7 +1164,9 @@ static void generate_getreply(char **def_ptr, char **src_ptr,
       "TTCN_Logger::MATCHING_PMUNSUCC" :
       "proc_queue_head->sender_component==SYSTEM_COMPREF ? "
       "TTCN_Logger::MATCHING_PMUNSUCC : TTCN_Logger::MATCHING_PCUNSUCC"),
-      (unsigned long) signature_index, (unsigned long) signature_index);
+      (unsigned long) signature_index,
+      (omit_in_value_list ? ", TRUE" : ""),
+      (unsigned long) signature_index);
   if (is_address) src = mputstr(src, "*proc_queue_head->sender_address;\n");
   else src = mputstr(src, "proc_queue_head->sender_component;\n");
 
@@ -1252,10 +1263,11 @@ static void generate_catch(char **def_ptr, char **src_ptr,
     "CHARSTRING(\"%s\"));\n"
     "return ALT_NO;\n"
     "} else if (!catch_template.match"
-    "(*proc_queue_head->exception_%lu)) {\n",
+    "(*proc_queue_head->exception_%lu%s)) {\n",
     (unsigned long) signature_index,
     (is_address ? "SYSTEM_COMPREF": "proc_queue_head->sender_component"),
-    signature->dispname, (unsigned long) signature_index);
+    signature->dispname, (unsigned long) signature_index,
+    (omit_in_value_list ? ", TRUE" : ""));
   if (is_address) {
     src = mputstr(src, "if (TTCN_Logger::log_this_event("
       "TTCN_Logger::MATCHING_PMUNSUCC)) {\n");
@@ -1270,7 +1282,7 @@ static void generate_catch(char **def_ptr, char **src_ptr,
     "port_name, proc_queue_head->sender_component,\n"
     "TitanLoggerApiSimple::MatchingFailureType_reason::exception__does__not__match__template,\n"
     "(TTCN_Logger::begin_event(%s, TRUE),\n"
-    " catch_template.log_match(*proc_queue_head->exception_%lu),\n"
+    " catch_template.log_match(*proc_queue_head->exception_%lu%s),\n"
     " TTCN_Logger::end_event_log2str()));\n"
     "}\n"
     "return ALT_NO;\n"
@@ -1278,7 +1290,9 @@ static void generate_catch(char **def_ptr, char **src_ptr,
     "catch_template.set_value(*proc_queue_head->exception_%lu);\n"
     "if (sender_ptr != NULL) *sender_ptr = ",
     (is_address ? "TTCN_Logger::MATCHING_PMUNSUCC" : "log_sev"),
-    (unsigned long) signature_index, (unsigned long) signature_index);
+    (unsigned long) signature_index,
+    (omit_in_value_list ? ", TRUE" : ""),
+    (unsigned long) signature_index);
   if (is_address) src = mputstr(src, "*proc_queue_head->sender_address;\n");
   else src = mputstr(src, "proc_queue_head->sender_component;\n");
 
diff --git a/compiler2/ttcn3/port.h b/compiler2/ttcn3/port.h
index 5fe27f987..96d0c33d8 100644
--- a/compiler2/ttcn3/port.h
+++ b/compiler2/ttcn3/port.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/pstring_la.l b/compiler2/ttcn3/pstring_la.l
index 0072f9f69..39e157f0d 100644
--- a/compiler2/ttcn3/pstring_la.l
+++ b/compiler2/ttcn3/pstring_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -37,10 +37,10 @@ using namespace Common;
  * @param [in,out] current_line
  * @param [in,out] current_column
  * */
-static void update_location(int start_index, int end_index,
-  int& current_line, int& current_column)
+static void update_location(size_t start_index, size_t end_index,
+  size_t& current_line, size_t& current_column)
 {
-  for (int i = start_index; i < yyleng && i < end_index; i++) {
+  for (size_t i = start_index; i < yyleng && i < end_index; i++) {
     // count CR, count LF, but count CR + LF as one
     switch (yytext[i]) {
     case '\r':
@@ -64,7 +64,7 @@ static void update_location(int start_index, int end_index,
   update_location(start_index, end_index, current_line, current_column)
 
 #define YY_DECL static PatternString *yylex(const char *current_file, \
-  int current_line, int current_column)
+  size_t current_line, size_t current_column)
 
 %} /* ***************** definitions ***************** */
 
@@ -110,12 +110,12 @@ if (in_set) {
   size_t num_id = identifiers.size();
   bool error = false;
   Ttcn::Reference *ref = 0;
-  int last = 0; // last "consumed" index into yytext
+  size_t last = 0; // last "consumed" index into yytext
   int old_column = 0, old_line = 0; // the beginning of the entire reference
 
   for (size_t i = 0; i < num_id; ++i) {
     const string & id_str = *identifiers[i];
-    const int    & id_beg = *beginnings [i];
+    const size_t    & id_beg = *beginnings [i];
     if (Identifier::is_reserved_word(id_str, Identifier::ID_TTCN)) {
       UPDATE_LOCATION(last, id_beg); // consume before identifier
       int first_line = current_line, first_column = current_column;
@@ -233,10 +233,10 @@ if (in_set) {
 }
 
 "\\q"{WS}"{"{WS}{NUMBER}{WS}","{WS}{NUMBER}{WS}","{WS}{NUMBER}{WS}","{WS}{NUMBER}{WS}"}" {
-  int group_begin = 3;
+  size_t group_begin = 3;
   while (!isdigit(yytext[group_begin])) group_begin++;
   UPDATE_LOCATION(0, group_begin);
-  int group_len = 1;
+  size_t group_len = 1;
   while (isdigit(yytext[group_begin + group_len])) group_len++;
   string group_str(group_len, yytext + group_begin);
   Location group_loc(current_file, current_line, current_column, current_line,
@@ -247,7 +247,7 @@ if (in_set) {
       "the range 0 .. 127 instead of %s", Int2string(group).c_str());
     group = group < 0 ? 0 : 127;
   }
-  int plane_begin = group_begin + group_len + 1;
+  size_t plane_begin = group_begin + group_len + 1;
   while (!isdigit(yytext[plane_begin])) plane_begin++;
   UPDATE_LOCATION(group_begin, plane_begin);
   int plane_len = 1;
@@ -261,10 +261,10 @@ if (in_set) {
       "the range 0 .. 255 instead of %s", Int2string(plane).c_str());
     plane = plane < 0 ? 0 : 255;
   }
-  int row_begin = plane_begin + plane_len + 1;
+  size_t row_begin = plane_begin + plane_len + 1;
   while (!isdigit(yytext[row_begin])) row_begin++;
   UPDATE_LOCATION(plane_begin, row_begin);
-  int row_len = 1;
+  size_t row_len = 1;
   while (isdigit(yytext[row_begin + row_len])) row_len++;
   string row_str(row_len, yytext + row_begin);
   Location row_loc(current_file, current_line, current_column, current_line,
@@ -275,10 +275,10 @@ if (in_set) {
       "the range 0 .. 255 instead of %s", Int2string(row).c_str());
     row = row < 0 ? 0 : 255;
   }
-  int cell_begin = row_begin + row_len + 1;
+  size_t cell_begin = row_begin + row_len + 1;
   while (!isdigit(yytext[cell_begin])) cell_begin++;
   UPDATE_LOCATION(row_begin, cell_begin);
-  int cell_len = 1;
+  size_t cell_len = 1;
   while (isdigit(yytext[cell_begin + cell_len])) cell_len++;
   string cell_str(cell_len, yytext + cell_begin);
   Location cell_loc(current_file, current_line, current_column, current_line,
@@ -441,7 +441,7 @@ if (in_set) {
     loc.error("Number of repetitions `#(n)' cannot be given inside a set "
       "expression");
   } else {
-    int number_begin = 2;
+    size_t number_begin = 2;
     while (!isdigit(yytext[number_begin])) number_begin++;
     UPDATE_LOCATION(0, number_begin);
     int number_len = 1;
@@ -467,7 +467,7 @@ if (in_set) {
     loc.error("Number of repetitions `#(n,m)' cannot be given inside a set "
       "expression");
   } else {
-    int lower_begin = 2;
+    size_t lower_begin = 2;
     while (!isdigit(yytext[lower_begin])) lower_begin++;
     UPDATE_LOCATION(0, lower_begin);
     int lower_len = 1;
@@ -482,7 +482,7 @@ if (in_set) {
 	Int2string(lower).c_str());
       lower = 0;
     }
-    int upper_begin = lower_begin + lower_len + 1;
+    size_t upper_begin = lower_begin + lower_len + 1;
     while (!isdigit(yytext[upper_begin])) upper_begin++;
     UPDATE_LOCATION(lower_begin, upper_begin);
     int upper_len = 1;
@@ -521,7 +521,7 @@ if (in_set) {
     loc.error("Number of repetitions `#(n,)' cannot be given inside a set "
       "expression");
   } else {
-    int lower_begin = 2;
+    size_t lower_begin = 2;
     while (!isdigit(yytext[lower_begin])) lower_begin++;
     UPDATE_LOCATION(0, lower_begin);
     int lower_len = 1;
@@ -549,7 +549,7 @@ if (in_set) {
     loc.error("Number of repetitions `#(,m)' cannot be given inside a set "
       "expression");
   } else {
-    int upper_begin = 3;
+    size_t upper_begin = 3;
     while (!isdigit(yytext[upper_begin])) upper_begin++;
     UPDATE_LOCATION(0, upper_begin);
     int upper_len = 1;
diff --git a/compiler2/ttcn3/rawAST.l b/compiler2/ttcn3/rawAST.l
index 84e3017f8..e74a8f27b 100644
--- a/compiler2/ttcn3/rawAST.l
+++ b/compiler2/ttcn3/rawAST.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -172,7 +172,7 @@ omit	RETURN(XOmitKeyword);
   current_column += 2;
   bool backslash_flag = false;
   yylval.str = memptystr();
-  for (int i = 2; i < yyleng - 2; ) {
+  for (size_t i = 2; i < yyleng - 2; ) {
     if (!backslash_flag && (yytext[i] == '\\' || yytext[i] == '"') &&
 	yytext[i + 1] == '"' &&
 	(yytext[i + 2] == '\\' || yytext[i + 2] == '"') &&
@@ -284,6 +284,7 @@ BITORDERINFIELD    { BEGIN(rawcodec); RETURN(XBitOrderInFieldKeyword); }
 BITORDERINOCTET    { BEGIN(rawcodec); RETURN(XBitOrderInOctetKeyword); }
 HEXORDER    { BEGIN(rawcodec); RETURN(XHexOrderKeyword); }
 TOPLEVEL    { BEGIN(rawcodec); RETURN(XToplevelKeyword); }
+IntX        { RETURN(XIntXKeyword); }
 
 <rawcodec>{
 yes         { yylval.enumval = XDEFYES; RETURN(XYes); }
@@ -434,16 +435,24 @@ null          RETURN(XKWnull);
 name          RETURN(XKWname);
 value         RETURN(XKWvalue);
 default       RETURN(XKWdefault);
+extend        RETURN(XKWextend);
+metainfo      RETURN(XKWmetainfo);
+for           RETURN(XKWfor);
+unbound       RETURN(XKWunbound);
 [(]           { BEGIN(jsonvalue); RETURN(XJsonValueStart); }
 {IDENTIFIER}  { yylval.str = mcopystr(yytext); RETURN(XAliasToken); }
 [^: \t]       { rawAST_error("invalid JSON token"); }
 }
 
 <jsonvalue>{
-[\\]. {
+[\\][\\][)] { /* \\) -> \) would not work with the other rules */
+  yylval.str = mcopystr("\\)");
+  RETURN(XJsonValueSegment);
+}
+[\\]. { /* \) -> ), all others are treated literally */
   if (yytext[1] == ')') yylval.str = mcopystr(")");
   else yylval.str = mcopystr(yytext);
-  RETURN(XJsonValueSegment); 
+  RETURN(XJsonValueSegment);
 }
 [)]           { BEGIN(jsoncodec); RETURN(XJsonValueEnd); }
 [\"][\"]      { yylval.str = mcopystr("\\\""); RETURN(XJsonValueSegment); }
@@ -466,7 +475,7 @@ definite   RETURN(XKWdefinite);
   current_column++;
   bool backslash_flag = false;
   yylval.str = memptystr();
-  for (int i = 1; i < yyleng - 1; ) {
+  for (size_t i = 1; i < yyleng - 1; ) {
     if (!backslash_flag && (yytext[i] == '\'' || yytext[i] == '"') &&
         yytext[i + 1] == yytext[i]) {
       /* transform '' -> \' and "" -> \" */
diff --git a/compiler2/ttcn3/rawAST.y b/compiler2/ttcn3/rawAST.y
index 6f9cfe3a1..f210f480b 100644
--- a/compiler2/ttcn3/rawAST.y
+++ b/compiler2/ttcn3/rawAST.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -151,6 +151,7 @@ static void yyprint(FILE *file, int type, const YYSTYPE& value);
 %token <enumval> XHigh
 %token XToplevelKeyword
 %token XRepeatableKeyword
+%token XIntXKeyword
 
        /* XER attributes */
 %token XKWall           "all"
@@ -258,6 +259,10 @@ static void yyprint(FILE *file, int type, const YYSTYPE& value);
 %token XAliasToken        "JSON alias"
 %token XKWvalue           "value"
 %token XKWdefault         "default"
+%token XKWextend          "extend"
+%token XKWmetainfo        "metainfo"
+%token XKWfor             "for"
+%token XKWunbound         "unbound"
 %token XJsonValueStart    "("
 %token XJsonValueEnd      ")"
 %token XJsonValueSegment  "JSON value"
@@ -274,7 +279,7 @@ static void yyprint(FILE *file, int type, const YYSTYPE& value);
     XLengthIndexDef XStructFieldRefOrEmpty XStructFieldRef
 
 %type <str>
-    XEncodeToken XmatchDef XAliasToken XJsonValueSegment XJsonValue
+    XEncodeToken XmatchDef XAliasToken XJsonValueSegment XJsonValueCore XJsonValue
 
 %type <decodetoken>
     XDecodeToken
@@ -329,6 +334,7 @@ Xtoken
 Xstring
 XAliasToken
 XJsonValueSegment
+XJsonValueCore
 XJsonValue
 
 %destructor { delete $$; }
@@ -454,6 +460,8 @@ XSingleEncodingDef : XPaddingDef
         { rawstruct->repeatable = $1;raw_f=true; }
     | XToplevelDef
         { rawstruct->topleveleind=1; raw_f=true;}
+    | XIntXKeyword
+        { rawstruct->intx = true; raw_f = true; }
     /* TEXT encoder keywords */
     | XBeginDef
         { text_f=true; }
@@ -1498,7 +1506,7 @@ xsddata: /* XSD:something */
 
 // JSON encoder
 XJsonDef:
-  XKWjson XOptSpaces ':' XOptSpaces XJsonAttribute
+  XOptSpaces XKWjson XOptSpaces ':' XOptSpaces XJsonAttribute XOptSpaces
 ;
 
 XJsonAttribute:
@@ -1506,6 +1514,8 @@ XJsonAttribute:
 | XNameAs
 | XAsValue
 | XDefault
+| XExtend
+| XMetainfoForUnbound
 ;
 
 XOmitAsNull:
@@ -1521,13 +1531,26 @@ XAsValue:
 ;
 
 XDefault:
-  XKWdefault XOptSpaces XJsonValueStart XJsonValue XJsonValueEnd { jsonstruct->default_value = mcopystr($4); }
-| XKWdefault XOptSpaces XJsonValueStart XJsonValueEnd { jsonstruct->default_value = mcopystr(""); }
+  XKWdefault XOptSpaces XJsonValue { jsonstruct->default_value = mcopystr($3); }
+;
+
+XExtend:
+  XKWextend XOptSpaces XJsonValue XOptSpaces ':' XOptSpaces XJsonValue
+  { jsonstruct->schema_extensions.add(new JsonSchemaExtension($3, $7)); }
 ;
 
 XJsonValue:
-  XJsonValue XJsonValueSegment { $$ = mcopystr($1); $$ = mputstr($$, $2); }
-| XJsonValueSegment            { $$ = mcopystr($1); }
+  XJsonValueStart XJsonValueCore XJsonValueEnd { $$ = mcopystr($2); }
+| XJsonValueStart XJsonValueEnd                { $$ = mcopystr(""); }
+;
+
+XJsonValueCore:
+  XJsonValueCore XJsonValueSegment { $$ = mcopystr($1); $$ = mputstr($$, $2); }
+| XJsonValueSegment                { $$ = mcopystr($1); }
+;
+
+XMetainfoForUnbound:
+  XKWmetainfo XOptSpaces XKWfor XOptSpaces XKWunbound { jsonstruct->metainfo_unbound = true; }
 ;
 
 XOptSpaces:
diff --git a/compiler2/ttcn3/rawASTspec.h b/compiler2/ttcn3/rawASTspec.h
index 04455ccc0..74aab749b 100644
--- a/compiler2/ttcn3/rawASTspec.h
+++ b/compiler2/ttcn3/rawASTspec.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/signature.c b/compiler2/ttcn3/signature.c
index 0d4a4ac1f..9cb0ae39f 100644
--- a/compiler2/ttcn3/signature.c
+++ b/compiler2/ttcn3/signature.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -370,8 +370,7 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
     /* otherwise constructor is not needed */
 
     /* set_parameters function (used for param redirect in getreply) */
-    if ((sdef->parameters.nElements - num_in) > 0
-      || sdef->return_type != NULL) {
+    if (num_out > 0 || sdef->return_type != NULL) {
       /* if there are "out" or "inout" parameters or a "return" ... */
       def = mputprintf(def, "void set_parameters(const %s_reply& reply_par) "
         "const;\n", name);
@@ -692,17 +691,17 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
     }
 
     /* match function */
-    def = mputprintf(def, "boolean match(const %s_exception& other_value) "
-      "const;\n", name);
+    def = mputprintf(def, "boolean match(const %s_exception& other_value,"
+      "boolean legacy = FALSE) const;\n", name);
     src = mputprintf(src, "boolean %s_exception_template::match(const "
-      "%s_exception& other_value) const\n"
+      "%s_exception& other_value, boolean legacy) const\n"
       "{\n"
       "if (exception_selection != other_value.get_selection()) "
       "return FALSE;\n"
       "switch (exception_selection) {\n", name, name);
     for (i = 0; i < sdef->exceptions.nElements; i++) {
       src = mputprintf(src, "case %s_%s:\n"
-        "return field_%s->match(other_value.%s_field());\n",
+        "return field_%s->match(other_value.%s_field(), legacy);\n",
         selection_prefix, sdef->exceptions.elements[i].altname,
         sdef->exceptions.elements[i].altname,
         sdef->exceptions.elements[i].altname);
@@ -715,10 +714,10 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
       "}\n\n", dispname);
 
     /* log_match function */
-    def = mputprintf(def, "void log_match(const %s_exception& other_value) "
-      "const;\n", name);
+    def = mputprintf(def, "void log_match(const %s_exception& other_value, "
+      "boolean legacy = FALSE) const;\n", name);
     src = mputprintf(src, "void %s_exception_template::log_match(const "
-      "%s_exception& other_value) const\n"
+      "%s_exception& other_value, boolean legacy) const\n"
       "{\n"
       "TTCN_Logger::log_event_str(\"%s, \");\n"
       "if (exception_selection == other_value.get_selection()) {\n"
@@ -726,7 +725,7 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
     for (i = 0; i < sdef->exceptions.nElements; i++) {
       src = mputprintf(src, "case %s_%s:\n"
         "TTCN_Logger::log_event_str(\"%s : \");\n"
-        "field_%s->log_match(other_value.%s_field());\n"
+        "field_%s->log_match(other_value.%s_field(), legacy);\n"
         "break;\n", selection_prefix,
         sdef->exceptions.elements[i].altname,
         sdef->exceptions.elements[i].dispname,
@@ -752,7 +751,7 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
     src = mputstr(src, "default:\n"
       "TTCN_Logger::log_event_str(\"<invalid selector>\");\n"
       "}\n"
-      "if (match(other_value)) "
+      "if (match(other_value, legacy)) "
       "TTCN_Logger::log_event_str(\" matched\");\n"
       "else TTCN_Logger::log_event_str(\" unmatched\");\n"
       "}\n"
@@ -919,17 +918,17 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
   /* match_call function for matching with xxx_call signature-value */
   if (num_in > 0) {
     boolean first_param = TRUE;
-    def = mputprintf(def, "boolean match_call(const %s_call& match_value) "
-      "const;\n", name);
+    def = mputprintf(def, "boolean match_call(const %s_call& match_value, "
+      "boolean legacy = FALSE) const;\n", name);
     src = mputprintf(src, "boolean %s_template::match_call(const %s_call& "
-      "match_value) const\n"
+      "match_value, boolean legacy) const\n"
       "{\n"
       "return ", name, name);
     for (i = 0; i < sdef->parameters.nElements; i++) {
       if (sdef->parameters.elements[i].direction != PAR_OUT) {
         if (first_param) first_param = FALSE;
         else src = mputstr(src, " &&\n");
-        src = mputprintf(src, "param_%s.match(match_value.%s())",
+        src = mputprintf(src, "param_%s.match(match_value.%s(), legacy)",
           sdef->parameters.elements[i].name,
           sdef->parameters.elements[i].name);
       }
@@ -938,7 +937,7 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
       "}\n\n");
   } else {
     def = mputprintf(def, "inline boolean match_call(const %s_call&"
-      ") const { return TRUE; }\n", name);
+      ", boolean legacy = FALSE) const { return TRUE; }\n", name);
   }
 
   if (!sdef->is_noblock) {
@@ -946,16 +945,16 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
       boolean first_param = TRUE;
       /* match_reply function for matching with xxx_reply value */
       def = mputprintf(def, "boolean match_reply(const %s_reply& "
-        "match_value) const;\n", name);
+        "match_value, boolean legacy = FALSE) const;\n", name);
       src = mputprintf(src, "boolean %s_template::match_reply(const "
-        "%s_reply& match_value) const\n"
+        "%s_reply& match_value, boolean legacy) const\n"
         "{\n"
         "return ", name, name);
       for (i = 0; i < sdef->parameters.nElements; i++) {
         if(sdef->parameters.elements[i].direction != PAR_IN) {
           if (first_param) first_param = FALSE;
           else src = mputstr(src, " &&\n");
-          src = mputprintf(src, "param_%s.match(match_value.%s())",
+          src = mputprintf(src, "param_%s.match(match_value.%s(), legacy)",
             sdef->parameters.elements[i].name,
             sdef->parameters.elements[i].name);
         }
@@ -964,13 +963,13 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
         if (first_param) /*first_param = FALSE*/;
         else src = mputstr(src, " &&\n");
         src = mputstr(src,
-          "reply_value.match(match_value.return_value())");
+          "reply_value.match(match_value.return_value(), legacy)");
       }
       src = mputstr(src, ";\n"
         "}\n\n");
     } else {
       def = mputprintf(def, "inline boolean match_reply(const %s_reply&"
-        ") const { return TRUE; }\n", name);
+        ", boolean legacy = FALSE) const { return TRUE; }\n", name);
     }
   }
 
@@ -1007,13 +1006,13 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
   src = mputstr(src, "}\n\n");
 
   /* log_match_call function */
-  def = mputprintf(def, "void log_match_call(const %s_call& match_value) "
-    "const;\n", name);
+  def = mputprintf(def, "void log_match_call(const %s_call& match_value, "
+    "boolean legacy = FALSE) const;\n", name);
   src = mputprintf(src, "void %s_template::log_match_call(const %s_call& "
     , name, name);
   if (num_in > 0) {
     boolean first_param = TRUE;
-    src = mputstr(src, "match_value) const\n{\n");
+    src = mputstr(src, "match_value, boolean legacy) const\n{\n");
     for (i = 0; i < sdef->parameters.nElements; i++) {
       if (sdef->parameters.elements[i].direction != PAR_OUT) {
         src = mputstr(src, "TTCN_Logger::log_event_str(\"");
@@ -1022,7 +1021,7 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
           first_param = FALSE;
         } else src = mputc(src, ',');
         src = mputprintf(src, " %s := \");\n"
-          "param_%s.log_match(match_value.%s());\n",
+          "param_%s.log_match(match_value.%s(), legacy);\n",
           sdef->parameters.elements[i].dispname,
           sdef->parameters.elements[i].name,
           sdef->parameters.elements[i].name);
@@ -1030,20 +1029,20 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
     }
     src = mputstr(src, "TTCN_Logger::log_event_str(\" }\");\n");
   } else {
-    src = mputstr(src, ") const\n{\n"
+    src = mputstr(src, ", boolean) const\n{\n"
       "TTCN_Logger::log_event_str(\"{ } with { } matched\");\n");
   }
   src = mputstr(src, "}\n\n");
 
   if (!sdef->is_noblock) {
     /* log_match_reply function */
-    def = mputprintf(def, "void log_match_reply(const %s_reply& match_value) "
-      "const;\n", name);
+    def = mputprintf(def, "void log_match_reply(const %s_reply& match_value, "
+      "boolean legacy = FALSE) const;\n", name);
     src = mputprintf(src, "void %s_template::log_match_reply(const %s_reply& "
       , name, name);
     if (num_out > 0) {
       boolean first_param = TRUE;
-      src = mputstr(src, "match_value) const\n{\n");
+      src = mputstr(src, "match_value, boolean legacy) const\n{\n");
       for (i = 0; i < sdef->parameters.nElements; i++) {
         if (sdef->parameters.elements[i].direction != PAR_IN) {
           src = mputstr(src, "TTCN_Logger::log_event_str(\"");
@@ -1052,7 +1051,7 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
             first_param = FALSE;
           } else src = mputc(src, ',');
           src = mputprintf(src, " %s := \");\n"
-            "param_%s.log_match(match_value.%s());\n",
+            "param_%s.log_match(match_value.%s(), legacy);\n",
             sdef->parameters.elements[i].dispname,
             sdef->parameters.elements[i].name,
             sdef->parameters.elements[i].name);
@@ -1061,18 +1060,18 @@ void defSignatureClasses(const signature_def *sdef, output_struct *output)
       if (sdef->return_type != NULL) {
         src = mputstr(src, "TTCN_Logger::log_event_str(\" } value "
           "\");\n"
-          "reply_value.log_match(match_value.return_value());\n");
+          "reply_value.log_match(match_value.return_value(), legacy);\n");
       } else {
         src = mputstr(src, "TTCN_Logger::log_event_str(\" }\");\n");
       }
     } else {
       if (sdef->return_type != NULL) {
-        src = mputstr(src, "match_value) const\n{\n"
+        src = mputstr(src, "match_value, boolean legacy) const\n{\n"
           "TTCN_Logger::log_event_str(\"{ } with { } "
           "matched value \");\n"
-          "reply_value.log_match(match_value.return_value());\n");
+          "reply_value.log_match(match_value.return_value(), legacy);\n");
       } else {
-        src = mputstr(src, ") const\n{\n"
+        src = mputstr(src, ", boolean) const\n{\n"
           "TTCN_Logger::log_event_str(\"{ } with { } "
           "matched\");\n");
       }
diff --git a/compiler2/ttcn3/signature.h b/compiler2/ttcn3/signature.h
index c0d202a50..096327839 100644
--- a/compiler2/ttcn3/signature.h
+++ b/compiler2/ttcn3/signature.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/ttcn3_preparser.h b/compiler2/ttcn3/ttcn3_preparser.h
index bb684ee32..9e7318048 100644
--- a/compiler2/ttcn3/ttcn3_preparser.h
+++ b/compiler2/ttcn3/ttcn3_preparser.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ttcn3/ttcn3_preparser.l b/compiler2/ttcn3/ttcn3_preparser.l
index c33a672c7..cefefd26a 100644
--- a/compiler2/ttcn3/ttcn3_preparser.l
+++ b/compiler2/ttcn3/ttcn3_preparser.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/compiler2/ttcn3_makefilegen.1 b/compiler2/ttcn3_makefilegen.1
index d620b3fea..4c41a154c 100644
--- a/compiler2/ttcn3_makefilegen.1
+++ b/compiler2/ttcn3_makefilegen.1
@@ -3,12 +3,14 @@
 ttcn3_makefilegen \- Makefile Generator
 .SH SYNOPSIS
 .B ttcn3_makefilegen
-.RB "[\| " \-acdfglpRsw " \|]"
+.RB "[\| " \-acdfglMpRsw " \|]"
 .RB "[\| " \-e
 .IR " ETS_name" " \|]"
 .RB "[\| " \-o
 .IR " dir|file" " \|]"
 .RB "[\| " \-O
+.IR " file" " \|]"
+.RB "[\| " \-z
 .IR " file" " \|] ..."
 TTCN3_module[.ttcn] ... ASN1_module[.asn] ... Testport_name[.cc] ...
 .br
@@ -89,6 +91,22 @@ objects. It can be used to speed up the linking phase, in the price of somewhat
 performance and increased memory usage. It's recommended to use this flag only in the
 development phase of the project. This option is not supported on Windows.
 .TP
+.B \-M
+Allows the use of the value
+.B omit
+in template lists and complemented template lists (legacy behavior).
+If set, an omitted field will match a template list, if the value
+.B omit
+appears in the list, and it will match a complemented template list, if
+.B omit
+is not in the list (the
+.B ifpresent
+attribute can still be used for matching omitted fields). This also affects the
+.B ispresent
+operation and the
+.B present
+template restriction accordingly.
+.TP
 .B \-p
 Generate Makefile with
 .I TTCN-3 preprocessing.
@@ -115,6 +133,14 @@ and license key information and exits.
 Suppresses all
 .I warning
 messages.
+.TP
+.BI \-z " file"
+Enables code coverage and profiling in the TTCN-3 files listed in the
+.I file
+argument. The TTCN-3 files in the list must be separated by new lines and must
+also appear among the makefile generator's arguments (this switch is ignored if the
+.B \-t
+option is present).
 
 .SH ENVIRONMENT VARIABLES
 .TP
@@ -145,7 +171,7 @@ Ericsson document 2/198 17-CRL 113 200 Uen:
 .SH AUTHOR
 This manpage is written by Janos Zoltan Szabo, Ericsson Telecom AB
 .br
-Copyright (c) 2000-2014 Ericsson Telecom AB
+Copyright (c) 2000-2015 Ericsson Telecom AB
 .br
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
diff --git a/compiler2/union.c b/compiler2/union.c
index e469f4abf..1e75686f3 100644
--- a/compiler2/union.c
+++ b/compiler2/union.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -352,11 +352,15 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
      "param.error(\"Field `%%s' not found in union type `%s'\", param_field);\n"
      "  }\n"
      "  param.basic_check(Module_Param::BC_VALUE, \"union value\");\n"
-     "  if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) return;\n"
-     "  if (param.get_type()!=Module_Param::MP_Assignment_List) {\n"
+     "  Module_Param_Ptr mp = &param;\n"
+     "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+     "    mp = param.get_referenced_param();\n"
+     "  }\n"
+     "  if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) return;\n"
+     "  if (mp->get_type()!=Module_Param::MP_Assignment_List) {\n"
      "    param.error(\"union value with field name was expected\");\n"
      "  }\n"
-     "  Module_Param* mp_last = param.get_elem(param.get_size()-1);\n", dispname);
+     "  Module_Param* mp_last = mp->get_elem(mp->get_size()-1);\n", dispname);
 
     for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src, 
@@ -368,6 +372,54 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
   src = mputprintf(src,
     "  mp_last->error(\"Field %%s does not exist in type %s.\", mp_last->get_id()->get_name());\n"
     "}\n\n", dispname);
+  
+  /* get param function */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,
+    "Module_Param* %s::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (!is_bound()) {\n"
+    "    return new Module_Param_Unbound();\n"
+    "  }\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the fields, not to the whole union
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] >= '0' && param_field[0] <= '9') {\n"
+    "      TTCN_error(\"Unexpected array index in module parameter reference, \"\n"
+    "        \"expected a valid field name for union type `%s'\");\n"
+    "    }\n"
+    "    ", name, dispname);
+  for (i = 0; i < sdef->nElements; i++) {
+    src = mputprintf(src,
+     "if (strcmp(\"%s\", param_field) == 0) {\n"
+     "      return %s%s().get_param(param_name);\n"
+     "    } else ",
+     sdef->elements[i].dispname, at_field, sdef->elements[i].name);
+  }
+  src = mputprintf(src,
+    "TTCN_error(\"Field `%%s' not found in union type `%s'\", param_field);\n"
+    "  }\n"
+    "  Module_Param* mp_field = NULL;\n"
+    "  switch(union_selection) {\n"
+    , name);
+    for (i = 0; i < sdef->nElements; ++i) {
+      src = mputprintf(src, 
+        "  case %s_%s:\n"
+        "    mp_field = field_%s->get_param(param_name);\n"
+        "    mp_field->set_id(new Module_Param_FieldName(mcopystr(\"%s\")));\n"
+        "    break;\n"
+        , selection_prefix, sdef->elements[i].name
+        , sdef->elements[i].name, sdef->elements[i].dispname);
+    }
+  src = mputstr(src,
+    "  default:\n"
+    "    break;\n"
+    "  }\n"
+    "  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();\n"
+    "  mp->add_elem(mp_field);\n"
+    "  return mp;\n"
+    "}\n\n");
 
   /* set implicit omit function, recursive */
   def = mputstr(def, "  void set_implicit_omit();\n");
@@ -1724,15 +1776,17 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
           at_field, sdef->elements[i].name,    sdef->elements[i].typegen,
           at_field, sdef->elements[i].name);
       }
-      src = mputstr(src,
-        "    else {\n"
-        "      ec_1.set_msg(\" \");\n"
-        "      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG, "
-        "\"'%s' does not match any alternative\", elem_name);\n"
-        "      if (xml_depth >= 0) for (; rd_ok == 1 "
-        "&& p_reader.Depth() > xml_depth; rd_ok = p_reader.Read()) ;\n"
-        "    }\n"
-        );
+      if (!sdef->isOptional) {
+        src = mputstr(src,
+          "    else {\n"
+          "      ec_1.set_msg(\" \");\n"
+          "      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG, "
+          "\"'%s' does not match any alternative\", elem_name);\n"
+          "      if (xml_depth >= 0) for (; rd_ok == 1 "
+          "&& p_reader.Depth() > xml_depth; rd_ok = p_reader.Read()) ;\n"
+          "    }\n"
+          );
+      }
     }
 
     src = mputprintf(src,
@@ -1835,10 +1889,9 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
         "    return JSON_ERROR_FATAL;\n"
         "  }\n"
         "  case JSON_TOKEN_LITERAL_TRUE:\n"
-        "  case JSON_TOKEN_LITERAL_FALSE:\n"
-        "  case JSON_TOKEN_LITERAL_NULL: {\n");
+        "  case JSON_TOKEN_LITERAL_FALSE: {\n");
       for (i = 0; i < sdef->nElements; ++i) {
-        if (JSON_LITERAL & sdef->elements[i].jsonValueType) {
+        if (JSON_BOOLEAN & sdef->elements[i].jsonValueType) {
           src = mputprintf(src,
             "    p_tok.set_buf_pos(buf_pos);\n"
             "    ret_val = %s%s().JSON_decode(%s_descr_, p_tok, true);\n"
@@ -1850,8 +1903,7 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
       }
       src = mputstr(src,
         "    char* literal_str = mprintf(\"literal (%s)\",\n"
-        "      (JSON_TOKEN_LITERAL_TRUE == j_token) ? \"true\" :\n"
-        "      ((JSON_TOKEN_LITERAL_FALSE == j_token) ? \"false\" : \"null\"));\n"
+        "      (JSON_TOKEN_LITERAL_TRUE == j_token) ? \"true\" : \"false\");\n"
         "    JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_AS_VALUE_ERROR, literal_str);\n"
         "    Free(literal_str);\n"
         "    clean_up();\n"
@@ -1891,6 +1943,24 @@ void defUnionClass(struct_def const *sdef, output_struct *output)
         "    clean_up();\n"
         "    return JSON_ERROR_FATAL;\n"
         "  }\n"
+        "  case JSON_TOKEN_LITERAL_NULL: {\n");
+      for (i = 0; i < sdef->nElements; ++i) {
+        if (JSON_NULL & sdef->elements[i].jsonValueType) {
+          src = mputprintf(src,
+            "    p_tok.set_buf_pos(buf_pos);\n"
+            "    ret_val = %s%s().JSON_decode(%s_descr_, p_tok, true);\n"
+            "    if (0 <= ret_val) {\n"
+            "      return ret_val;\n"
+            "    }\n"
+            , at_field, sdef->elements[i].name, sdef->elements[i].typedescrname);
+        }
+      }
+      src = mputstr(src,
+        "    clean_up();\n"
+        // the caller might be able to decode the null value if it's an optional field
+        // only return an invalid token error, not a fatal error
+        "    return JSON_ERROR_INVALID_TOKEN;\n"
+        "  }\n"
         "  case JSON_TOKEN_ERROR:\n"
         "    JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_BAD_TOKEN_ERROR, \"\");\n"
         "    return JSON_ERROR_FATAL;\n"
@@ -2223,9 +2293,10 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "}\n\n", name, name, name);
 
   /* match function */
-  def = mputprintf(def, "boolean match(const %s& other_value) const;\n", name);
-  src = mputprintf(src, "boolean %s_template::match(const %s& other_value) "
-      "const\n"
+  def = mputprintf(def, "boolean match(const %s& other_value, boolean legacy "
+    "= FALSE) const;\n", name);
+  src = mputprintf(src, "boolean %s_template::match(const %s& other_value, "
+    "boolean legacy) const\n"
     "{\n"
     "if (!other_value.is_bound()) return FALSE;\n"
     "switch (template_selection) {\n"
@@ -2242,7 +2313,7 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "switch (value_selection) {\n", name, name, selection_type, unbound_value);
   for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src, "case %s_%s:\n"
-      "return single_value.field_%s->match(other_value.%s%s());\n",
+      "return single_value.field_%s->match(other_value.%s%s(), legacy);\n",
       selection_prefix, sdef->elements[i].name, sdef->elements[i].name,
       at_field, sdef->elements[i].name);
   }
@@ -2255,7 +2326,7 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "case COMPLEMENTED_LIST:\n"
     "for (unsigned int list_count = 0; list_count < value_list.n_values; "
       "list_count++)\n"
-    "if (value_list.list_value[list_count].match(other_value)) "
+    "if (value_list.list_value[list_count].match(other_value, legacy)) "
     "return template_selection == VALUE_LIST;\n"
     "return template_selection == COMPLEMENTED_LIST;\n"
     "default:\n"
@@ -2432,8 +2503,8 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
       "void copy_value(const Base_Type* other_value);\n"
       "Base_Template* clone() const;\n"
       "const TTCN_Typedescriptor_t* get_descriptor() const;\n"
-      "boolean matchv(const Base_Type* other_value) const;\n"
-      "void log_matchv(const Base_Type* match_value) const;\n");
+      "boolean matchv(const Base_Type* other_value, boolean legacy) const;\n"
+      "void log_matchv(const Base_Type* match_value, boolean legacy) const;\n");
     src = mputprintf(src,
       "void %s_template::valueofv(Base_Type* value) const "
         "{ *(static_cast<%s*>(value)) = valueof(); }\n"
@@ -2445,10 +2516,12 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
         "{ return new %s_template(*this); }\n"
       "const TTCN_Typedescriptor_t* %s_template::get_descriptor() const "
         "{ return &%s_descr_; }\n"
-      "boolean %s_template::matchv(const Base_Type* other_value) const "
-        "{ return match(*(static_cast<const %s*>(other_value))); }\n"
-      "void %s_template::log_matchv(const Base_Type* match_value) const "
-        " { log_match(*(static_cast<const %s*>(match_value))); }\n",
+      "boolean %s_template::matchv(const Base_Type* other_value, "
+        "boolean legacy) const "
+        "{ return match(*(static_cast<const %s*>(other_value)), legacy); }\n"
+      "void %s_template::log_matchv(const Base_Type* match_value, "
+        "boolean legacy) const "
+        " { log_match(*(static_cast<const %s*>(match_value)), legacy); }\n",
       name, name,
       name,
       name, name,
@@ -2498,12 +2571,13 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     src = mputstr(src, "}\n\n");
 
   /* log_match function */
-  def = mputprintf(def, "void log_match(const %s& match_value) "
-    "const;\n", name);
+  def = mputprintf(def, "void log_match(const %s& match_value, "
+    "boolean legacy = FALSE) const;\n", name);
   src = mputprintf(src,
-    "void %s_template::log_match(const %s& match_value) const\n"
+    "void %s_template::log_match(const %s& match_value, boolean legacy) const\n"
     "{\n"
-    "if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() && match(match_value)){\n"
+    "if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity() "
+    "&& match(match_value, legacy)){\n"
     "TTCN_Logger::print_logmatch_buffer();\n"
     "TTCN_Logger::log_event_str(\" matched\");\n"
     "return;\n"
@@ -2515,10 +2589,10 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     src = mputprintf(src, "case %s_%s:\n"
     "if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){\n"
     "TTCN_Logger::log_logmatch_info(\".%s\");\n"
-    "single_value.field_%s->log_match(match_value.%s%s());\n"
+    "single_value.field_%s->log_match(match_value.%s%s(), legacy);\n"
     "} else {\n"
       "TTCN_Logger::log_event_str(\"{ %s := \");\n"
-      "single_value.field_%s->log_match(match_value.%s%s());\n"
+      "single_value.field_%s->log_match(match_value.%s%s(), legacy);\n"
     "TTCN_Logger::log_event_str(\" }\");\n"
     "}\n"
     "break;\n", selection_prefix, sdef->elements[i].name,
@@ -2536,7 +2610,7 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "match_value.log();\n"
     "TTCN_Logger::log_event_str(\" with \");\n"
     "log();\n"
-    "if (match(match_value)) TTCN_Logger::log_event_str(\" matched\");\n"
+    "if (match(match_value, legacy)) TTCN_Logger::log_event_str(\" matched\");\n"
     "else TTCN_Logger::log_event_str(\" unmatched\");\n"
     "}\n"
     "}\n\n");
@@ -2623,18 +2697,18 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "}\n\n", dispname, name, dispname);
 
   /* TTCN-3 ispresent() function */
-  def = mputstr(def, "boolean is_present() const;\n");
+  def = mputstr(def, "boolean is_present(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::is_present() const\n"
+    "boolean %s_template::is_present(boolean legacy) const\n"
     "{\n"
     "if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;\n"
-    "return !match_omit();\n"
+    "return !match_omit(legacy);\n"
     "}\n\n", name);
 
   /* match_omit() */
-  def = mputstr(def, "boolean match_omit() const;\n");
+  def = mputstr(def, "boolean match_omit(boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
-    "boolean %s_template::match_omit() const\n"
+    "boolean %s_template::match_omit(boolean legacy) const\n"
     "{\n"
     "if (is_ifpresent) return TRUE;\n"
     "switch (template_selection) {\n"
@@ -2643,10 +2717,12 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "return TRUE;\n"
     "case VALUE_LIST:\n"
     "case COMPLEMENTED_LIST:\n"
+    "if (legacy) {\n"
     "for (unsigned int v_idx=0; v_idx<value_list.n_values; v_idx++)\n"
     "if (value_list.list_value[v_idx].match_omit())\n"
     "return template_selection==VALUE_LIST;\n"
     "return template_selection==COMPLEMENTED_LIST;\n"
+    "} // else fall through\n"
     "default:\n"
     "return FALSE;\n"
     "}\n"
@@ -2680,7 +2756,11 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "param.error(\"Field `%%s' not found in union template type `%s'\", param_field);\n"
     "  }\n"
     "  param.basic_check(Module_Param::BC_TEMPLATE, \"union template\");\n"
-    "  switch (param.get_type()) {\n"
+    "  Module_Param_Ptr mp = &param;\n"
+    "  if (param.get_type() == Module_Param::MP_Reference) {\n"
+    "    mp = param.get_referenced_param();\n"
+    "  }\n"
+    "  switch (mp->get_type()) {\n"
     "  case Module_Param::MP_Omit:\n"
     "    *this = OMIT_VALUE;\n"
     "    break;\n"
@@ -2691,19 +2771,22 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "    *this = ANY_OR_OMIT;\n"
     "    break;\n"
     "  case Module_Param::MP_List_Template:\n"
-    "  case Module_Param::MP_ComplementList_Template:\n"
-    "    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());\n"
-    "    for (size_t p_i=0; p_i<param.get_size(); p_i++) {\n"
-    "      list_item(p_i).set_param(*param.get_elem(p_i));\n"
+    "  case Module_Param::MP_ComplementList_Template: {\n"
+    "    %s_template temp;\n"
+    "    temp.set_type(mp->get_type()==Module_Param::MP_List_Template ? "
+    "VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());\n"
+    "    for (size_t p_i=0; p_i<mp->get_size(); p_i++) {\n"
+    "      temp.list_item(p_i).set_param(*mp->get_elem(p_i));\n"
     "    }\n"
-    "    break;\n"
+    "    *this = temp;\n"
+    "    break; }\n"
     "  case Module_Param::MP_Value_List:\n"
-    "    if (param.get_size()==0) break;\n" /* for backward compatibility */
+    "    if (mp->get_size()==0) break;\n" /* for backward compatibility */
     "    param.type_error(\"union template\", \"%s\");\n"
     "    break;\n"
     "  case Module_Param::MP_Assignment_List: {\n"
-    "    Module_Param* mp_last = param.get_elem(param.get_size()-1);\n",
-    dispname, dispname);
+    "    Module_Param* mp_last = mp->get_elem(mp->get_size()-1);\n",
+    dispname, name, dispname);
   for (i = 0; i < sdef->nElements; i++) {
     src = mputprintf(src, 
     "    if (!strcmp(mp_last->get_id()->get_name(), \"%s\")) {\n"
@@ -2717,15 +2800,94 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
     "  default:\n"
     "    param.type_error(\"union template\", \"%s\");\n"
     "  }\n"
-    "  is_ifpresent = param.get_ifpresent();\n"
+    "  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();\n"
     "}\n\n", dispname, dispname);
+  
+  /* get_param() */
+  def = mputstr(def, "Module_Param* get_param(Module_Param_Name& param_name) const;\n");
+  src = mputprintf(src,
+    "Module_Param* %s_template::get_param(Module_Param_Name& param_name) const\n"
+    "{\n"
+    "  if (param_name.next_name()) {\n"
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the fields, not to the whole union
+    "    char* param_field = param_name.get_current_name();\n"
+    "    if (param_field[0] >= '0' && param_field[0] <= '9') {\n"
+    "      TTCN_error(\"Unexpected array index in module parameter reference, \"\n"
+    "        \"expected a valid field name for union template type `%s'\");\n"
+    "    }\n"
+    "    ", name, dispname);
+  for (i = 0; i < sdef->nElements; i++) {
+    src = mputprintf(src,
+     "if (strcmp(\"%s\", param_field) == 0) {\n"
+     "      return %s%s().get_param(param_name);\n"
+     "    } else ",
+     sdef->elements[i].dispname, at_field, sdef->elements[i].name);
+  }
+  src = mputprintf(src,
+    "TTCN_error(\"Field `%%s' not found in union type `%s'\", param_field);\n"
+    "  }\n"
+    "  Module_Param* mp = NULL;\n"
+    "  switch (template_selection) {\n"
+    "  case UNINITIALIZED_TEMPLATE:\n"
+    "    mp = new Module_Param_Unbound();\n"
+    "    break;\n"
+    "  case OMIT_VALUE:\n"
+    "    mp = new Module_Param_Omit();\n"
+    "    break;\n"
+    "  case ANY_VALUE:\n"
+    "    mp = new Module_Param_Any();\n"
+    "    break;\n"
+    "  case ANY_OR_OMIT:\n"
+    "    mp = new Module_Param_AnyOrNone();\n"
+    "    break;\n"
+    "  case SPECIFIC_VALUE: {\n"
+    "    Module_Param* mp_field = NULL;\n"
+    "    switch(single_value.union_selection) {\n"
+    , name);
+    for (i = 0; i < sdef->nElements; ++i) {
+      src = mputprintf(src, 
+        "    case %s_%s:\n"
+        "      mp_field = single_value.field_%s->get_param(param_name);\n"
+        "      mp_field->set_id(new Module_Param_FieldName(mcopystr(\"%s\")));\n"
+        "      break;\n"
+        , selection_prefix, sdef->elements[i].name
+        , sdef->elements[i].name, sdef->elements[i].dispname);
+    }
+  src = mputstr(src,
+    "    default:\n"
+    "      break;\n"
+    "    }\n"
+    "    mp = new Module_Param_Assignment_List();\n"
+    "    mp->add_elem(mp_field);\n"
+    "    break; }\n"
+    "  case VALUE_LIST:\n"
+    "  case COMPLEMENTED_LIST: {\n"
+    "    if (template_selection == VALUE_LIST) {\n"
+    "      mp = new Module_Param_List_Template();\n"
+    "    }\n"
+    "    else {\n"
+    "      mp = new Module_Param_ComplementList_Template();\n"
+    "    }\n"
+    "    for (size_t i = 0; i < value_list.n_values; ++i) {\n"
+    "      mp->add_elem(value_list.list_value[i].get_param(param_name));\n"
+    "    }\n"
+    "    break; }\n"
+    "  default:\n"
+    "    break;\n"
+    "  }\n"
+    "  if (is_ifpresent) {\n"
+    "    mp->set_ifpresent();\n"
+    "  }\n"
+    "  return mp;\n"
+    "}\n\n");
 
   /* check template restriction */
   def = mputstr(def, "void check_restriction(template_res t_res, "
-    "const char* t_name=NULL) const;\n");
+    "const char* t_name=NULL, boolean legacy = FALSE) const;\n");
   src = mputprintf(src,
     "void %s_template::check_restriction("
-      "template_res t_res, const char* t_name) const\n"
+      "template_res t_res, const char* t_name, boolean legacy) const\n"
     "{\n"
     "if (template_selection==UNINITIALIZED_TEMPLATE) return;\n"
     "switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {\n"
@@ -2748,7 +2910,7 @@ void defUnionTemplate(const struct_def *sdef, output_struct *output)
       "performing check_restriction operation on a template of union type %s.\");\n"
     "}\n"
     "case TR_PRESENT:\n"
-    "if (!match_omit()) return;\n"
+    "if (!match_omit(legacy)) return;\n"
     "break;\n"
     "default:\n"
     "return;\n"
diff --git a/compiler2/union.h b/compiler2/union.h
index a2e40da58..e90757ada 100644
--- a/compiler2/union.h
+++ b/compiler2/union.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/ustring.cc b/compiler2/ustring.cc
index d88149fdb..6406b1ab7 100644
--- a/compiler2/ustring.cc
+++ b/compiler2/ustring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -437,3 +437,58 @@ bool operator<(const ustring::universal_char& uc1,
   else if (uc1.row > uc2.row) return false;
   else return uc1.cell < uc2.cell;
 }
+
+string ustring_to_uft8(const ustring& ustr)
+{
+  string ret_val;
+  for(size_t i = 0; i < ustr.size(); i++) {
+    unsigned char g = ustr[i].group;
+    unsigned char p = ustr[i].plane;
+    unsigned char r = ustr[i].row;
+    unsigned char c = ustr[i].cell;
+    if(g == 0x00 && p <= 0x1F) {
+      if(p == 0x00) {
+        if(r == 0x00 && c <= 0x7F) {
+          // 1 octet
+          ret_val += c;
+        } // r
+        // 2 octets
+        else if(r <= 0x07) {
+          ret_val += (0xC0 | r << 2 | c >> 6);
+          ret_val += (0x80 | (c & 0x3F));
+        } // r
+        // 3 octets
+        else {
+          ret_val += (0xE0 | r >> 4);
+          ret_val += (0x80 | (r << 2 & 0x3C) | c >> 6);
+          ret_val += (0x80 | (c & 0x3F));
+        } // r
+      } // p
+      // 4 octets
+      else {
+        ret_val += (0xF0 | p >> 2);
+        ret_val += (0x80 | (p << 4 & 0x30) | r >> 4);
+        ret_val += (0x80 | (r << 2 & 0x3C) | c >> 6);
+        ret_val += (0x80 | (c & 0x3F));
+      } // p
+    } //g
+    // 5 octets
+    else if(g <= 0x03) {
+      ret_val += (0xF8 | g);
+      ret_val += (0x80 | p >> 2);
+      ret_val += (0x80 | (p << 4 & 0x30) | r >> 4);
+      ret_val += (0x80 | (r << 2 & 0x3C) | c >> 6);
+      ret_val += (0x80 | (c & 0x3F));
+    } // g
+    // 6 octets
+    else {
+      ret_val += (0xFC | g >> 6);
+      ret_val += (0x80 | (g & 0x3F));
+      ret_val += (0x80 | p >> 2);
+      ret_val += (0x80 | (p << 4 & 0x30) | r >> 4);
+      ret_val += (0x80 | (r << 2 & 0x3C) | c >> 6);
+      ret_val += (0x80 | (c & 0x3F));
+    }
+  } // for i
+  return ret_val;
+}
diff --git a/compiler2/ustring.hh b/compiler2/ustring.hh
index 5ee51dbdf..e83e60bd9 100644
--- a/compiler2/ustring.hh
+++ b/compiler2/ustring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -154,4 +154,7 @@ extern bool operator==(const ustring::universal_char& uc1,
 extern bool operator<(const ustring::universal_char& uc1,
   const ustring::universal_char& uc2);
 
+/** Converts the unicode string to UTF-8 format */
+extern string ustring_to_uft8(const ustring&);
+
 #endif // _Common_ustring_HH
diff --git a/compiler2/vector.hh b/compiler2/vector.hh
index bb1016071..ff726e17b 100644
--- a/compiler2/vector.hh
+++ b/compiler2/vector.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/compiler2/xpather.cc b/compiler2/xpather.cc
index d81658438..0ac78b04f 100644
--- a/compiler2/xpather.cc
+++ b/compiler2/xpather.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -249,14 +249,14 @@ extern "C" string_list* getExternalLibs(const char* projName)
   return head;
 }
 
-extern "C" string_list* getExternalLibPathes(const char* projName)
+extern "C" string_list* getExternalLibPaths(const char* projName)
 {
   if (!projGenHelper.getZflag()) return NULL;
   ProjectDescriptor* proj = projGenHelper.getTargetOfProject(projName);
   if (!proj) return NULL;
 
   std::vector<const char*> externalLibs;
-  projGenHelper.getExternalLibSearchPathes(externalLibs);
+  projGenHelper.getExternalLibSearchPaths(externalLibs);
 
   if (0 == externalLibs.size()) return NULL;
 
@@ -617,11 +617,11 @@ 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, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, 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 string2_list* run_command_list, map<cstring, int>& seen_tpd_files, struct string2_list* required_configs, struct string_list** profiled_file_list);
 
 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,11 +635,11 @@ 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, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, 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 string2_list* run_command_list, struct string2_list* required_configs, struct string_list** profiled_file_list) {
 
   map<cstring, int> seen_tpd_files;
   projGenHelper.setZflag(*p_Zflag);
@@ -657,11 +657,11 @@ 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, solspeclibs, sol8speclibs,
+      p_asflag, p_swflag, p_Yflag, p_Mflag, 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);
+      run_command_list, seen_tpd_files, required_configs, profiled_file_list);
 
   if (TPD_FAILED == success) exit(EXIT_FAILURE);
 
@@ -705,11 +705,11 @@ 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, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean* p_asflag, boolean* p_swflag, boolean* p_Yflag, boolean* p_Mflag, 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 string2_list* run_command_list, map<cstring, int>& seen_tpd_files, struct string2_list* required_configs, struct string_list** profiled_file_list)
 {
   tpd_result result = TPD_SUCCESS;
   // read-only non-pointer aliases
@@ -1170,6 +1170,7 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
   xsdbool2boolean(xpathCtx, actcfg, "addSourceLineInfo", p_asflag);
   xsdbool2boolean(xpathCtx, actcfg, "suppressWarnings", p_swflag);
   xsdbool2boolean(xpathCtx, actcfg, "outParamBoundness", p_Yflag);
+  xsdbool2boolean(xpathCtx, actcfg, "omitInValueList", p_Mflag);
 
   projDesc = projGenHelper.getTargetOfProject(*p_project_name);
   if (projDesc) projDesc->setLinkingStrategy(*p_lflag);
@@ -1815,6 +1816,70 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
       }
     }
   }
+  
+  {
+    // profiler file name
+    char* profilerXpath = mprintf(
+      "/TITAN_Project_File_Information/Configurations/Configuration[@name='%s']"
+      "/ProjectProperties/MakefileSettings/profiledFileList", actcfg);
+    XPathObject profiledFilesNameObj(run_xpath(xpathCtx, profilerXpath));
+    Free(profilerXpath);
+    xmlNodeSetPtr nodes = profiledFilesNameObj->nodesetval;
+    if (nodes && nodes->nodeNr > 0) {
+      const char *uri = 0, *path = 0, *raw = 0;
+      for (xmlAttrPtr attr = nodes->nodeTab[0]->properties; attr; attr = attr->next) {
+        if (!strcmp((const char*)attr->name, "projectRelativePath")) {
+          path = (const char*)attr->children->content;
+        }
+        else if (!strcmp((const char*)attr->name, "relativeURI")) {
+          uri = (const char*)attr->children->content;
+        }
+        else if (!strcmp((const char*)attr->name, "rawURI")) {
+          raw = (const char*)attr->children->content;
+        }
+        else {
+          WARNING("Unknown attribute %s", (const char*)nodes->nodeTab[0]->name);
+        }
+      } // next attribute
+      
+      if (path == NULL) {
+        ERROR("A profiledFileList must have a projectRelativePath");
+      }
+      else {
+        if (uri == NULL && raw == NULL) {
+          ERROR("A profiledFileList must have either relativeURI or rawURI");
+        }
+        else {
+          cstring cpath(path);
+          if (files.has_key(cpath)) {
+            ERROR("profiledFileLists and FileResources must be unique!");
+          }
+          else {
+            // add the file to the end of the list
+            struct string_list* new_item = NULL;
+            if (*profiled_file_list == NULL) {
+              *profiled_file_list = (struct string_list*)Malloc(sizeof(struct string_list));
+              new_item = *profiled_file_list;
+            }
+            else {
+              new_item = *profiled_file_list;
+              while(new_item->next != NULL) {
+                new_item = new_item->next;
+              }
+              new_item->next = (struct string_list*)Malloc(sizeof(struct string_list));
+              new_item = new_item->next;
+            }
+            new_item->str = mcopystr(path);
+            new_item->next = NULL;
+            
+            // add the file to the map of files to be copied to the working directory
+            char *ruri = uri ? mcopystr(uri) : cook(raw, path_vars);
+            files.add(cpath, ruri);
+          }
+        }
+      }
+    }
+  }
 
 // collect the required configurations
   {
@@ -1912,7 +1977,7 @@ 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_swflag = 0, my_Yflag = 0, my_Mflag = *p_Mflag;
 
         char *my_ets = NULL;
         char *my_proj_name = NULL;
@@ -1920,7 +1985,7 @@ static tpd_result process_tpd_internal(const char *p_tpd_name, const char *actcf
           compose_path_name(abs_tpd_dir, projectLocationURI));
 
         char* sub_proj_abs_work_dir = NULL;
-
+        
         tpd_result success = process_tpd_internal((const char*)abs_projectLocationURI,
           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,
@@ -1929,9 +1994,10 @@ 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, solspeclibs, sol8speclibs, linuxspeclibs, freebsdspeclibs, win32speclibs,
+          &my_gfflag, &my_lnflag, &my_isflag, &my_asflag, &my_swflag, &my_Yflag, &my_Mflag,
+          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);
+          &my_Hflag, NULL, NULL, prefix_workdir, run_command_list, seen_tpd_files, required_configs, profiled_file_list);
 
         autostring sub_proj_abs_work_dir_as(sub_proj_abs_work_dir); // ?!
 
diff --git a/compiler2/xpather.h b/compiler2/xpather.h
index 935e22524..a9f6e8c5f 100644
--- a/compiler2/xpather.h
+++ b/compiler2/xpather.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -65,7 +65,7 @@ struct string_list* getExternalLibs(const char* projName);
 #ifdef __cplusplus
 extern "C"
 #endif
-struct string_list* getExternalLibPathes(const char* projName);
+struct string_list* getExternalLibPaths(const char* projName);
 
 #ifdef __cplusplus
 extern "C"
@@ -183,6 +183,7 @@ boolean buildObjects(const char* projName, boolean add_referenced);
  * @param addsourcelineinfo addSourceLineInfo -l
  * @param suppresswarnings suppressWarnings -S
  * @param outparamboundness  outParamBoundness -Y
+ * @param omit_in_value_list omitInValueList -M
  * @param solspeclibs SolarisSpecificLibraries
  * @param sol8speclibs Solaris8SpecificLibraries
  * @param linuxspeclibs LinuxSpecificLibraries
@@ -197,7 +198,7 @@ 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
- * @return TPD_SUCESS if parsing successful, TPD_SKIPPED if the tpd
+ * @return TPD_SUCCESS if parsing successful, TPD_SKIPPED if the tpd
  *         was seen already, or TPD_FAILED on error.
  */
 #ifdef __cplusplus
@@ -221,10 +222,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, struct string_list* solspeclibs, struct string_list* sol8speclibs,
+  boolean *outparamboundness, boolean *omit_in_value_list, 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 string2_list* required_configs, struct string_list** profiled_file_list);
 
 #endif /* XPATHER_H_ */
diff --git a/core/.gitignore b/core/.gitignore
index a6cf2db0b..8fe256be8 100644
--- a/core/.gitignore
+++ b/core/.gitignore
@@ -21,3 +21,5 @@ gccversion.exe
 cversion.h
 RT1
 TitanLoggerApi.ttcn
+ttcn3_profmerge
+ttcn3_profmerge.exe
diff --git a/core/ASN_Any.cc b/core/ASN_Any.cc
index 129081b88..a366f401c 100644
--- a/core/ASN_Any.cc
+++ b/core/ASN_Any.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/ASN_Any.hh b/core/ASN_Any.hh
index 20ee4925b..6be0fc58d 100644
--- a/core/ASN_Any.hh
+++ b/core/ASN_Any.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/ASN_CharacterString.cc b/core/ASN_CharacterString.cc
index edbd97a36..f1b871527 100644
--- a/core/ASN_CharacterString.cc
+++ b/core/ASN_CharacterString.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -374,11 +374,15 @@ void CHARACTER_STRING_identification::log() const
 void CHARACTER_STRING_identification::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "union value");
-  if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) return;
-  if (param.get_type()!=Module_Param::MP_Assignment_List) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) return;
+  if (mp->get_type()!=Module_Param::MP_Assignment_List) {
     param.error("union value with field name was expected");
   }
-  Module_Param* mp_last = param.get_elem(param.get_size()-1);
+  Module_Param* mp_last = mp->get_elem(mp->get_size()-1);
   if (!strcmp(mp_last->get_id()->get_name(), "syntaxes")) {
     syntaxes().set_param(*mp_last);
     return;
@@ -406,10 +410,53 @@ void CHARACTER_STRING_identification::set_param(Module_Param& param)
   mp_last->error("Field %s does not exist in type CHARACTER STRING.identification.", mp_last->get_id()->get_name());
 }
 
+Module_Param* CHARACTER_STRING_identification::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  Module_Param* mp_field = NULL;
+  switch(get_selection()) {
+  case ALT_syntaxes:
+    mp_field = field_syntaxes->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("syntaxes")));
+    break;
+  case ALT_syntax:
+    mp_field = field_syntax->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("syntax")));
+    break;
+  case ALT_presentation__context__id:
+    mp_field = field_presentation__context__id->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+    break;
+  case ALT_context__negotiation:
+    mp_field = field_context__negotiation->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("context_negotiation")));
+    break;
+  case ALT_transfer__syntax:
+    mp_field = field_transfer__syntax->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+    break;
+  case ALT_fixed:
+    mp_field = field_fixed->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("fixed")));
+    break;
+  default:
+    break;
+  }
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field);
+  return mp;
+}
+
 void CHARACTER_STRING_identification_template::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_TEMPLATE, "union template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -420,18 +467,21 @@ void CHARACTER_STRING_identification_template::set_param(Module_Param& param)
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
+  case Module_Param::MP_ComplementList_Template: {
+    CHARACTER_STRING_identification_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
+    if (mp->get_size()==0) break;
     param.type_error("union template", "CHARACTER STRING.identification");
     break;
   case Module_Param::MP_Assignment_List: {
-    Module_Param* mp_last = param.get_elem(param.get_size()-1);
+    Module_Param* mp_last = mp->get_elem(mp->get_size()-1);
     if (!strcmp(mp_last->get_id()->get_name(), "syntaxes")) {
       syntaxes().set_param(*mp_last);
       break;
@@ -461,7 +511,77 @@ void CHARACTER_STRING_identification_template::set_param(Module_Param& param)
   default:
     param.type_error("union template", "CHARACTER STRING.identification");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* CHARACTER_STRING_identification_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field = NULL;
+    switch(single_value.union_selection) {
+    case CHARACTER_STRING_identification::ALT_syntaxes:
+      mp_field = single_value.field_syntaxes->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("syntaxes")));
+      break;
+    case CHARACTER_STRING_identification::ALT_syntax:
+      mp_field = single_value.field_syntax->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("syntax")));
+      break;
+    case CHARACTER_STRING_identification::ALT_presentation__context__id:
+      mp_field = single_value.field_presentation__context__id->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+      break;
+    case CHARACTER_STRING_identification::ALT_context__negotiation:
+      mp_field = single_value.field_context__negotiation->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("context_negotiation")));
+      break;
+    case CHARACTER_STRING_identification::ALT_transfer__syntax:
+      mp_field = single_value.field_transfer__syntax->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+      break;
+    case CHARACTER_STRING_identification::ALT_fixed:
+      mp_field = single_value.field_fixed->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("fixed")));
+      break;
+    default:
+      break;
+    }
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void CHARACTER_STRING_identification::encode_text(Text_Buf& text_buf) const
@@ -935,7 +1055,8 @@ CHARACTER_STRING_identification_template& CHARACTER_STRING_identification_templa
   return *this;
 }
 
-boolean CHARACTER_STRING_identification_template::match(const CHARACTER_STRING_identification& other_value) const
+boolean CHARACTER_STRING_identification_template::match(const CHARACTER_STRING_identification& other_value,
+                                                        boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -1232,7 +1353,8 @@ void CHARACTER_STRING_identification_template::log() const
   log_ifpresent();
 }
 
-void CHARACTER_STRING_identification_template::log_match(const CHARACTER_STRING_identification& match_value) const
+void CHARACTER_STRING_identification_template::log_match(const CHARACTER_STRING_identification& match_value,
+                                                         boolean /* legacy */) const
 {
   if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
     if(match(match_value)){
@@ -1418,13 +1540,13 @@ void CHARACTER_STRING_identification_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean CHARACTER_STRING_identification_template::is_present() const
+boolean CHARACTER_STRING_identification_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean CHARACTER_STRING_identification_template::match_omit() const
+boolean CHARACTER_STRING_identification_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1433,10 +1555,12 @@ boolean CHARACTER_STRING_identification_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -1444,7 +1568,8 @@ boolean CHARACTER_STRING_identification_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void CHARACTER_STRING_identification_template::check_restriction(template_res t_res, const char* t_name) const
+void CHARACTER_STRING_identification_template::check_restriction(template_res t_res, const char* t_name,
+                                                                 boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1456,7 +1581,7 @@ void CHARACTER_STRING_identification_template::check_restriction(template_res t_
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -1521,34 +1646,38 @@ void CHARACTER_STRING_identification_syntaxes::clean_up()
 void CHARACTER_STRING_identification_syntaxes::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (2!=param.get_size()) {
-      param.error("record value of type CHARACTER STRING.identification.syntaxes has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (2!=mp->get_size()) {
+      param.error("record value of type CHARACTER STRING.identification.syntaxes has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
         abstract().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
         transfer().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.syntaxes: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.syntaxes: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -1557,60 +1686,19 @@ void CHARACTER_STRING_identification_syntaxes::set_param(Module_Param& param)
   }
 }
 
-void CHARACTER_STRING_identification_syntaxes_template::set_param(Module_Param& param)
+Module_Param* CHARACTER_STRING_identification_syntaxes::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (2!=param.get_size()) {
-      param.error("record template of type CHARACTER STRING.identification.syntaxes has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
-        abstract().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
-        transfer().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.syntaxes: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "CHARACTER STRING.identification.syntaxes");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_abstract = field_abstract.get_param(param_name);
+  mp_field_abstract->set_id(new Module_Param_FieldName(mcopystr("abstract")));
+  Module_Param* mp_field_transfer = field_transfer.get_param(param_name);
+  mp_field_transfer->set_id(new Module_Param_FieldName(mcopystr("transfer")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_abstract);
+  mp->add_elem(mp_field_transfer);
+  return mp;
 }
 
 void CHARACTER_STRING_identification_syntaxes::encode_text(Text_Buf& text_buf) const
@@ -1715,6 +1803,115 @@ struct CHARACTER_STRING_identification_syntaxes_template::single_value_struct {
   OBJID_template field_transfer;
 };
 
+void CHARACTER_STRING_identification_syntaxes_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    CHARACTER_STRING_identification_syntaxes_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (2!=mp->get_size()) {
+      param.error("record template of type CHARACTER STRING.identification.syntaxes has 2 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*mp->get_elem(1));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
+        abstract().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
+        transfer().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.syntaxes: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "CHARACTER STRING.identification.syntaxes");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* CHARACTER_STRING_identification_syntaxes_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_abstract = single_value->field_abstract.get_param(param_name);
+    mp_field_abstract->set_id(new Module_Param_FieldName(mcopystr("abstract")));
+    Module_Param* mp_field_transfer = single_value->field_transfer.get_param(param_name);
+    mp_field_transfer->set_id(new Module_Param_FieldName(mcopystr("transfer")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_abstract);
+    mp->add_elem(mp_field_transfer);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void CHARACTER_STRING_identification_syntaxes_template::clean_up()
 {
   switch (template_selection) {
@@ -1856,7 +2053,8 @@ CHARACTER_STRING_identification_syntaxes_template& CHARACTER_STRING_identificati
   return *this;
 }
 
-boolean CHARACTER_STRING_identification_syntaxes_template::match(const CHARACTER_STRING_identification_syntaxes& other_value) const
+boolean CHARACTER_STRING_identification_syntaxes_template::match(const CHARACTER_STRING_identification_syntaxes& other_value,
+                                                                 boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -1998,7 +2196,8 @@ void CHARACTER_STRING_identification_syntaxes_template::log() const
   log_ifpresent();
 }
 
-void CHARACTER_STRING_identification_syntaxes_template::log_match(const CHARACTER_STRING_identification_syntaxes& match_value) const
+void CHARACTER_STRING_identification_syntaxes_template::log_match(const CHARACTER_STRING_identification_syntaxes& match_value,
+                                                                  boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ abstract := ");
@@ -2064,13 +2263,13 @@ void CHARACTER_STRING_identification_syntaxes_template::decode_text(Text_Buf& te
   }
 }
 
-boolean CHARACTER_STRING_identification_syntaxes_template::is_present() const
+boolean CHARACTER_STRING_identification_syntaxes_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean CHARACTER_STRING_identification_syntaxes_template::match_omit() const
+boolean CHARACTER_STRING_identification_syntaxes_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2079,10 +2278,12 @@ boolean CHARACTER_STRING_identification_syntaxes_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -2090,7 +2291,8 @@ boolean CHARACTER_STRING_identification_syntaxes_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void CHARACTER_STRING_identification_syntaxes_template::check_restriction(template_res t_res, const char* t_name) const
+void CHARACTER_STRING_identification_syntaxes_template::check_restriction(template_res t_res, const char* t_name,
+                                                                          boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2102,7 +2304,7 @@ void CHARACTER_STRING_identification_syntaxes_template::check_restriction(templa
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2167,34 +2369,38 @@ void CHARACTER_STRING_identification_context__negotiation::clean_up()
 void CHARACTER_STRING_identification_context__negotiation::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (2!=param.get_size()) {
-      param.error("record value of type CHARACTER STRING.identification.context-negotiation has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (2!=mp->get_size()) {
+      param.error("record value of type CHARACTER STRING.identification.context-negotiation has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
         presentation__context__id().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
         transfer__syntax().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.context-negotiation: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.context-negotiation: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -2203,60 +2409,19 @@ void CHARACTER_STRING_identification_context__negotiation::set_param(Module_Para
   }
 }
 
-void CHARACTER_STRING_identification_context__negotiation_template::set_param(Module_Param& param)
+Module_Param* CHARACTER_STRING_identification_context__negotiation::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (2!=param.get_size()) {
-      param.error("record template of type CHARACTER STRING.identification.context-negotiation has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
-        presentation__context__id().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
-        transfer__syntax().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.context-negotiation: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "CHARACTER STRING.identification.context-negotiation");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_presentation_context_id = field_presentation__context__id.get_param(param_name);
+  mp_field_presentation_context_id->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+  Module_Param* mp_field_transfer_syntax = field_transfer__syntax.get_param(param_name);
+  mp_field_transfer_syntax->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_presentation_context_id);
+  mp->add_elem(mp_field_transfer_syntax);
+  return mp;
 }
 
 void CHARACTER_STRING_identification_context__negotiation::encode_text(Text_Buf& text_buf) const
@@ -2363,6 +2528,115 @@ struct CHARACTER_STRING_identification_context__negotiation_template::single_val
   OBJID_template field_transfer__syntax;
 };
 
+void CHARACTER_STRING_identification_context__negotiation_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    CHARACTER_STRING_identification_context__negotiation_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (2!=mp->get_size()) {
+      param.error("record template of type CHARACTER STRING.identification.context-negotiation has 2 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*mp->get_elem(1));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
+        presentation__context__id().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
+        transfer__syntax().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING.identification.context-negotiation: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "CHARACTER STRING.identification.context-negotiation");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* CHARACTER_STRING_identification_context__negotiation_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_presentation_context_id = single_value->field_presentation__context__id.get_param(param_name);
+    mp_field_presentation_context_id->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+    Module_Param* mp_field_transfer_syntax = single_value->field_transfer__syntax.get_param(param_name);
+    mp_field_transfer_syntax->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_presentation_context_id);
+    mp->add_elem(mp_field_transfer_syntax);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void CHARACTER_STRING_identification_context__negotiation_template::clean_up()
 {
   switch (template_selection) {
@@ -2504,7 +2778,8 @@ CHARACTER_STRING_identification_context__negotiation_template& CHARACTER_STRING_
   return *this;
 }
 
-boolean CHARACTER_STRING_identification_context__negotiation_template::match(const CHARACTER_STRING_identification_context__negotiation& other_value) const
+boolean CHARACTER_STRING_identification_context__negotiation_template::match(const CHARACTER_STRING_identification_context__negotiation& other_value,
+                                                                             boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2646,7 +2921,8 @@ void CHARACTER_STRING_identification_context__negotiation_template::log() const
   log_ifpresent();
 }
 
-void CHARACTER_STRING_identification_context__negotiation_template::log_match(const CHARACTER_STRING_identification_context__negotiation& match_value) const
+void CHARACTER_STRING_identification_context__negotiation_template::log_match(const CHARACTER_STRING_identification_context__negotiation& match_value,
+                                                                              boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ presentation_context_id := ");
@@ -2712,13 +2988,13 @@ void CHARACTER_STRING_identification_context__negotiation_template::decode_text(
   }
 }
 
-boolean CHARACTER_STRING_identification_context__negotiation_template::is_present() const
+boolean CHARACTER_STRING_identification_context__negotiation_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean CHARACTER_STRING_identification_context__negotiation_template::match_omit() const
+boolean CHARACTER_STRING_identification_context__negotiation_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2727,10 +3003,12 @@ boolean CHARACTER_STRING_identification_context__negotiation_template::match_omi
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -2738,7 +3016,8 @@ boolean CHARACTER_STRING_identification_context__negotiation_template::match_omi
 }
 
 #ifndef TITAN_RUNTIME_2
-void CHARACTER_STRING_identification_context__negotiation_template::check_restriction(template_res t_res, const char* t_name) const
+void CHARACTER_STRING_identification_context__negotiation_template::check_restriction(template_res t_res, const char* t_name,
+                                                                                      boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2750,7 +3029,7 @@ void CHARACTER_STRING_identification_context__negotiation_template::check_restri
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2824,42 +3103,46 @@ void CHARACTER_STRING::log() const
 void CHARACTER_STRING::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (3!=param.get_size()) {
-      param.error("record value of type CHARACTER STRING has 3 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (3!=mp->get_size()) {
+      param.error("record value of type CHARACTER STRING has 3 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*param.get_elem(1));
-    if (param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) string__value().set_param(*param.get_elem(2));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*mp->get_elem(1));
+    if (mp->get_elem(2)->get_type()!=Module_Param::MP_NotUsed) string__value().set_param(*mp->get_elem(2));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
         identification().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
         data__value__descriptor().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "string_value")) {
         string__value().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -2868,68 +3151,22 @@ void CHARACTER_STRING::set_param(Module_Param& param)
   }
 }
 
-void CHARACTER_STRING_template::set_param(Module_Param& param)
+Module_Param* CHARACTER_STRING::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (3!=param.get_size()) {
-      param.error("record template of type CHARACTER STRING has 3 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*param.get_elem(1));
-    if (param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) string__value().set_param(*param.get_elem(2));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
-        identification().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
-        data__value__descriptor().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "string_value")) {
-        string__value().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "CHARACTER STRING");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_identification = field_identification.get_param(param_name);
+  mp_field_identification->set_id(new Module_Param_FieldName(mcopystr("identification")));
+  Module_Param* mp_field_data_value_descriptor = field_data__value__descriptor.get_param(param_name);
+  mp_field_data_value_descriptor->set_id(new Module_Param_FieldName(mcopystr("data_value_descriptor")));
+  Module_Param* mp_field_string_value = field_string__value.get_param(param_name);
+  mp_field_string_value->set_id(new Module_Param_FieldName(mcopystr("string_value")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_identification);
+  mp->add_elem(mp_field_data_value_descriptor);
+  mp->add_elem(mp_field_string_value);
+  return mp;
 }
 
 void CHARACTER_STRING::encode_text(Text_Buf& text_buf) const
@@ -3147,6 +3384,126 @@ struct CHARACTER_STRING_template::single_value_struct {
   OCTETSTRING_template field_string__value;
 };
 
+void CHARACTER_STRING_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    CHARACTER_STRING_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (3!=mp->get_size()) {
+      param.error("record template of type CHARACTER STRING has 3 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*mp->get_elem(1));
+    if (mp->get_elem(2)->get_type()!=Module_Param::MP_NotUsed) string__value().set_param(*mp->get_elem(2));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
+        identification().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
+        data__value__descriptor().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "string_value")) {
+        string__value().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type CHARACTER STRING: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "CHARACTER STRING");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* CHARACTER_STRING_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_identification = single_value->field_identification.get_param(param_name);
+    mp_field_identification->set_id(new Module_Param_FieldName(mcopystr("identification")));
+    Module_Param* mp_field_data_value_descriptor = single_value->field_data__value__descriptor.get_param(param_name);
+    mp_field_data_value_descriptor->set_id(new Module_Param_FieldName(mcopystr("data_value_descriptor")));
+    Module_Param* mp_field_string_value = single_value->field_string__value.get_param(param_name);
+    mp_field_string_value->set_id(new Module_Param_FieldName(mcopystr("string_value")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_identification);
+    mp->add_elem(mp_field_data_value_descriptor);
+    mp->add_elem(mp_field_string_value);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void CHARACTER_STRING_template::clean_up()
 {
   switch (template_selection) {
@@ -3291,7 +3648,8 @@ CHARACTER_STRING_template& CHARACTER_STRING_template::operator=(const CHARACTER_
   return *this;
 }
 
-boolean CHARACTER_STRING_template::match(const CHARACTER_STRING& other_value) const
+boolean CHARACTER_STRING_template::match(const CHARACTER_STRING& other_value,
+                                         boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -3453,7 +3811,8 @@ void CHARACTER_STRING_template::log() const
   log_ifpresent();
 }
 
-void CHARACTER_STRING_template::log_match(const CHARACTER_STRING& match_value) const
+void CHARACTER_STRING_template::log_match(const CHARACTER_STRING& match_value,
+                                          boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ identification := ");
@@ -3528,13 +3887,13 @@ void CHARACTER_STRING_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean CHARACTER_STRING_template::is_present() const
+boolean CHARACTER_STRING_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean CHARACTER_STRING_template::match_omit() const
+boolean CHARACTER_STRING_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -3543,10 +3902,14 @@ boolean CHARACTER_STRING_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -3554,7 +3917,8 @@ boolean CHARACTER_STRING_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void CHARACTER_STRING_template::check_restriction(template_res t_res, const char* t_name) const
+void CHARACTER_STRING_template::check_restriction(template_res t_res, const char* t_name,
+                                                  boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -3566,7 +3930,7 @@ void CHARACTER_STRING_template::check_restriction(template_res t_res, const char
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/ASN_CharacterString.hh b/core/ASN_CharacterString.hh
index 279bccc0a..f1cd8f666 100644
--- a/core/ASN_CharacterString.hh
+++ b/core/ASN_CharacterString.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -79,6 +79,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -130,7 +131,7 @@ public:
   CHARACTER_STRING_identification_template& operator=(const CHARACTER_STRING_identification& other_value);
   CHARACTER_STRING_identification_template& operator=(const OPTIONAL<CHARACTER_STRING_identification>& other_value);
   CHARACTER_STRING_identification_template& operator=(const CHARACTER_STRING_identification_template& other_value);
-  boolean match(const CHARACTER_STRING_identification& other_value) const;
+  boolean match(const CHARACTER_STRING_identification& other_value, boolean legacy = FALSE) const;
   CHARACTER_STRING_identification valueof() const;
   CHARACTER_STRING_identification_template& list_item(unsigned int list_index) const;
   void set_type(template_sel template_type, unsigned int list_length);
@@ -148,23 +149,24 @@ public:
   const ASN_NULL_template& fixed() const;
   boolean ischosen(CHARACTER_STRING_identification::union_selection_type checked_selection) const;
   void log() const;
-  void log_match(const CHARACTER_STRING_identification& match_value) const;
+  void log_match(const CHARACTER_STRING_identification& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<CHARACTER_STRING_identification*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const CHARACTER_STRING_identification*>(other_value)); }
   Base_Template* clone() const { return new CHARACTER_STRING_identification_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &CHARACTER_STRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const CHARACTER_STRING_identification*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const CHARACTER_STRING_identification*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const CHARACTER_STRING_identification*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const CHARACTER_STRING_identification*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -201,6 +203,7 @@ public:
   boolean is_value() const;
   void clean_up();
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -245,7 +248,7 @@ public:
   CHARACTER_STRING_identification_syntaxes_template& operator=(const CHARACTER_STRING_identification_syntaxes& other_value);
   CHARACTER_STRING_identification_syntaxes_template& operator=(const OPTIONAL<CHARACTER_STRING_identification_syntaxes>& other_value);
   CHARACTER_STRING_identification_syntaxes_template& operator=(const CHARACTER_STRING_identification_syntaxes_template& other_value);
-  boolean match(const CHARACTER_STRING_identification_syntaxes& other_value) const;
+  boolean match(const CHARACTER_STRING_identification_syntaxes& other_value, boolean legacy = FALSE) const;
   CHARACTER_STRING_identification_syntaxes valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   CHARACTER_STRING_identification_syntaxes_template& list_item(unsigned int list_index) const;
@@ -255,23 +258,24 @@ public:
   const OBJID_template& transfer() const;
   int size_of() const;
   void log() const;
-  void log_match(const CHARACTER_STRING_identification_syntaxes& match_value) const;
+  void log_match(const CHARACTER_STRING_identification_syntaxes& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<CHARACTER_STRING_identification_syntaxes*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const CHARACTER_STRING_identification_syntaxes*>(other_value)); }
   Base_Template* clone() const { return new CHARACTER_STRING_identification_syntaxes_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &CHARACTER_STRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const CHARACTER_STRING_identification_syntaxes*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const CHARACTER_STRING_identification_syntaxes*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const CHARACTER_STRING_identification_syntaxes*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const CHARACTER_STRING_identification_syntaxes*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -308,6 +312,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -352,7 +357,7 @@ public:
   CHARACTER_STRING_identification_context__negotiation_template& operator=(const CHARACTER_STRING_identification_context__negotiation& other_value);
   CHARACTER_STRING_identification_context__negotiation_template& operator=(const OPTIONAL<CHARACTER_STRING_identification_context__negotiation>& other_value);
   CHARACTER_STRING_identification_context__negotiation_template& operator=(const CHARACTER_STRING_identification_context__negotiation_template& other_value);
-  boolean match(const CHARACTER_STRING_identification_context__negotiation& other_value) const;
+  boolean match(const CHARACTER_STRING_identification_context__negotiation& other_value, boolean legacy = FALSE) const;
   CHARACTER_STRING_identification_context__negotiation valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   CHARACTER_STRING_identification_context__negotiation_template& list_item(unsigned int list_index) const;
@@ -362,23 +367,24 @@ public:
   const OBJID_template& transfer__syntax() const;
   int size_of() const;
   void log() const;
-  void log_match(const CHARACTER_STRING_identification_context__negotiation& match_value) const;
+  void log_match(const CHARACTER_STRING_identification_context__negotiation& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<CHARACTER_STRING_identification_context__negotiation*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const CHARACTER_STRING_identification_context__negotiation*>(other_value)); }
   Base_Template* clone() const { return new CHARACTER_STRING_identification_context__negotiation_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &CHARACTER_STRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const CHARACTER_STRING_identification_context__negotiation*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const { log_match(*(static_cast<const CHARACTER_STRING_identification_context__negotiation*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const CHARACTER_STRING_identification_context__negotiation*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const { log_match(*(static_cast<const CHARACTER_STRING_identification_context__negotiation*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -424,6 +430,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -466,7 +473,7 @@ public:
   CHARACTER_STRING_template& operator=(const CHARACTER_STRING& other_value);
   CHARACTER_STRING_template& operator=(const OPTIONAL<CHARACTER_STRING>& other_value);
   CHARACTER_STRING_template& operator=(const CHARACTER_STRING_template& other_value);
-  boolean match(const CHARACTER_STRING& other_value) const;
+  boolean match(const CHARACTER_STRING& other_value, boolean legacy = FALSE) const;
   CHARACTER_STRING valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   CHARACTER_STRING_template& list_item(unsigned int list_index) const;
@@ -478,23 +485,24 @@ public:
   const OCTETSTRING_template& string__value() const;
   int size_of() const;
   void log() const;
-  void log_match(const CHARACTER_STRING& match_value) const;
+  void log_match(const CHARACTER_STRING& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<CHARACTER_STRING*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const CHARACTER_STRING*>(other_value)); }
   Base_Template* clone() const { return new CHARACTER_STRING_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &CHARACTER_STRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const CHARACTER_STRING*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const CHARACTER_STRING*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const CHARACTER_STRING*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const CHARACTER_STRING*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/ASN_EmbeddedPDV.cc b/core/ASN_EmbeddedPDV.cc
index 11cfeed96..c0bb57718 100644
--- a/core/ASN_EmbeddedPDV.cc
+++ b/core/ASN_EmbeddedPDV.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -361,11 +361,15 @@ void EMBEDDED_PDV_identification::log() const
 void EMBEDDED_PDV_identification::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "union value");
-  if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) return;
-  if (param.get_type()!=Module_Param::MP_Assignment_List) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) return;
+  if (mp->get_type()!=Module_Param::MP_Assignment_List) {
     param.error("union value with field name was expected");
   }
-  Module_Param* mp_last = param.get_elem(param.get_size()-1);
+  Module_Param* mp_last = mp->get_elem(mp->get_size()-1);
   if (!strcmp(mp_last->get_id()->get_name(), "syntaxes")) {
     syntaxes().set_param(*mp_last);
     return;
@@ -393,10 +397,53 @@ void EMBEDDED_PDV_identification::set_param(Module_Param& param)
   mp_last->error("Field %s does not exist in type EMBEDDED PDV.identification.", mp_last->get_id()->get_name());
 }
 
+Module_Param* EMBEDDED_PDV_identification::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  Module_Param* mp_field = NULL;
+  switch(get_selection()) {
+  case ALT_syntaxes:
+    mp_field = field_syntaxes->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("syntaxes")));
+    break;
+  case ALT_syntax:
+    mp_field = field_syntax->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("syntax")));
+    break;
+  case ALT_presentation__context__id:
+    mp_field = field_presentation__context__id->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+    break;
+  case ALT_context__negotiation:
+    mp_field = field_context__negotiation->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("context_negotiation")));
+    break;
+  case ALT_transfer__syntax:
+    mp_field = field_transfer__syntax->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+    break;
+  case ALT_fixed:
+    mp_field = field_fixed->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("fixed")));
+    break;
+  default:
+    break;
+  }
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field);
+  return mp;
+}
+
 void EMBEDDED_PDV_identification_template::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_TEMPLATE, "union template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -407,18 +454,21 @@ void EMBEDDED_PDV_identification_template::set_param(Module_Param& param)
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
+  case Module_Param::MP_ComplementList_Template: {
+    EMBEDDED_PDV_identification_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
+    if (mp->get_size()==0) break;
     param.type_error("union template", "EMBEDDED PDV.identification");
     break;
   case Module_Param::MP_Assignment_List: {
-    Module_Param* mp_last = param.get_elem(param.get_size()-1);
+    Module_Param* mp_last = mp->get_elem(mp->get_size()-1);
     if (!strcmp(mp_last->get_id()->get_name(), "syntaxes")) {
       syntaxes().set_param(*mp_last);
       break;
@@ -448,7 +498,77 @@ void EMBEDDED_PDV_identification_template::set_param(Module_Param& param)
   default:
     param.type_error("union template", "EMBEDDED PDV.identification");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* EMBEDDED_PDV_identification_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field = NULL;
+    switch(single_value.union_selection) {
+    case EMBEDDED_PDV_identification::ALT_syntaxes:
+      mp_field = single_value.field_syntaxes->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("syntaxes")));
+      break;
+    case EMBEDDED_PDV_identification::ALT_syntax:
+      mp_field = single_value.field_syntax->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("syntax")));
+      break;
+    case EMBEDDED_PDV_identification::ALT_presentation__context__id:
+      mp_field = single_value.field_presentation__context__id->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+      break;
+    case EMBEDDED_PDV_identification::ALT_context__negotiation:
+      mp_field = single_value.field_context__negotiation->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("context_negotiation")));
+      break;
+    case EMBEDDED_PDV_identification::ALT_transfer__syntax:
+      mp_field = single_value.field_transfer__syntax->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+      break;
+    case EMBEDDED_PDV_identification::ALT_fixed:
+      mp_field = single_value.field_fixed->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("fixed")));
+      break;
+    default:
+      break;
+    }
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void EMBEDDED_PDV_identification::encode_text(Text_Buf& text_buf) const
@@ -930,7 +1050,8 @@ EMBEDDED_PDV_identification_template& EMBEDDED_PDV_identification_template::oper
   return *this;
 }
 
-boolean EMBEDDED_PDV_identification_template::match(const EMBEDDED_PDV_identification& other_value) const
+boolean EMBEDDED_PDV_identification_template::match(const EMBEDDED_PDV_identification& other_value,
+                                                    boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -1228,7 +1349,8 @@ void EMBEDDED_PDV_identification_template::log() const
   log_ifpresent();
 }
 
-void EMBEDDED_PDV_identification_template::log_match(const EMBEDDED_PDV_identification& match_value) const
+void EMBEDDED_PDV_identification_template::log_match(const EMBEDDED_PDV_identification& match_value,
+                                                     boolean /* legacy */) const
 {
   if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
     if(match(match_value)){
@@ -1413,13 +1535,13 @@ void EMBEDDED_PDV_identification_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean EMBEDDED_PDV_identification_template::is_present() const
+boolean EMBEDDED_PDV_identification_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EMBEDDED_PDV_identification_template::match_omit() const
+boolean EMBEDDED_PDV_identification_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1428,10 +1550,12 @@ boolean EMBEDDED_PDV_identification_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -1439,7 +1563,8 @@ boolean EMBEDDED_PDV_identification_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void EMBEDDED_PDV_identification_template::check_restriction(template_res t_res, const char* t_name) const
+void EMBEDDED_PDV_identification_template::check_restriction(template_res t_res, const char* t_name,
+                                                             boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1451,7 +1576,7 @@ void EMBEDDED_PDV_identification_template::check_restriction(template_res t_res,
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -1516,34 +1641,38 @@ void EMBEDDED_PDV_identification_syntaxes::clean_up()
 void EMBEDDED_PDV_identification_syntaxes::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (2!=param.get_size()) {
-      param.error("record value of type EMBEDDED PDV.identification.syntaxes has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (2!=mp->get_size()) {
+      param.error("record value of type EMBEDDED PDV.identification.syntaxes has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
         abstract().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
         transfer().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.syntaxes: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.syntaxes: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -1552,60 +1681,19 @@ void EMBEDDED_PDV_identification_syntaxes::set_param(Module_Param& param)
   }
 }
 
-void EMBEDDED_PDV_identification_syntaxes_template::set_param(Module_Param& param)
+Module_Param* EMBEDDED_PDV_identification_syntaxes::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (2!=param.get_size()) {
-      param.error("record template of type EMBEDDED PDV.identification.syntaxes has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
-        abstract().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
-        transfer().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.syntaxes: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "EMBEDDED PDV.identification.syntaxes");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_abstract = field_abstract.get_param(param_name);
+  mp_field_abstract->set_id(new Module_Param_FieldName(mcopystr("abstract")));
+  Module_Param* mp_field_transfer = field_transfer.get_param(param_name);
+  mp_field_transfer->set_id(new Module_Param_FieldName(mcopystr("transfer")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_abstract);
+  mp->add_elem(mp_field_transfer);
+  return mp;
 }
 
 void EMBEDDED_PDV_identification_syntaxes::encode_text(Text_Buf& text_buf) const
@@ -1719,6 +1807,115 @@ struct EMBEDDED_PDV_identification_syntaxes_template::single_value_struct {
   OBJID_template field_transfer;
 };
 
+void EMBEDDED_PDV_identification_syntaxes_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    EMBEDDED_PDV_identification_syntaxes_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (2!=mp->get_size()) {
+      param.error("record template of type EMBEDDED PDV.identification.syntaxes has 2 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*mp->get_elem(1));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
+        abstract().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
+        transfer().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.syntaxes: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "EMBEDDED PDV.identification.syntaxes");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* EMBEDDED_PDV_identification_syntaxes_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_abstract = single_value->field_abstract.get_param(param_name);
+    mp_field_abstract->set_id(new Module_Param_FieldName(mcopystr("abstract")));
+    Module_Param* mp_field_transfer = single_value->field_transfer.get_param(param_name);
+    mp_field_transfer->set_id(new Module_Param_FieldName(mcopystr("transfer")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_abstract);
+    mp->add_elem(mp_field_transfer);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void EMBEDDED_PDV_identification_syntaxes_template::clean_up()
 {
   switch (template_selection) {
@@ -1860,7 +2057,8 @@ EMBEDDED_PDV_identification_syntaxes_template& EMBEDDED_PDV_identification_synta
   return *this;
 }
 
-boolean EMBEDDED_PDV_identification_syntaxes_template::match(const EMBEDDED_PDV_identification_syntaxes& other_value) const
+boolean EMBEDDED_PDV_identification_syntaxes_template::match(const EMBEDDED_PDV_identification_syntaxes& other_value,
+                                                             boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2002,7 +2200,8 @@ void EMBEDDED_PDV_identification_syntaxes_template::log() const
   log_ifpresent();
 }
 
-void EMBEDDED_PDV_identification_syntaxes_template::log_match(const EMBEDDED_PDV_identification_syntaxes& match_value) const
+void EMBEDDED_PDV_identification_syntaxes_template::log_match(const EMBEDDED_PDV_identification_syntaxes& match_value,
+                                                              boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ abstract := ");
@@ -2068,13 +2267,13 @@ void EMBEDDED_PDV_identification_syntaxes_template::decode_text(Text_Buf& text_b
   }
 }
 
-boolean EMBEDDED_PDV_identification_syntaxes_template::is_present() const
+boolean EMBEDDED_PDV_identification_syntaxes_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EMBEDDED_PDV_identification_syntaxes_template::match_omit() const
+boolean EMBEDDED_PDV_identification_syntaxes_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2083,10 +2282,12 @@ boolean EMBEDDED_PDV_identification_syntaxes_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -2094,7 +2295,8 @@ boolean EMBEDDED_PDV_identification_syntaxes_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void EMBEDDED_PDV_identification_syntaxes_template::check_restriction(template_res t_res, const char* t_name) const
+void EMBEDDED_PDV_identification_syntaxes_template::check_restriction(template_res t_res, const char* t_name,
+                                                                      boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2106,7 +2308,7 @@ void EMBEDDED_PDV_identification_syntaxes_template::check_restriction(template_r
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2171,34 +2373,38 @@ void EMBEDDED_PDV_identification_context__negotiation::clean_up()
 void EMBEDDED_PDV_identification_context__negotiation::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (2!=param.get_size()) {
-      param.error("record value of type EMBEDDED PDV.identification.context-negotiation has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (2!=mp->get_size()) {
+      param.error("record value of type EMBEDDED PDV.identification.context-negotiation has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
         presentation__context__id().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
         transfer__syntax().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.context-negotiation: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.context-negotiation: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -2207,60 +2413,19 @@ void EMBEDDED_PDV_identification_context__negotiation::set_param(Module_Param& p
   }
 }
 
-void EMBEDDED_PDV_identification_context__negotiation_template::set_param(Module_Param& param)
+Module_Param* EMBEDDED_PDV_identification_context__negotiation::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (2!=param.get_size()) {
-      param.error("record template of type EMBEDDED PDV.identification.context-negotiation has 2 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*param.get_elem(1));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
-        presentation__context__id().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
-        transfer__syntax().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.context-negotiation: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "EMBEDDED PDV.identification.context-negotiation");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_presentation_context_id = field_presentation__context__id.get_param(param_name);
+  mp_field_presentation_context_id->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+  Module_Param* mp_field_transfer_syntax = field_transfer__syntax.get_param(param_name);
+  mp_field_transfer_syntax->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_presentation_context_id);
+  mp->add_elem(mp_field_transfer_syntax);
+  return mp;
 }
 
 void EMBEDDED_PDV_identification_context__negotiation::encode_text(Text_Buf& text_buf) const
@@ -2375,6 +2540,115 @@ struct EMBEDDED_PDV_identification_context__negotiation_template::single_value_s
   OBJID_template field_transfer__syntax;
 };
 
+void EMBEDDED_PDV_identification_context__negotiation_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    EMBEDDED_PDV_identification_context__negotiation_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (2!=mp->get_size()) {
+      param.error("record template of type EMBEDDED PDV.identification.context-negotiation has 2 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*mp->get_elem(1));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
+        presentation__context__id().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
+        transfer__syntax().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV.identification.context-negotiation: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "EMBEDDED PDV.identification.context-negotiation");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* EMBEDDED_PDV_identification_context__negotiation_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_presentation_context_id = single_value->field_presentation__context__id.get_param(param_name);
+    mp_field_presentation_context_id->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+    Module_Param* mp_field_transfer_syntax = single_value->field_transfer__syntax.get_param(param_name);
+    mp_field_transfer_syntax->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_presentation_context_id);
+    mp->add_elem(mp_field_transfer_syntax);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void EMBEDDED_PDV_identification_context__negotiation_template::clean_up()
 {
   switch (template_selection) {
@@ -2516,7 +2790,8 @@ EMBEDDED_PDV_identification_context__negotiation_template& EMBEDDED_PDV_identifi
   return *this;
 }
 
-boolean EMBEDDED_PDV_identification_context__negotiation_template::match(const EMBEDDED_PDV_identification_context__negotiation& other_value) const
+boolean EMBEDDED_PDV_identification_context__negotiation_template::match(const EMBEDDED_PDV_identification_context__negotiation& other_value,
+                                                                         boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2658,7 +2933,8 @@ void EMBEDDED_PDV_identification_context__negotiation_template::log() const
   log_ifpresent();
 }
 
-void EMBEDDED_PDV_identification_context__negotiation_template::log_match(const EMBEDDED_PDV_identification_context__negotiation& match_value) const
+void EMBEDDED_PDV_identification_context__negotiation_template::log_match(const EMBEDDED_PDV_identification_context__negotiation& match_value,
+                                                                          boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ presentation_context_id := ");
@@ -2724,13 +3000,13 @@ void EMBEDDED_PDV_identification_context__negotiation_template::decode_text(Text
   }
 }
 
-boolean EMBEDDED_PDV_identification_context__negotiation_template::is_present() const
+boolean EMBEDDED_PDV_identification_context__negotiation_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EMBEDDED_PDV_identification_context__negotiation_template::match_omit() const
+boolean EMBEDDED_PDV_identification_context__negotiation_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2739,10 +3015,12 @@ boolean EMBEDDED_PDV_identification_context__negotiation_template::match_omit()
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -2750,7 +3028,8 @@ boolean EMBEDDED_PDV_identification_context__negotiation_template::match_omit()
 }
 
 #ifndef TITAN_RUNTIME_2
-void EMBEDDED_PDV_identification_context__negotiation_template::check_restriction(template_res t_res, const char* t_name) const
+void EMBEDDED_PDV_identification_context__negotiation_template::check_restriction(template_res t_res, const char* t_name,
+                                                                                  boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2762,7 +3041,7 @@ void EMBEDDED_PDV_identification_context__negotiation_template::check_restrictio
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2836,42 +3115,46 @@ void EMBEDDED_PDV::clean_up()
 void EMBEDDED_PDV::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (3!=param.get_size()) {
-      param.error("record value of type EMBEDDED PDV has 3 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (3!=mp->get_size()) {
+      param.error("record value of type EMBEDDED PDV has 3 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*param.get_elem(1));
-    if (param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*param.get_elem(2));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*mp->get_elem(1));
+    if (mp->get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*mp->get_elem(2));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
         identification().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
         data__value__descriptor().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "data_value")) {
         data__value().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -2880,68 +3163,22 @@ void EMBEDDED_PDV::set_param(Module_Param& param)
   }
 }
 
-void EMBEDDED_PDV_template::set_param(Module_Param& param)
+Module_Param* EMBEDDED_PDV::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (3!=param.get_size()) {
-      param.error("record template of type EMBEDDED PDV has 3 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*param.get_elem(1));
-    if (param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*param.get_elem(2));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
-        identification().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
-        data__value__descriptor().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "data_value")) {
-        data__value().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "EMBEDDED PDV");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_identification = field_identification.get_param(param_name);
+  mp_field_identification->set_id(new Module_Param_FieldName(mcopystr("identification")));
+  Module_Param* mp_field_data_value_descriptor = field_data__value__descriptor.get_param(param_name);
+  mp_field_data_value_descriptor->set_id(new Module_Param_FieldName(mcopystr("data_value_descriptor")));
+  Module_Param* mp_field_data_value = field_data__value.get_param(param_name);
+  mp_field_data_value->set_id(new Module_Param_FieldName(mcopystr("data_value")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_identification);
+  mp->add_elem(mp_field_data_value_descriptor);
+  mp->add_elem(mp_field_data_value);
+  return mp;
 }
 
 void EMBEDDED_PDV::encode_text(Text_Buf& text_buf) const
@@ -3164,6 +3401,126 @@ struct EMBEDDED_PDV_template::single_value_struct {
   OCTETSTRING_template field_data__value;
 };
 
+void EMBEDDED_PDV_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    EMBEDDED_PDV_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (3!=mp->get_size()) {
+      param.error("record template of type EMBEDDED PDV has 3 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*mp->get_elem(1));
+    if (mp->get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*mp->get_elem(2));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
+        identification().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
+        data__value__descriptor().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "data_value")) {
+        data__value().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EMBEDDED PDV: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "EMBEDDED PDV");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* EMBEDDED_PDV_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_identification = single_value->field_identification.get_param(param_name);
+    mp_field_identification->set_id(new Module_Param_FieldName(mcopystr("identification")));
+    Module_Param* mp_field_data_value_descriptor = single_value->field_data__value__descriptor.get_param(param_name);
+    mp_field_data_value_descriptor->set_id(new Module_Param_FieldName(mcopystr("data_value_descriptor")));
+    Module_Param* mp_field_string_value = single_value->field_data__value.get_param(param_name);
+    mp_field_string_value->set_id(new Module_Param_FieldName(mcopystr("data_value")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_identification);
+    mp->add_elem(mp_field_data_value_descriptor);
+    mp->add_elem(mp_field_string_value);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void EMBEDDED_PDV_template::clean_up()
 {
   switch (template_selection) {
@@ -3308,7 +3665,8 @@ EMBEDDED_PDV_template& EMBEDDED_PDV_template::operator=(const EMBEDDED_PDV_templ
   return *this;
 }
 
-boolean EMBEDDED_PDV_template::match(const EMBEDDED_PDV& other_value) const
+boolean EMBEDDED_PDV_template::match(const EMBEDDED_PDV& other_value,
+                                     boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -3470,7 +3828,8 @@ void EMBEDDED_PDV_template::log() const
   log_ifpresent();
 }
 
-void EMBEDDED_PDV_template::log_match(const EMBEDDED_PDV& match_value) const
+void EMBEDDED_PDV_template::log_match(const EMBEDDED_PDV& match_value,
+                                      boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ identification := ");
@@ -3546,13 +3905,13 @@ void EMBEDDED_PDV_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean EMBEDDED_PDV_template::is_present() const
+boolean EMBEDDED_PDV_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EMBEDDED_PDV_template::match_omit() const
+boolean EMBEDDED_PDV_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -3561,10 +3920,14 @@ boolean EMBEDDED_PDV_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -3572,7 +3935,8 @@ boolean EMBEDDED_PDV_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void EMBEDDED_PDV_template::check_restriction(template_res t_res, const char* t_name) const
+void EMBEDDED_PDV_template::check_restriction(template_res t_res, const char* t_name,
+                                              boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -3584,7 +3948,7 @@ void EMBEDDED_PDV_template::check_restriction(template_res t_res, const char* t_
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/ASN_EmbeddedPDV.hh b/core/ASN_EmbeddedPDV.hh
index 0ee44cf13..5e0c9aa67 100644
--- a/core/ASN_EmbeddedPDV.hh
+++ b/core/ASN_EmbeddedPDV.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -79,6 +79,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -130,7 +131,7 @@ public:
   EMBEDDED_PDV_identification_template& operator=(const EMBEDDED_PDV_identification& other_value);
   EMBEDDED_PDV_identification_template& operator=(const OPTIONAL<EMBEDDED_PDV_identification>& other_value);
   EMBEDDED_PDV_identification_template& operator=(const EMBEDDED_PDV_identification_template& other_value);
-  boolean match(const EMBEDDED_PDV_identification& other_value) const;
+  boolean match(const EMBEDDED_PDV_identification& other_value, boolean legacy = FALSE) const;
   EMBEDDED_PDV_identification valueof() const;
   EMBEDDED_PDV_identification_template& list_item(unsigned int list_index) const;
   void set_type(template_sel template_type, unsigned int list_length);
@@ -148,23 +149,24 @@ public:
   const ASN_NULL_template& fixed() const;
   boolean ischosen(EMBEDDED_PDV_identification::union_selection_type checked_selection) const;
   void log() const;
-  void log_match(const EMBEDDED_PDV_identification& match_value) const;
+  void log_match(const EMBEDDED_PDV_identification& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EMBEDDED_PDV_identification*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EMBEDDED_PDV_identification*>(other_value)); }
   Base_Template* clone() const { return new EMBEDDED_PDV_identification_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EMBEDDED_PDV_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EMBEDDED_PDV_identification*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EMBEDDED_PDV_identification*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EMBEDDED_PDV_identification*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EMBEDDED_PDV_identification*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -201,6 +203,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -243,7 +246,7 @@ public:
   EMBEDDED_PDV_identification_syntaxes_template& operator=(const EMBEDDED_PDV_identification_syntaxes& other_value);
   EMBEDDED_PDV_identification_syntaxes_template& operator=(const OPTIONAL<EMBEDDED_PDV_identification_syntaxes>& other_value);
   EMBEDDED_PDV_identification_syntaxes_template& operator=(const EMBEDDED_PDV_identification_syntaxes_template& other_value);
-  boolean match(const EMBEDDED_PDV_identification_syntaxes& other_value) const;
+  boolean match(const EMBEDDED_PDV_identification_syntaxes& other_value, boolean legacy = FALSE) const;
   EMBEDDED_PDV_identification_syntaxes valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   EMBEDDED_PDV_identification_syntaxes_template& list_item(unsigned int list_index) const;
@@ -253,23 +256,24 @@ public:
   const OBJID_template& transfer() const;
   int size_of() const;
   void log() const;
-  void log_match(const EMBEDDED_PDV_identification_syntaxes& match_value) const;
+  void log_match(const EMBEDDED_PDV_identification_syntaxes& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EMBEDDED_PDV_identification_syntaxes*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EMBEDDED_PDV_identification_syntaxes*>(other_value)); }
   Base_Template* clone() const { return new EMBEDDED_PDV_identification_syntaxes_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EMBEDDED_PDV_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EMBEDDED_PDV_identification_syntaxes*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EMBEDDED_PDV_identification_syntaxes*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EMBEDDED_PDV_identification_syntaxes*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EMBEDDED_PDV_identification_syntaxes*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -306,6 +310,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -348,7 +353,7 @@ public:
   EMBEDDED_PDV_identification_context__negotiation_template& operator=(const EMBEDDED_PDV_identification_context__negotiation& other_value);
   EMBEDDED_PDV_identification_context__negotiation_template& operator=(const OPTIONAL<EMBEDDED_PDV_identification_context__negotiation>& other_value);
   EMBEDDED_PDV_identification_context__negotiation_template& operator=(const EMBEDDED_PDV_identification_context__negotiation_template& other_value);
-  boolean match(const EMBEDDED_PDV_identification_context__negotiation& other_value) const;
+  boolean match(const EMBEDDED_PDV_identification_context__negotiation& other_value, boolean legacy = FALSE) const;
   EMBEDDED_PDV_identification_context__negotiation valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   EMBEDDED_PDV_identification_context__negotiation_template& list_item(unsigned int list_index) const;
@@ -358,23 +363,24 @@ public:
   const OBJID_template& transfer__syntax() const;
   int size_of() const;
   void log() const;
-  void log_match(const EMBEDDED_PDV_identification_context__negotiation& match_value) const;
+  void log_match(const EMBEDDED_PDV_identification_context__negotiation& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EMBEDDED_PDV_identification_context__negotiation*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EMBEDDED_PDV_identification_context__negotiation*>(other_value)); }
   Base_Template* clone() const { return new EMBEDDED_PDV_identification_context__negotiation_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EMBEDDED_PDV_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EMBEDDED_PDV_identification_context__negotiation*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EMBEDDED_PDV_identification_context__negotiation*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EMBEDDED_PDV_identification_context__negotiation*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EMBEDDED_PDV_identification_context__negotiation*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -417,6 +423,7 @@ public:
 #endif
   void log() const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -459,7 +466,7 @@ public:
   EMBEDDED_PDV_template& operator=(const EMBEDDED_PDV& other_value);
   EMBEDDED_PDV_template& operator=(const OPTIONAL<EMBEDDED_PDV>& other_value);
   EMBEDDED_PDV_template& operator=(const EMBEDDED_PDV_template& other_value);
-  boolean match(const EMBEDDED_PDV& other_value) const;
+  boolean match(const EMBEDDED_PDV& other_value, boolean legacy = FALSE) const;
   EMBEDDED_PDV valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   EMBEDDED_PDV_template& list_item(unsigned int list_index) const;
@@ -471,23 +478,24 @@ public:
   const OCTETSTRING_template& data__value() const;
   int size_of() const;
   void log() const;
-  void log_match(const EMBEDDED_PDV& match_value) const;
+  void log_match(const EMBEDDED_PDV& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EMBEDDED_PDV*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EMBEDDED_PDV*>(other_value)); }
   Base_Template* clone() const { return new EMBEDDED_PDV_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EMBEDDED_PDV_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EMBEDDED_PDV*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EMBEDDED_PDV*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EMBEDDED_PDV*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EMBEDDED_PDV*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/ASN_External.cc b/core/ASN_External.cc
index 4cc701ff0..ff6e0d5d8 100644
--- a/core/ASN_External.cc
+++ b/core/ASN_External.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -91,6 +91,7 @@ namespace { /* anonymous namespace */
     inline union_selection_type get_selection() const { return union_selection; }
 #ifdef TITAN_RUNTIME_2
     void set_param(Module_Param& /*param*/) { TTCN_error("Internal error: EXTERNALtransfer_encoding::set_param() called."); }
+    Module_Param* get_param(Module_Param_Name& param_name) const { TTCN_error("Internal error: EXTERNALtransfer_encoding::get_param() called."); }
     void encode_text(Text_Buf& /*text_buf*/) const { TTCN_error("Internal error: EXTERNALtransfer_encoding::encode_text() called."); }
     void decode_text(Text_Buf& /*text_buf*/) { TTCN_error("Internal error: EXTERNALtransfer_encoding::decode_text() called."); }
     boolean is_bound() const { return union_selection!=UNBOUND_VALUE; }
@@ -146,6 +147,7 @@ namespace { /* anonymous namespace */
     {return field_encoding;}
 #ifdef TITAN_RUNTIME_2
     void set_param(Module_Param& /*param*/) { TTCN_error("Internal error: EXTERNALtransfer::set_param() called."); }
+    Module_Param* get_param(Module_Param_Name& param_name) const { TTCN_error("Internal error: EXTERNALtransfer::get_param() called."); }
     void encode_text(Text_Buf& /*text_buf*/) const { TTCN_error("Internal error: EXTERNALtransfer::encode_text() called."); }
     void decode_text(Text_Buf& /*text_buf*/) { TTCN_error("Internal error: EXTERNALtransfer::decode_text() called."); }
     boolean is_bound() const { TTCN_error("Internal error: EXTERNALtransfer::is_bound() called."); }
@@ -983,11 +985,15 @@ void EXTERNAL_identification::log() const
 
 void EXTERNAL_identification::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "union value");
-  if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) return;
-  if (param.get_type()!=Module_Param::MP_Assignment_List) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) return;
+  if (mp->get_type()!=Module_Param::MP_Assignment_List) {
     param.error("union value with field name was expected");
   }
-  Module_Param* mp_last = param.get_elem(param.get_size()-1);
+  Module_Param* mp_last = mp->get_elem(mp->get_size()-1);
   if (!strcmp(mp_last->get_id()->get_name(), "syntaxes")) {
     syntaxes().set_param(*mp_last);
     return;
@@ -1015,10 +1021,54 @@ void EXTERNAL_identification::set_param(Module_Param& param) {
   mp_last->error("Field %s does not exist in type EXTERNAL.identification.", mp_last->get_id()->get_name());
 }
 
+Module_Param* EXTERNAL_identification::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  Module_Param* mp_field = NULL;
+  
+  switch(get_selection()) {
+  case ALT_syntaxes:
+    mp_field = field_syntaxes->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("syntaxes")));
+    break;
+  case ALT_syntax:
+    mp_field = field_syntax->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("syntax")));
+    break;
+  case ALT_presentation__context__id:
+    mp_field = field_presentation__context__id->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+    break;
+  case ALT_context__negotiation:
+    mp_field = field_context__negotiation->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("context_negotiation")));
+    break;
+  case ALT_transfer__syntax:
+    mp_field = field_transfer__syntax->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+    break;
+  case ALT_fixed:
+    mp_field = field_fixed->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr("fixed")));
+    break;
+  default:
+    break;
+  }
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field);
+  return mp;
+}
+
 void EXTERNAL_identification_template::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_TEMPLATE, "union template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1029,18 +1079,21 @@ void EXTERNAL_identification_template::set_param(Module_Param& param)
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
+  case Module_Param::MP_ComplementList_Template: {
+    EXTERNAL_identification_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
+    if (mp->get_size()==0) break;
     param.type_error("union template", "EXTERNAL.identification");
     break;
   case Module_Param::MP_Assignment_List: {
-    Module_Param* mp_last = param.get_elem(param.get_size()-1);
+    Module_Param* mp_last = mp->get_elem(mp->get_size()-1);
     if (!strcmp(mp_last->get_id()->get_name(), "syntaxes")) {
       syntaxes().set_param(*mp_last);
       break;
@@ -1070,7 +1123,77 @@ void EXTERNAL_identification_template::set_param(Module_Param& param)
   default:
     param.type_error("union template", "EXTERNAL.identification");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* EXTERNAL_identification_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field = NULL;
+    switch(single_value.union_selection) {
+    case EXTERNAL_identification::ALT_syntaxes:
+      mp_field = single_value.field_syntaxes->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("syntaxes")));
+      break;
+    case EXTERNAL_identification::ALT_syntax:
+      mp_field = single_value.field_syntax->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("syntax")));
+      break;
+    case EXTERNAL_identification::ALT_presentation__context__id:
+      mp_field = single_value.field_presentation__context__id->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+      break;
+    case EXTERNAL_identification::ALT_context__negotiation:
+      mp_field = single_value.field_context__negotiation->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("context_negotiation")));
+      break;
+    case EXTERNAL_identification::ALT_transfer__syntax:
+      mp_field = single_value.field_transfer__syntax->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+      break;
+    case EXTERNAL_identification::ALT_fixed:
+      mp_field = single_value.field_fixed->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr("fixed")));
+      break;
+    default:
+      break;
+    }
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void EXTERNAL_identification::encode_text(Text_Buf& text_buf) const
@@ -1317,7 +1440,8 @@ EXTERNAL_identification_template& EXTERNAL_identification_template::operator=(co
   return *this;
 }
 
-boolean EXTERNAL_identification_template::match(const EXTERNAL_identification& other_value) const
+boolean EXTERNAL_identification_template::match(const EXTERNAL_identification& other_value,
+                                                boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -1615,7 +1739,8 @@ void EXTERNAL_identification_template::log() const
   log_ifpresent();
 }
 
-void EXTERNAL_identification_template::log_match(const EXTERNAL_identification& match_value) const
+void EXTERNAL_identification_template::log_match(const EXTERNAL_identification& match_value,
+                                                 boolean /* legacy */) const
 {
   if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
     if(match(match_value)){
@@ -1801,13 +1926,13 @@ void EXTERNAL_identification_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean EXTERNAL_identification_template::is_present() const
+boolean EXTERNAL_identification_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EXTERNAL_identification_template::match_omit() const
+boolean EXTERNAL_identification_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1816,10 +1941,12 @@ boolean EXTERNAL_identification_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -1827,7 +1954,8 @@ boolean EXTERNAL_identification_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void EXTERNAL_identification_template::check_restriction(template_res t_res, const char* t_name) const
+void EXTERNAL_identification_template::check_restriction(template_res t_res, const char* t_name,
+                                                         boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1839,7 +1967,7 @@ void EXTERNAL_identification_template::check_restriction(template_res t_res, con
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -1904,34 +2032,38 @@ void EXTERNAL_identification_syntaxes::clean_up()
 void EXTERNAL_identification_syntaxes::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (2!=param.get_size()) {
-      param.error("record value of type EXTERNAL.identification.syntaxes has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (2!=mp->get_size()) {
+      param.error("record value of type EXTERNAL.identification.syntaxes has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
         abstract().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
         transfer().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.syntaxes: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.syntaxes: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -1940,10 +2072,46 @@ void EXTERNAL_identification_syntaxes::set_param(Module_Param& param)
   }
 }
 
+Module_Param* EXTERNAL_identification_syntaxes::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  Module_Param* mp_field_abstract = field_abstract.get_param(param_name);
+  mp_field_abstract->set_id(new Module_Param_FieldName(mcopystr("abstract")));
+  Module_Param* mp_field_transfer = field_transfer.get_param(param_name);
+  mp_field_transfer->set_id(new Module_Param_FieldName(mcopystr("transfer")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_abstract);
+  mp->add_elem(mp_field_transfer);
+  return mp;
+}
+
+void EXTERNAL_identification_syntaxes::encode_text(Text_Buf& text_buf) const
+{
+  field_abstract.encode_text(text_buf);
+  field_transfer.encode_text(text_buf);
+}
+
+void EXTERNAL_identification_syntaxes::decode_text(Text_Buf& text_buf)
+{
+  field_abstract.decode_text(text_buf);
+  field_transfer.decode_text(text_buf);
+}
+
+struct EXTERNAL_identification_syntaxes_template::single_value_struct {
+  OBJID_template field_abstract;
+  OBJID_template field_transfer;
+};
+
 void EXTERNAL_identification_syntaxes_template::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1954,65 +2122,97 @@ void EXTERNAL_identification_syntaxes_template::set_param(Module_Param& param)
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
+  case Module_Param::MP_ComplementList_Template: {
+    EXTERNAL_identification_syntaxes_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (2!=param.get_size()) {
-      param.error("record template of type EXTERNAL.identification.syntaxes has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) break;
+    if (2!=mp->get_size()) {
+      param.error("record template of type EXTERNAL.identification.syntaxes has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) abstract().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "abstract")) {
         abstract().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer")) {
         transfer().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.syntaxes: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.syntaxes: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
   default:
     param.type_error("record template", "EXTERNAL.identification.syntaxes");
   }
-  is_ifpresent = param.get_ifpresent();
-}
-
-void EXTERNAL_identification_syntaxes::encode_text(Text_Buf& text_buf) const
-{
-  field_abstract.encode_text(text_buf);
-  field_transfer.encode_text(text_buf);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
 }
 
-void EXTERNAL_identification_syntaxes::decode_text(Text_Buf& text_buf)
+Module_Param* EXTERNAL_identification_syntaxes_template::get_param(Module_Param_Name& param_name) const
 {
-  field_abstract.decode_text(text_buf);
-  field_transfer.decode_text(text_buf);
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_abstract = single_value->field_abstract.get_param(param_name);
+    mp_field_abstract->set_id(new Module_Param_FieldName(mcopystr("abstract")));
+    Module_Param* mp_field_transfer = single_value->field_transfer.get_param(param_name);
+    mp_field_transfer->set_id(new Module_Param_FieldName(mcopystr("transfer")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_abstract);
+    mp->add_elem(mp_field_transfer);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
-struct EXTERNAL_identification_syntaxes_template::single_value_struct {
-  OBJID_template field_abstract;
-  OBJID_template field_transfer;
-};
-
 void EXTERNAL_identification_syntaxes_template::clean_up()
 {
   switch (template_selection) {
@@ -2154,7 +2354,8 @@ EXTERNAL_identification_syntaxes_template& EXTERNAL_identification_syntaxes_temp
   return *this;
 }
 
-boolean EXTERNAL_identification_syntaxes_template::match(const EXTERNAL_identification_syntaxes& other_value) const
+boolean EXTERNAL_identification_syntaxes_template::match(const EXTERNAL_identification_syntaxes& other_value,
+                                                         boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2296,7 +2497,8 @@ void EXTERNAL_identification_syntaxes_template::log() const
   log_ifpresent();
 }
 
-void EXTERNAL_identification_syntaxes_template::log_match(const EXTERNAL_identification_syntaxes& match_value) const
+void EXTERNAL_identification_syntaxes_template::log_match(const EXTERNAL_identification_syntaxes& match_value,
+                                                          boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ abstract := ");
@@ -2362,13 +2564,13 @@ void EXTERNAL_identification_syntaxes_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean EXTERNAL_identification_syntaxes_template::is_present() const
+boolean EXTERNAL_identification_syntaxes_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EXTERNAL_identification_syntaxes_template::match_omit() const
+boolean EXTERNAL_identification_syntaxes_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2377,10 +2579,12 @@ boolean EXTERNAL_identification_syntaxes_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -2388,7 +2592,8 @@ boolean EXTERNAL_identification_syntaxes_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void EXTERNAL_identification_syntaxes_template::check_restriction(template_res t_res, const char* t_name) const
+void EXTERNAL_identification_syntaxes_template::check_restriction(template_res t_res, const char* t_name,
+                                                                  boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2400,7 +2605,7 @@ void EXTERNAL_identification_syntaxes_template::check_restriction(template_res t
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2465,34 +2670,38 @@ void EXTERNAL_identification_context__negotiation::clean_up()
 void EXTERNAL_identification_context__negotiation::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (2!=param.get_size()) {
-      param.error("record value of type EXTERNAL.identification.context-negotiation has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (2!=mp->get_size()) {
+      param.error("record value of type EXTERNAL.identification.context-negotiation has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
         presentation__context__id().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
         transfer__syntax().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.context-negotiation: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.context-negotiation: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -2501,10 +2710,46 @@ void EXTERNAL_identification_context__negotiation::set_param(Module_Param& param
   }
 }
 
+Module_Param* EXTERNAL_identification_context__negotiation::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  Module_Param* mp_field_presentation_context_id = field_presentation__context__id.get_param(param_name);
+  mp_field_presentation_context_id->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+  Module_Param* mp_field_transfer_syntax = field_transfer__syntax.get_param(param_name);
+  mp_field_transfer_syntax->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_presentation_context_id);
+  mp->add_elem(mp_field_transfer_syntax);
+  return mp;
+}
+
+void EXTERNAL_identification_context__negotiation::encode_text(Text_Buf& text_buf) const
+{
+  field_presentation__context__id.encode_text(text_buf);
+  field_transfer__syntax.encode_text(text_buf);
+}
+
+void EXTERNAL_identification_context__negotiation::decode_text(Text_Buf& text_buf)
+{
+  field_presentation__context__id.decode_text(text_buf);
+  field_transfer__syntax.decode_text(text_buf);
+}
+
+struct EXTERNAL_identification_context__negotiation_template::single_value_struct {
+  INTEGER_template field_presentation__context__id;
+  OBJID_template field_transfer__syntax;
+};
+
 void EXTERNAL_identification_context__negotiation_template::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -2515,65 +2760,97 @@ void EXTERNAL_identification_context__negotiation_template::set_param(Module_Par
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
+  case Module_Param::MP_ComplementList_Template: {
+    EXTERNAL_identification_context__negotiation_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (2!=param.get_size()) {
-      param.error("record template of type EXTERNAL.identification.context-negotiation has 2 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) break;
+    if (2!=mp->get_size()) {
+      param.error("record template of type EXTERNAL.identification.context-negotiation has 2 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*param.get_elem(1));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) presentation__context__id().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) transfer__syntax().set_param(*mp->get_elem(1));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "presentation_context_id")) {
         presentation__context__id().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "transfer_syntax")) {
         transfer__syntax().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.context-negotiation: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EXTERNAL.identification.context-negotiation: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
   default:
     param.type_error("record template", "EXTERNAL.identification.context-negotiation");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
 }
 
-void EXTERNAL_identification_context__negotiation::encode_text(Text_Buf& text_buf) const
+Module_Param* EXTERNAL_identification_context__negotiation_template::get_param(Module_Param_Name& param_name) const
 {
-  field_presentation__context__id.encode_text(text_buf);
-  field_transfer__syntax.encode_text(text_buf);
-}
-
-void EXTERNAL_identification_context__negotiation::decode_text(Text_Buf& text_buf)
-{
-  field_presentation__context__id.decode_text(text_buf);
-  field_transfer__syntax.decode_text(text_buf);
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_presentation_context_id = single_value->field_presentation__context__id.get_param(param_name);
+    mp_field_presentation_context_id->set_id(new Module_Param_FieldName(mcopystr("presentation_context_id")));
+    Module_Param* mp_field_transfer_syntax = single_value->field_transfer__syntax.get_param(param_name);
+    mp_field_transfer_syntax->set_id(new Module_Param_FieldName(mcopystr("transfer_syntax")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_presentation_context_id);
+    mp->add_elem(mp_field_transfer_syntax);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
-struct EXTERNAL_identification_context__negotiation_template::single_value_struct {
-  INTEGER_template field_presentation__context__id;
-  OBJID_template field_transfer__syntax;
-};
-
 void EXTERNAL_identification_context__negotiation_template::clean_up()
 {
   switch (template_selection) {
@@ -2715,7 +2992,8 @@ EXTERNAL_identification_context__negotiation_template& EXTERNAL_identification_c
   return *this;
 }
 
-boolean EXTERNAL_identification_context__negotiation_template::match(const EXTERNAL_identification_context__negotiation& other_value) const
+boolean EXTERNAL_identification_context__negotiation_template::match(const EXTERNAL_identification_context__negotiation& other_value,
+                                                                     boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2857,7 +3135,8 @@ void EXTERNAL_identification_context__negotiation_template::log() const
   log_ifpresent();
 }
 
-void EXTERNAL_identification_context__negotiation_template::log_match(const EXTERNAL_identification_context__negotiation& match_value) const
+void EXTERNAL_identification_context__negotiation_template::log_match(const EXTERNAL_identification_context__negotiation& match_value,
+                                                                      boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ presentation_context_id := ");
@@ -2923,13 +3202,13 @@ void EXTERNAL_identification_context__negotiation_template::decode_text(Text_Buf
   }
 }
 
-boolean EXTERNAL_identification_context__negotiation_template::is_present() const
+boolean EXTERNAL_identification_context__negotiation_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EXTERNAL_identification_context__negotiation_template::match_omit() const
+boolean EXTERNAL_identification_context__negotiation_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2938,10 +3217,12 @@ boolean EXTERNAL_identification_context__negotiation_template::match_omit() cons
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    } // else fall through
   default:
     return FALSE;
   }
@@ -2949,7 +3230,8 @@ boolean EXTERNAL_identification_context__negotiation_template::match_omit() cons
 }
 
 #ifndef TITAN_RUNTIME_2
-void EXTERNAL_identification_context__negotiation_template::check_restriction(template_res t_res, const char* t_name) const
+void EXTERNAL_identification_context__negotiation_template::check_restriction(template_res t_res, const char* t_name,
+                                                                              boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2961,7 +3243,7 @@ void EXTERNAL_identification_context__negotiation_template::check_restriction(te
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -3035,42 +3317,46 @@ void EXTERNAL::clean_up()
 void EXTERNAL::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "record value");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) return;
-    if (3!=param.get_size()) {
-      param.error("record value of type EXTERNAL has 3 fields but list value has %d fields", (int)param.get_size());
+    if (mp->get_size()==0) return;
+    if (3!=mp->get_size()) {
+      param.error("record value of type EXTERNAL has 3 fields but list value has %d fields", (int)mp->get_size());
     }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*param.get_elem(1));
-    if (param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*param.get_elem(2));
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*mp->get_elem(1));
+    if (mp->get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*mp->get_elem(2));
     break;
   case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
         identification().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
         data__value__descriptor().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
       if (!strcmp(curr_param->get_id()->get_name(), "data_value")) {
         data__value().set_param(*curr_param);
         value_used[val_idx]=true;
       }
     }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EXTERNAL: %s", param.get_elem(val_idx)->get_id()->get_name());
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EXTERNAL: %s", mp->get_elem(val_idx)->get_id()->get_name());
       break;
     }
   } break;
@@ -3079,68 +3365,22 @@ void EXTERNAL::set_param(Module_Param& param)
   }
 }
 
-void EXTERNAL_template::set_param(Module_Param& param)
+Module_Param* EXTERNAL::get_param(Module_Param_Name& param_name) const
 {
-  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
-  switch (param.get_type()) {
-  case Module_Param::MP_Omit:
-    *this = OMIT_VALUE;
-    break;
-  case Module_Param::MP_Any:
-    *this = ANY_VALUE;
-    break;
-  case Module_Param::MP_AnyOrNone:
-    *this = ANY_OR_OMIT;
-    break;
-  case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t p_i=0; p_i<param.get_size(); p_i++) {
-      list_item(p_i).set_param(*param.get_elem(p_i));
-    }
-    break;
-  case Module_Param::MP_Value_List:
-    if (param.get_size()==0) break;
-    if (3!=param.get_size()) {
-      param.error("record template of type EXTERNAL has 3 fields but list value has %d fields", (int)param.get_size());
-    }
-    if (param.get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*param.get_elem(0));
-    if (param.get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*param.get_elem(1));
-    if (param.get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*param.get_elem(2));
-    break;
-  case Module_Param::MP_Assignment_List: {
-    Vector<bool> value_used(param.get_size());
-    value_used.resize(param.get_size(), false);
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
-        identification().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
-        data__value__descriptor().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) {
-      Module_Param* const curr_param = param.get_elem(val_idx);
-      if (!strcmp(curr_param->get_id()->get_name(), "data_value")) {
-        data__value().set_param(*curr_param);
-        value_used[val_idx]=true;
-      }
-    }
-    for (size_t val_idx=0; val_idx<param.get_size(); val_idx++) if (!value_used[val_idx]) {
-      param.get_elem(val_idx)->error("Non existent field name in type EXTERNAL: %s", param.get_elem(val_idx)->get_id()->get_name());
-      break;
-    }
-  } break;
-  default:
-    param.type_error("record template", "EXTERNAL");
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
-  is_ifpresent = param.get_ifpresent();
+  Module_Param* mp_field_identification = field_identification.get_param(param_name);
+  mp_field_identification->set_id(new Module_Param_FieldName(mcopystr("identification")));
+  Module_Param* mp_field_data_value_descriptor = field_data__value__descriptor.get_param(param_name);
+  mp_field_data_value_descriptor->set_id(new Module_Param_FieldName(mcopystr("data_value_descriptor")));
+  Module_Param* mp_field_data_value = field_data__value.get_param(param_name);
+  mp_field_data_value->set_id(new Module_Param_FieldName(mcopystr("data_value")));
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  mp->add_elem(mp_field_identification);
+  mp->add_elem(mp_field_data_value_descriptor);
+  mp->add_elem(mp_field_data_value);
+  return mp;
 }
 
 void EXTERNAL::encode_text(Text_Buf& text_buf) const
@@ -3250,6 +3490,126 @@ struct EXTERNAL_template::single_value_struct {
   OCTETSTRING_template field_data__value;
 };
 
+void EXTERNAL_template::set_param(Module_Param& param)
+{
+  param.basic_check(Module_Param::BC_TEMPLATE, "record template");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Omit:
+    *this = OMIT_VALUE;
+    break;
+  case Module_Param::MP_Any:
+    *this = ANY_VALUE;
+    break;
+  case Module_Param::MP_AnyOrNone:
+    *this = ANY_OR_OMIT;
+    break;
+  case Module_Param::MP_List_Template:
+  case Module_Param::MP_ComplementList_Template: {
+    EXTERNAL_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
+    }
+    *this = temp;
+    break; }
+  case Module_Param::MP_Value_List:
+    if (mp->get_size()==0) break;
+    if (3!=mp->get_size()) {
+      param.error("record template of type EXTERNAL has 3 fields but list value has %d fields", (int)mp->get_size());
+    }
+    if (mp->get_elem(0)->get_type()!=Module_Param::MP_NotUsed) identification().set_param(*mp->get_elem(0));
+    if (mp->get_elem(1)->get_type()!=Module_Param::MP_NotUsed) data__value__descriptor().set_param(*mp->get_elem(1));
+    if (mp->get_elem(2)->get_type()!=Module_Param::MP_NotUsed) data__value().set_param(*mp->get_elem(2));
+    break;
+  case Module_Param::MP_Assignment_List: {
+    Vector<bool> value_used(mp->get_size());
+    value_used.resize(mp->get_size(), false);
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "identification")) {
+        identification().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "data_value_descriptor")) {
+        data__value__descriptor().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) {
+      Module_Param* const curr_param = mp->get_elem(val_idx);
+      if (!strcmp(curr_param->get_id()->get_name(), "data_value")) {
+        data__value().set_param(*curr_param);
+        value_used[val_idx]=true;
+      }
+    }
+    for (size_t val_idx=0; val_idx<mp->get_size(); val_idx++) if (!value_used[val_idx]) {
+      mp->get_elem(val_idx)->error("Non existent field name in type EXTERNAL: %s", mp->get_elem(val_idx)->get_id()->get_name());
+      break;
+    }
+  } break;
+  default:
+    param.type_error("record template", "EXTERNAL");
+  }
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* EXTERNAL_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Module_Param* mp_field_identification = single_value->field_identification.get_param(param_name);
+    mp_field_identification->set_id(new Module_Param_FieldName(mcopystr("identification")));
+    Module_Param* mp_field_data_value_descriptor = single_value->field_data__value__descriptor.get_param(param_name);
+    mp_field_data_value_descriptor->set_id(new Module_Param_FieldName(mcopystr("data_value_descriptor")));
+    Module_Param* mp_field_string_value = single_value->field_data__value.get_param(param_name);
+    mp_field_string_value->set_id(new Module_Param_FieldName(mcopystr("data_value")));
+    mp = new Module_Param_Assignment_List();
+    mp->add_elem(mp_field_identification);
+    mp->add_elem(mp_field_data_value_descriptor);
+    mp->add_elem(mp_field_string_value);
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
 void EXTERNAL_template::clean_up()
 {
   switch (template_selection) {
@@ -3394,7 +3754,8 @@ EXTERNAL_template& EXTERNAL_template::operator=(const EXTERNAL_template& other_v
   return *this;
 }
 
-boolean EXTERNAL_template::match(const EXTERNAL& other_value) const
+boolean EXTERNAL_template::match(const EXTERNAL& other_value,
+                                 boolean /* legacy */) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -3556,7 +3917,8 @@ void EXTERNAL_template::log() const
   log_ifpresent();
 }
 
-void EXTERNAL_template::log_match(const EXTERNAL& match_value) const
+void EXTERNAL_template::log_match(const EXTERNAL& match_value,
+                                  boolean /* legacy */) const
 {
   if (template_selection == SPECIFIC_VALUE) {
     TTCN_Logger::log_event_str("{ identification := ");
@@ -3631,13 +3993,13 @@ void EXTERNAL_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean EXTERNAL_template::is_present() const
+boolean EXTERNAL_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean EXTERNAL_template::match_omit() const
+boolean EXTERNAL_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -3646,10 +4008,14 @@ boolean EXTERNAL_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -3657,7 +4023,8 @@ boolean EXTERNAL_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void EXTERNAL_template::check_restriction(template_res t_res, const char* t_name) const
+void EXTERNAL_template::check_restriction(template_res t_res, const char* t_name,
+                                          boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -3669,7 +4036,7 @@ void EXTERNAL_template::check_restriction(template_res t_res, const char* t_name
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/ASN_External.hh b/core/ASN_External.hh
index 9405c254c..609a1ba1f 100644
--- a/core/ASN_External.hh
+++ b/core/ASN_External.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -78,7 +78,8 @@ public:
 #else
   inline boolean is_present() const { return is_bound(); }
 #endif
-  void set_param(Module_Param& param); 
+  void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 };
@@ -119,7 +120,7 @@ public:
   EXTERNAL_identification_template& operator=(const EXTERNAL_identification& other_value);
   EXTERNAL_identification_template& operator=(const OPTIONAL<EXTERNAL_identification>& other_value);
   EXTERNAL_identification_template& operator=(const EXTERNAL_identification_template& other_value);
-  boolean match(const EXTERNAL_identification& other_value) const;
+  boolean match(const EXTERNAL_identification& other_value, boolean legacy = FALSE) const;
   EXTERNAL_identification valueof() const;
   EXTERNAL_identification_template& list_item(unsigned int list_index) const;
   void set_type(template_sel template_type, unsigned int list_length);
@@ -137,23 +138,24 @@ public:
   const ASN_NULL_template& fixed() const;
   boolean ischosen(EXTERNAL_identification::union_selection_type checked_selection) const;
   void log() const;
-  void log_match(const EXTERNAL_identification& match_value) const;
+  void log_match(const EXTERNAL_identification& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EXTERNAL_identification*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EXTERNAL_identification*>(other_value)); }
   Base_Template* clone() const { return new EXTERNAL_identification_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EXTERNAL_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EXTERNAL_identification*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EXTERNAL_identification*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EXTERNAL_identification*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EXTERNAL_identification*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -190,6 +192,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 };
@@ -226,7 +229,7 @@ public:
   EXTERNAL_identification_syntaxes_template& operator=(const EXTERNAL_identification_syntaxes& other_value);
   EXTERNAL_identification_syntaxes_template& operator=(const OPTIONAL<EXTERNAL_identification_syntaxes>& other_value);
   EXTERNAL_identification_syntaxes_template& operator=(const EXTERNAL_identification_syntaxes_template& other_value);
-  boolean match(const EXTERNAL_identification_syntaxes& other_value) const;
+  boolean match(const EXTERNAL_identification_syntaxes& other_value, boolean legacy = FALSE) const;
   EXTERNAL_identification_syntaxes valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   EXTERNAL_identification_syntaxes_template& list_item(unsigned int list_index) const;
@@ -236,23 +239,24 @@ public:
   const OBJID_template& transfer() const;
   int size_of() const;
   void log() const;
-  void log_match(const EXTERNAL_identification_syntaxes& match_value) const;
+  void log_match(const EXTERNAL_identification_syntaxes& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EXTERNAL_identification_syntaxes*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EXTERNAL_identification_syntaxes*>(other_value)); }
   Base_Template* clone() const { return new EXTERNAL_identification_syntaxes_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EXTERNAL_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EXTERNAL_identification_syntaxes*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EXTERNAL_identification_syntaxes*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EXTERNAL_identification_syntaxes*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EXTERNAL_identification_syntaxes*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -289,6 +293,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 };
@@ -325,7 +330,7 @@ public:
   EXTERNAL_identification_context__negotiation_template& operator=(const EXTERNAL_identification_context__negotiation& other_value);
   EXTERNAL_identification_context__negotiation_template& operator=(const OPTIONAL<EXTERNAL_identification_context__negotiation>& other_value);
   EXTERNAL_identification_context__negotiation_template& operator=(const EXTERNAL_identification_context__negotiation_template& other_value);
-  boolean match(const EXTERNAL_identification_context__negotiation& other_value) const;
+  boolean match(const EXTERNAL_identification_context__negotiation& other_value, boolean legacy = FALSE) const;
   EXTERNAL_identification_context__negotiation valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   EXTERNAL_identification_context__negotiation_template& list_item(unsigned int list_index) const;
@@ -335,23 +340,24 @@ public:
   const OBJID_template& transfer__syntax() const;
   int size_of() const;
   void log() const;
-  void log_match(const EXTERNAL_identification_context__negotiation& match_value) const;
+  void log_match(const EXTERNAL_identification_context__negotiation& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EXTERNAL_identification_context__negotiation*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EXTERNAL_identification_context__negotiation*>(other_value)); }
   Base_Template* clone() const { return new EXTERNAL_identification_context__negotiation_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EXTERNAL_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EXTERNAL_identification_context__negotiation*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EXTERNAL_identification_context__negotiation*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EXTERNAL_identification_context__negotiation*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EXTERNAL_identification_context__negotiation*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -396,6 +402,7 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
@@ -440,7 +447,7 @@ public:
   EXTERNAL_template& operator=(const EXTERNAL& other_value);
   EXTERNAL_template& operator=(const OPTIONAL<EXTERNAL>& other_value);
   EXTERNAL_template& operator=(const EXTERNAL_template& other_value);
-  boolean match(const EXTERNAL& other_value) const;
+  boolean match(const EXTERNAL& other_value, boolean legacy = FALSE) const;
   EXTERNAL valueof() const;
   void set_type(template_sel template_type, unsigned int list_length);
   EXTERNAL_template& list_item(unsigned int list_index) const;
@@ -452,23 +459,24 @@ public:
   const OCTETSTRING_template& data__value() const;
   int size_of() const;
   void log() const;
-  void log_match(const EXTERNAL& match_value) const;
+  void log_match(const EXTERNAL& match_value, boolean legacy = FALSE) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<EXTERNAL*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const EXTERNAL*>(other_value)); }
   Base_Template* clone() const { return new EXTERNAL_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &EXTERNAL_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const EXTERNAL*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const EXTERNAL*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const EXTERNAL*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const EXTERNAL*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/ASN_Null.cc b/core/ASN_Null.cc
index ab3c9a2c8..36616c1a7 100644
--- a/core/ASN_Null.cc
+++ b/core/ASN_Null.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -73,10 +73,22 @@ void ASN_NULL::log() const
 
 void ASN_NULL::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "NULL value");
-  if (param.get_type()!=Module_Param::MP_Asn_Null) param.type_error("NULL value");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()!=Module_Param::MP_Asn_Null) param.type_error("NULL value");
   bound_flag = TRUE;
 }
 
+Module_Param* ASN_NULL::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Asn_Null();
+}
+
 void ASN_NULL::encode_text(Text_Buf&) const
 {
   if (!bound_flag)
@@ -422,7 +434,8 @@ ASN_NULL_template& ASN_NULL_template::operator=
   return *this;
 }
 
-boolean ASN_NULL_template::match(asn_null_type other_value) const
+boolean ASN_NULL_template::match(asn_null_type other_value,
+                                 boolean /* legacy */) const
 {
   switch (template_selection) {
   case OMIT_VALUE:
@@ -444,7 +457,8 @@ boolean ASN_NULL_template::match(asn_null_type other_value) const
   return FALSE;
 }
 
-boolean ASN_NULL_template::match(const ASN_NULL& other_value) const
+boolean ASN_NULL_template::match(const ASN_NULL& other_value,
+                                 boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   return match(ASN_NULL_VALUE);
@@ -502,7 +516,8 @@ void ASN_NULL_template::log() const
   log_ifpresent();
 }
 
-void ASN_NULL_template::log_match(const ASN_NULL& match_value) const
+void ASN_NULL_template::log_match(const ASN_NULL& match_value,
+                                  boolean /* legacy */) const
 {
   if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
     TTCN_Logger::print_logmatch_buffer();
@@ -517,7 +532,11 @@ void ASN_NULL_template::log_match(const ASN_NULL& match_value) const
 
 void ASN_NULL_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "NULL template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -528,19 +547,62 @@ void ASN_NULL_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    ASN_NULL_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Asn_Null:
     *this = ASN_NULL_VALUE;
     break;
   default:
     param.type_error("NULL template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* ASN_NULL_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = new Module_Param_Asn_Null();
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void ASN_NULL_template::encode_text(Text_Buf& text_buf) const
@@ -587,13 +649,13 @@ void ASN_NULL_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean ASN_NULL_template::is_present() const
+boolean ASN_NULL_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean ASN_NULL_template::match_omit() const
+boolean ASN_NULL_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -602,10 +664,14 @@ boolean ASN_NULL_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -613,7 +679,8 @@ boolean ASN_NULL_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void ASN_NULL_template::check_restriction(template_res t_res, const char* t_name) const
+void ASN_NULL_template::check_restriction(template_res t_res, const char* t_name,
+                                          boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -625,7 +692,7 @@ void ASN_NULL_template::check_restriction(template_res t_res, const char* t_name
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/ASN_Null.hh b/core/ASN_Null.hh
index dae43d0f8..f2ed45698 100644
--- a/core/ASN_Null.hh
+++ b/core/ASN_Null.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -52,7 +52,8 @@ public:
   inline boolean is_present() const { return is_bound(); }
 #endif
 
-  void set_param(Module_Param& param); 
+  void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -111,33 +112,34 @@ public:
   ASN_NULL_template& operator=(const OPTIONAL<ASN_NULL>& other_value);
   ASN_NULL_template& operator=(const ASN_NULL_template& other_value);
 
-  boolean match(asn_null_type other_value) const;
-  boolean match(const ASN_NULL& other_value) const;
+  boolean match(asn_null_type other_value, boolean legacy = FALSE) const;
+  boolean match(const ASN_NULL& other_value, boolean legacy = FALSE) const;
   asn_null_type valueof() const;
 
   void set_type(template_sel template_type, unsigned int list_length);
   ASN_NULL_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const ASN_NULL& match_value) const;
+  void log_match(const ASN_NULL& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<ASN_NULL*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const ASN_NULL*>(other_value)); }
   Base_Template* clone() const { return new ASN_NULL_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &ASN_NULL_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const ASN_NULL*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const ASN_NULL*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const ASN_NULL*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const ASN_NULL*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Addfunc.cc b/core/Addfunc.cc
index 8d913443e..7e08a64ee 100644
--- a/core/Addfunc.cc
+++ b/core/Addfunc.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Addfunc.hh b/core/Addfunc.hh
index 9bfe0bf49..f3e10b681 100644
--- a/core/Addfunc.hh
+++ b/core/Addfunc.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Array.cc b/core/Array.cc
index a3794c836..06966d9b2 100644
--- a/core/Array.cc
+++ b/core/Array.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Array.hh b/core/Array.hh
index bb34bb2a3..7a96c9d40 100644
--- a/core/Array.hh
+++ b/core/Array.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -211,6 +211,7 @@ public:
   int lengthof() const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
 #ifdef TITAN_RUNTIME_2
   boolean is_equal(const Base_Type* other_value) const { return *this == *(static_cast<const VALUE_ARRAY*>(other_value)); }
@@ -373,22 +374,26 @@ void VALUE_ARRAY<T_type,array_size,index_offset>::set_param(
     return;
   }
   
-  param.basic_check(Module_Param::BC_VALUE, "array value");  
-  switch (param.get_type()) {
+  param.basic_check(Module_Param::BC_VALUE, "array value");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (param.get_size()!=array_size) {
-      param.error("The array value has incorrect number of elements: %lu was expected instead of %lu.", (unsigned long)param.get_size(), (unsigned long)array_size);
+    if (mp->get_size()!=array_size) {
+      param.error("The array value has incorrect number of elements: %lu was expected instead of %lu.", (unsigned long)mp->get_size(), (unsigned long)array_size);
     }
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const curr = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const curr = mp->get_elem(i);
       if (curr->get_type()!=Module_Param::MP_NotUsed) {
         array_elements[i].set_param(*curr);
       }
     }
     break;
   case Module_Param::MP_Indexed_List:
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const curr = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const curr = mp->get_elem(i);
       array_elements[curr->get_id()->get_index()].set_param(*curr);
     }
     break;
@@ -397,6 +402,38 @@ void VALUE_ARRAY<T_type,array_size,index_offset>::set_param(
   }
 }
 
+template <typename T_type, unsigned int array_size, int index_offset>
+Module_Param* VALUE_ARRAY<T_type,array_size,index_offset>::get_param
+  (Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole array
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] < '0' || param_field[0] > '9') {
+      TTCN_error("Unexpected record field name in module parameter reference, "
+        "expected a valid array index");
+    }
+    unsigned int param_index = -1;
+    sscanf(param_field, "%u", &param_index);
+    if (param_index >= array_size) {
+      TTCN_error("Invalid array index: %u. The array only has %u elements.", param_index, array_size);
+    }
+    return array_elements[param_index].get_param(param_name);
+  }
+  Vector<Module_Param*> values;
+  for (int i = 0; i < array_size; ++i) {
+    values.push_back(array_elements[i].get_param(param_name));
+  }
+  Module_Param_Value_List* mp = new Module_Param_Value_List();
+  mp->add_list_with_implicit_ids(&values);
+  values.clear();
+  return mp;
+}
+
 template <typename T_type, unsigned int array_size, int index_offset>
 void VALUE_ARRAY<T_type,array_size,index_offset>::encode_text
   (Text_Buf& text_buf) const
@@ -622,10 +659,11 @@ public:
 private:
   static boolean match_function_specific(
     const Base_Type *value_ptr, int value_index,
-    const Restricted_Length_Template *template_ptr, int template_index);
+    const Restricted_Length_Template *template_ptr, int template_index,
+    boolean legacy);
 public:
   boolean match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
-                other_value) const;
+                other_value, boolean legacy = FALSE) const;
 
   boolean is_value() const;
   VALUE_ARRAY<T_value_type, array_size, index_offset> valueof() const;
@@ -635,15 +673,16 @@ public:
 
   void log() const;
   void log_match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
-                 match_value) const;
+                 match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<VALUE_ARRAY<T_value_type, array_size, index_offset>*>(value)) = valueof(); }
@@ -651,10 +690,10 @@ public:
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const VALUE_ARRAY<T_value_type, array_size, index_offset>*>(other_value)); }
   Base_Template* clone() const { return new TEMPLATE_ARRAY(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { TTCN_error("Internal error: TEMPLATE_ARRAY<>::get_descriptor() called."); }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const VALUE_ARRAY<T_value_type, array_size, index_offset>*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const VALUE_ARRAY<T_value_type, array_size, index_offset>*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const VALUE_ARRAY<T_value_type, array_size, index_offset>*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const VALUE_ARRAY<T_value_type, array_size, index_offset>*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
@@ -1212,14 +1251,14 @@ template <typename T_value_type, typename T_template_type,
 boolean TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
 match_function_specific(const Base_Type *value_ptr, int value_index,
                         const Restricted_Length_Template *template_ptr,
-                        int template_index)
+                        int template_index, boolean legacy)
 {
   if (value_index >= 0)
     return ((const TEMPLATE_ARRAY*)template_ptr)->
       single_value.value_elements[template_index]->
         match(
           ((const VALUE_ARRAY<T_value_type,array_size,index_offset>*)value_ptr)
-            ->array_element(value_index));
+            ->array_element(value_index), legacy);
   else
     return ((const TEMPLATE_ARRAY*)template_ptr)->
       single_value.value_elements[template_index]->is_any_or_omit();
@@ -1229,14 +1268,14 @@ template <typename T_value_type, typename T_template_type,
           unsigned int array_size, int index_offset>
 boolean TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
 match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
-      other_value) const
+      other_value, boolean legacy) const
 {
   if (!match_length(array_size)) return FALSE;
   switch (template_selection)
   {
   case SPECIFIC_VALUE:
     return match_permutation_array(&other_value, array_size, this, single_value.n_elements,
-                       match_function_specific);
+                       match_function_specific, legacy);
   case OMIT_VALUE:
     return FALSE;
   case ANY_VALUE:
@@ -1246,7 +1285,7 @@ match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
   case COMPLEMENTED_LIST:
     for (unsigned int list_count = 0; list_count < value_list.n_values;
          list_count++)
-      if (value_list.list_value[list_count].match(other_value))
+      if (value_list.list_value[list_count].match(other_value, legacy))
         return template_selection == VALUE_LIST;
     return template_selection == COMPLEMENTED_LIST;
   default:
@@ -1368,10 +1407,10 @@ template <typename T_value_type, typename T_template_type,
           unsigned int array_size, int index_offset>
 void TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
 log_match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
-          match_value) const
+          match_value, boolean legacy) const
 {
   if(TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()){
-    if(match(match_value)){
+    if(match(match_value, legacy)){
       TTCN_Logger::print_logmatch_buffer();
       TTCN_Logger::log_event_str(" matched");
     }else{
@@ -1381,10 +1420,10 @@ log_match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
         for (unsigned int elem_count = 0; elem_count < array_size;
           elem_count++) {
           if(!single_value.value_elements[elem_count]->
-              match(match_value.array_element(elem_count))){
+              match(match_value.array_element(elem_count), legacy)){
             TTCN_Logger::log_logmatch_info("[%d]", elem_count);
             single_value.value_elements[elem_count]->
-              log_match(match_value.array_element(elem_count));
+              log_match(match_value.array_element(elem_count), legacy);
             TTCN_Logger::set_logmatch_buffer_len(previous_size);
           }
         }
@@ -1404,7 +1443,8 @@ log_match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
     TTCN_Logger::log_event_str("{ ");
     for (unsigned int elem_count = 0; elem_count < array_size; elem_count++) {
       if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-      single_value.value_elements[elem_count]->log_match(match_value.array_element(elem_count));
+      single_value.value_elements[elem_count]->log_match(
+        match_value.array_element(elem_count), legacy);
     }
     TTCN_Logger::log_event_str(" }");
     log_match_length(array_size);
@@ -1412,7 +1452,7 @@ log_match(const VALUE_ARRAY<T_value_type, array_size, index_offset>&
     match_value.log();
     TTCN_Logger::log_event_str(" with ");
     log();
-    if (match(match_value)) TTCN_Logger::log_event_str(" matched");
+    if (match(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
     else TTCN_Logger::log_event_str(" unmatched");
   }
 }
@@ -1439,7 +1479,13 @@ void TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::set_p
   }
   
   param.basic_check(Module_Param::BC_TEMPLATE, "array template");
-  switch (param.get_type()) {
+  
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1450,31 +1496,98 @@ void TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::set_p
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset> temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Value_List:
-    set_size(param.get_size());
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const curr = param.get_elem(i);
+    set_size(mp->get_size());
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const curr = mp->get_elem(i);
       if (curr->get_type()!=Module_Param::MP_NotUsed) {
         (*this)[(int)i+index_offset].set_param(*curr);
       }
     }
     break;
   case Module_Param::MP_Indexed_List:
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const curr = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const curr = mp->get_elem(i);
       (*this)[curr->get_id()->get_index()].set_param(*curr);
     }
     break;
   default:
     param.type_error("array template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+template <typename T_value_type, typename T_template_type,
+          unsigned int array_size, int index_offset>
+Module_Param* TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
+  get_param(Module_Param_Name& param_name) const
+{
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] < '0' || param_field[0] > '9') {
+      TTCN_error("Unexpected record field name in module parameter reference, "
+        "expected a valid array index");
+    }
+    unsigned int param_index = -1;
+    sscanf(param_field, "%u", &param_index);
+    if (param_index >= array_size) {
+      TTCN_error("Invalid array index: %u. The array only has %u elements.", param_index, array_size);
+    }
+    return single_value.value_elements[param_index]->get_param(param_name);
+  }
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Vector<Module_Param*> values;
+    for (int i = 0; i < array_size; ++i) {
+      values.push_back(single_value.value_elements[i]->get_param(param_name));
+    }
+    mp = new Module_Param_Value_List();
+    mp->add_list_with_implicit_ids(&values);
+    values.clear();
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 template <typename T_value_type, typename T_template_type,
@@ -1550,16 +1663,16 @@ decode_text(Text_Buf& text_buf)
 template <typename T_value_type, typename T_template_type,
           unsigned int array_size, int index_offset>
 boolean TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
-is_present() const
+is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
 template <typename T_value_type, typename T_template_type,
           unsigned int array_size, int index_offset>
 boolean TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
-match_omit() const
+match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1582,7 +1695,7 @@ match_omit() const
 template <typename T_value_type, typename T_template_type,
           unsigned int array_size, int index_offset>
 void TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>::
-check_restriction(template_res t_res, const char* t_name) const
+check_restriction(template_res t_res, const char* t_name, boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1594,7 +1707,7 @@ check_restriction(template_res t_res, const char* t_name) const
       single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : "array");
     return;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -1614,7 +1727,8 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
   unsigned int template_size,
   unsigned int permutation_index,
   match_function_t match_function,
-  unsigned int& shift_size)
+  unsigned int& shift_size,
+  boolean legacy)
 {
   unsigned int nof_permutations = template_ptr->get_number_of_permutations();
   if (permutation_index > nof_permutations)
@@ -1649,7 +1763,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
       template_ptr->get_permutation_start(permutation_index);
 
   if (permutation_begins ||
-    match_function(value_ptr, -1, template_ptr, template_start_index))
+    match_function(value_ptr, -1, template_ptr, template_start_index, legacy))
   {
     unsigned int smallest_possible_size;
     unsigned int largest_possible_size;
@@ -1671,7 +1785,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
       for(unsigned int i = 0; i < permutation_size; i++)
       {
         if(match_function(value_ptr, -1, template_ptr,
-          i + template_start_index))
+          i + template_start_index, legacy))
         {
           has_asterisk = TRUE;
         }else{
@@ -1743,7 +1857,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
         boolean found = match_set_of_internal(value_ptr, value_start_index,
           temp_size, template_ptr,
           template_start_index, permutation_size,
-          match_function, SUPERSET, &x, pair_list,old_temp_size);
+          match_function, SUPERSET, &x, pair_list, old_temp_size, legacy);
 
         if(found)
         {
@@ -1799,7 +1913,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
           template_size -
           permutation_size,
           permutation_index,
-          match_function, shift_size);
+          match_function, shift_size, legacy);
       }else{
         //try with the next permutation
         result = recursive_permutation_match(value_ptr,value_start_index+i,
@@ -1808,7 +1922,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
           permutation_size,
           template_size - permutation_size,
           permutation_index + 1,
-          match_function, shift_size);
+          match_function, shift_size, legacy);
       }
 
       if(result == SUCCESS)
@@ -1857,19 +1971,19 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
     unsigned int i = 0;
     do{
       good = match_function(value_ptr, value_start_index + i,
-        template_ptr, template_start_index + i);
+        template_ptr, template_start_index + i, legacy);
       i++;
       //bad stop: something can't be matched
       //half bad half good stop: the end of values is reached
       //good stop: matching on the full distance or till an asterisk
     }while(good && i < value_size && i < distance &&
       !match_function(value_ptr, -1, template_ptr,
-        template_start_index + i));
+        template_start_index + i, legacy));
 
     //if we matched on the full distance or till an asterisk
     if(good && (i == distance ||
       match_function(value_ptr, -1, template_ptr,
-        template_start_index + i)))
+        template_start_index + i, legacy)))
     {
       //reached the end of the templates
       if(i == template_size)
@@ -1891,7 +2005,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
           template_start_index + i,
           template_size - i,
           permutation_index,
-          match_function, shift_size);
+          match_function, shift_size, legacy);
       }
     }else{
       //something bad happened, so we have to check how bad the situation is
@@ -1910,7 +2024,7 @@ answer recursive_permutation_match(const Base_Type *value_ptr,
         do{
           good = match_function(value_ptr,
             value_start_index + i + shift_size,
-            template_ptr, template_start_index + i);
+            template_ptr, template_start_index + i, legacy);
           shift_size++;
         }while(!good && i + shift_size < value_size);
 
@@ -1933,7 +2047,8 @@ boolean match_permutation_array(const Base_Type *value_ptr,
   int value_size,
   const TEMPLATE_ARRAY<T_value_type,T_template_type,array_size,index_offset>* template_ptr,
   int template_size,
-  match_function_t match_function)
+  match_function_t match_function,
+  boolean legacy)
 {
   if (value_ptr == NULL || value_size < 0 ||
     template_ptr == NULL || template_size < 0 ||
@@ -1944,18 +2059,18 @@ boolean match_permutation_array(const Base_Type *value_ptr,
   // use the simplified algorithm if the template does not contain permutation
   if (nof_permutations == 0)
     return match_array(value_ptr, value_size,
-      template_ptr, template_size, match_function);
+      template_ptr, template_size, match_function, legacy);
   // use 'set of' matching if all template elements are grouped into one
   // permutation
   if (nof_permutations == 1 && template_ptr->get_permutation_start(0) == 0 &&
     template_ptr->get_permutation_end(0) ==
       (unsigned int)(template_size - 1))
     return match_set_of(value_ptr, value_size, template_ptr, template_size,
-      match_function);
+      match_function, legacy);
 
   unsigned int shift_size = 0;
   return recursive_permutation_match(value_ptr, 0, value_size, template_ptr,
-    0, template_size, 0, match_function, shift_size) == SUCCESS;
+    0, template_size, 0, match_function, shift_size, legacy) == SUCCESS;
 }
 
 #endif
diff --git a/core/BER.cc b/core/BER.cc
index a3a25dde4..bae774e0c 100644
--- a/core/BER.cc
+++ b/core/BER.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/BER.hh b/core/BER.hh
index bf318635c..2e70ef1be 100644
--- a/core/BER.hh
+++ b/core/BER.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Basetype.cc b/core/Basetype.cc
index c64c2f767..37511128f 100644
--- a/core/Basetype.cc
+++ b/core/Basetype.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -1140,26 +1140,26 @@ const TTCN_Typedescriptor_t ObjectDescriptor_descr_={"ObjectDescriptor",
   &ObjectDescriptor_ber_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::GRAPHICSTRING};
 
 const TTCN_Typedescriptor_t UTF8String_descr_={"UTF8String", &UTF8String_ber_,
-  NULL, NULL, &UTF8String_xer_, NULL, NULL, TTCN_Typedescriptor_t::UTF8STRING};
+  NULL, NULL, &UTF8String_xer_, &UTF8String_json_, NULL, TTCN_Typedescriptor_t::UTF8STRING};
 
 const TTCN_Typedescriptor_t ASN_ROID_descr_={"RELATIVE-OID", &ASN_ROID_ber_,
   NULL, NULL, &ASN_ROID_xer_, &ASN_ROID_json_, NULL, TTCN_Typedescriptor_t::ROID};
 
 const TTCN_Typedescriptor_t NumericString_descr_={"NumericString",
-  &NumericString_ber_, NULL, NULL, &NumericString_xer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE};
+  &NumericString_ber_, NULL, NULL, &NumericString_xer_, &NumericString_json_, NULL, TTCN_Typedescriptor_t::DONTCARE};
 
 const TTCN_Typedescriptor_t PrintableString_descr_={"PrintableString",
-  &PrintableString_ber_, NULL, NULL, &PrintableString_xer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE};
+  &PrintableString_ber_, NULL, NULL, &PrintableString_xer_, &PrintableString_json_, NULL, TTCN_Typedescriptor_t::DONTCARE};
 
 const TTCN_Typedescriptor_t TeletexString_descr_={"TeletexString",
-  &TeletexString_ber_, NULL, NULL, &TeletexString_xer_, NULL, NULL, TTCN_Typedescriptor_t::TELETEXSTRING};
+  &TeletexString_ber_, NULL, NULL, &TeletexString_xer_, &TeletexString_json_, NULL, TTCN_Typedescriptor_t::TELETEXSTRING};
 const TTCN_Typedescriptor_t& T61String_descr_=TeletexString_descr_;
 
 const TTCN_Typedescriptor_t VideotexString_descr_={"VideotexString",
-  &VideotexString_ber_, NULL, NULL, &VideotexString_xer_, NULL, NULL, TTCN_Typedescriptor_t::VIDEOTEXSTRING};
+  &VideotexString_ber_, NULL, NULL, &VideotexString_xer_, &VideotexString_json_, NULL, TTCN_Typedescriptor_t::VIDEOTEXSTRING};
 
 const TTCN_Typedescriptor_t IA5String_descr_={"IA5String", &IA5String_ber_,
-  NULL, NULL, &IA5String_xer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE};
+  NULL, NULL, &IA5String_xer_, &IA5String_json_, NULL, TTCN_Typedescriptor_t::DONTCARE};
 
 const TTCN_Typedescriptor_t ASN_GeneralizedTime_descr_={"GeneralizedTime",
   &ASN_GeneralizedTime_ber_, NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE};
@@ -1168,19 +1168,19 @@ const TTCN_Typedescriptor_t ASN_UTCTime_descr_={"UTCTime", &ASN_UTCTime_ber_,
   NULL, NULL, NULL, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE};
 
 const TTCN_Typedescriptor_t GraphicString_descr_={"GraphicString",
-  &GraphicString_ber_, NULL, NULL, &GraphicString_xer_, NULL, NULL, TTCN_Typedescriptor_t::GRAPHICSTRING};
+  &GraphicString_ber_, NULL, NULL, &GraphicString_xer_, &GraphicString_json_, NULL, TTCN_Typedescriptor_t::GRAPHICSTRING};
 
 const TTCN_Typedescriptor_t VisibleString_descr_={"VisibleString",
-  &VisibleString_ber_, NULL, NULL, &VisibleString_xer_, NULL, NULL, TTCN_Typedescriptor_t::DONTCARE};
+  &VisibleString_ber_, NULL, NULL, &VisibleString_xer_, &VisibleString_json_, NULL, TTCN_Typedescriptor_t::DONTCARE};
 const TTCN_Typedescriptor_t& ISO646String_descr_=VisibleString_descr_;
 
 const TTCN_Typedescriptor_t GeneralString_descr_={"GeneralString",
-  &GeneralString_ber_, NULL, NULL, &GeneralString_xer_, NULL, NULL, TTCN_Typedescriptor_t::GENERALSTRING};
+  &GeneralString_ber_, NULL, NULL, &GeneralString_xer_, &GeneralString_json_, NULL, TTCN_Typedescriptor_t::GENERALSTRING};
 
 const TTCN_Typedescriptor_t UniversalString_descr_={"UniversalString",
-  &UniversalString_ber_, NULL, NULL, &UniversalString_xer_, NULL, NULL, TTCN_Typedescriptor_t::UNIVERSALSTRING};
+  &UniversalString_ber_, NULL, NULL, &UniversalString_xer_, &UniversalString_json_, NULL, TTCN_Typedescriptor_t::UNIVERSALSTRING};
 
 const TTCN_Typedescriptor_t BMPString_descr_={"BMPString", &BMPString_ber_,
-  NULL, NULL, &BMPString_xer_, NULL, NULL, TTCN_Typedescriptor_t::BMPSTRING};
+  NULL, NULL, &BMPString_xer_, &BMPString_json_, NULL, TTCN_Typedescriptor_t::BMPSTRING};
 
 
diff --git a/core/Basetype.hh b/core/Basetype.hh
index 76323a4e0..9eb970c7d 100644
--- a/core/Basetype.hh
+++ b/core/Basetype.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -27,6 +27,7 @@ struct XERdescriptor_t;
 struct TTCN_JSONdescriptor_t;
 class  XmlReaderWrap;
 class Module_Param;
+class Module_Param_Name;
 struct embed_values_enc_struct_t;
 struct embed_values_dec_struct_t;
 
@@ -152,7 +153,16 @@ public:
     XERdescriptor_t const& xd, unsigned int flavor);
 
 #ifdef TITAN_RUNTIME_2
+  /** Initialize this object (or one of its fields/elements) with a 
+    * module parameter value. The module parameter may contain references to
+    * other module parameters or module parameter expressions, which are processed
+    * by this method to calculated the final result.
+    * @param param module parameter value (its ID specifies which object is to be set) */
   virtual void set_param(Module_Param& param) = 0;
+  /** Create a module parameter value equivalent to this object (or one of its
+    * fields/elements)
+    * @param param_name module parameter ID, specifies which object to convert */
+  virtual Module_Param* get_param(Module_Param_Name& param_name) const = 0;
   /** Whether the type is a sequence-of.
    * @return \c FALSE */
   virtual boolean is_seof() const { return FALSE; }
@@ -737,6 +747,7 @@ public:
   int lengthof() const;
   virtual void log() const;
   virtual void set_param(Module_Param& param);
+  virtual Module_Param* get_param(Module_Param_Name& param_name) const;
   virtual void set_implicit_omit();
   virtual void encode_text(Text_Buf& text_buf) const;
   virtual void decode_text(Text_Buf& text_buf);
@@ -886,6 +897,7 @@ public:
   virtual void clean_up();
   virtual void log() const;
   virtual void set_param(Module_Param& param);
+  virtual Module_Param* get_param(Module_Param_Name& param_name) const;
   virtual void set_implicit_omit();
 
   int size_of() const;
@@ -967,7 +979,8 @@ public:
   virtual boolean is_bound() const { return bound_flag; }
   virtual void clean_up() { bound_flag = FALSE; }
   virtual void log() const;
-  virtual void set_param(Module_Param& param); 
+  virtual void set_param(Module_Param& param);
+  virtual Module_Param* get_param(Module_Param_Name& param_name) const;
 
   int size_of() const { return 0; }
   virtual void encode_text(Text_Buf& text_buf) const;
diff --git a/core/Bitstring.cc b/core/Bitstring.cc
index d55b1fa8e..a178fb2d9 100644
--- a/core/Bitstring.cc
+++ b/core/Bitstring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -542,26 +542,63 @@ void BITSTRING::log() const
 
 void BITSTRING::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "bitstring value");
-  if (param.get_type()!=Module_Param::MP_Bitstring) param.type_error("bitstring value");
-  switch (param.get_operation_type()) {
-  case Module_Param::OT_ASSIGN:
-    clean_up();
-    init_struct(param.get_string_size());
-    memcpy(val_ptr->bits_ptr, param.get_string_data(), (val_ptr->n_bits + 7) / 8);
-    clear_unused_bits();
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Bitstring:
+    switch (param.get_operation_type()) {
+    case Module_Param::OT_ASSIGN:
+      clean_up();
+      init_struct(mp->get_string_size());
+      memcpy(val_ptr->bits_ptr, mp->get_string_data(), (val_ptr->n_bits + 7) / 8);
+      clear_unused_bits();
+      break;
+    case Module_Param::OT_CONCAT:
+      if (is_bound()) {
+        *this = *this + BITSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+      } else {
+        *this = BITSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+      }
+      break;
+    default:
+      TTCN_error("Internal error: BITSTRING::set_param()");
+    }
     break;
-  case Module_Param::OT_CONCAT:
-    if (is_bound()) {
-      *this = *this + BITSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
-    } else {
-      *this = BITSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      BITSTRING operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (param.get_operation_type() == Module_Param::OT_CONCAT) {
+        *this = *this + operand1 + operand2;
+      }
+      else {
+        *this = operand1 + operand2;
+      }
+    }
+    else {
+      param.expr_type_error("a bitstring");
     }
     break;
   default:
-    TTCN_error("Internal error: BITSTRING::set_param()");
+    param.type_error("bitstring value");
+    break;
   }
 }
 
+Module_Param* BITSTRING::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  int n_bytes = (val_ptr->n_bits + 7) / 8;
+  unsigned char* val_cpy = (unsigned char *)Malloc(n_bytes);
+  memcpy(val_cpy, val_ptr->bits_ptr, n_bytes);
+  return new Module_Param_Bitstring(val_ptr->n_bits, val_cpy);
+}
+
 void BITSTRING::encode_text(Text_Buf& text_buf) const
 {
   must_bound("Text encoder: Encoding an unbound bitstring value.");
@@ -1619,7 +1656,8 @@ const BITSTRING_ELEMENT BITSTRING_template::operator[](const INTEGER& index_valu
   return (*this)[(int)index_value];
 }
 
-boolean BITSTRING_template::match(const BITSTRING& other_value) const
+boolean BITSTRING_template::match(const BITSTRING& other_value,
+                                  boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   if (!match_length(other_value.val_ptr->n_bits)) return FALSE;
@@ -1768,7 +1806,8 @@ void BITSTRING_template::log() const
   log_ifpresent();
 }
 
-void BITSTRING_template::log_match(const BITSTRING& match_value) const
+void BITSTRING_template::log_match(const BITSTRING& match_value,
+                                   boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -1784,7 +1823,11 @@ void BITSTRING_template::log_match(const BITSTRING& match_value) const
 
 void BITSTRING_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "bitstring template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1795,23 +1838,88 @@ void BITSTRING_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    BITSTRING_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Bitstring:
-    *this = BITSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
+    *this = BITSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
     break;
   case Module_Param::MP_Bitstring_Template:
-    *this = BITSTRING_template(param.get_string_size(), (unsigned char*)param.get_string_data());
+    *this = BITSTRING_template(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+    break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      BITSTRING operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+    }
+    else {
+      param.expr_type_error("a bitstring");
+    }
     break;
   default:
     param.type_error("bitstring template");
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
+}
+
+Module_Param* BITSTRING_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = single_value.get_param(param_name);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case STRING_PATTERN: {
+    unsigned char* val_cpy = (unsigned char*)Malloc(pattern_value->n_elements);
+    memcpy(val_cpy, pattern_value->elements_ptr, pattern_value->n_elements);
+    mp = new Module_Param_Bitstring_Template(pattern_value->n_elements, val_cpy);
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
 }
 
 void BITSTRING_template::encode_text(Text_Buf& text_buf) const
@@ -1874,13 +1982,13 @@ void BITSTRING_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean BITSTRING_template::is_present() const
+boolean BITSTRING_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean BITSTRING_template::match_omit() const
+boolean BITSTRING_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1889,10 +1997,14 @@ boolean BITSTRING_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -1900,7 +2012,8 @@ boolean BITSTRING_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void BITSTRING_template::check_restriction(template_res t_res, const char* t_name) const
+void BITSTRING_template::check_restriction(template_res t_res, const char* t_name,
+                                           boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1912,7 +2025,7 @@ void BITSTRING_template::check_restriction(template_res t_res, const char* t_nam
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Bitstring.hh b/core/Bitstring.hh
index f10616150..b890333a9 100644
--- a/core/Bitstring.hh
+++ b/core/Bitstring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -135,6 +135,8 @@ public:
 #endif
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
+  
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
@@ -269,7 +271,7 @@ public:
   const BITSTRING_ELEMENT operator[](int index_value) const;
   const BITSTRING_ELEMENT operator[](const INTEGER& index_value) const;
 
-  boolean match(const BITSTRING& other_value) const;
+  boolean match(const BITSTRING& other_value, boolean legacy = FALSE) const;
   const BITSTRING& valueof() const;
 
   int lengthof() const;
@@ -278,25 +280,26 @@ public:
   BITSTRING_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const BITSTRING& match_value) const;
+  void log_match(const BITSTRING& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<BITSTRING*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const BITSTRING*>(other_value)); }
   Base_Template* clone() const { return new BITSTRING_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &BITSTRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const BITSTRING*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const BITSTRING*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const BITSTRING*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const BITSTRING*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Boolean.cc b/core/Boolean.cc
index 210ff8576..179643c7a 100644
--- a/core/Boolean.cc
+++ b/core/Boolean.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -163,9 +163,21 @@ void BOOLEAN::decode_text(Text_Buf& text_buf)
 
 void BOOLEAN::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "boolean value");
-  if (param.get_type()!=Module_Param::MP_Boolean) param.type_error("boolean value");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()!=Module_Param::MP_Boolean) param.type_error("boolean value");
   bound_flag = TRUE;
-  boolean_value = param.get_boolean();
+  boolean_value = mp->get_boolean();
+}
+
+Module_Param* BOOLEAN::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Boolean(boolean_value);
 }
 
 void BOOLEAN::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
@@ -903,7 +915,8 @@ BOOLEAN_template& BOOLEAN_template::operator=
   return *this;
 }
 
-boolean BOOLEAN_template::match(boolean other_value) const
+boolean BOOLEAN_template::match(boolean other_value,
+                                boolean /* legacy */) const
 {
   switch (template_selection) {
   case SPECIFIC_VALUE:
@@ -925,7 +938,8 @@ boolean BOOLEAN_template::match(boolean other_value) const
   return FALSE;
 }
 
-boolean BOOLEAN_template::match(const BOOLEAN& other_value) const
+boolean BOOLEAN_template::match(const BOOLEAN& other_value,
+                                boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   return match(other_value.boolean_value);
@@ -984,7 +998,8 @@ void BOOLEAN_template::log() const
   log_ifpresent();
 }
 
-void BOOLEAN_template::log_match(const BOOLEAN& match_value) const
+void BOOLEAN_template::log_match(const BOOLEAN& match_value,
+                                 boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -1000,7 +1015,11 @@ void BOOLEAN_template::log_match(const BOOLEAN& match_value) const
 
 void BOOLEAN_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "boolean template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1011,19 +1030,62 @@ void BOOLEAN_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    BOOLEAN_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Boolean:
-    *this = param.get_boolean();
+    *this = mp->get_boolean();
     break;
   default:
     param.type_error("boolean template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* BOOLEAN_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = new Module_Param_Boolean(single_value);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void BOOLEAN_template::encode_text(Text_Buf& text_buf) const
@@ -1085,13 +1147,13 @@ void BOOLEAN_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean BOOLEAN_template::is_present() const
+boolean BOOLEAN_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean BOOLEAN_template::match_omit() const
+boolean BOOLEAN_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1100,10 +1162,14 @@ boolean BOOLEAN_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -1111,7 +1177,8 @@ boolean BOOLEAN_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void BOOLEAN_template::check_restriction(template_res t_res, const char* t_name) const
+void BOOLEAN_template::check_restriction(template_res t_res, const char* t_name,
+                                         boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1123,7 +1190,7 @@ void BOOLEAN_template::check_restriction(template_res t_res, const char* t_name)
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Boolean.hh b/core/Boolean.hh
index 0807ea524..2a7a60e66 100644
--- a/core/Boolean.hh
+++ b/core/Boolean.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -71,6 +71,7 @@ public:
   void log() const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -156,33 +157,34 @@ public:
   BOOLEAN_template& operator=(const OPTIONAL<BOOLEAN>& other_value);
   BOOLEAN_template& operator=(const BOOLEAN_template& other_value);
 
-  boolean match(boolean other_value) const;
-  boolean match(const BOOLEAN& other_value) const;
+  boolean match(boolean other_value, boolean legacy = FALSE) const;
+  boolean match(const BOOLEAN& other_value, boolean legacy = FALSE) const;
   boolean valueof() const;
 
   void set_type(template_sel template_type, unsigned int list_length);
   BOOLEAN_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const BOOLEAN& match_value) const;
+  void log_match(const BOOLEAN& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<BOOLEAN*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const BOOLEAN*>(other_value)); }
   Base_Template* clone() const { return new BOOLEAN_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &BOOLEAN_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const BOOLEAN*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const BOOLEAN*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const BOOLEAN*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const BOOLEAN*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Charstring.cc b/core/Charstring.cc
index 180fc91fd..5171a656b 100644
--- a/core/Charstring.cc
+++ b/core/Charstring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -626,10 +626,14 @@ void CHARSTRING::log() const
   }
 }
 
-void CHARSTRING::set_param(Module_Param& param) {
+boolean CHARSTRING::set_param_internal(Module_Param& param, boolean allow_pattern) {
+  boolean is_pattern = FALSE;
   param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "charstring value");
-  
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Universal_Charstring:
   case Module_Param::MP_Charstring:
     switch (param.get_operation_type()) {
@@ -639,7 +643,7 @@ void CHARSTRING::set_param(Module_Param& param) {
     case Module_Param::OT_CONCAT: {
       // The universal charstring will decode the string value if it is UTF-8 encoded
       UNIVERSAL_CHARSTRING ucs;
-      ucs.set_param(param);
+      ucs.set_param(*mp);
       if (ucs.charstring) {
         // No special characters were found
         if (is_bound()) {
@@ -671,9 +675,47 @@ void CHARSTRING::set_param(Module_Param& param) {
       TTCN_error("Internal error: CHARSTRING::set_param()");
     }
     break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      // only allow string patterns for the first operand
+      CHARSTRING operand1, operand2;
+      is_pattern = operand1.set_param_internal(*mp->get_operand1(), allow_pattern);
+      operand2.set_param(*mp->get_operand2());
+      if (param.get_operation_type() == Module_Param::OT_CONCAT) {
+        *this = *this + operand1 + operand2;
+      }
+      else {
+        *this = operand1 + operand2;
+      }
+    }
+    else {
+      param.expr_type_error("a charstring");
+    }
+    break;
+  case Module_Param::MP_Pattern:
+    if (allow_pattern) {
+      *this = CHARSTRING(mp->get_pattern());
+      is_pattern = TRUE;
+      break;
+    }
+    // else fall through
   default:
     param.type_error("charstring value");
+    break;
   }
+  return is_pattern;
+}
+
+void CHARSTRING::set_param(Module_Param& param) {
+  set_param_internal(param, FALSE);
+}
+
+Module_Param* CHARSTRING::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Charstring(val_ptr->n_chars, mcopystr(val_ptr->chars_ptr));
 }
 
 void CHARSTRING::encode_text(Text_Buf& text_buf) const
@@ -2124,7 +2166,8 @@ const CHARSTRING_ELEMENT CHARSTRING_template::operator[](const INTEGER& index_va
   return (*this)[(int)index_value];
 }
 
-boolean CHARSTRING_template::match(const CHARSTRING& other_value) const
+boolean CHARSTRING_template::match(const CHARSTRING& other_value,
+                                   boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   int value_length = other_value.lengthof();
@@ -2504,7 +2547,8 @@ void CHARSTRING_template::log() const
   log_ifpresent();
 }
 
-void CHARSTRING_template::log_match(const CHARSTRING& match_value) const
+void CHARSTRING_template::log_match(const CHARSTRING& match_value,
+                                    boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -2520,7 +2564,11 @@ void CHARSTRING_template::log_match(const CHARSTRING& match_value) const
 
 void CHARSTRING_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "charstring template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -2531,18 +2579,21 @@ void CHARSTRING_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    CHARSTRING_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Charstring:
-    *this = CHARSTRING(param.get_string_size(), (char*)param.get_string_data());
+    *this = CHARSTRING(mp->get_string_size(), (char*)mp->get_string_data());
     break;
   case Module_Param::MP_StringRange: {
-    universal_char lower_uchar = param.get_lower_uchar();
-    universal_char upper_uchar = param.get_upper_uchar();
+    universal_char lower_uchar = mp->get_lower_uchar();
+    universal_char upper_uchar = mp->get_upper_uchar();
     if (!lower_uchar.is_char()) param.error("Lower bound of char range cannot be a multiple-byte character");
     if (!upper_uchar.is_char()) param.error("Upper bound of char range cannot be a multiple-byte character");
     clean_up();
@@ -2554,15 +2605,90 @@ void CHARSTRING_template::set_param(Module_Param& param) {
   } break;
   case Module_Param::MP_Pattern:
     clean_up();
-    single_value = CHARSTRING(param.get_pattern());
+    single_value = CHARSTRING(mp->get_pattern());
     pattern_value.regexp_init = FALSE;
     set_selection(STRING_PATTERN);
     break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      // only allow string patterns for the first operand
+      CHARSTRING operand1, operand2, result;
+      boolean is_pattern = operand1.set_param_internal(*mp->get_operand1(), TRUE);
+      operand2.set_param(*mp->get_operand2());
+      result = operand1 + operand2;
+      if (is_pattern) {
+        clean_up();
+        single_value = result;
+        pattern_value.regexp_init = FALSE;
+        set_selection(STRING_PATTERN);
+      }
+      else {
+        *this = result;
+      }
+    }
+    else {
+      param.expr_type_error("a charstring");
+    }
+    break;
   default:
     param.type_error("charstring template");
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
+}
+
+Module_Param* CHARSTRING_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = single_value.get_param(param_name);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case VALUE_RANGE: {
+    universal_char lower_bound = { 0, 0, 0, (unsigned char)value_range.min_value };
+    universal_char upper_bound = { 0, 0, 0, (unsigned char)value_range.max_value };
+    mp = new Module_Param_StringRange(lower_bound, upper_bound);
+    break; }
+  case STRING_PATTERN:
+    mp = new Module_Param_Pattern(mcopystr(single_value));
+    break;
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
 }
 
 void CHARSTRING_template::encode_text(Text_Buf& text_buf) const
@@ -2634,13 +2760,13 @@ void CHARSTRING_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean CHARSTRING_template::is_present() const
+boolean CHARSTRING_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean CHARSTRING_template::match_omit() const
+boolean CHARSTRING_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2649,10 +2775,14 @@ boolean CHARSTRING_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -2660,7 +2790,8 @@ boolean CHARSTRING_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void CHARSTRING_template::check_restriction(template_res t_res, const char* t_name) const
+void CHARSTRING_template::check_restriction(template_res t_res, const char* t_name,
+                                            boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2672,7 +2803,7 @@ void CHARSTRING_template::check_restriction(template_res t_res, const char* t_na
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Charstring.hh b/core/Charstring.hh
index 4ca62b41b..c12e7c794 100644
--- a/core/Charstring.hh
+++ b/core/Charstring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -50,6 +50,7 @@ class CHARSTRING : public Base_Type {
   friend class UNIVERSAL_CHARSTRING;
   friend class UNIVERSAL_CHARSTRING_ELEMENT;
   friend class TTCN_Buffer;
+  friend class CHARSTRING_template;
 
   friend boolean operator==(const char* string_value,
                             const CHARSTRING& other_value);
@@ -84,6 +85,12 @@ class CHARSTRING : public Base_Type {
   void copy_value();
   CHARSTRING(int n_chars);
   
+  /** An extended version of set_param(), which also accepts string patterns if
+    * the second parameter is set (needed by CHARSTRING_template to concatenate
+    * string patterns). 
+    * @return TRUE, if the module parameter was a string pattern, otherwise FALSE */
+  boolean set_param_internal(Module_Param& param, boolean allow_pattern);
+  
 public:
   /** Construct an unbound CHARSTRING object */
   CHARSTRING();
@@ -174,6 +181,7 @@ public:
     * @note UFT-8 strings will be decoded. If the decoding results in multi-octet
     * characters an error will be thrown. */
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -386,7 +394,7 @@ public:
   const CHARSTRING_ELEMENT operator[](int index_value) const;
   const CHARSTRING_ELEMENT operator[](const INTEGER& index_value) const;
 
-  boolean match(const CHARSTRING& other_value) const;
+  boolean match(const CHARSTRING& other_value, boolean legacy = FALSE) const;
   const CHARSTRING& valueof() const;
 
   int lengthof() const;
@@ -398,25 +406,26 @@ public:
   void set_max(const CHARSTRING& max_value);
 
   void log() const;
-  void log_match(const CHARSTRING& match_value) const;
+  void log_match(const CHARSTRING& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<CHARSTRING*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const CHARSTRING*>(other_value)); }
   Base_Template* clone() const { return new CHARSTRING_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &CHARSTRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const CHARSTRING*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const CHARSTRING*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const CHARSTRING*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const CHARSTRING*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 
   /** Returns the single_value member
diff --git a/core/Communication.cc b/core/Communication.cc
index 4c1506f01..b5b502557 100644
--- a/core/Communication.cc
+++ b/core/Communication.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Communication.hh b/core/Communication.hh
index 6c6dd17ca..eee68f2b9 100644
--- a/core/Communication.hh
+++ b/core/Communication.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Component.cc b/core/Component.cc
index 66f3604ed..cbf0dd4da 100644
--- a/core/Component.cc
+++ b/core/Component.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -124,11 +124,15 @@ void COMPONENT::kill() const
 
 void COMPONENT::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "component reference (integer or null) value");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
   if (Ttcn_String_Parsing::happening()) {
     // accept all component values in case it's a string2ttcn operation
-    switch (param.get_type()) {
+    switch (mp->get_type()) {
     case Module_Param::MP_Integer:
-      component_value = (component)param.get_integer()->get_val();
+      component_value = (component)mp->get_integer()->get_val();
       break;
     case Module_Param::MP_Ttcn_Null:
       component_value = NULL_COMPREF;
@@ -145,13 +149,21 @@ void COMPONENT::set_param(Module_Param& param) {
   }
   else {
     // only accept the null value if it's a module parameter
-    if (Module_Param::MP_Ttcn_Null != param.get_type()) {
+    if (Module_Param::MP_Ttcn_Null != mp->get_type()) {
       param.error("Only the 'null' value is allowed for module parameters of type 'component'.");
     }
     component_value = NULL_COMPREF;
   }
 }
 
+Module_Param* COMPONENT::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Ttcn_Null();
+}
+
 void COMPONENT::encode_text(Text_Buf& text_buf) const
 {
   if (component_value == UNBOUND_COMPREF) TTCN_error("Text encoder: Encoding "
@@ -508,7 +520,8 @@ COMPONENT_template& COMPONENT_template::operator=
   return *this;
 }
 
-boolean COMPONENT_template::match(component other_value) const
+boolean COMPONENT_template::match(component other_value,
+                                  boolean /* legacy */) const
 {
   switch (template_selection) {
   case SPECIFIC_VALUE:
@@ -531,7 +544,8 @@ boolean COMPONENT_template::match(component other_value) const
   return FALSE;
 }
 
-boolean COMPONENT_template::match(const COMPONENT& other_value) const
+boolean COMPONENT_template::match(const COMPONENT& other_value,
+                                  boolean /* legacy */) const
 {
   if (other_value.component_value == UNBOUND_COMPREF)
     TTCN_error("Matching an unbound component reference with a template.");
@@ -607,7 +621,8 @@ void COMPONENT_template::log() const
   log_ifpresent();
 }
 
-void COMPONENT_template::log_match(const COMPONENT& match_value) const
+void COMPONENT_template::log_match(const COMPONENT& match_value,
+                                   boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -623,7 +638,11 @@ void COMPONENT_template::log_match(const COMPONENT& match_value) const
 
 void COMPONENT_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "component reference (integer or null) template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -634,14 +653,17 @@ void COMPONENT_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    COMPONENT_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Integer:
-    *this = (component)param.get_integer()->get_val();
+    *this = (component)mp->get_integer()->get_val();
     break;
   case Module_Param::MP_Ttcn_Null:
     *this = NULL_COMPREF;
@@ -655,7 +677,60 @@ void COMPONENT_template::set_param(Module_Param& param) {
   default:
     param.type_error("component reference (integer or null) template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* COMPONENT_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    switch (single_value) {
+    case NULL_COMPREF:
+      mp = new Module_Param_Ttcn_Null();
+      break;
+    case MTC_COMPREF:
+      mp = new Module_Param_Ttcn_mtc();
+      break;
+    case SYSTEM_COMPREF:
+      mp = new Module_Param_Ttcn_system();
+      break;
+    default:
+      mp = new Module_Param_Integer(new int_val_t(single_value));
+      break;
+    }    
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void COMPONENT_template::encode_text(Text_Buf& text_buf) const
@@ -706,13 +781,13 @@ void COMPONENT_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean COMPONENT_template::is_present() const
+boolean COMPONENT_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean COMPONENT_template::match_omit() const
+boolean COMPONENT_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -721,10 +796,14 @@ boolean COMPONENT_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -732,7 +811,8 @@ boolean COMPONENT_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void COMPONENT_template::check_restriction(template_res t_res, const char* t_name) const
+void COMPONENT_template::check_restriction(template_res t_res, const char* t_name,
+                                           boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -744,7 +824,7 @@ void COMPONENT_template::check_restriction(template_res t_res, const char* t_nam
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Component.hh b/core/Component.hh
index f6c1cfa41..1e1da3c56 100644
--- a/core/Component.hh
+++ b/core/Component.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -74,6 +74,7 @@ public:
   void kill() const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -140,33 +141,34 @@ public:
   COMPONENT_template& operator=(const OPTIONAL<COMPONENT>& other_value);
   COMPONENT_template& operator=(const COMPONENT_template& other_value);
 
-  boolean match(component other_value) const;
-  boolean match(const COMPONENT& other_value) const;
+  boolean match(component other_value, boolean legacy = FALSE) const;
+  boolean match(const COMPONENT& other_value, boolean legacy = FALSE) const;
   component valueof() const;
 
   void set_type(template_sel template_type, unsigned int list_length);
   COMPONENT_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const COMPONENT& match_value) const;
+  void log_match(const COMPONENT& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<COMPONENT*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const COMPONENT*>(other_value)); }
   Base_Template* clone() const { return new COMPONENT_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &COMPONENT_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const COMPONENT*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const COMPONENT*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const COMPONENT*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const COMPONENT*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
   
   inline boolean is_component() { return TRUE; }
diff --git a/core/Default.cc b/core/Default.cc
index 81a3dcb7b..ebf355b87 100644
--- a/core/Default.cc
+++ b/core/Default.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -139,10 +139,22 @@ void DEFAULT::log() const
 
 void DEFAULT::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "default reference (null) value");
-  if (param.get_type()!=Module_Param::MP_Ttcn_Null) param.type_error("default reference (null) value");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()!=Module_Param::MP_Ttcn_Null) param.type_error("default reference (null) value");
   default_ptr = NULL;
 }
 
+Module_Param* DEFAULT::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Ttcn_Null();
+}
+
 void DEFAULT::encode_text(Text_Buf&) const
 {
   TTCN_error("Default references cannot be sent to other test components.");
@@ -328,13 +340,15 @@ DEFAULT_template& DEFAULT_template::operator=
   return *this;
 }
 
-boolean DEFAULT_template::match(component other_value) const
+boolean DEFAULT_template::match(component other_value,
+                                boolean /* legacy */) const
 {
   if (other_value == NULL_COMPREF) return FALSE;
   return match((Default_Base*)NULL);
 }
 
-boolean DEFAULT_template::match(Default_Base *other_value) const
+boolean DEFAULT_template::match(Default_Base *other_value,
+                                boolean /* legacy */) const
 {
   if (other_value == UNBOUND_DEFAULT) return FALSE;
   switch (template_selection) {
@@ -358,7 +372,8 @@ boolean DEFAULT_template::match(Default_Base *other_value) const
   return FALSE;
 }
 
-boolean DEFAULT_template::match(const DEFAULT& other_value) const
+boolean DEFAULT_template::match(const DEFAULT& other_value,
+                                boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   return match(other_value.default_ptr);
@@ -418,7 +433,8 @@ void DEFAULT_template::log() const
   log_ifpresent();
 }
 
-void DEFAULT_template::log_match(const DEFAULT& match_value) const
+void DEFAULT_template::log_match(const DEFAULT& match_value,
+                                 boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -434,7 +450,11 @@ void DEFAULT_template::log_match(const DEFAULT& match_value) const
 
 void DEFAULT_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "default reference (null) template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -445,19 +465,62 @@ void DEFAULT_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    DEFAULT_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Ttcn_Null:
     *this = DEFAULT(NULL_COMPREF);
     break;
   default:
     param.type_error("default reference (null) template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* DEFAULT_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = new Module_Param_Ttcn_Null();
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void DEFAULT_template::encode_text(Text_Buf&) const
@@ -472,13 +535,13 @@ void DEFAULT_template::decode_text(Text_Buf&)
     "components.");
 }
 
-boolean DEFAULT_template::is_present() const
+boolean DEFAULT_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean DEFAULT_template::match_omit() const
+boolean DEFAULT_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -487,10 +550,14 @@ boolean DEFAULT_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -498,7 +565,8 @@ boolean DEFAULT_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void DEFAULT_template::check_restriction(template_res t_res, const char* t_name) const
+void DEFAULT_template::check_restriction(template_res t_res, const char* t_name,
+                                         boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -510,7 +578,7 @@ void DEFAULT_template::check_restriction(template_res t_res, const char* t_name)
       template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Default.hh b/core/Default.hh
index 0230edba6..da8ccb49d 100644
--- a/core/Default.hh
+++ b/core/Default.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -84,6 +84,7 @@ public:
 #endif
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -130,34 +131,35 @@ public:
   DEFAULT_template& operator=(const OPTIONAL<DEFAULT>& other_value);
   DEFAULT_template& operator=(const DEFAULT_template& other_value);
 
-  boolean match(component other_value) const;
-  boolean match(Default_Base *other_value) const;
-  boolean match(const DEFAULT& other_value) const;
+  boolean match(component other_value, boolean legacy = FALSE) const;
+  boolean match(Default_Base *other_value, boolean legacy = FALSE) const;
+  boolean match(const DEFAULT& other_value, boolean legacy = FALSE) const;
   Default_Base *valueof() const;
 
   void set_type(template_sel template_type, unsigned int list_length);
   DEFAULT_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const DEFAULT& match_value) const;
+  void log_match(const DEFAULT& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<DEFAULT*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const DEFAULT*>(other_value)); }
   Base_Template* clone() const { return new DEFAULT_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &DEFAULT_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const DEFAULT*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const DEFAULT*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const DEFAULT*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const DEFAULT*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Encdec.cc b/core/Encdec.cc
index cc4b0649b..4307bff83 100644
--- a/core/Encdec.cc
+++ b/core/Encdec.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -797,6 +797,7 @@ local_fieldorder==ORDER_MSB?"M":"L"
           if(local_fieldorder==ORDER_MSB){
             unsigned int num_bytes = (len+7) / 8;
             unsigned int active_bits_in_last = len % 8;
+            if(!active_bits_in_last) active_bits_in_last=8;
             for(unsigned int a=0; a < num_bytes; a++){
               prt[a]&=REVERSE_BITS(mask1);
               unsigned char sa = s[a];
@@ -820,6 +821,10 @@ local_fieldorder==ORDER_MSB?"M":"L"
         }
         else{  // start from octet boundary
           memcpy(data_ptr+buf_len, s, (len+7)/8*sizeof(unsigned char));
+          if(local_fieldorder==ORDER_MSB  && new_bit_pos){
+              data_ptr[new_size-1]<<=(8-new_bit_pos);
+            
+          }
         }
       }
       else{ // bitorder==ORDER_MSB
diff --git a/core/Encdec.hh b/core/Encdec.hh
index 871687fbc..4400f4e62 100644
--- a/core/Encdec.hh
+++ b/core/Encdec.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Error.cc b/core/Error.cc
index f8792e7f1..5443e3eed 100644
--- a/core/Error.cc
+++ b/core/Error.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -9,6 +9,7 @@
 #include "TitanLoggerApi.hh"
 
 #include <stdarg.h>
+#include <stdint.h>
 
 #include "../common/memory.h"
 #include "Logger.hh"
@@ -232,16 +233,18 @@ int print_address(void *pc, void * usrarg)
   if (status == 0) func = demangled;
 
   if (TTCN_Logger::is_logger_up()) {
-    TTCN_Logger::log_event("%s:%s+0x%x\n",
+    TTCN_Logger::log_event("%s:%s+%p\n",
       lib,
       func,
-      (unsigned int)pc - (unsigned int)info.dli_saddr);
+      (void *)((uintptr_t)pc - (uintptr_t)info.dli_saddr)
+      );
   }
   else {
-    fprintf(stderr, "%s:%s+0x%x\n",
+    fprintf(stderr, "%s:%s+%p\n",
       lib,
       func,
-      (unsigned int)pc - (unsigned int)info.dli_saddr);
+      (void *)((uintptr_t)pc - (uintptr_t)info.dli_saddr)
+      );
   }
 
   if (status == 0) free(demangled);
diff --git a/core/Error.hh b/core/Error.hh
index 9f3b80c88..f3a026d84 100644
--- a/core/Error.hh
+++ b/core/Error.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Event_Handler.hh b/core/Event_Handler.hh
index dd838f1e8..7aa09df40 100644
--- a/core/Event_Handler.hh
+++ b/core/Event_Handler.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Fd_And_Timeout_User.hh b/core/Fd_And_Timeout_User.hh
index d56631a41..2a21532ff 100644
--- a/core/Fd_And_Timeout_User.hh
+++ b/core/Fd_And_Timeout_User.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Float.cc b/core/Float.cc
index 59d6a43cf..ea3f06b0a 100644
--- a/core/Float.cc
+++ b/core/Float.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -244,9 +244,67 @@ void FLOAT::log() const
 
 void FLOAT::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "float value");
-  if (param.get_type()!=Module_Param::MP_Float) param.type_error("float value");
-  bound_flag = TRUE;
-  float_value = param.get_float();
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Float: {
+    clean_up();
+    bound_flag = TRUE;
+    float_value = mp->get_float();
+    break; }
+  case Module_Param::MP_Expression:
+    switch (mp->get_expr_type()) {
+    case Module_Param::EXPR_NEGATE: {
+      FLOAT operand;
+      operand.set_param(*mp->get_operand1());
+      *this = - operand;
+      break; }
+    case Module_Param::EXPR_ADD: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+      break; }
+    case Module_Param::EXPR_SUBTRACT: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 - operand2;
+      break; }
+    case Module_Param::EXPR_MULTIPLY: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 * operand2;
+      break; }
+    case Module_Param::EXPR_DIVIDE: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (operand2 == 0.0) {
+        param.error("Floating point division by zero.");
+      }
+      *this = operand1 / operand2;
+      break; }
+    default:
+      param.expr_type_error("a float");
+      break;
+    }
+    break;
+  default:
+    param.type_error("float value");
+    break;
+  }
+}
+
+Module_Param* FLOAT::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!bound_flag) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Float(float_value);
 }
 
 void FLOAT::encode_text(Text_Buf& text_buf) const
@@ -1195,11 +1253,12 @@ FLOAT_template& FLOAT_template::operator=(const FLOAT_template& other_value)
   return *this;
 }
 
-boolean FLOAT_template::match(double other_value) const
+boolean FLOAT_template::match(double other_value, boolean /* legacy */) const
 {
   switch (template_selection) {
   case SPECIFIC_VALUE:
-    return single_value == other_value;
+    return single_value == other_value || // check if they're both NaN
+      (single_value != single_value && other_value != other_value);
   case OMIT_VALUE:
     return FALSE;
   case ANY_VALUE:
@@ -1222,7 +1281,7 @@ boolean FLOAT_template::match(double other_value) const
   return FALSE;
 }
 
-boolean FLOAT_template::match(const FLOAT& other_value) const
+boolean FLOAT_template::match(const FLOAT& other_value, boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   return match(other_value.float_value);
@@ -1337,7 +1396,8 @@ void FLOAT_template::log() const
   log_ifpresent();
 }
 
-void FLOAT_template::log_match(const FLOAT& match_value) const
+void FLOAT_template::log_match(const FLOAT& match_value,
+                               boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -1353,7 +1413,11 @@ void FLOAT_template::log_match(const FLOAT& match_value) const
 
 void FLOAT_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "float template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1364,24 +1428,111 @@ void FLOAT_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    FLOAT_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Float:
-    *this = param.get_float();
+    *this = mp->get_float();
     break;
   case Module_Param::MP_FloatRange:
     set_type(VALUE_RANGE);
-    if (param.has_lower_float()) set_min(param.get_lower_float());
-    if (param.has_upper_float()) set_max(param.get_upper_float());
+    if (mp->has_lower_float()) set_min(mp->get_lower_float());
+    if (mp->has_upper_float()) set_max(mp->get_upper_float());
+    break;
+  case Module_Param::MP_Expression:
+    switch (mp->get_expr_type()) {
+    case Module_Param::EXPR_NEGATE: {
+      FLOAT operand;
+      operand.set_param(*mp->get_operand1());
+      *this = - operand;
+      break; }
+    case Module_Param::EXPR_ADD: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+      break; }
+    case Module_Param::EXPR_SUBTRACT: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 - operand2;
+      break; }
+    case Module_Param::EXPR_MULTIPLY: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 * operand2;
+      break; }
+    case Module_Param::EXPR_DIVIDE: {
+      FLOAT operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (operand2 == 0.0) {
+        param.error("Floating point division by zero.");
+      }
+      *this = operand1 / operand2;
+      break; }
+    default:
+      param.expr_type_error("a float");
+      break;
+    }
     break;
   default:
     param.type_error("float template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* FLOAT_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = new Module_Param_Float(single_value);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case VALUE_RANGE:
+    mp = new Module_Param_FloatRange(
+      value_range.min_value, value_range.min_is_present,
+      value_range.max_value, value_range.max_is_present);
+    break;
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void FLOAT_template::encode_text(Text_Buf& text_buf) const
@@ -1448,13 +1599,13 @@ void FLOAT_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean FLOAT_template::is_present() const
+boolean FLOAT_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean FLOAT_template::match_omit() const
+boolean FLOAT_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1463,10 +1614,14 @@ boolean FLOAT_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -1474,7 +1629,8 @@ boolean FLOAT_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void FLOAT_template::check_restriction(template_res t_res, const char* t_name) const
+void FLOAT_template::check_restriction(template_res t_res, const char* t_name,
+                                       boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1486,7 +1642,7 @@ void FLOAT_template::check_restriction(template_res t_res, const char* t_name) c
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Float.hh b/core/Float.hh
index 18e6faa35..01b162f45 100644
--- a/core/Float.hh
+++ b/core/Float.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -14,13 +14,6 @@
 #include "Error.hh"
 #include "ttcn3float.hh"
 
-/* TTCN-3 float values that have absolute value smaller than this
-   are displayed in exponential notation. */
-#define MIN_DECIMAL_FLOAT		1.0E-4
-/* TTCN-3 float values that have absolute value larger or equal than this
-   are displayed in exponential notation. */
-#define MAX_DECIMAL_FLOAT		1.0E+10
-
 class Module_Param;
 
 // float value class
@@ -111,6 +104,7 @@ public:
 #endif
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -212,8 +206,8 @@ public:
   FLOAT_template& operator=(const OPTIONAL<FLOAT>& other_value);
   FLOAT_template& operator=(const FLOAT_template& other_value);
 
-  boolean match(double other_value) const;
-  boolean match(const FLOAT& other_value) const;
+  boolean match(double other_value, boolean legacy = FALSE) const;
+  boolean match(const FLOAT& other_value, boolean legacy = FALSE) const;
 
   void set_type(template_sel template_type, unsigned int list_length = 0);
   FLOAT_template& list_item(unsigned int list_index);
@@ -226,25 +220,26 @@ public:
   double valueof() const;
 
   void log() const;
-  void log_match(const FLOAT& match_value) const;
+  void log_match(const FLOAT& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<FLOAT*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const FLOAT*>(other_value)); }
   Base_Template* clone() const { return new FLOAT_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &FLOAT_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const FLOAT*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const FLOAT*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const FLOAT*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const FLOAT*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Hexstring.cc b/core/Hexstring.cc
index 27c7e4af4..c61c13f4c 100644
--- a/core/Hexstring.cc
+++ b/core/Hexstring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -582,25 +582,62 @@ void HEXSTRING::decode_text(Text_Buf& text_buf)
 
 void HEXSTRING::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "hexstring value");
-  if (param.get_type()!=Module_Param::MP_Hexstring) param.type_error("hexstring value");
-  switch (param.get_operation_type()) {
-  case Module_Param::OT_ASSIGN: {
-    clean_up();
-    int n_nibbles = param.get_string_size();
-    init_struct(n_nibbles);
-    memcpy(val_ptr->nibbles_ptr, param.get_string_data(), (n_nibbles + 1) / 2);
-    clear_unused_nibble();
-  } break;
-  case Module_Param::OT_CONCAT:
-    if (is_bound()) {
-      *this = *this + HEXSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
-    } else {
-      *this = HEXSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Hexstring:
+    switch (param.get_operation_type()) {
+    case Module_Param::OT_ASSIGN: {
+      clean_up();
+      int n_nibbles = mp->get_string_size();
+      init_struct(n_nibbles);
+      memcpy(val_ptr->nibbles_ptr, mp->get_string_data(), (n_nibbles + 1) / 2);
+      clear_unused_nibble();
+    } break;
+    case Module_Param::OT_CONCAT:
+      if (is_bound()) {
+        *this = *this + HEXSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+      } else {
+        *this = HEXSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+      }
+      break;
+    default:
+      TTCN_error("Internal error: HEXSTRING::set_param()");
+    }
+    break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      HEXSTRING operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (param.get_operation_type() == Module_Param::OT_CONCAT) {
+        *this = *this + operand1 + operand2;
+      }
+      else {
+        *this = operand1 + operand2;
+      }
+    }
+    else {
+      param.expr_type_error("a hexstring");
     }
     break;
   default:
-    TTCN_error("Internal error: HEXSTRING::set_param()");
-  }  
+    param.type_error("hexstring value");
+    break;
+  }
+}
+
+Module_Param* HEXSTRING::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  int n_bytes = (val_ptr->n_nibbles + 1) / 2;
+  unsigned char* val_cpy = (unsigned char *)Malloc(n_bytes);
+  memcpy(val_cpy, val_ptr->nibbles_ptr, n_bytes);
+  return new Module_Param_Hexstring(val_ptr->n_nibbles, val_cpy);
 }
 
 void HEXSTRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
@@ -1507,7 +1544,8 @@ const HEXSTRING_ELEMENT HEXSTRING_template::operator[](const INTEGER& index_valu
   return (*this)[(int)index_value];
 }
 
-boolean HEXSTRING_template::match(const HEXSTRING& other_value) const
+boolean HEXSTRING_template::match(const HEXSTRING& other_value,
+                                  boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   if (!match_length(other_value.val_ptr->n_nibbles)) return FALSE;
@@ -1658,7 +1696,8 @@ void HEXSTRING_template::log() const
   log_ifpresent();
 }
 
-void HEXSTRING_template::log_match(const HEXSTRING& match_value) const
+void HEXSTRING_template::log_match(const HEXSTRING& match_value,
+                                   boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
     && TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -1676,7 +1715,11 @@ void HEXSTRING_template::log_match(const HEXSTRING& match_value) const
 
 void HEXSTRING_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "hexstring template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1687,23 +1730,88 @@ void HEXSTRING_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    HEXSTRING_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Hexstring:
-    *this = HEXSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
+    *this = HEXSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
     break;
   case Module_Param::MP_Hexstring_Template:
-    *this = HEXSTRING_template(param.get_string_size(), (unsigned char*)param.get_string_data());
+    *this = HEXSTRING_template(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+    break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      HEXSTRING operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+    }
+    else {
+      param.expr_type_error("a bitstring");
+    }
     break;
   default:
     param.type_error("hexstring template");
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
+}
+
+Module_Param* HEXSTRING_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = single_value.get_param(param_name);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case STRING_PATTERN: {
+    unsigned char* val_cpy = (unsigned char*)Malloc(pattern_value->n_elements);
+    memcpy(val_cpy, pattern_value->elements_ptr, pattern_value->n_elements);
+    mp = new Module_Param_Hexstring_Template(pattern_value->n_elements, val_cpy);
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
 }
 
 void HEXSTRING_template::encode_text(Text_Buf& text_buf) const
@@ -1767,13 +1875,13 @@ void HEXSTRING_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean HEXSTRING_template::is_present() const
+boolean HEXSTRING_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean HEXSTRING_template::match_omit() const
+boolean HEXSTRING_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1782,10 +1890,14 @@ boolean HEXSTRING_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i = 0; i < value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit()) return template_selection
-        == VALUE_LIST;
-    return template_selection == COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i = 0; i < value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit()) return template_selection
+          == VALUE_LIST;
+      return template_selection == COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -1793,7 +1905,8 @@ boolean HEXSTRING_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void HEXSTRING_template::check_restriction(template_res t_res, const char* t_name) const
+void HEXSTRING_template::check_restriction(template_res t_res, const char* t_name,
+                                           boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -1805,7 +1918,7 @@ void HEXSTRING_template::check_restriction(template_res t_res, const char* t_nam
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Hexstring.hh b/core/Hexstring.hh
index 1fd91e888..7f1ff249d 100644
--- a/core/Hexstring.hh
+++ b/core/Hexstring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -107,6 +107,8 @@ public:
 
   void log() const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
+  
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
@@ -224,7 +226,7 @@ public:
   const HEXSTRING_ELEMENT operator[](int index_value) const;
   const HEXSTRING_ELEMENT operator[](const INTEGER& index_value) const;
 
-  boolean match(const HEXSTRING& other_value) const;
+  boolean match(const HEXSTRING& other_value, boolean legacy = FALSE) const;
   const HEXSTRING& valueof() const;
 
   int lengthof() const;
@@ -233,25 +235,26 @@ public:
   HEXSTRING_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const HEXSTRING& match_value) const;
+  void log_match(const HEXSTRING& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<HEXSTRING*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const HEXSTRING*>(other_value)); }
   Base_Template* clone() const { return new HEXSTRING_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &HEXSTRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const HEXSTRING*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const HEXSTRING*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const HEXSTRING*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const HEXSTRING*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/ILoggerPlugin.hh b/core/ILoggerPlugin.hh
index 670ba2ba3..84508658c 100644
--- a/core/ILoggerPlugin.hh
+++ b/core/ILoggerPlugin.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Integer.cc b/core/Integer.cc
index b99752758..4d1100fdd 100644
--- a/core/Integer.cc
+++ b/core/Integer.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -641,18 +641,78 @@ void INTEGER::log() const
 void INTEGER::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_VALUE, "integer value");
-  if (param.get_type()!=Module_Param::MP_Integer) param.type_error("integer value");
-  clean_up();
-  bound_flag = TRUE;
-  const int_val_t* const int_val = param.get_integer();
-  native_flag = int_val->is_native();
-  if (likely(native_flag)){
-    val.native = int_val->get_val();
-  } else {
-    val.openssl = BN_dup(int_val->get_val_openssl());
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Integer: {
+    clean_up();
+    bound_flag = TRUE;
+    const int_val_t* const int_val = mp->get_integer();
+    native_flag = int_val->is_native();
+    if (likely(native_flag)){
+      val.native = int_val->get_val();
+    } else {
+      val.openssl = BN_dup(int_val->get_val_openssl());
+    }
+    break; }
+  case Module_Param::MP_Expression:
+    switch (mp->get_expr_type()) {
+    case Module_Param::EXPR_NEGATE: {
+      INTEGER operand;
+      operand.set_param(*mp->get_operand1());
+      *this = - operand;
+      break; }
+    case Module_Param::EXPR_ADD: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+      break; }
+    case Module_Param::EXPR_SUBTRACT: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 - operand2;
+      break; }
+    case Module_Param::EXPR_MULTIPLY: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 * operand2;
+      break; }
+    case Module_Param::EXPR_DIVIDE: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (operand2 == 0) {
+        param.error("Integer division by zero.");
+      }
+      *this = operand1 / operand2;
+      break; }
+    default:
+      param.expr_type_error("an integer");
+      break;
+    }
+    break;
+  default:
+    param.type_error("integer value");
+    break;
   }
 }
 
+Module_Param* INTEGER::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!bound_flag) {
+    return new Module_Param_Unbound();
+  }
+  if (native_flag) {
+    return new Module_Param_Integer(new int_val_t(val.native));
+  }
+  return new Module_Param_Integer(new int_val_t(BN_dup(val.openssl)));
+}
+
 void INTEGER::encode_text(Text_Buf& text_buf) const
 {
   must_bound("Text encoder: Encoding an unbound integer value.");
@@ -1029,11 +1089,14 @@ int INTEGER::TEXT_encode(const TTCN_Typedescriptor_t& p_td,
   return encoded_length;
 }
 
+unsigned char INTX_MASKS[] = { 0 /*dummy*/, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF };
+
 int INTEGER::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf) const
 {
   if (!native_flag) return RAW_encode_openssl(p_td, myleaf);
   unsigned char *bc;
-  int length = (p_td.raw->fieldlength + 7) / 8; // in bytes
+  int length; // total length, in bytes
+  int val_bits = 0, len_bits = 0; // only for IntX
   int value = val.native;
   boolean neg_sgbit = (value < 0) && (p_td.raw->comp == SG_SG_BIT);
   if (!is_bound()) {
@@ -1047,11 +1110,6 @@ int INTEGER::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf)
     INTEGER big_value(to_openssl(val.native)); // too big for native
     return big_value.RAW_encode_openssl(p_td, myleaf);
   }
-  if (min_bits(value) > p_td.raw->fieldlength) {
-    TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
-      "There are insufficient bits to encode '%s' : ", p_td.name);
-    value = 0; // substitute with zero
-  }
   if ((value < 0) && (p_td.raw->comp == SG_NO)) {
     TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_SIGN_ERR,
       "Unsigned encoding of a negative number: %s", p_td.name);
@@ -1060,28 +1118,118 @@ int INTEGER::RAW_encode(const TTCN_Typedescriptor_t& p_td, RAW_enc_tree& myleaf)
   if (neg_sgbit) value = -value;
   //myleaf.ext_bit=EXT_BIT_NO;
   if (myleaf.must_free) Free(myleaf.body.leaf.data_ptr);
+  if (p_td.raw->fieldlength == RAW_INTX) { // IntX (variable length)
+    val_bits = (p_td.raw->comp != SG_NO); // bits needed to store the value
+    int v2 = value;
+    if (v2 < 0 && p_td.raw->comp == SG_2COMPL) {
+      v2 = ~v2;
+    }
+    do {
+      v2 >>= 1;
+      ++val_bits;
+    }
+    while (v2 != 0);
+    len_bits = 1 + val_bits / 8; // bits needed to store the length
+    if (val_bits % 8 + len_bits % 8 > 8) {
+      // the remainder of the value bits and the length bits do not fit into
+      // an octet => an extra octet is needed and the length must be increased
+      ++len_bits;
+    }
+    length = (len_bits + val_bits + 7) / 8;
+    if (len_bits % 8 == 0 && val_bits % 8 != 0) {
+      // special case: the value can be stored on 8k - 1 octets plus the partial octet
+      // - len_bits = 8k is not enough, since there's no partial octet in that case
+      // and the length would then be followed by 8k octets (and it only indicates
+      // 8k - 1 further octets)
+      // - len_bits = 8k + 1 is too much, since there are only 8k - 1 octets
+      // following the partial octet (and 8k are indicated)
+      // solution: len_bits = 8k + 1 and insert an extra empty octet
+      ++len_bits;
+      ++length;
+    }
+  }
+  else { // not IntX, use the field length
+    length = (p_td.raw->fieldlength + 7) / 8;
+    if (min_bits(value) > p_td.raw->fieldlength) {
+      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
+        "There are insufficient bits to encode '%s' : ", p_td.name);
+      value = 0; // substitute with zero
+    }
+  }
   if (length > RAW_INT_ENC_LENGTH) { // does not fit in the small buffer
     myleaf.body.leaf.data_ptr = bc = (unsigned char*)Malloc(length * sizeof(*bc));
     myleaf.must_free = TRUE;
     myleaf.data_ptr_used = TRUE;
   }
   else bc = myleaf.body.leaf.data_array;
-  for (int a = 0; a < length; a++) {
-    bc[a] = value & 0xFF;
-    value >>= 8;
+  if (p_td.raw->fieldlength == RAW_INTX) {
+    int i = 0;
+    // treat the empty space between the value and the length as if it was part
+    // of the value, too
+    val_bits = length * 8 - len_bits;
+    // first, encode the value
+    do {
+      bc[i] = value & INTX_MASKS[val_bits > 8 ? 8 : val_bits];
+      ++i;
+      value >>= 8;
+      val_bits -= 8;
+    }
+    while (val_bits > 0);
+    if (neg_sgbit) {
+      // the sign bit is the first bit after the length
+      unsigned char mask = 0x80 >> len_bits % 8;
+      bc[i - 1] |= mask;
+    }
+    // second, encode the length (ignore the last zero)
+    --len_bits;
+    if (val_bits != 0) {
+      // the remainder of the length is in the same octet as the remainder of the
+      // value => step back onto it
+      --i;
+    }
+    else {
+      // the remainder of the length is in a separate octet
+      bc[i] = 0;
+    }
+    // insert the length's partial octet
+    unsigned char mask = 0x80;
+    for (int j = 0; j < len_bits % 8; ++j) {
+      bc[i] |= mask;
+      mask >>= 1;
+    }
+    if (len_bits % 8 > 0 || val_bits != 0) {
+      // there was a partial octet => step onto the first full octet
+      ++i;
+    }
+    // insert the length's full octets
+    while (len_bits >= 8) {
+      // octets containing only ones in the length
+      bc[i] = 0xFF;
+      ++i;
+      len_bits -= 8;
+    }
+    myleaf.length = length * 8;
   }
-  if (neg_sgbit) {
-    unsigned char mask = 0x01 << (p_td.raw->fieldlength - 1) % 8;
-    bc[length - 1] |= mask;
+  else {
+    for (int a = 0; a < length; a++) {
+      bc[a] = value & 0xFF;
+      value >>= 8;
+    }
+    if (neg_sgbit) {
+      unsigned char mask = 0x01 << (p_td.raw->fieldlength - 1) % 8;
+      bc[length - 1] |= mask;
+    }
+    myleaf.length = p_td.raw->fieldlength;
   }
-  return myleaf.length = p_td.raw->fieldlength;
+  return myleaf.length;
 }
 
 int INTEGER::RAW_encode_openssl(const TTCN_Typedescriptor_t& p_td,
   RAW_enc_tree& myleaf) const
 {
   unsigned char *bc = NULL;
-  int length = (p_td.raw->fieldlength + 7) / 8;
+  int length; // total length, in bytes
+  int val_bits = 0, len_bits = 0; // only for IntX
   BIGNUM *D = BN_new();
   BN_copy(D, val.openssl);
   boolean neg_sgbit = (D->neg) && (p_td.raw->comp == SG_SG_BIT);
@@ -1091,14 +1239,6 @@ int INTEGER::RAW_encode_openssl(const TTCN_Typedescriptor_t& p_td,
     BN_clear(D);
     neg_sgbit = FALSE;
   }
-  if (min_bits(D) > p_td.raw->fieldlength) {
-    TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
-      "There are insufficient bits to encode '%s': ", p_td.name);
-    // `tmp = -((-tmp) & BitMaskTable[min_bits(tmp)]);' doesn't make any sense
-    // at all for negative values.  Just simply clear the value.
-    BN_clear(D);
-    neg_sgbit = FALSE;
-  }
   if ((D->neg) && (p_td.raw->comp == SG_NO)) {
     TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_SIGN_ERR,
       "Unsigned encoding of a negative number: %s", p_td.name);
@@ -1109,6 +1249,38 @@ int INTEGER::RAW_encode_openssl(const TTCN_Typedescriptor_t& p_td,
   // sign is stored separately from the number.  Default encoding of negative
   // values in 2's complement form.
   if (myleaf.must_free) Free(myleaf.body.leaf.data_ptr);
+  if (p_td.raw->fieldlength == RAW_INTX) {
+    val_bits = BN_num_bits(D) + (p_td.raw->comp != SG_NO); // bits needed to store the value
+    len_bits = 1 + val_bits / 8; // bits needed to store the length
+    if (val_bits % 8 + len_bits % 8 > 8) {
+      // the remainder of the value bits and the length bits do not fit into
+      // an octet => an extra octet is needed and the length must be increased
+      ++len_bits;
+    }
+    length = (len_bits + val_bits + 7) / 8;
+    if (len_bits % 8 == 0 && val_bits % 8 != 0) {
+      // special case: the value can be stored on 8k - 1 octets plus the partial octet
+      // - len_bits = 8k is not enough, since there's no partial octet in that case
+      // and the length would then be followed by 8k octets (and it only indicates
+      // 8k - 1 further octets)
+      // - len_bits = 8k + 1 is too much, since there are only 8k - 1 octets
+      // following the partial octet (and 8k are indicated)
+      // solution: len_bits = 8k + 1 and insert an extra empty octet
+      ++len_bits;
+      ++length;
+    }
+  }
+  else {
+    length = (p_td.raw->fieldlength + 7) / 8;
+    if (min_bits(D) > p_td.raw->fieldlength) {
+      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
+        "There are insufficient bits to encode '%s': ", p_td.name);
+      // `tmp = -((-tmp) & BitMaskTable[min_bits(tmp)]);' doesn't make any sense
+      // at all for negative values.  Just simply clear the value.
+      BN_clear(D);
+      neg_sgbit = FALSE;
+    }
+  }
   if (length > RAW_INT_ENC_LENGTH) {
     myleaf.body.leaf.data_ptr = bc =
       (unsigned char *)Malloc(length * sizeof(*bc));
@@ -1124,18 +1296,69 @@ int INTEGER::RAW_encode_openssl(const TTCN_Typedescriptor_t& p_td,
     for (int a = 0; a < D->dmax; a++) D->d[a] = ~D->d[a];
     BN_add_word(D, 1);
   }
-  int num_bytes = BN_num_bytes(D);
-  for (int a = 0; a < length; a++) {
-    if (twos_compl && num_bytes - 1 < a) bc[a] = 0xff;
-    else bc[a] = (D->top ? D->d[0] : 0) & 0xff;
-    BN_rshift(D, D, 8);
+  if (p_td.raw->fieldlength == RAW_INTX) {
+    int i = 0;
+    // treat the empty space between the value and the length as if it was part
+    // of the value, too
+    val_bits = length * 8 - len_bits;
+    // first, encode the value
+    do {
+      bc[i] = (D->top ? D->d[0] : (twos_compl ? 0xFF : 0)) & INTX_MASKS[val_bits > 8 ? 8 : val_bits];
+      ++i;
+      BN_rshift(D, D, 8);
+      val_bits -= 8;
+    }
+    while (val_bits > 0);
+    if (neg_sgbit) {
+      // the sign bit is the first bit after the length
+      unsigned char mask = 0x80 >> len_bits % 8;
+      bc[i - 1] |= mask;
+    }
+    // second, encode the length (ignore the last zero)
+    --len_bits;
+    if (val_bits != 0) {
+      // the remainder of the length is in the same octet as the remainder of the
+      // value => step back onto it
+      --i;
+    }
+    else {
+      // the remainder of the length is in a separate octet
+      bc[i] = 0;
+    }
+    // insert the length's partial octet
+    unsigned char mask = 0x80;
+    for (int j = 0; j < len_bits % 8; ++j) {
+      bc[i] |= mask;
+      mask >>= 1;
+    }
+    if (len_bits % 8 > 0 || val_bits != 0) {
+      // there was a partial octet => step onto the first full octet
+      ++i;
+    }
+    // insert the length's full octets
+    while (len_bits >= 8) {
+      // octets containing only ones in the length
+      bc[i] = 0xFF;
+      ++i;
+      len_bits -= 8;
+    }
+    myleaf.length = length * 8;
   }
-  if (neg_sgbit) {
-    unsigned char mask = 0x01 << (p_td.raw->fieldlength - 1) % 8;
-    bc[length - 1] |= mask;
+  else {
+    int num_bytes = BN_num_bytes(D);
+    for (int a = 0; a < length; a++) {
+      if (twos_compl && num_bytes - 1 < a) bc[a] = 0xff;
+      else bc[a] = (D->top ? D->d[0] : 0) & 0xff;
+      BN_rshift(D, D, 8);
+    }
+    if (neg_sgbit) {
+      unsigned char mask = 0x01 << (p_td.raw->fieldlength - 1) % 8;
+      bc[length - 1] |= mask;
+    }
+    BN_free(D);
+    myleaf.length = p_td.raw->fieldlength;
   }
-  BN_free(D);
-  return myleaf.length = p_td.raw->fieldlength;
+  return myleaf.length;
 }
 
 int INTEGER::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& buff,
@@ -1145,44 +1368,118 @@ int INTEGER::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& buff,
   bound_flag = FALSE;
   int prepaddlength = buff.increase_pos_padd(p_td.raw->prepadding);
   limit -= prepaddlength;
-  int decode_length = p_td.raw->fieldlength;
+  RAW_coding_par cp;
+  boolean orders = FALSE;
+  if (p_td.raw->bitorderinoctet == ORDER_MSB) orders = TRUE;
+  if (p_td.raw->bitorderinfield == ORDER_MSB) orders = !orders;
+  cp.bitorder = orders ? ORDER_MSB : ORDER_LSB;
+  orders = FALSE;
+  if (p_td.raw->byteorder == ORDER_MSB) orders = TRUE;
+  if (p_td.raw->bitorderinfield == ORDER_MSB) orders = !orders;
+  cp.byteorder = orders ? ORDER_MSB : ORDER_LSB;
+  cp.fieldorder = p_td.raw->fieldorder;
+  cp.hexorder = ORDER_LSB;
+  int decode_length = 0;
+  int len_bits = 0; // only for IntX (amount of bits used to store the length)
+  unsigned char len_data = 0; // only for IntX (an octet used to store the length)
+  int partial_octet_bits = 0; // only for IntX (amount of value bits in the partial octet)
+  if (p_td.raw->fieldlength == RAW_INTX) {
+    // extract the length
+    do {
+      // check if at least 8 bits are available in the buffer
+      if (8 > limit) {
+        if (!no_err) {
+          TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
+            "There are not enough bits in the buffer to decode the length of IntX "
+            "type %s (needed: %d, found: %d).", p_td.name, len_bits + 8,
+            len_bits + limit);
+        }
+        return -TTCN_EncDec::ET_LEN_ERR; 
+      }
+      else {
+        limit -= 8;
+      }
+      int nof_unread_bits = buff.unread_len_bit();
+      if (nof_unread_bits < 8) {
+        if (!no_err) {
+          TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
+            "There are not enough bits in the buffer to decode the length of IntX "
+            "type %s (needed: %d, found: %d).", p_td.name, len_bits + 8,
+            len_bits + nof_unread_bits);
+        }
+        return -TTCN_EncDec::ET_INCOMPL_MSG;
+      }
+      
+      // extract the next length octet (or partial length octet)
+      buff.get_b(8, &len_data, cp, top_bit_ord);
+      unsigned char mask = 0x80;
+      do {
+        ++len_bits;
+        if (len_data & mask) {
+          mask >>= 1;
+        }
+        else {
+          // the first zero signals the end of the length
+          // the rest of the bits in the octet are part of the value
+          partial_octet_bits = (8 - len_bits % 8) % 8;
+          
+          // decode_length only stores the amount of bits in full octets needed
+          // by the value, the bits in the partial octet are stored by len_data
+          decode_length = 8 * (len_bits - 1);
+          break;
+        }
+      }
+      while (len_bits % 8 != 0);
+    }
+    while (decode_length == 0 && partial_octet_bits == 0);
+  }
+  else {
+    // not IntX, use the static field length
+    decode_length = p_td.raw->fieldlength;
+  }
   if (decode_length > limit) {
-    if (no_err) return -TTCN_EncDec::ET_LEN_ERR;
-    TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
-      "There are not enough bits in the buffer to decode type %s (needed: %d, "
-      "found: %d).", p_td.name, decode_length, limit);
+    if (!no_err) {
+      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_LEN_ERR,
+        "There are not enough bits in the buffer to decode%s type %s (needed: %d, "
+        "found: %d).", p_td.raw->fieldlength == RAW_INTX ? " the value of IntX" : "",
+        p_td.name, decode_length, limit);
+    }
+    if (no_err || p_td.raw->fieldlength == RAW_INTX) {
+      return -TTCN_EncDec::ET_LEN_ERR;
+    }
     decode_length = limit;
   }
   int nof_unread_bits = buff.unread_len_bit();
   if (decode_length > nof_unread_bits) {
-    if (no_err) return -TTCN_EncDec::ET_INCOMPL_MSG;
-    TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
-      "There are not enough bits in the buffer to decode type %s (needed: %d, "
-      "found: %d).", p_td.name, decode_length, nof_unread_bits);
+    if (!no_err) {
+      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
+        "There are not enough bits in the buffer to decode%s type %s (needed: %d, "
+        "found: %d).", p_td.raw->fieldlength == RAW_INTX ? " the value of IntX" : "",
+        p_td.name, decode_length, nof_unread_bits);
+    }
+    if (no_err || p_td.raw->fieldlength == RAW_INTX) {
+      return -TTCN_EncDec::ET_INCOMPL_MSG;
+    }
     decode_length = nof_unread_bits;
   }
   clean_up();
   if (decode_length < 0) return -1;
-  else if (decode_length == 0) {
+  else if (decode_length == 0 && partial_octet_bits == 0) {
     native_flag = TRUE;
     val.native = 0;
   }
   else {
     int tmp = 0;
     int twos_compl = 0;
-    unsigned char *data = (unsigned char *) Malloc((decode_length + 7) / 8);
-    RAW_coding_par cp;
-    boolean orders = FALSE;
-    if (p_td.raw->bitorderinoctet == ORDER_MSB) orders = TRUE;
-    if (p_td.raw->bitorderinfield == ORDER_MSB) orders = !orders;
-    cp.bitorder = orders ? ORDER_MSB : ORDER_LSB;
-    orders = FALSE;
-    if (p_td.raw->byteorder == ORDER_MSB) orders = TRUE;
-    if (p_td.raw->bitorderinfield == ORDER_MSB) orders = !orders;
-    cp.byteorder = orders ? ORDER_MSB : ORDER_LSB;
-    cp.fieldorder = p_td.raw->fieldorder;
-    cp.hexorder = ORDER_LSB;
+    unsigned char *data = (unsigned char *) Malloc(
+      (decode_length + partial_octet_bits + 7) / 8);
     buff.get_b((size_t) decode_length, data, cp, top_bit_ord);
+    if (partial_octet_bits != 0) {
+      // in case there are value bits in the last length octet (only for IntX),
+      // these need to be appended to the extracted data
+      data[decode_length / 8] = len_data;
+      decode_length += partial_octet_bits;
+    }
     int end_pos = decode_length;
     int idx = (end_pos - 1) / 8;
     boolean negativ_num = FALSE;
@@ -1261,7 +1558,7 @@ int INTEGER::RAW_decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& buff,
   }
   end: decode_length += buff.increase_pos_padd(p_td.raw->padding);
   bound_flag = TRUE;
-  return decode_length + prepaddlength;
+  return decode_length + prepaddlength + len_bits;
 }
 
 int INTEGER::XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
@@ -1747,7 +2044,7 @@ INTEGER_template& INTEGER_template::operator=
   return *this;
 }
 
-boolean INTEGER_template::match(int other_value) const
+boolean INTEGER_template::match(int other_value, boolean /* legacy */) const
 {
   switch (template_selection) {
   case SPECIFIC_VALUE:
@@ -1787,7 +2084,8 @@ boolean INTEGER_template::match(int other_value) const
   return FALSE;
 }
 
-boolean INTEGER_template::match(const INTEGER& other_value) const
+boolean INTEGER_template::match(const INTEGER& other_value,
+                                boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   switch (template_selection) {
@@ -2001,7 +2299,8 @@ void INTEGER_template::log() const
   log_ifpresent();
 }
 
-void INTEGER_template::log_match(const INTEGER& match_value) const
+void INTEGER_template::log_match(const INTEGER& match_value,
+                                 boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -2017,7 +2316,11 @@ void INTEGER_template::log_match(const INTEGER& match_value) const
 
 void INTEGER_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "integer template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -2028,34 +2331,142 @@ void INTEGER_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    INTEGER_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Integer: {
     INTEGER tmp;
-    tmp.set_val(*param.get_integer());
+    tmp.set_val(*mp->get_integer());
     *this = tmp;
   } break;
   case Module_Param::MP_IntRange: {
     set_type(VALUE_RANGE);
-    if (param.get_lower_int()!=NULL) {
+    if (mp->get_lower_int()!=NULL) {
       INTEGER tmp;
-      tmp.set_val(*param.get_lower_int());
+      tmp.set_val(*mp->get_lower_int());
       set_min(tmp);
     }
-    if (param.get_upper_int()!=NULL) {
+    if (mp->get_upper_int()!=NULL) {
       INTEGER tmp;
-      tmp.set_val(*param.get_upper_int());
+      tmp.set_val(*mp->get_upper_int());
       set_max(tmp);
     }
   } break;
+  case Module_Param::MP_Expression:
+    switch (mp->get_expr_type()) {
+    case Module_Param::EXPR_NEGATE: {
+      INTEGER operand;
+      operand.set_param(*mp->get_operand1());
+      *this = - operand;
+      break; }
+    case Module_Param::EXPR_ADD: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+      break; }
+    case Module_Param::EXPR_SUBTRACT: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 - operand2;
+      break; }
+    case Module_Param::EXPR_MULTIPLY: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 * operand2;
+      break; }
+    case Module_Param::EXPR_DIVIDE: {
+      INTEGER operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (operand2 == 0) {
+        param.error("Integer division by zero.");
+      }
+      *this = operand1 / operand2;
+      break; }
+    default:
+      param.expr_type_error("an integer");
+      break;
+    }
+    break;    
   default:
     param.type_error("integer template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* INTEGER_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    if (likely(int_val.native_flag)) {
+      mp = new Module_Param_Integer(new int_val_t(int_val.val.native));
+    }
+    else {
+      mp = new Module_Param_Integer(new int_val_t(BN_dup(int_val.val.openssl)));
+    }
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case VALUE_RANGE: {
+    int_val_t* lower_bound = NULL;
+    int_val_t* upper_bound = NULL;
+    if (value_range.min_is_present) {
+      if (value_range.min_value.native_flag) {
+        lower_bound = new int_val_t(value_range.min_value.val.native);
+      }
+      else {
+        lower_bound = new int_val_t(BN_dup(value_range.min_value.val.openssl));
+      }
+    }
+    if (value_range.max_is_present) {
+      if (value_range.max_value.native_flag) {
+        upper_bound = new int_val_t(value_range.max_value.val.native);
+      }
+      else {
+        upper_bound = new int_val_t(BN_dup(value_range.max_value.val.openssl));
+      }
+    }
+    mp = new Module_Param_IntRange(lower_bound, upper_bound);
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void INTEGER_template::encode_text(Text_Buf& text_buf) const
@@ -2140,13 +2551,13 @@ void INTEGER_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean INTEGER_template::is_present() const
+boolean INTEGER_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean INTEGER_template::match_omit() const
+boolean INTEGER_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2155,10 +2566,14 @@ boolean INTEGER_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -2166,7 +2581,8 @@ boolean INTEGER_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void INTEGER_template::check_restriction(template_res t_res, const char* t_name) const
+void INTEGER_template::check_restriction(template_res t_res, const char* t_name,
+                                         boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2178,7 +2594,7 @@ void INTEGER_template::check_restriction(template_res t_res, const char* t_name)
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Integer.hh b/core/Integer.hh
index bf6ec359c..54cf6478d 100644
--- a/core/Integer.hh
+++ b/core/Integer.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -129,6 +129,7 @@ public:
 #endif
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
@@ -256,8 +257,8 @@ public:
   INTEGER_template& operator=(const OPTIONAL<INTEGER>& other_value);
   INTEGER_template& operator=(const INTEGER_template& other_value);
 
-  boolean match(int other_value) const;
-  boolean match(const INTEGER& other_value) const;
+  boolean match(int other_value, boolean legacy = FALSE) const;
+  boolean match(const INTEGER& other_value, boolean legacy = FALSE) const;
   INTEGER valueof() const;
 
   /** Sets the template type.
@@ -307,15 +308,16 @@ public:
   void set_max(const INTEGER& max_value);
 
   void log() const;
-  void log_match(const INTEGER& match_value) const;
+  void log_match(const INTEGER& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<INTEGER*>(value)) = valueof(); }
@@ -323,10 +325,10 @@ public:
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const INTEGER*>(other_value)); }
   Base_Template* clone() const { return new INTEGER_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &INTEGER_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const INTEGER*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const INTEGER*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const INTEGER*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const INTEGER*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/JSON.cc b/core/JSON.cc
index ad429c413..11a426347 100644
--- a/core/JSON.cc
+++ b/core/JSON.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/JSON.hh b/core/JSON.hh
index 6c9357d69..662884b44 100644
--- a/core/JSON.hh
+++ b/core/JSON.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -15,15 +15,15 @@ struct TTCN_JSONdescriptor_t
 {
   /** Encoding only. 
     * true  : use the null literal to encode omitted fields in records or sets
-    *         example: { field1 : value1, field2 : null, field3 : value3 } 
+    *         example: { "field1" : value1, "field2" : null, "field3" : value3 } 
     * false : skip both the field name and the value if a field is omitted
-    *         example: { field1 : value1, field3 : value3 }
+    *         example: { "field1" : value1, "field3" : value3 }
     * The decoder will always accept both variants. */
   boolean omit_as_null;
   
   /** An alias for the name of the field (in a record, set or union). 
     * Encoding: this alias will appear instead of the name of the field
-    * Decoding: the decoder will look for this alias instead of the field's real name*/
+    * Decoding: the decoder will look for this alias instead of the field's real name */
   const char* alias;
   
   /** If set, the union will be encoded as a JSON value instead of a JSON object
@@ -34,13 +34,20 @@ struct TTCN_JSONdescriptor_t
   boolean as_value;
   
   /** Decoding only.
-    * Fields that don't appear in the JSON code will have this value assigned to
-    * them. */
+    * Fields that don't appear in the JSON code will decode this value instead. */
   const char* default_value;
+  
+  /** If set, encodes unbound fields of records and sets as null and inserts a
+    * meta info field into the JSON object specifying that the field is unbound.
+    * 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" } */
+  boolean metainfo_unbound;
 };
 
-/** This macro makes sure that error and warning messages will only be displayed
-  * if the silent flag is not set. */
+/** This macro makes sure that coding errors will only be displayed if the silent
+  * flag is not set. */
 #define JSON_ERROR if(!p_silent) TTCN_EncDec_ErrorContext::error
 
 // JSON descriptors for base types
@@ -78,12 +85,24 @@ enum json_decode_error {
   /** The JSON tokeniser couldn't extract a valid token (JSON_TOKEN_ERROR) or the
     * format of the data extracted is invalid. In either case, this is a fatal 
     * error and the decoding cannot continue. 
-    * @note This error code is always preceeded by a dynamic test case error, if the
+    * @note This error code is always preceeded by a decoding error, if the
     * caller receives this code, it means that decoding error behavior is (at least 
     * partially) set to warnings. */
   JSON_ERROR_FATAL = -2
 };
 
+/** JSON meta info states during decoding */
+enum json_metainfo_t {
+  /** The field does not have meta info enabled */
+  JSON_METAINFO_NOT_APPLICABLE,
+  /** Initial state if meta info is enabled for the field */
+  JSON_METAINFO_NONE,
+  /** The field's value is set to null, but no meta info was received for the field yet */
+  JSON_METAINFO_NEEDED,
+  /** Meta info received: the field is unbound */
+  JSON_METAINFO_UNBOUND
+};
+
 // JSON decoding error messages
 #define JSON_DEC_BAD_TOKEN_ERROR "Failed to extract valid token, invalid JSON format%s"
 #define JSON_DEC_FORMAT_ERROR "Invalid JSON %s format, expecting %s value"
@@ -97,6 +116,9 @@ enum json_decode_error {
 #define JSON_DEC_MISSING_FIELD_ERROR "No JSON data found for field '%s'"
 #define JSON_DEC_STATIC_OBJECT_END_TOKEN_ERROR "Invalid JSON token, expecting JSON object end mark%s"
 #define JSON_DEC_AS_VALUE_ERROR "Extracted JSON %s could not be decoded by any field of the union"
+#define JSON_DEC_METAINFO_NAME_ERROR "Meta info provided for non-existent field '%s'"
+#define JSON_DEC_METAINFO_VALUE_ERROR "Invalid meta info for field '%s'"
+#define JSON_DEC_METAINFO_NOT_APPLICABLE "Meta info not applicable to field '%s'"
 
 #endif	/* JSON_HH_ */
 
diff --git a/core/LegacyLogger.cc b/core/LegacyLogger.cc
index 8fc5e90a0..782b6cc23 100644
--- a/core/LegacyLogger.cc
+++ b/core/LegacyLogger.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LegacyLogger.hh b/core/LegacyLogger.hh
index c5e13f7eb..ec88fa7e8 100644
--- a/core/LegacyLogger.hh
+++ b/core/LegacyLogger.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Logger.cc b/core/Logger.cc
index 03752d141..ceda4d050 100644
--- a/core/Logger.cc
+++ b/core/Logger.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Logger.hh b/core/Logger.hh
index 60ab5a6f2..66056175e 100644
--- a/core/Logger.hh
+++ b/core/Logger.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggerPlugin.cc b/core/LoggerPlugin.cc
index ac5a5ec96..250cca4f0 100644
--- a/core/LoggerPlugin.cc
+++ b/core/LoggerPlugin.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggerPlugin.hh b/core/LoggerPlugin.hh
index 8b39ea507..18f6cbf4f 100644
--- a/core/LoggerPlugin.hh
+++ b/core/LoggerPlugin.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggerPluginManager.cc b/core/LoggerPluginManager.cc
index 9558b470f..86055b602 100644
--- a/core/LoggerPluginManager.cc
+++ b/core/LoggerPluginManager.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggerPluginManager.hh b/core/LoggerPluginManager.hh
index 221d087b3..1c2542951 100644
--- a/core/LoggerPluginManager.hh
+++ b/core/LoggerPluginManager.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggerPlugin_dynamic.cc b/core/LoggerPlugin_dynamic.cc
index 5d5a2d8dc..5c2afc7a4 100644
--- a/core/LoggerPlugin_dynamic.cc
+++ b/core/LoggerPlugin_dynamic.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggerPlugin_static.cc b/core/LoggerPlugin_static.cc
index d8aa336d2..6b373721a 100644
--- a/core/LoggerPlugin_static.cc
+++ b/core/LoggerPlugin_static.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggingBits.cc b/core/LoggingBits.cc
index 4d7cf40f9..7787a647c 100644
--- a/core/LoggingBits.cc
+++ b/core/LoggingBits.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggingBits.hh b/core/LoggingBits.hh
index e7b99fb63..1a44df928 100644
--- a/core/LoggingBits.hh
+++ b/core/LoggingBits.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/LoggingParam.hh b/core/LoggingParam.hh
index ebdf04f09..7dd2c7ec0 100644
--- a/core/LoggingParam.hh
+++ b/core/LoggingParam.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Makefile b/core/Makefile
index ce0f040b6..3b3cde411 100644
--- a/core/Makefile
+++ b/core/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -85,12 +85,12 @@ Module_list.cc Objid.cc Octetstring.cc Parallel_main.cc Port.cc RAW.cc \
 Runtime.cc Single_main.cc Snapshot.cc Struct_of.cc Template.cc TEXT.cc \
 Textbuf.cc Timer.cc Param_Types.cc Universal_charstring.cc \
 Verdicttype.cc XER.cc XmlReader.cc TitanLoggerControlImpl.cc TCov.cc JSON.cc \
-Profiler.cc $(RT2_SOURCES)
+Profiler.cc ProfilerTools.cc ProfMerge_main.cc $(RT2_SOURCES)
 
 # Keep GENERATED_SOURCES at the beginning. This may speed up parallel builds
 # by starting early the compilation of the largest files.
 SOURCES := $(GENERATED_SOURCES) $(STATIC_SOURCES)
-
+	
 
 ifeq ($(FUNCTION_TEST_RUNTIME), yes)
   RT2_SUFFIX := -rt2
@@ -124,6 +124,9 @@ endif
 
 
 OBJECTS := $(patsubst %.cc,%.o,$(patsubst %.c,%.o,$(SOURCES)))
+	
+PROFMERGE_OBJECTS := ProfMerge_main.o ProfilerTools.profmerge.o \
+	../common/JSON_Tokenizer.o ../common/memory.o
 
 COMMON_OBJECTS := $(addprefix ../common/, memory.o pattern_la.o pattern_p.o \
 	            config_preproc.o config_preproc_la.o config_preproc_p.tab.o \
@@ -136,6 +139,7 @@ endif
 
 ifeq ($(LICENSING), yes)
   COMMON_OBJECTS += ../common/license.o
+  PROFMERGE_OBJECTS += ../common/license.o
 endif
 
 ifdef REGEX_DIR
@@ -146,10 +150,10 @@ ifeq ($(USAGE_STATS), yes)
   COMMON_OBJECTS += ../common/usage_stats.o
 endif
 
-LIBRARY_OBJECTS_NOMAIN := $(filter-out Single_main.o Parallel_main.o, \
+LIBRARY_OBJECTS_NOMAIN := $(filter-out Single_main.o Parallel_main.o ProfMerge_main.o, \
   $(OBJECTS)) $(COMMON_OBJECTS)
 
-TOBECLEANED := LoggerPlugin_static.o LoggerPlugin_dynamic.o
+TOBECLEANED := LoggerPlugin_static.o LoggerPlugin_dynamic.o ProfilerTools.profmerge.o
 
 DEPFILES := $(patsubst %.cc,%.d,$(patsubst %.c,%.d,$(SOURCES)))
 
@@ -163,7 +167,7 @@ Port.hh Event_Handler.hh Struct_of.hh Array.hh Optional.hh Textbuf.hh Encdec.hh
 Module_list.hh Parameters.h Addfunc.hh RAW.hh BER.hh TEXT.hh ASN_Null.hh \
 ASN_Any.hh ASN_External.hh ASN_EmbeddedPDV.hh ASN_CharacterString.hh XER.hh \
 XmlReader.hh cversion.h TitanLoggerControl.ttcn TitanLoggerApi.xsd Vector.hh \
-JSON.hh Profiler.hh RefdIndex.hh
+JSON.hh Profiler.hh RefdIndex.hh ProfilerTools.hh
 # Copied during "make install"
 
 ifdef REGEX_DIR
@@ -175,6 +179,9 @@ LIBRARY := libttcn3$(RT2_SUFFIX).a
 PARALLEL_LIBRARY := libttcn3$(RT2_SUFFIX)-parallel.a
 SHAREDLIB := libttcn3$(RT2_SUFFIX)-dynamic.so
 PARALLEL_SHAREDLIB := libttcn3$(RT2_SUFFIX)-parallel-dynamic.so
+	
+# Executables
+PROGRAMS := ttcn3_profmerge$(EXESUFFIX)
 
 TARGETS := $(LIBRARY) $(PARALLEL_LIBRARY)
 
@@ -200,18 +207,16 @@ ifneq ($(FUNCTION_TEST_RUNTIME), yes)
 endif
 
 # Only for testing the consistency of libraries:
-#PROGRAMS :=
-
-PROGRAMS := single$(RT2_SUFFIX)$(EXESUFFIX) parallel$(RT2_SUFFIX)$(EXESUFFIX)
+TEST_PROGRAMS := single$(RT2_SUFFIX)$(EXESUFFIX) parallel$(RT2_SUFFIX)$(EXESUFFIX)
 ifeq ($(DYNAMIC_LINKING), yes)
-PROGRAMS += single$(RT2_SUFFIX)-dynamic$(EXESUFFIX) parallel$(RT2_SUFFIX)-dynamic$(EXESUFFIX)
+TEST_PROGRAMS += single$(RT2_SUFFIX)-dynamic$(EXESUFFIX) parallel$(RT2_SUFFIX)-dynamic$(EXESUFFIX)
 endif
 ifneq ($(FUNCTION_TEST_RUNTIME), yes)
-PROGRAMS += gccversion$(EXESUFFIX)
+TEST_PROGRAMS += gccversion$(EXESUFFIX)
 endif
 
 
-TOBECLEANED += $(PROGRAMS) cversion.h $(GENERATED_MODULES)
+TOBECLEANED += $(TEST_PROGRAMS) cversion.h $(GENERATED_MODULES)
 
 ifdef REGEX_DIR
   CPPFLAGS += -I$(REGEX_DIR)/include
@@ -226,12 +231,14 @@ endif
 
 CPPFLAGS += -I$(COMMON_DIR)
 
+MANPAGES := ttcn3_profmerge.1
+
 # # # # # # # # # targets
-all: $(TARGETS) $(PROGRAMS)
+all: $(TARGETS) $(PROGRAMS) $(TEST_PROGRAMS)
 
 run: all
 # Verify that the executables are runnable.
-	for p in $(filter-out gccversion%,$(PROGRAMS)); do echo $$p; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./$$p -l; if [ $$? -ne 0 ] ; then exit $$?; fi done
+	for p in $(filter-out gccversion%,$(TEST_PROGRAMS)); do echo $$p; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./$$p -l; if [ $$? -ne 0 ] ; then exit $$?; fi done
 
 # xsd -> ttcn
 $(GENERATED_MODULES): $(SCHEMAS) ../xsdconvert/xsd2ttcn$(EXESUFFIX)
@@ -239,7 +246,7 @@ $(GENERATED_MODULES): $(SCHEMAS) ../xsdconvert/xsd2ttcn$(EXESUFFIX)
 	sed -e 's/XSD.String/charstring/g;s/XSD.AnySimpleType/charstring/g;s/XSD.Integer/integer/g;s/XSD.Float/float/g;s/XSD.Double/float/g;s/XSD.Boolean/boolean/g;s/import from XSD all;//g' TitanLoggerApi.ttcn >TitanLoggerApi.ttcn_
 	mv TitanLoggerApi.ttcn_ TitanLoggerApi.ttcn
 
-install: $(TARGETS)
+install: $(TARGETS) $(PROGRAMS)
 ifeq ($(DYNAMIC_LINKING), yes)
   ifeq ($(DEBUG), no)
 	$(STRIP) $(SHAREDLIB) $(PARALLEL_SHAREDLIB)
@@ -250,6 +257,10 @@ endif
 ifneq ($(FUNCTION_TEST_RUNTIME), yes)
 	mkdir -p $(INCDIR)
 	cp $(HEADERS) $(INCDIR)
+	mkdir -p $(BINDIR)
+	cp $(PROGRAMS) $(BINDIR)
+	mkdir -p $(MANDIR)/man1
+	cp $(MANPAGES) $(MANDIR)/man1
 ifeq ($(DYNAMIC_LINKING), yes)
 ifneq ($(OPENSSL_DIR), default)
 	(cd $(OPENSSL_DIR)/lib && tar -cf - libcrypto.so*) |\
@@ -277,6 +288,9 @@ parallel$(RT2_SUFFIX)$(EXESUFFIX): $(PARALLEL_LIBRARY)
 
 parallel$(RT2_SUFFIX)-dynamic$(EXESUFFIX): Parallel_main.o $(PARALLEL_SHAREDLIB)
 	$(CXX) $(LDFLAGS) -o $@ $^ -lcrypto $($(PLATFORM)_LIBS)
+	
+ttcn3_profmerge$(EXESUFFIX): $(PROFMERGE_OBJECTS)
+	$(CXX) $(LDFLAGS) -o $@ $^ $(LICENSE_LIBS) $($(PLATFORM)_LIBS)
 
 # # # # static link libraries
 $(LIBRARY): $(LIBRARY_OBJECTS_NOMAIN) LoggerPlugin_static.o Single_main.o
@@ -368,7 +382,7 @@ $(PREGENERATED_SOURCES).compiled:: $(PREGENERATOR_MODULES)
 	mkdir -p $(APIDIR)
 	../compiler2/compiler$(EXESUFFIX) -F $(TTCN_COMPILER_FLAGS) $^ - $?
 	touch $@
-
+	
 include ../Makefile.genrules
 
 # These are not in STATIC_SOURCES, so vpath is not created for them
diff --git a/core/Message_types.hh b/core/Message_types.hh
index df5d0d460..a3f05eb8e 100644
--- a/core/Message_types.hh
+++ b/core/Message_types.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Module_list.cc b/core/Module_list.cc
index e6f19ba6c..50fddbefe 100644
--- a/core/Module_list.cc
+++ b/core/Module_list.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -189,6 +189,62 @@ void Module_List::set_param(Module_Param& param)
   }
 }
 
+Module_Param* Module_List::get_param(Module_Param_Name& param_name)
+{
+  // The first segment in the parameter name can either be the module name,
+  // or the module parameter name - both must be checked
+  const char* const first_name = param_name.get_current_name();
+  const char* second_name = NULL;
+  Module_Param* param = NULL;
+
+  // Check if the first name segment is an existing module name 
+  TTCN_Module *module_ptr = lookup_module(first_name);
+  if (module_ptr != NULL && module_ptr->get_param_func != NULL && param_name.next_name()) {
+    param = module_ptr->get_param_func(param_name);
+    if (param == NULL) {
+      second_name = param_name.get_current_name(); // for error messages
+    }
+  }
+  
+  // If not found, check if the first name segment was the module parameter name
+  // (even if it matched a module name)
+  if (param == NULL) {
+    param_name.next_name(-1); // set the position back to the first segment
+    for (TTCN_Module *list_iter = list_head; list_iter != NULL;
+      list_iter = list_iter->list_next) {
+      if (list_iter->get_param_func != NULL) {
+        param = list_iter->get_param_func(param_name);
+        if (param != NULL) {
+          break;
+        }
+      }
+    }
+  }
+  
+  // Still not found -> error
+  if (param == NULL) {
+    if (module_ptr == NULL) {
+      TTCN_error("Referenced module parameter cannot be found. Module `%s' does not exist, "
+        "and no parameter with name `%s' exists in any module.", 
+        first_name, first_name);
+    } else if (module_ptr->get_param_func == NULL) {
+      TTCN_error("Referenced module parameter cannot be found. Module `%s' does not have "
+        "parameters, and no parameter with name `%s' exists in other modules.", 
+        first_name, first_name);
+    } else {
+      TTCN_error("Referenced module parameter cannot be found. No parameter with name `%s' "
+        "exists in module `%s', and no parameter with name `%s' exists in any module.",
+        second_name, first_name, first_name);
+    }
+  }
+  else if (param->get_type() == Module_Param::MP_Unbound) {
+    delete param;
+    TTCN_error("Referenced module parameter '%s' is unbound.", param_name.get_str());
+  }
+
+  return param;
+}
+
 void Module_List::log_param()
 {
   for (TTCN_Module *list_iter = list_head; list_iter != NULL;
@@ -669,6 +725,7 @@ TTCN_Module::TTCN_Module(const char *par_module_name,
   const namespace_t *par_namespaces,
   init_func_t par_post_init_func,
   set_param_func_t par_set_param_func,
+  get_param_func_t par_get_param_func,
   log_param_func_t par_log_param_func,
   initialize_component_func_t par_initialize_component_func,
   start_func_t par_start_func,
@@ -692,6 +749,7 @@ TTCN_Module::TTCN_Module(const char *par_module_name,
 , pre_init_called(FALSE)
 , post_init_called(FALSE)
 , set_param_func(par_set_param_func)
+, get_param_func(par_get_param_func)
 , log_param_func(par_log_param_func)
 , initialize_component_func(par_initialize_component_func)
 , start_func(par_start_func)
@@ -731,6 +789,7 @@ TTCN_Module::TTCN_Module(const char *par_module_name,
 , pre_init_called(FALSE)
 , post_init_called(FALSE)
 , set_param_func(NULL)
+, get_param_func(NULL)
 , log_param_func(NULL)
 , initialize_component_func(NULL)
 , start_func(NULL)
diff --git a/core/Module_list.hh b/core/Module_list.hh
index 76613cedd..72c34bbd0 100644
--- a/core/Module_list.hh
+++ b/core/Module_list.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -14,6 +14,7 @@
 class Text_Buf;
 class TTCN_Module;
 class Module_Param;
+class Module_Param_Name;
 class ModuleVersion;
 struct namespace_t;
 
@@ -38,6 +39,7 @@ public:
     const char *component_type, boolean init_base_comps);
 
   static void set_param(Module_Param& param);
+  static Module_Param* get_param(Module_Param_Name& param_name);
   static void log_param();
 
   static void execute_control(const char *module_name);
@@ -90,6 +92,7 @@ public:
   enum module_type_enum { TTCN3_MODULE, ASN1_MODULE, CPLUSPLUS_MODULE };
   typedef void (*init_func_t)();
   typedef boolean (*set_param_func_t)(Module_Param& param);
+  typedef Module_Param* (*get_param_func_t)(Module_Param_Name& param_name);
   typedef void (*log_param_func_t)();
   typedef boolean (*initialize_component_func_t)(const char *component_type,
     boolean init_base_comps);
@@ -120,6 +123,7 @@ private:
   init_func_t pre_init_func, post_init_func;
   boolean pre_init_called, post_init_called;
   set_param_func_t set_param_func;
+  get_param_func_t get_param_func;
   log_param_func_t log_param_func;
   initialize_component_func_t initialize_component_func;
   start_func_t start_func;
@@ -151,6 +155,7 @@ public:
     const namespace_t *par_namespaces,
     init_func_t par_post_init_func,
     set_param_func_t par_set_param_func,
+    get_param_func_t par_get_param_func,
     log_param_func_t par_log_param_func,
     initialize_component_func_t par_initialize_component_func,
     start_func_t par_start_func,
diff --git a/core/Objid.cc b/core/Objid.cc
index 79fe281c0..77a06a2e7 100644
--- a/core/Objid.cc
+++ b/core/Objid.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -215,11 +215,25 @@ void OBJID::log() const
 
 void OBJID::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "objid value");
-  if (param.get_type()!=Module_Param::MP_Objid) param.type_error("objid value");
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()!=Module_Param::MP_Objid) param.type_error("objid value");
   if (sizeof(objid_element)!=sizeof(int)) TTCN_error("Internal error: OBJID::set_param()");
   clean_up();
-  init_struct(param.get_string_size());
-  memcpy(val_ptr->components_ptr, param.get_string_data(), val_ptr->n_components * sizeof(objid_element));
+  init_struct(mp->get_string_size());
+  memcpy(val_ptr->components_ptr, mp->get_string_data(), val_ptr->n_components * sizeof(objid_element));
+}
+
+Module_Param* OBJID::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  int* val_cpy = (int *)Malloc(val_ptr->n_components);
+  memcpy(val_cpy, val_ptr->components_ptr, val_ptr->n_components * sizeof(int));
+  return new Module_Param_Objid(val_ptr->n_components, val_cpy);
 }
 
 void OBJID::encode_text(Text_Buf& text_buf) const
@@ -742,7 +756,7 @@ OBJID_template& OBJID_template::operator=(const OBJID_template& other_value)
   return *this;
 }
 
-boolean OBJID_template::match(const OBJID& other_value) const
+boolean OBJID_template::match(const OBJID& other_value, boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   switch (template_selection) {
@@ -854,7 +868,8 @@ void OBJID_template::log() const
   log_ifpresent();
 }
 
-void OBJID_template::log_match(const OBJID& match_value) const
+void OBJID_template::log_match(const OBJID& match_value,
+                               boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -870,7 +885,11 @@ void OBJID_template::log_match(const OBJID& match_value) const
 
 void OBJID_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "objid template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -881,15 +900,18 @@ void OBJID_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    OBJID_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Objid:
     if (sizeof(OBJID::objid_element)!=sizeof(int)) TTCN_error("Internal error: OBJID_template::set_param()"); 
-    *this = OBJID(param.get_string_size(), (OBJID::objid_element*)param.get_string_data());
+    *this = OBJID(mp->get_string_size(), (OBJID::objid_element*)mp->get_string_data());
     break;
   //case Module_Param::MP_Objid_Template:
   // TODO
@@ -897,7 +919,47 @@ void OBJID_template::set_param(Module_Param& param) {
   default:
     param.type_error("objid template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* OBJID_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = single_value.get_param(param_name);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void OBJID_template::encode_text(Text_Buf& text_buf) const
@@ -948,13 +1010,13 @@ void OBJID_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean OBJID_template::is_present() const
+boolean OBJID_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean OBJID_template::match_omit() const
+boolean OBJID_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -963,10 +1025,14 @@ boolean OBJID_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -974,7 +1040,8 @@ boolean OBJID_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void OBJID_template::check_restriction(template_res t_res, const char* t_name) const
+void OBJID_template::check_restriction(template_res t_res, const char* t_name,
+                                       boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -986,7 +1053,7 @@ void OBJID_template::check_restriction(template_res t_res, const char* t_name) c
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Objid.hh b/core/Objid.hh
index b2b7489c9..0a51d1eb7 100644
--- a/core/Objid.hh
+++ b/core/Objid.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -71,7 +71,10 @@ public:
 #endif
 
   void log() const;
+  
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
+  
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
@@ -126,7 +129,7 @@ public:
   OBJID_template& operator=(const OPTIONAL<OBJID>& other_value);
   OBJID_template& operator=(const OBJID_template& other_value);
 
-  boolean match(const OBJID& other_value) const;
+  boolean match(const OBJID& other_value, boolean legacy = FALSE) const;
   const OBJID& valueof() const;
 
   int size_of() const;
@@ -135,25 +138,26 @@ public:
   OBJID_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const OBJID& match_value) const;
+  void log_match(const OBJID& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<OBJID*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const OBJID*>(other_value)); }
   Base_Template* clone() const { return new OBJID_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &OBJID_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const OBJID*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const OBJID*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const OBJID*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const OBJID*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Octetstring.cc b/core/Octetstring.cc
index 644ca5096..55c0090fb 100644
--- a/core/Octetstring.cc
+++ b/core/Octetstring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -499,23 +499,59 @@ void OCTETSTRING::log() const
 
 void OCTETSTRING::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "octetstring value");
-  if (param.get_type()!=Module_Param::MP_Octetstring) param.type_error("octetstring value");
-  switch (param.get_operation_type()) {
-  case Module_Param::OT_ASSIGN:
-    clean_up();
-    init_struct(param.get_string_size());
-    memcpy(val_ptr->octets_ptr, param.get_string_data(), val_ptr->n_octets);
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
+  case Module_Param::MP_Octetstring:
+    switch (param.get_operation_type()) {
+    case Module_Param::OT_ASSIGN:
+      clean_up();
+      init_struct(mp->get_string_size());
+      memcpy(val_ptr->octets_ptr, mp->get_string_data(), val_ptr->n_octets);
+      break;
+    case Module_Param::OT_CONCAT:
+      if (is_bound()) {
+        *this += OCTETSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+      } else {
+        *this = OCTETSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
+      }
+      break;
+    default:
+      TTCN_error("Internal error: OCTETSTRING::set_param()");
+    }
     break;
-  case Module_Param::OT_CONCAT:
-    if (is_bound()) {
-      *this += OCTETSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
-    } else {
-      *this = OCTETSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      OCTETSTRING operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      if (param.get_operation_type() == Module_Param::OT_CONCAT) {
+        *this = *this + operand1 + operand2;
+      }
+      else {
+        *this = operand1 + operand2;
+      }
+    }
+    else {
+      param.expr_type_error("a octetstring");
     }
     break;
   default:
-    TTCN_error("Internal error: OCTETSTRING::set_param()");
+    param.type_error("octetstring value");
+    break;
+  }
+}
+
+Module_Param* OCTETSTRING::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
   }
+  unsigned char* val_cpy = (unsigned char *)Malloc(val_ptr->n_octets);
+  memcpy(val_cpy, val_ptr->octets_ptr, val_ptr->n_octets);
+  return new Module_Param_Octetstring(val_ptr->n_octets, val_cpy);
 }
 
 void OCTETSTRING::encode_text(Text_Buf& text_buf) const
@@ -1734,7 +1770,8 @@ const OCTETSTRING_ELEMENT OCTETSTRING_template::operator[](const INTEGER& index_
   return (*this)[(int)index_value];
 }
 
-boolean OCTETSTRING_template::match(const OCTETSTRING& other_value) const
+boolean OCTETSTRING_template::match(const OCTETSTRING& other_value,
+                                    boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   if (!match_length(other_value.val_ptr->n_octets)) return FALSE;
@@ -1883,7 +1920,8 @@ void OCTETSTRING_template::log() const
   log_ifpresent();
 }
 
-void OCTETSTRING_template::log_match(const OCTETSTRING& match_value) const
+void OCTETSTRING_template::log_match(const OCTETSTRING& match_value,
+                                     boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -1899,7 +1937,11 @@ void OCTETSTRING_template::log_match(const OCTETSTRING& match_value) const
 
 void OCTETSTRING_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "octetstring template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -1910,23 +1952,90 @@ void OCTETSTRING_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    OCTETSTRING_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Octetstring:
-    *this = OCTETSTRING(param.get_string_size(), (unsigned char*)param.get_string_data());
+    *this = OCTETSTRING(mp->get_string_size(), (unsigned char*)mp->get_string_data());
     break;
   case Module_Param::MP_Octetstring_Template:
-    *this = OCTETSTRING_template(param.get_string_size(), (unsigned short*)param.get_string_data());
+    *this = OCTETSTRING_template(mp->get_string_size(), (unsigned short*)mp->get_string_data());
+    break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      OCTETSTRING operand1, operand2;
+      operand1.set_param(*mp->get_operand1());
+      operand2.set_param(*mp->get_operand2());
+      *this = operand1 + operand2;
+    }
+    else {
+      param.expr_type_error("a bitstring");
+    }
     break;
   default:
     param.type_error("octetstring template");
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
+}
+
+Module_Param* OCTETSTRING_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = single_value.get_param(param_name);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case STRING_PATTERN: {
+    unsigned short* val_cpy = (unsigned short*)Malloc(pattern_value->n_elements *
+      sizeof(unsigned short));
+    memcpy(val_cpy, pattern_value->elements_ptr, pattern_value->n_elements *
+      sizeof(unsigned short));
+    mp = new Module_Param_Octetstring_Template(pattern_value->n_elements, val_cpy);
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
 }
 
 void OCTETSTRING_template::encode_text(Text_Buf& text_buf) const
@@ -1992,13 +2101,13 @@ void OCTETSTRING_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean OCTETSTRING_template::is_present() const
+boolean OCTETSTRING_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean OCTETSTRING_template::match_omit() const
+boolean OCTETSTRING_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2007,10 +2116,14 @@ boolean OCTETSTRING_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -2018,7 +2131,8 @@ boolean OCTETSTRING_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void OCTETSTRING_template::check_restriction(template_res t_res, const char* t_name) const
+void OCTETSTRING_template::check_restriction(template_res t_res, const char* t_name,
+                                             boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2030,7 +2144,7 @@ void OCTETSTRING_template::check_restriction(template_res t_res, const char* t_n
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Octetstring.hh b/core/Octetstring.hh
index bb1428aab..20d4b73c1 100644
--- a/core/Octetstring.hh
+++ b/core/Octetstring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -113,6 +113,7 @@ public:
 
   void log() const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -249,7 +250,7 @@ public:
   const OCTETSTRING_ELEMENT operator[](int index_value) const;
   const OCTETSTRING_ELEMENT operator[](const INTEGER& index_value) const;
 
-  boolean match(const OCTETSTRING& other_value) const;
+  boolean match(const OCTETSTRING& other_value, boolean legacy = FALSE) const;
   const OCTETSTRING& valueof() const;
 
   int lengthof() const;
@@ -258,25 +259,26 @@ public:
   OCTETSTRING_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const OCTETSTRING& match_value) const;
+  void log_match(const OCTETSTRING& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<OCTETSTRING*>(value)) = valueof(); }
   void set_value(template_sel other_value) { *this = other_value; }
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const OCTETSTRING*>(other_value)); }
   Base_Template* clone() const { return new OCTETSTRING_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &OCTETSTRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const OCTETSTRING*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const OCTETSTRING*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const OCTETSTRING*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const OCTETSTRING*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/Optional.hh b/core/Optional.hh
index 3ac4d32fa..8e1dc2bd9 100644
--- a/core/Optional.hh
+++ b/core/Optional.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -254,6 +254,7 @@ public:
 
   void log() const;
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
@@ -403,6 +404,9 @@ OPTIONAL<T_type>::OPTIONAL(template_sel other_value)
 template<typename T_type>
 OPTIONAL<T_type>::OPTIONAL(const OPTIONAL& other_value)
   : Base_Type(other_value)
+#ifdef TITAN_RUNTIME_2
+  , RefdIndexInterface(other_value)
+#endif     
   , optional_value(NULL)
   , optional_selection(other_value.optional_selection)
 #ifdef TITAN_RUNTIME_2
@@ -739,6 +743,23 @@ void OPTIONAL<T_type>::set_param(Module_Param& param) {
   optional_value->set_param(param);
 }
 
+template <typename T_type>
+Module_Param* OPTIONAL<T_type>::get_param(Module_Param_Name& param_name) const
+{
+#ifdef TITAN_RUNTIME_2
+  switch (get_selection()) {
+#else
+  switch (optional_selection) {
+#endif
+  case OPTIONAL_PRESENT:
+    return optional_value->get_param(param_name);
+  case OPTIONAL_OMIT:
+    return new Module_Param_Omit();
+  default:
+    return new Module_Param_Unbound();
+  }
+}
+
 template<typename T_type>
 void OPTIONAL<T_type>::encode_text(Text_Buf& text_buf) const
 {
@@ -1034,6 +1055,9 @@ OPTIONAL<T_type>::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
           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);
+          if (!optional_value->is_bound()) {
+            set_to_omit();
+          }
         }
         else break; // it's not us, bail
 
diff --git a/core/Parallel_main.cc b/core/Parallel_main.cc
index 2f6bdd22e..775f291a4 100644
--- a/core/Parallel_main.cc
+++ b/core/Parallel_main.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -40,7 +40,6 @@ const char * stored_argv = "Unidentified program";
 
 void signal_handler(int signum)
 {
-  int retval;
   time_t now=time(0);
   char ts[60];
   ts[0]='\0';
@@ -49,12 +48,6 @@ void signal_handler(int signum)
   if(tmp==NULL){
     fprintf(stderr,"<Unknown> %s: %s\n",stored_argv, signum==SIGABRT?"Abort was called":"Segmentation fault occurred");
   } else {
-/*  retval = write(STDERR_FILENO, stored_argv, strlen(stored_argv));
-  retval = write(STDERR_FILENO, segfault , sizeof(segfault)-1); // sizeof includes \0
-  fflush(stderr);
-  (void)retval;
-*/
-    retval=strftime(ts,60,"%F %T",tmp);
     fprintf(stderr,"%s %s: %s\n",ts,stored_argv,signum==SIGABRT?"Abort was called":"Segmentation fault occurred");
   }
   fflush(stderr);
diff --git a/core/Param_Types.cc b/core/Param_Types.cc
index 67011c3ed..847bf3bfc 100644
--- a/core/Param_Types.cc
+++ b/core/Param_Types.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -25,6 +25,7 @@
 #include "Charstring.hh"
 #include "Universal_charstring.hh"
 #include "Logger.hh"
+#include "Module_list.hh"
 
 
 size_t Module_Param_Id::get_index() const {
@@ -73,6 +74,10 @@ char* Module_Param_Index::get_str() const {
   return mprintf("[%lu]", (unsigned long)index);
 }
 
+char* Module_Param_CustomName::get_str() const {
+  return mcopystr(name);
+}
+
 void Module_Param_Length_Restriction::log() const {
   TTCN_Logger::log_event(" length(%lu", (unsigned long)min);
   if (min!=max) {
@@ -241,6 +246,164 @@ char* Module_Param::get_enumerated() const {
   return NULL;
 }
 
+Module_Param_Ptr Module_Param::get_referenced_param() const {
+  TTCN_error("Internal error: Module_Param::get_referenced_param()");
+  return NULL;
+}
+
+Module_Param::expression_operand_t Module_Param::get_expr_type() const { 
+  TTCN_error("Internal error: Module_Param::get_expr_type()");
+  return EXPR_ERROR;
+}
+
+const char* Module_Param::get_expr_type_str() const {
+  TTCN_error("Internal error: Module_Param::get_expr_type_str()");
+  return NULL;
+}
+
+Module_Param* Module_Param::get_operand1() const {
+  TTCN_error("Internal error: Module_Param::get_operand1()");
+  return NULL;
+}
+
+Module_Param* Module_Param::get_operand2() const {
+  TTCN_error("Internal error: Module_Param::get_operand2()");
+  return NULL;
+}
+
+Module_Param_Ptr::Module_Param_Ptr(Module_Param* p) {
+  ptr = new module_param_ptr_struct;
+  ptr->mp_ptr = p;
+  ptr->temporary = FALSE;
+  ptr->ref_count = 1;
+}
+
+
+Module_Param_Ptr::Module_Param_Ptr(const Module_Param_Ptr& r)
+: ptr(r.ptr) {
+  ++ptr->ref_count;
+}
+
+void Module_Param_Ptr::clean_up() {
+  if (ptr->ref_count == 1) {
+    if (ptr->temporary) {
+      delete ptr->mp_ptr;
+    }
+    delete ptr;
+  }
+  else {
+    --ptr->ref_count;
+  }
+}
+
+Module_Param_Ptr& Module_Param_Ptr::operator=(const Module_Param_Ptr& r) {
+  clean_up();
+  ptr = r.ptr;
+  ++ptr->ref_count;
+  return *this;
+}
+
+Module_Param_Reference::Module_Param_Reference(Module_Param_Name* p): mp_ref(p) {
+  if (mp_ref == NULL) {
+    TTCN_error("Internal error: Module_Param_Reference::Module_Param_Reference()");
+  }
+}
+
+Module_Param_Ptr Module_Param_Reference::get_referenced_param() const {
+  mp_ref->reset();
+  Module_Param_Ptr ptr = Module_List::get_param(*mp_ref);
+  ptr.set_temporary();
+  return ptr;
+}
+
+char* Module_Param_Reference::get_enumerated() const {
+  if (mp_ref->is_single_name()) {
+    return mp_ref->get_current_name();
+  }
+  return NULL;
+}
+
+void Module_Param_Reference::log_value() const {
+  TTCN_Logger::log_event_str(mp_ref->get_str());
+}
+
+void Module_Param_Unbound::log_value() const {
+  TTCN_Logger::log_event_str("<unbound>");
+}
+
+Module_Param_Expression::Module_Param_Expression(expression_operand_t p_type,
+  Module_Param* p_op1, Module_Param* p_op2)
+: expr_type(p_type), operand1(p_op1), operand2(p_op2) {
+  if (operand1 == NULL || operand2 == NULL) {
+    TTCN_error("Internal error: Module_Param_Expression::Module_Param_Expression()");
+  }
+  operand1->set_parent(this);
+  operand2->set_parent(this);
+}
+
+Module_Param_Expression::Module_Param_Expression(Module_Param* p_op)
+: expr_type(EXPR_NEGATE), operand1(p_op), operand2(NULL) {
+  if (operand1 == NULL) {
+    TTCN_error("Internal error: Module_Param_Expression::Module_Param_Expression()");
+  }
+  operand1->set_parent(this);
+}
+
+Module_Param_Expression::~Module_Param_Expression() {
+  delete operand1;
+  if (operand2 != NULL) {
+    delete operand2;
+  }
+}
+
+const char* Module_Param_Expression::get_expr_type_str() const {
+  switch (expr_type) {
+  case EXPR_ADD:
+    return "Adding (+)";
+  case EXPR_SUBTRACT:
+    return "Subtracting (-)";
+  case EXPR_MULTIPLY:
+    return "Multiplying (*)";
+  case EXPR_DIVIDE:
+    return "Dividing (/)";
+  case EXPR_NEGATE:
+    return "Negating (-)";
+  case EXPR_CONCATENATE:
+    return "Concatenating (&)";
+  default:
+    return NULL;
+  }
+}
+
+void Module_Param_Expression::log_value() const {
+  if (expr_type == EXPR_NEGATE) {
+    TTCN_Logger::log_event_str("- ");
+  }
+  operand1->log_value();
+  switch (expr_type) {
+  case EXPR_ADD:
+    TTCN_Logger::log_event_str(" + ");
+    break;
+  case EXPR_SUBTRACT:
+    TTCN_Logger::log_event_str(" - ");
+    break;
+  case EXPR_MULTIPLY:
+    TTCN_Logger::log_event_str(" * ");
+    break;
+  case EXPR_DIVIDE:
+    TTCN_Logger::log_event_str(" / ");
+    break;
+  case EXPR_CONCATENATE:
+    TTCN_Logger::log_event_str(" & ");
+    break;
+  default:
+    break;
+  }
+  if (expr_type != EXPR_NEGATE) {
+    operand2->log_value();
+  }
+}
+
 void Module_Param_NotUsed::log_value() const {
   TTCN_Logger::log_event_str("-");
 }
@@ -442,11 +605,19 @@ char* Module_Param::get_param_context() const {
 
 void Module_Param::error(const char* err_msg, ...) const {
   if (Ttcn_String_Parsing::happening()) {
-    char* exception_str = mcopystr("Error while setting parameter field '");
-    char* param_ctx = get_param_context();
+    char* exception_str = mcopystr("Error while setting ");
+    char* param_ctx;
+    if (id && id->is_custom()) {
+      param_ctx = mputstr(id->get_str(), " in module parameter");
+    }
+    else {
+      char* tmp = get_param_context();
+      param_ctx = mprintf("parameter field '%s'", tmp ? tmp : "<NULL pointer>");
+      Free(tmp);
+    }
     exception_str = mputstr(exception_str, param_ctx);
     Free(param_ctx);
-    exception_str = mputstr(exception_str, "': ");
+    exception_str = mputstr(exception_str, ": ");
     va_list p_var;
     va_start(p_var, err_msg);
     char* error_msg_str = mprintf_va_list(err_msg, p_var);
@@ -464,13 +635,23 @@ void Module_Param::error(const char* err_msg, ...) const {
   case OT_CONCAT: TTCN_Logger::log_event_str("concatenating"); break;
   default: TTCN_Logger::log_event_str("???");
   }
-  TTCN_Logger::log_event_str(" parameter field '");
-  char* param_ctx = get_param_context();
-  TTCN_Logger::log_event_str(param_ctx);
-  Free(param_ctx);
+  TTCN_Logger::log_event_str(" ");
+  if (id && id->is_custom()) {
+    char* custom_ctx = id->get_str();
+    TTCN_Logger::log_event_str(custom_ctx);
+    Free(custom_ctx);
+    TTCN_Logger::log_event_str(" in module parameter");
+  }
+  else {
+    TTCN_Logger::log_event_str("parameter field '");
+    char* param_ctx = get_param_context();
+    TTCN_Logger::log_event_str(param_ctx);
+    Free(param_ctx);
+    TTCN_Logger::log_event_str("'");
+  }
   switch (operation_type) {
-  case OT_ASSIGN: TTCN_Logger::log_event_str("' to '"); break;
-  case OT_CONCAT: TTCN_Logger::log_event_str("' and '"); break;
+  case OT_ASSIGN: TTCN_Logger::log_event_str(" to '"); break;
+  case OT_CONCAT: TTCN_Logger::log_event_str(" and '"); break;
   default: TTCN_Logger::log_event_str("' ??? '");
   }
   log(false);
@@ -484,4 +665,20 @@ void Module_Param::error(const char* err_msg, ...) const {
   throw TC_Error();
 }
 
+void Module_Param::type_error(const char* expected, const char* type_name /* = NULL */) const {
+  const Module_Param* reporter = this;
+  // if it's an expression, find its head and use that to report the error
+  // (since that's the only parameter with a valid name)
+  while (reporter->parent != NULL && reporter->parent->get_type() == MP_Expression) {
+    reporter = reporter->parent;
+  }
+  // either use this parameter's or the referenced parameter's type string
+  // (but never the head's type string)
+  reporter->error("Type mismatch: %s or reference to %s was expected%s%s instead of %s%s.",
+    expected, expected,
+    (type_name != NULL) ? " for type " : "", (type_name != NULL) ? type_name : "",
+    (get_type() == MP_Reference) ? "reference to " : "",
+    (get_type() == MP_Reference) ? get_referenced_param()->get_type_str() : get_type_str());
+}
+
 bool Ttcn_String_Parsing::string_parsing = false;
diff --git a/core/Param_Types.hh b/core/Param_Types.hh
index 2086d4c2f..84e6aeba3 100644
--- a/core/Param_Types.hh
+++ b/core/Param_Types.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -40,8 +40,6 @@ struct param_charstring_t {
 struct param_universal_charstring_t {
   int n_uchars;
   universal_char *uchars_ptr;
-  int n_quads;
-  int *quad_positions;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -54,6 +52,7 @@ public:
   virtual ~Module_Param_Id() {}
   virtual bool is_explicit() const = 0;
   virtual bool is_index() const { return false; }
+  virtual bool is_custom() const { return false; }
   virtual size_t get_index() const;
   virtual char* get_name() const;
   virtual char* get_current_name() const;
@@ -79,6 +78,8 @@ public:
     pos += offset;
     return true;
   }
+  void reset() { pos = 0; }
+  boolean is_single_name() const { return names.size() == 1; }
   char* get_str() const;
 };
 
@@ -103,6 +104,23 @@ public:
   char* get_str() const;
 };
 
+/** Custom module parameter name class, used in Module_Param instances that aren't
+  * actual module parameters (length boundaries, array indexes and character codes in
+  * quadruples use temporary Module_Param instances to allow the use of expressions
+  * and references to module parameters).
+  * Errors reported in these cases will contain the custom text set in this class,
+  * instead of the regular error message header. */
+class Module_Param_CustomName : public Module_Param_Id {
+  char* name; // owned expstring_t
+public:
+  Module_Param_CustomName(char* p): name(p) {}
+  ~Module_Param_CustomName() { Free(name); }
+  char* get_name() const { return name; }
+  bool is_explicit() const { return true; }
+  char* get_str() const;
+  bool is_custom() const { return true; }
+};
+
 ///////////////////////////////////////////////////////////////////////////////
 
 class Module_Param_Length_Restriction {
@@ -125,6 +143,9 @@ public:
 
 ///////////////////////////////////////////////////////////////////////////////
 
+// forward declaration
+class Module_Param_Ptr;
+
 class Module_Param {
   Module_Param(const Module_Param& p); // copy constructor disabled
   Module_Param& operator=(const Module_Param& p); // assignment disabled
@@ -164,7 +185,10 @@ public:
   MP_ComplementList_Template,
   MP_Superset_Template,
   MP_Subset_Template,
-  MP_Permutation_Template
+  MP_Permutation_Template,
+  MP_Reference,
+  MP_Unbound,
+  MP_Expression
   };
   enum operation_type_t { OT_ASSIGN, OT_CONCAT };
   enum basic_check_bits_t { // used to parametrize basic_check()
@@ -172,6 +196,15 @@ public:
     BC_LIST =     0x01, // list values and templates
     BC_TEMPLATE = 0x02  // templates
   };
+  enum expression_operand_t { // expression types for MP_Expression
+    EXPR_ERROR, // for reporting errors
+    EXPR_ADD,
+    EXPR_SUBTRACT,
+    EXPR_MULTIPLY,
+    EXPR_DIVIDE,
+    EXPR_CONCATENATE,
+    EXPR_NEGATE // only operand1 is used
+  };
 
 protected:
   operation_type_t operation_type;
@@ -207,13 +240,13 @@ public:
   void error(const char* err, ...) const
     __attribute__ ((__format__ (__printf__, 2, 3), __noreturn__));
 
-  inline void type_error(const char* expected) const
-    __attribute__ ((__noreturn__)) {
-    error("Type mismatch: %s was expected instead of %s.", expected, get_type_str());
-  }
-  inline void type_error(const char* cfg_type, const char* real_type) const
+  void type_error(const char* expected, const char* type_name = NULL) const
+    __attribute__ ((__noreturn__));
+
+  inline void expr_type_error(const char* type_name) const
     __attribute__ ((__noreturn__)) {
-    error("Type mismatch: %s was expected for type %s instead of %s.", cfg_type, real_type, get_type_str());
+    error("%s is not allowed in %s expression.",
+      get_expr_type_str(), type_name);
   }
 
   // check and error report function for operation type, ifpresent and length restriction
@@ -242,6 +275,81 @@ public:
   virtual char* get_pattern() const;
   virtual verdicttype get_verdict() const;
   virtual char* get_enumerated() const;
+  virtual Module_Param_Ptr get_referenced_param() const;
+  virtual expression_operand_t get_expr_type() const;
+  virtual const char* get_expr_type_str() const;
+  virtual Module_Param* get_operand1() const;
+  virtual Module_Param* get_operand2() const;
+};
+
+/** Smart pointer class for Module_Param instances
+  * Uses a reference counter so the Module_Param object is never copied.
+  * Deletes the object (if it's temporary), when the reference counter reaches zero. */
+class Module_Param_Ptr {
+  struct module_param_ptr_struct {
+    Module_Param* mp_ptr;
+    boolean temporary;
+    int ref_count;
+  } *ptr;
+  void clean_up();
+public:
+  Module_Param_Ptr(Module_Param* p);
+  Module_Param_Ptr(const Module_Param_Ptr& r);
+  ~Module_Param_Ptr() { clean_up(); }
+  Module_Param_Ptr& operator=(const Module_Param_Ptr& r);
+  void set_temporary() { ptr->temporary = TRUE; }
+  Module_Param& operator*() { return *ptr->mp_ptr; }
+  Module_Param* operator->() { return ptr->mp_ptr; }
+};
+
+/** Module parameter reference (and enumerated value)
+  * Stores a reference to another module parameter, that can be retrieved with the
+  * method get_referenced_param().
+  * @note Enumerated values are stored as references (with only 1 name segment),
+  * since the parser cannot distinguish them. */
+class Module_Param_Reference : public Module_Param {
+  Module_Param_Name* mp_ref;
+public:
+  type_t get_type() const { return MP_Reference; }
+  Module_Param_Reference(Module_Param_Name* p);
+  ~Module_Param_Reference() { delete mp_ref; }
+  Module_Param_Ptr get_referenced_param() const;
+  char* get_enumerated() const;
+  const char* get_type_str() const { return "module parameter reference"; }
+  void log_value() const;
+};
+
+/** Unbound module parameter
+  * This cannot be created by the parser, only by get_referenced_param(), when
+  * the referenced module parameter is unbound. */
+class Module_Param_Unbound : public Module_Param {
+  type_t get_type() const { return MP_Unbound; }
+  const char* get_type_str() const { return "<unbound>"; }
+  void log_value() const;
+};
+
+/** Module parameter expression
+  * Contains an unprocessed module parameter expression with one or two operands.
+  * Expression types:
+  * with 2 operands: +, -, *, /, &
+  * with 1 operand: - (unary + is handled by the parser). */
+class Module_Param_Expression : public Module_Param {
+private:
+  expression_operand_t expr_type;
+  Module_Param* operand1;
+  Module_Param* operand2;
+public:
+  Module_Param_Expression(expression_operand_t p_type, Module_Param* p_op1,
+    Module_Param* p_op2);
+  Module_Param_Expression(Module_Param* p_op);
+  ~Module_Param_Expression();
+  expression_operand_t get_expr_type() const { return expr_type; }
+  const char* get_expr_type_str() const;
+  Module_Param* get_operand1() const { return operand1; }
+  Module_Param* get_operand2() const { return operand2; }
+  type_t get_type() const { return MP_Expression; }
+  const char* get_type_str() const { return "expression"; }
+  void log_value() const;
 };
 
 class Module_Param_NotUsed : public Module_Param {
@@ -352,19 +460,12 @@ public:
 };
 
 class Module_Param_Universal_Charstring : public Module_Param_String<universal_char> {
-  /** Number of characters in this string that were added with the quadruple notation */
-  int n_quads;
-  /** Positions of quadruple characters in the string */
-  int* quad_positions;
 public:
   type_t get_type() const { return MP_Universal_Charstring; }
-  Module_Param_Universal_Charstring(int p_n, universal_char* p_c, int p_nq, int* p_qp)
-  : Module_Param_String<universal_char>(p_n, p_c), n_quads(p_nq), quad_positions(p_qp) {}
-  ~Module_Param_Universal_Charstring() { Free(quad_positions); }
+  Module_Param_Universal_Charstring(int p_n, universal_char* p_c)
+  : Module_Param_String<universal_char>(p_n, p_c) {}
   const char* get_type_str() const { return "universal charstring"; }
   void log_value() const;
-  int get_nof_quads() const { return n_quads; }
-  int get_quad_pos(int p_idx) const { return quad_positions[p_idx]; }
 };
 
 class Module_Param_Enumerated : public Module_Param {
diff --git a/core/Parameters.h b/core/Parameters.h
index 572a751f1..ba730953b 100644
--- a/core/Parameters.h
+++ b/core/Parameters.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Port.cc b/core/Port.cc
index 4b1f08bb3..fc22f55ec 100644
--- a/core/Port.cc
+++ b/core/Port.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Port.hh b/core/Port.hh
index e763192d9..35d2e5123 100644
--- a/core/Port.hh
+++ b/core/Port.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/ProfMerge_main.cc b/core/ProfMerge_main.cc
new file mode 100644
index 000000000..8504ae315
--- /dev/null
+++ b/core/ProfMerge_main.cc
@@ -0,0 +1,231 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <getopt.h>
+#include <string.h>
+#include "ProfilerTools.hh"
+#include "version_internal.h"
+
+#ifdef LICENSE
+#include "license.h"
+#endif
+
+/** the name of the executable */
+const char* program_name;
+
+/** error flag, set automatically when an error occurs */
+boolean erroneous = FALSE;
+
+/** prints usage information */
+void usage()
+{
+  fprintf(stderr,
+    "usage:	%s [-pc] [-o file] [-s file] [-f filter] db_file1 [db_file2 ...]\n"
+    "	or %s -v\n\n"
+    "options:\n"
+    "	-p:		discard profiling data\n"
+    "	-c:		discard code coverage data\n"
+    "	-o file:	write merged database into file\n"
+    "	-s file:	generate statistics file from merged database\n"
+    "	-f filter:	filter the generated statistics file (the filter is a hexadecimal number)\n"
+    "	-v:		show version\n", program_name, program_name);
+}
+
+/** displays an error message and sets the erroneous flag */
+void error(const char *fmt, ...)
+{
+  fprintf(stderr, "%s: error: ", program_name);
+  va_list parameters;
+  va_start(parameters, fmt);
+  vfprintf(stderr, fmt, parameters);
+  va_end(parameters);
+  putc('\n', stderr);
+  fflush(stderr);
+  erroneous = TRUE;
+}
+
+/** checks if the specified file exists */
+boolean file_exists(const char* p_filename)
+{
+  FILE* file = fopen(p_filename, "r");
+  if (NULL != file) {
+    fclose(file);
+    return TRUE;
+  }
+  return FALSE;
+}
+
+
+int main(int argc, char* argv[])
+{
+  // store the executable name
+  program_name = argv[0];
+  
+  // initialize variables for command line options
+  const char* out_file = NULL;
+  const char* stats_file = NULL;
+  boolean disable_profiler = FALSE;
+  boolean disable_coverage = FALSE;
+  unsigned int stats_flags = Profiler_Tools::STATS_ALL;
+  boolean has_stats_flag = FALSE;
+  boolean print_version = FALSE;
+  
+  if (1 == argc) {
+    // no command line options
+    usage();
+    return EXIT_FAILURE;
+  }
+  
+  for (;;) {
+    // read the next command line option (and its argument)
+    int c = getopt(argc, argv, "o:s:pcf:v");
+    if (-1 == c) {
+      break;
+    }
+    switch (c) {
+    case 'o': // output database file
+      out_file = optarg;
+      break;
+    case 's': // statistics file
+      stats_file = optarg;
+      break;
+    case 'p':
+      disable_profiler = TRUE;
+      break;
+    case 'c':
+      disable_coverage = TRUE;
+      break;
+    case 'f': { // statistics filter (hex number)
+      has_stats_flag = TRUE;
+      size_t len = strlen(optarg);
+      size_t start = 0;
+      if (len > STATS_MAX_HEX_DIGITS) {
+        // the rest of the bits are not needed, and stats_flags might run out of bits
+        start = len - STATS_MAX_HEX_DIGITS;
+      }
+      stats_flags = 0;
+      // extract the hex digits from the argument
+      for (size_t i = start; i < len; ++i) {
+        stats_flags *= 16;
+        if ('0' <= optarg[i] && '9' >= optarg[i]) {
+          stats_flags += optarg[i] - '0';
+        }
+        else if ('a' <= optarg[i] && 'f' >= optarg[i]) {
+          stats_flags += optarg[i] - 'a' + 10;
+        }
+        else if ('A' <= optarg[i] && 'F' >= optarg[i]) {
+          stats_flags += optarg[i] - 'A' + 10;
+        }
+        else {
+          error("Invalid statistics filter. Expected hexadecimal value.");
+          return EXIT_FAILURE;
+        }
+      }
+      break; }
+    case 'v':
+      print_version = TRUE;
+      break;
+    default:
+      usage();
+      return EXIT_FAILURE;
+    }
+  }
+  
+  if (print_version) {
+    // no other flags are allowed when printing version info
+    if (disable_profiler || disable_coverage || has_stats_flag ||
+        NULL != out_file || NULL != stats_file) {
+      usage();
+      return EXIT_FAILURE;
+    }
+    else {
+      fputs("Profiler and Code Coverage Merge Tool for the TTCN-3 Test Executor\n"
+	    "Product number: " PRODUCT_NUMBER "\n"
+	    "Build date: " __DATE__ " " __TIME__ "\n"
+	    "Compiled with: " C_COMPILER_VERSION "\n\n"
+	    COPYRIGHT_STRING "\n\n", stderr);
+#ifdef LICENSE
+      print_license_info();
+#endif
+      return EXIT_SUCCESS;
+    }
+  }
+  
+  if (optind == argc) {
+    error("No input files specified.");
+    usage();
+    return EXIT_FAILURE;
+  }
+  
+  if (disable_profiler && disable_coverage) {
+    error("Both profiling and code coverage data are discarded, nothing to do.");
+    return EXIT_FAILURE;
+  }
+  
+  if (NULL == out_file && NULL == stats_file) {
+    error("No output files specified (either the output database file or the "
+      "statistics file must be set).");
+    usage();
+    return EXIT_FAILURE;
+  }
+  
+  if (has_stats_flag && NULL == stats_file) {
+    fprintf(stderr, "Notify: No statistics file specified, the statistics filter "
+      "will be ignored.");
+  }
+  
+  // create the local database
+  Profiler_Tools::profiler_db_t profiler_db;
+  
+  for (int i = optind; i < argc; i++) {
+    // import each input file's contents into the local database
+    fprintf(stderr, "Notify: Importing database file '%s'...\n", argv[i]);
+    Profiler_Tools::import_data(profiler_db, argv[i], FALSE, error);
+    if (erroneous) {
+      // an import failed -> exit
+      return EXIT_FAILURE;
+    }
+  }
+
+  boolean out_file_success = TRUE;
+  if (NULL != out_file) {
+    // print the local database into the output file
+    boolean update = file_exists(out_file);
+    Profiler_Tools::export_data(profiler_db, out_file, disable_profiler,
+      disable_coverage, error);
+    out_file_success = !erroneous;
+    if (out_file_success) {
+      fprintf(stderr, "Notify: Database file '%s' was %s.\n", out_file,
+        update ? "updated" : "generated");
+    }
+  }
+  
+  boolean stats_file_success = TRUE;
+  if (NULL != stats_file) {
+    // reset the error flag, in case export_data failed
+    erroneous = FALSE;
+    // print the statistics into the designated file
+    boolean update = file_exists(stats_file);
+    Profiler_Tools::print_stats(profiler_db, stats_file, disable_profiler,
+      disable_coverage, stats_flags, error);
+    stats_file_success = !erroneous;
+    if (stats_file_success) {
+      fprintf(stderr, "Notify: Statistics file '%s' was %s.\n", stats_file,
+        update ? "updated" : "generated");
+    }
+  }
+  
+  // return an error code if printing either output file failed
+  return (out_file_success && stats_file_success) ? EXIT_SUCCESS : EXIT_FAILURE;
+}
+
+// this is needed by version.h
+reffer::reffer(const char*) {}
diff --git a/core/Profiler.cc b/core/Profiler.cc
index e9d3b9f8d..061f9d19d 100644
--- a/core/Profiler.cc
+++ b/core/Profiler.cc
@@ -10,81 +10,12 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include "JSON_Tokenizer.hh"
+#include <unistd.h>
+#include <pwd.h>
 #include "memory.h"
 #include "Runtime.hh"
-#include <unistd.h>
 #include "Component.hh"
 
-////////////////////////////////////
-//////// timeval operations ////////
-////////////////////////////////////
-
-/** Reads a timeval value from the given string. The parameter must contain the
-  * string representation of a real number with 6 digits after the decimal dot. */
-static timeval string2timeval(const char* str)
-{
-  // read and store the first part (atoi will read until the decimal dot)
-  long int sec = atoi(str);
-  timeval tv;
-  tv.tv_sec = sec;
-
-  do {
-    // step over each digit
-    sec /= 10;
-    ++str;
-  }
-  while (sec > 9);
-
-  // step over the decimal dot and read the second part of the number
-  tv.tv_usec = atoi(str + 1);
-  return tv;
-}
-
-/** Returns the string representation of a real number (with 6 digits after the
-  * decimal dot) equivalent to the timeval parameter. 
-  * The returned character pointer needs to be freed. */
-static char* timeval2string(timeval tv)
-{
-  // convert the first part and set the second part to all zeros
-  char* str = mprintf("%ld.000000", tv.tv_sec);
-  
-  // go through each digit of the second part and add them to the zeros in the string
-  size_t pos = mstrlen(str) - 1;
-  while (tv.tv_usec > 0) {
-    str[pos] += tv.tv_usec % 10;
-    tv.tv_usec /= 10;
-    --pos;
-  }
-  return str;
-}
-
-/** Adds the two timeval parameters together and returns the result. */
-static timeval add_timeval(const timeval operand1, const timeval operand2)
-{
-  timeval tv;
-  tv.tv_usec = operand1.tv_usec + operand2.tv_usec;
-  tv.tv_sec = operand1.tv_sec + operand2.tv_sec;
-  if (tv.tv_usec >= 1000000) {
-    ++tv.tv_sec;
-    tv.tv_usec -= 1000000;
-  }
-  return tv;
-}
-
-/** Subtracts the second timeval parameter from the first one and returns the result. */
-static timeval subtract_timeval(const timeval operand1, const timeval operand2)
-{
-  timeval tv;
-  tv.tv_usec = operand1.tv_usec - operand2.tv_usec;
-  tv.tv_sec = operand1.tv_sec - operand2.tv_sec;
-  if (tv.tv_usec < 0) {
-    --tv.tv_sec;
-    tv.tv_usec += 1000000;
-  }
-  return tv;
-}
-
 ////////////////////////////////////
 ////////// TTCN3_Profiler //////////
 ////////////////////////////////////
@@ -93,7 +24,7 @@ TTCN3_Profiler ttcn3_prof;
 
 TTCN3_Profiler::TTCN3_Profiler()
 : stopped(FALSE), disable_profiler(FALSE), disable_coverage(FALSE)
-, aggregate_data(FALSE), disable_stats(FALSE), stats_flags(STATS_ALL)
+, aggregate_data(FALSE), disable_stats(FALSE), stats_flags(Profiler_Tools::STATS_ALL)
 {
   database_filename = mcopystr("profiler.db");
   stats_filename = mcopystr("profiler.stats");
@@ -102,7 +33,8 @@ TTCN3_Profiler::TTCN3_Profiler()
 
 TTCN3_Profiler::~TTCN3_Profiler()
 {
-  if (!profiler_db.empty() && (!disable_profiler || !disable_coverage)) {
+  if (!profiler_db.empty() && !TTCN_Runtime::is_undefined() &&
+      (!disable_profiler || !disable_coverage)) {
     if (aggregate_data && (TTCN_Runtime::is_single() || TTCN_Runtime::is_hc())) {
       // import the data from the previous run
       import_data();
@@ -110,9 +42,8 @@ TTCN3_Profiler::~TTCN3_Profiler()
     if (TTCN_Runtime::is_hc()) {
       // import the data gathered by the other processes (the import function
       // waits for them to finish exporting)
-      import_data(MTC_COMPREF);
-      for (size_t i = 0; i < ptc_list.size(); ++i) {
-        import_data(ptc_list[i]);
+      for (size_t i = 0; i < component_list.size(); ++i) {
+        import_data(component_list[i]);
       }
     }
     export_data();
@@ -143,7 +74,7 @@ void TTCN3_Profiler::stop()
   if (!stopped) {
     if (NULL != prev_file) {
       // update the previous line's time
-      timeval elapsed = subtract_timeval(get_time(), prev_time);
+      timeval elapsed = Profiler_Tools::subtract_timeval(get_time(), prev_time);
       add_line_time(elapsed, get_element(prev_file), prev_line);
       TTCN3_Stack_Depth::update_stack_elapsed(elapsed);
     }
@@ -161,10 +92,54 @@ void TTCN3_Profiler::set_disable_coverage(boolean p_disable_coverage)
   disable_coverage = p_disable_coverage;
 }
 
+// handles metacharacters in the database or statistics file name
+static char* finalize_filename(const char* p_filename_skeleton)
+{
+  size_t len = strlen(p_filename_skeleton);
+  size_t next_idx = 0;
+  char* ret_val = NULL;
+  for (size_t i = 0; i < len - 1; ++i) {
+    if ('%' == p_filename_skeleton[i]) {
+      ret_val = mputstrn(ret_val, p_filename_skeleton + next_idx, i - next_idx);
+      switch (p_filename_skeleton[i + 1]) {
+      case 'e': // %e -> executable name
+        ret_val = mputstr(ret_val, TTCN_Logger::get_executable_name());
+        break;
+      case 'h': // %h -> host name
+        ret_val = mputstr(ret_val, TTCN_Runtime::get_host_name());
+        break;
+      case 'p': // %p -> process ID
+        ret_val = mputprintf(ret_val, "%ld", (long)getpid());
+        break;
+      case 'l': { // %l -> login name
+        setpwent();
+        struct passwd *p = getpwuid(getuid());
+        if (NULL != p) {
+          ret_val = mputstr(ret_val, p->pw_name);
+        }
+        endpwent();
+        break; }
+      case '%': // %% -> single %
+        ret_val = mputc(ret_val, '%');
+        break;
+      default: // unknown sequence -> leave it as it is 
+        ret_val = mputstrn(ret_val, p_filename_skeleton + i, 2);
+        break;
+      }
+      next_idx = i + 2;
+      ++i;
+    }
+  }
+  if (next_idx < len) {
+    ret_val = mputstr(ret_val, p_filename_skeleton + next_idx);
+  }
+  return ret_val;
+}
+
 void TTCN3_Profiler::set_database_filename(const char* p_database_filename)
 {
   Free(database_filename);
-  database_filename = mcopystr(p_database_filename);
+  database_filename = finalize_filename(p_database_filename);
 }
 
 void TTCN3_Profiler::set_aggregate_data(boolean p_aggregate_data)
@@ -175,7 +150,7 @@ void TTCN3_Profiler::set_aggregate_data(boolean p_aggregate_data)
 void TTCN3_Profiler::set_stats_filename(const char* p_stats_filename)
 {
   Free(stats_filename);
-  stats_filename = mcopystr(p_stats_filename);
+  stats_filename = finalize_filename(p_stats_filename);
 }
 
 void TTCN3_Profiler::set_disable_stats(boolean p_disable_stats)
@@ -203,17 +178,11 @@ boolean TTCN3_Profiler::is_running() const
   return !stopped;
 }
 
-void TTCN3_Profiler::add_ptc(component p_comp_ref)
+void TTCN3_Profiler::add_component(component p_comp_ref)
 {
-  ptc_list.push_back(p_comp_ref);
+  component_list.push_back(p_comp_ref);
 }
 
-#define IMPORT_FORMAT_ERROR(cond) \
-  if (cond) { \
-    TTCN_warning("Database format is invalid. Profiler and/or code coverage data will not be loaded."); \
-    return; \
-  }
-
 void TTCN3_Profiler::import_data(component p_comp_ref /* = NULL_COMPREF */)
 {
   char* file_name = NULL;
@@ -231,240 +200,14 @@ void TTCN3_Profiler::import_data(component p_comp_ref /* = NULL_COMPREF */)
     file_name = mprintf("%s.%d", database_filename, p_comp_ref);
   }
   
-  // open the file, if it exists
-  int file_size = 0;
-  FILE* file = fopen(file_name, "r");
-  if (NULL != file) {
-    // get the file size
-    fseek(file, 0, SEEK_END);
-    file_size = ftell(file);
-  }
-  while (0 == file_size) {
-    if (NULL_COMPREF == p_comp_ref) {
-      // no data from the previous run
-      return;
-    }
-    // as for the process-specific database files: keep reading until it appears
-    if (NULL != file) {
-      fclose(file);
-    }
-    usleep(1000);
-    file = fopen(file_name, "r");
-    if (NULL != file) {
-      // refresh the file size
-      fseek(file, 0, SEEK_END);
-      file_size = ftell(file);
-    }
-  }
-  
-  // rewind the file (the file pointer has been moved to the end of the file to
-  // calculate its size)
-  rewind(file);
-  
-  // read the entire file into a character buffer
-  char* buffer = (char*)Malloc(file_size);
-  fread(buffer, 1, file_size, file);
-  fclose(file);
+  Profiler_Tools::import_data(profiler_db, file_name, NULL_COMPREF != p_comp_ref,
+    TTCN_warning);
   
   if (NULL_COMPREF != p_comp_ref) {
     // the process-specific database file is no longer needed
     remove(file_name);
     Free(file_name);
   }
-  
-  // initialize a JSON tokenizer with the buffer
-  JSON_Tokenizer json(buffer, file_size);
-  Free(buffer);
-  
-  // attempt to read tokens from the buffer
-  // if the format is invalid, abort the importing process
-  json_token_t token = JSON_TOKEN_NONE;
-  char* value = NULL;
-  size_t value_len = 0;
-  
-  // start of main array
-  json.get_next_token(&token, NULL, NULL);
-  IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token);
-  
-  // read objects (one for each TTCN-3 file), until the main array end mark is reached
-  json.get_next_token(&token, NULL, NULL);
-  while (JSON_TOKEN_OBJECT_START == token) {
-    size_t file_index = 0;
-    
-    // file name:
-    json.get_next_token(&token, &value, &value_len);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 4 ||
-      0 != strncmp(value, "file", value_len));
-    
-    // read the file name and see if its record already exists
-    json.get_next_token(&token, &value, &value_len);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_STRING != token);
-    for (file_index = 0; file_index < profiler_db.size(); ++file_index) {
-      if (strlen(profiler_db[file_index].filename) == value_len - 2 &&
-          0 == strncmp(profiler_db[file_index].filename, value + 1, value_len - 2)) {
-        break;
-      }
-    }
-    
-    // insert a new element if the file was not found
-    if (profiler_db.size() == file_index) {
-      profiler_db_item_t item;
-      item.filename = mcopystrn(value + 1, value_len - 2);
-      profiler_db.push_back(item);
-    }
-    
-    // functions:
-    json.get_next_token(&token, &value, &value_len);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 9 ||
-      0 != strncmp(value, "functions", value_len));
-    
-    // read and store the functions (an array of objects, same as before)
-    json.get_next_token(&token, NULL, NULL);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token);
-    json.get_next_token(&token, NULL, NULL);
-    while (JSON_TOKEN_OBJECT_START == token) {
-      size_t function_index = 0;
-      
-      // function name:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 4 ||
-        0 != strncmp(value, "name", value_len));
-      
-      // read the function name, it will be checked later
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_STRING != token);
-      char* function_name = mcopystrn(value + 1, value_len - 2);
-      
-      // function start line:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 10 ||
-        0 != strncmp(value, "start line", value_len));
-      
-      // read the start line and check if the function already exists
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
-      int start_line = atoi(value);
-      for (function_index = 0; function_index < profiler_db[file_index].functions.size(); ++function_index) {
-        if (profiler_db[file_index].functions[function_index].lineno == start_line &&
-            0 == strcmp(profiler_db[file_index].functions[function_index].name, function_name)) {
-          break;
-        }
-      }
-      
-      // insert a new element if the function was not found
-      if (profiler_db[file_index].functions.size() == function_index) {
-        profiler_db_item_t::profiler_function_data_t func_data;
-        func_data.name = function_name;
-        func_data.lineno = start_line;
-        func_data.exec_count = 0;
-        func_data.total_time.tv_sec = 0;
-        func_data.total_time.tv_usec = 0;
-        profiler_db[file_index].functions.push_back(func_data);
-      }
-      
-      // function execution count:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 15 ||
-        0 != strncmp(value, "execution count", value_len));
-
-      // read the execution count and add it to the current data
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
-      profiler_db[file_index].functions[function_index].exec_count += atoi(value);
-
-      // total function execution time:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 10 ||
-        0 != strncmp(value, "total time", value_len));
-
-      // read the total time and add it to the current data
-      // note: the database contains a real number, this needs to be split into 2 integers
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
-      profiler_db[file_index].functions[function_index].total_time = add_timeval(
-        profiler_db[file_index].functions[function_index].total_time, string2timeval(value));
-
-      // end of the function's object
-      json.get_next_token(&token, NULL, NULL);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token);
-      
-      // read the next token (either the start of another object or the function array end)
-      json.get_next_token(&token, NULL, NULL);
-    }
-    
-    // function array end
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_END != token);
-    
-    // lines:
-    json.get_next_token(&token, &value, &value_len);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 5 ||
-      0 != strncmp(value, "lines", value_len));
-    
-    // read and store the lines (an array of objects, same as before)
-    json.get_next_token(&token, NULL, NULL);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token);
-    json.get_next_token(&token, NULL, NULL);
-    while (JSON_TOKEN_OBJECT_START == token) {
-      int line_index = 0;
-      
-      // line number:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 6 ||
-        0 != strncmp(value, "number", value_len));
-      
-      // read the line number and check if the line already exists
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
-      int lineno = atoi(value);
-      IMPORT_FORMAT_ERROR(lineno < 0);
-      line_index = get_line(file_index, lineno);
-      if (-1 == line_index) {
-        create_line(file_index, lineno);
-        line_index = profiler_db[file_index].lines.size() - 1;
-      }
-      
-      // line execution count:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 15 ||
-        0 != strncmp(value, "execution count", value_len));
-
-      // read the execution count and add it to the current data
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
-      profiler_db[file_index].lines[line_index].exec_count += atoi(value);
-      
-      // total line execution time:
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 10 ||
-        0 != strncmp(value, "total time", value_len));
-
-      // read the total time and add it to the current data
-      json.get_next_token(&token, &value, &value_len);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
-      profiler_db[file_index].lines[line_index].total_time = add_timeval(
-        profiler_db[file_index].lines[line_index].total_time, string2timeval(value));
-
-      // end of the line's object
-      json.get_next_token(&token, NULL, NULL);
-      IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token);
-      
-      // read the next token (either the start of another object or the line array end)
-      json.get_next_token(&token, NULL, NULL);
-    }
-    
-    // line array end
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_END != token);
-    
-    // end of the file's object
-    json.get_next_token(&token, NULL, NULL);
-    IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token);
-    
-    // read the next token (either the start of another object or the main array end)
-    json.get_next_token(&token, NULL, NULL);
-  }
-  
-  // main array end
-  IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_END != token);
 }
 
 void TTCN3_Profiler::export_data()
@@ -484,178 +227,12 @@ void TTCN3_Profiler::export_data()
     file_name = mprintf("%s.%d", database_filename, (component)self);
   }
   
-  // check whether the file can be opened for writing
-  FILE* file = fopen(file_name, "w");
-  if (NULL == file) {
-    TTCN_warning("Could not open file '%s' for writing. Profiler and/or code coverage "
-      "data will not be saved.", file_name);
-    if (file_name != database_filename) {
-      Free(file_name);
-    }
-    return;
-  }
+  Profiler_Tools::export_data(profiler_db, file_name, disable_profiler,
+    disable_coverage, TTCN_warning);
   
   if (file_name != database_filename) {
     Free(file_name);
   }
-  
-  // use the JSON tokenizer to create a JSON document from the database
-  JSON_Tokenizer json(true);
-  
-  // main array, contains an element for each file
-  json.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
-  for (size_t i = 0; i < profiler_db.size(); ++i) {
-    
-    // each file's data is stored in an object
-    json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
-    
-    // store the file name
-    json.put_next_token(JSON_TOKEN_NAME, "file");
-    char* file_name_str = mprintf("\"%s\"", profiler_db[i].filename);
-    json.put_next_token(JSON_TOKEN_STRING, file_name_str);
-    Free(file_name_str);
-    
-    // store the function data in an array (one element for each function)
-    json.put_next_token(JSON_TOKEN_NAME, "functions");
-    json.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
-    for (size_t j = 0; j < profiler_db[i].functions.size(); ++j) {
-      // only store functions with actual data
-      if ((0 != profiler_db[i].functions[j].total_time.tv_sec &&
-           0 != profiler_db[i].functions[j].total_time.tv_usec) ||
-          0 != profiler_db[i].functions[j].exec_count) {
-      
-        // the data is stored in an object for each function
-        json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
-
-        // store the function name
-        json.put_next_token(JSON_TOKEN_NAME, "name");
-        char* func_name_str = mprintf("\"%s\"", profiler_db[i].functions[j].name);
-        json.put_next_token(JSON_TOKEN_STRING, func_name_str);
-        Free(func_name_str);
-
-        // store the function start line
-        json.put_next_token(JSON_TOKEN_NAME, "start line");
-        char* start_line_str = mprintf("%d", profiler_db[i].functions[j].lineno);
-        json.put_next_token(JSON_TOKEN_NUMBER, start_line_str);
-        Free(start_line_str);
-
-        // store the function execution count
-        json.put_next_token(JSON_TOKEN_NAME, "execution count");
-        char* exec_count_str = mprintf("%d", disable_coverage ? 0 :
-          profiler_db[i].functions[j].exec_count);
-        json.put_next_token(JSON_TOKEN_NUMBER, exec_count_str);
-        Free(exec_count_str);
-
-        // store the function's total execution time
-        json.put_next_token(JSON_TOKEN_NAME, "total time");
-        if (disable_profiler) {
-          json.put_next_token(JSON_TOKEN_NUMBER, "0.000000");
-        }
-        else {
-          char* total_time_str = timeval2string(profiler_db[i].functions[j].total_time);
-          json.put_next_token(JSON_TOKEN_NUMBER, total_time_str);
-          Free(total_time_str);
-        }
-
-        // end of function object
-        json.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
-      }
-    }
-    
-    // end of function data array
-    json.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
-    
-    // store the line data in an array (one element for each line with useful data)
-    json.put_next_token(JSON_TOKEN_NAME, "lines");
-    json.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
-    for (size_t j = 0; j < profiler_db[i].lines.size(); ++j) {
-      // only store lines with actual data
-      if ((0 != profiler_db[i].lines[j].total_time.tv_sec &&
-           0 != profiler_db[i].lines[j].total_time.tv_usec) ||
-          0 != profiler_db[i].lines[j].exec_count) {
-
-        // store line data in an object
-        json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
-
-        // store the line number
-        json.put_next_token(JSON_TOKEN_NAME, "number");
-        char* line_number_str = mprintf("%d", profiler_db[i].lines[j].lineno);
-        json.put_next_token(JSON_TOKEN_NUMBER, line_number_str);
-        Free(line_number_str);
-
-        // store the line execution count
-        json.put_next_token(JSON_TOKEN_NAME, "execution count");
-        char* exec_count_str = mprintf("%d", disable_coverage ? 0 :
-          profiler_db[i].lines[j].exec_count);
-        json.put_next_token(JSON_TOKEN_NUMBER, exec_count_str);
-        Free(exec_count_str);
-
-        // store the line's total execution time
-        json.put_next_token(JSON_TOKEN_NAME, "total time");
-        if (disable_profiler) {
-          json.put_next_token(JSON_TOKEN_NUMBER, "0.000000");
-        }
-        else {
-          char* total_time_str = timeval2string(profiler_db[i].lines[j].total_time);
-          json.put_next_token(JSON_TOKEN_NUMBER, total_time_str);
-          Free(total_time_str);
-        }
-
-        // end of this line's object
-        json.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
-      }
-    }
-    
-    // end of line data array
-    json.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
-    
-    // end of this file's object
-    json.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
-  }
-  
-  // end of main array
-  json.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
-  
-  // write the JSON document into the file
-  fprintf(file, "%s\n", json.get_buffer());
-  fclose(file);
-}
-
-// Structure for one code line or function, used by print_stats for sorting
-struct stats_data_t {
-  const char* filename; // not owned
-  const char* funcname; // not owned, NULL for code lines that don't start a function
-  int lineno;
-  timeval total_time;
-  int exec_count;
-};
-
-// Compare function for sorting stats data based on total execution time (descending)
-int stats_data_cmp_time(const void* p_left, const void* p_right) {
-  const stats_data_t* p_left_data = (stats_data_t*)p_left;
-  const stats_data_t* p_right_data = (stats_data_t*)p_right;
-  if (p_left_data->total_time.tv_sec > p_right_data->total_time.tv_sec) return -1;
-  if (p_left_data->total_time.tv_sec < p_right_data->total_time.tv_sec) return 1;
-  if (p_left_data->total_time.tv_usec > p_right_data->total_time.tv_usec) return -1;
-  if (p_left_data->total_time.tv_usec < p_right_data->total_time.tv_usec) return 1;
-  return 0;
-}
-
-// Compare function for sorting stats data based on execution count (descending)
-int stats_data_cmp_count(const void* p_left, const void* p_right) {
-  return ((stats_data_t*)p_right)->exec_count - ((stats_data_t*)p_left)->exec_count;
-}
-
-// Compare function for sorting stats data based on total time per execution count (descending)
-int stats_data_cmp_avg(const void* p_left, const void* p_right) {
-  const stats_data_t* p_left_data = (stats_data_t*)p_left;
-  const stats_data_t* p_right_data = (stats_data_t*)p_right;
-  double left_time = p_left_data->total_time.tv_sec + p_left_data->total_time.tv_usec / 1000000.0;
-  double right_time = p_right_data->total_time.tv_sec + p_right_data->total_time.tv_usec / 1000000.0;
-  double diff = (right_time / p_right_data->exec_count) - (left_time / p_left_data->exec_count);
-  if (diff < 0) return -1;
-  if (diff > 0) return 1;
-  return 0;
 }
 
 void TTCN3_Profiler::print_stats() 
@@ -664,882 +241,8 @@ void TTCN3_Profiler::print_stats()
     return;
   }
   
-  // title
-  char* title_str = mprintf(
-    "##################################################\n"
-    "%s## TTCN-3 %s%s%sstatistics ##%s\n"
-    "##################################################\n\n\n"
-    , disable_profiler ? "#######" : (disable_coverage ? "#########" : "")
-    , disable_profiler ? "" : "profiler "
-    , (disable_profiler || disable_coverage) ? "" : "and "
-    , disable_coverage ? "" : "code coverage "
-    , disable_profiler ? "######" : (disable_coverage ? "#########" : ""));
-  
-  char* line_func_count_str = NULL;
-  if (stats_flags & STATS_NUMBER_OF_LINES) {
-    line_func_count_str = mcopystr(
-      "--------------------------------------\n"
-      "- Number of code lines and functions -\n"
-      "--------------------------------------\n");
-  }
-  
-  // line data
-  char* line_data_str = NULL;
-  if (stats_flags & STATS_LINE_DATA_RAW) {
-    line_data_str = mprintf(
-      "-------------------------------------------------\n"
-      "%s- Code line data (%s%s%s) -%s\n"
-      "-------------------------------------------------\n"
-      , disable_profiler ? "-------" : (disable_coverage ? "---------" : "")
-      , disable_profiler ? "" : "total time"
-      , (disable_profiler || disable_coverage) ? "" : " / "
-      , disable_coverage ? "" : "execution count"
-      , disable_profiler ? "------" : (disable_coverage ? "---------" : ""));
-  }
-  
-  // average time / exec count for lines
-  char* line_avg_str = NULL;
-  if (!disable_coverage && !disable_profiler && (stats_flags & STATS_LINE_AVG_RAW)) {
-    line_avg_str = mcopystr(
-      "-------------------------------------------\n"
-      "- Average time / execution for code lines -\n"
-      "-------------------------------------------\n");
-  }
-  
-  // function data
-  char* func_data_str = NULL;
-  if (stats_flags & STATS_FUNC_DATA_RAW) {
-    func_data_str = mprintf(
-      "------------------------------------------------\n"
-      "%s- Function data (%s%s%s) -%s\n"
-      "------------------------------------------------\n"
-      , disable_profiler ? "-------" : (disable_coverage ? "---------" : "")
-      , disable_profiler ? "" : "total time"
-      , (disable_profiler || disable_coverage) ? "" : " / "
-      , disable_coverage ? "" : "execution count"
-      , disable_profiler ? "------" : (disable_coverage ? "---------" : ""));
-  }
-  
-  // average time / exec count for functions
-  char* func_avg_str = NULL;
-  if (!disable_coverage && !disable_profiler && (stats_flags & STATS_FUNC_AVG_RAW)) {
-    func_avg_str = mcopystr(
-      "------------------------------------------\n"
-      "- Average time / execution for functions -\n"
-      "------------------------------------------\n");
-  }
-  
-  char* line_time_sorted_mod_str = NULL;
-  if (!disable_profiler && (stats_flags & STATS_LINE_TIMES_SORTED_BY_MOD)) {
-    line_time_sorted_mod_str = mcopystr(
-      "------------------------------------------------\n"
-      "- Total time of code lines, sorted, per module -\n"
-      "------------------------------------------------\n");
-  }
-  
-  char* line_count_sorted_mod_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_LINE_COUNT_SORTED_BY_MOD)) {
-    line_count_sorted_mod_str = mcopystr(
-      "-----------------------------------------------------\n"
-      "- Execution count of code lines, sorted, per module -\n"
-      "-----------------------------------------------------\n");
-  }
-  
-  char* line_avg_sorted_mod_str = NULL;
-  if (!disable_profiler && !disable_coverage && (stats_flags & STATS_LINE_AVG_SORTED_BY_MOD)) {
-    line_avg_sorted_mod_str = mcopystr(
-      "--------------------------------------------------------------\n"
-      "- Average time / execution of code lines, sorted, per module -\n"
-      "--------------------------------------------------------------\n");
-  }
-  
-  char* line_time_sorted_tot_str = NULL;
-  if (!disable_profiler && (stats_flags & STATS_LINE_TIMES_SORTED_TOTAL)) {
-    line_time_sorted_tot_str = mcopystr(
-      "-------------------------------------------\n"
-      "- Total time of code lines, sorted, total -\n"
-      "-------------------------------------------\n");
-  }
-  
-  char* line_count_sorted_tot_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_LINE_COUNT_SORTED_TOTAL)) {
-    line_count_sorted_tot_str = mcopystr(
-      "------------------------------------------------\n"
-      "- Execution count of code lines, sorted, total -\n"
-      "------------------------------------------------\n");
-  }
-  
-  char* line_avg_sorted_tot_str = NULL;
-  if (!disable_profiler && !disable_coverage && (stats_flags & STATS_LINE_AVG_SORTED_TOTAL)) {
-    line_avg_sorted_tot_str = mcopystr(
-      "---------------------------------------------------------\n"
-      "- Average time / execution of code lines, sorted, total -\n"
-      "---------------------------------------------------------\n");
-  }
-  
-  char* func_time_sorted_mod_str = NULL;
-  if (!disable_profiler && (stats_flags & STATS_FUNC_TIMES_SORTED_BY_MOD)) {
-    func_time_sorted_mod_str = mcopystr(
-      "-----------------------------------------------\n"
-      "- Total time of functions, sorted, per module -\n"
-      "-----------------------------------------------\n");
-  }
-  
-  char* func_count_sorted_mod_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_FUNC_COUNT_SORTED_BY_MOD)) {
-    func_count_sorted_mod_str = mcopystr(
-      "----------------------------------------------------\n"
-      "- Execution count of functions, sorted, per module -\n"
-      "----------------------------------------------------\n");
-  }
-  
-  char* func_avg_sorted_mod_str = NULL;
-  if (!disable_profiler && !disable_coverage && (stats_flags & STATS_FUNC_AVG_SORTED_BY_MOD)) {
-    func_avg_sorted_mod_str = mcopystr(
-      "-------------------------------------------------------------\n"
-      "- Average time / execution of functions, sorted, per module -\n"
-      "-------------------------------------------------------------\n");
-  }
-  
-  char* func_time_sorted_tot_str = NULL;
-  if (!disable_profiler && (stats_flags & STATS_FUNC_TIMES_SORTED_TOTAL)) {
-    func_time_sorted_tot_str = mcopystr(
-      "------------------------------------------\n"
-      "- Total time of functions, sorted, total -\n"
-      "------------------------------------------\n");
-  }
-  
-  char* func_count_sorted_tot_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_FUNC_COUNT_SORTED_TOTAL)) {
-    func_count_sorted_tot_str = mcopystr(
-      "-----------------------------------------------\n"
-      "- Execution count of functions, sorted, total -\n"
-      "-----------------------------------------------\n");
-  }
-  
-  char* func_avg_sorted_tot_str = NULL;
-  if (!disable_profiler && !disable_coverage && (stats_flags & STATS_FUNC_AVG_SORTED_TOTAL)) {
-    func_avg_sorted_tot_str = mcopystr(
-      "--------------------------------------------------------\n"
-      "- Average time / execution of functions, sorted, total -\n"
-      "--------------------------------------------------------\n");
-  }
-  
-  char* line_time_sorted_top10_str = NULL;
-  if (!disable_profiler && (stats_flags & STATS_TOP10_LINE_TIMES)) {
-    line_time_sorted_top10_str = mcopystr(
-      "------------------------------------\n"
-      "- Total time of code lines, top 10 -\n"
-      "------------------------------------\n");
-  }
-  
-  char* line_count_sorted_top10_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_TOP10_LINE_COUNT)) {
-    line_count_sorted_top10_str = mcopystr(
-      "-----------------------------------------\n"
-      "- Execution count of code lines, top 10 -\n"
-      "-----------------------------------------\n");
-  }
-  
-  char* line_avg_sorted_top10_str = NULL;
-  if (!disable_profiler && !disable_coverage && (stats_flags & STATS_TOP10_LINE_AVG)) {
-    line_avg_sorted_top10_str = mcopystr(
-      "--------------------------------------------------\n"
-      "- Average time / execution of code lines, top 10 -\n"
-      "--------------------------------------------------\n");
-  }
-  
-  char* func_time_sorted_top10_str = NULL;
-  if (!disable_profiler && (stats_flags & STATS_TOP10_FUNC_TIMES)) {
-    func_time_sorted_top10_str = mcopystr(
-      "-----------------------------------\n"
-      "- Total time of functions, top 10 -\n"
-      "-----------------------------------\n");
-  }
-  
-  char* func_count_sorted_top10_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_TOP10_FUNC_COUNT)) {
-    func_count_sorted_top10_str = mcopystr(
-      "----------------------------------------\n"
-      "- Execution count of functions, top 10 -\n"
-      "----------------------------------------\n");
-  }
-  
-  char* func_avg_sorted_top10_str = NULL;
-  if (!disable_profiler && !disable_coverage && (stats_flags & STATS_TOP10_FUNC_AVG)) {
-    func_avg_sorted_top10_str = mcopystr(
-      "-------------------------------------------------\n"
-      "- Average time / execution of functions, top 10 -\n"
-      "-------------------------------------------------\n");
-  }
-  
-  char* unused_lines_str = NULL;
-  char* unused_func_str = NULL;
-  if (!disable_coverage && (stats_flags & STATS_UNUSED_LINES)) {
-    unused_lines_str = mcopystr(
-      "---------------------\n"
-      "- Unused code lines -\n"
-      "---------------------\n");
-  }
-  if (!disable_coverage && (stats_flags & STATS_UNUSED_FUNC)) {
-    unused_func_str = mcopystr(
-      "--------------------\n"
-      "- Unused functions -\n"
-      "--------------------\n");
-  }
-  
-  // variables for counting totals, and for determining the amount of unused lines/functions
-  size_t total_code_lines = 0;
-  size_t total_functions = 0;
-  size_t used_code_lines = 0;
-  size_t used_functions = 0;
-  
-  // cached sizes of statistics data segments, needed to determine whether a separator
-  // is needed or not
-  size_t line_data_str_len = mstrlen(line_data_str);
-  size_t func_data_str_len = mstrlen(func_data_str);
-  size_t unused_lines_str_len = mstrlen(unused_lines_str);
-  size_t unused_func_str_len = mstrlen(unused_func_str);
-  size_t line_avg_str_len = mstrlen(line_avg_str);
-  size_t func_avg_str_len = mstrlen(func_avg_str);
-  
-  // cycle through the database and gather the necessary data
-  for (size_t i = 0; i < profiler_db.size(); ++i) {
-    if (i > 0) {
-      // add separators between files (only add them if the previous file actually added something)
-      if ((stats_flags & STATS_LINE_DATA_RAW) && line_data_str_len != mstrlen(line_data_str)) {
-        line_data_str = mputstr(line_data_str, "-------------------------------------------------\n");
-        line_data_str_len = mstrlen(line_data_str);
-      }
-      if ((stats_flags & STATS_FUNC_DATA_RAW) && func_data_str_len != mstrlen(func_data_str)) {
-        func_data_str = mputstr(func_data_str, "------------------------------------------------\n");
-        func_data_str_len = mstrlen(func_data_str);
-      }
-      if (!disable_coverage) {
-        if ((stats_flags & STATS_UNUSED_LINES) && unused_lines_str_len != mstrlen(unused_lines_str)) {
-          unused_lines_str = mputstr(unused_lines_str, "---------------------\n");
-          unused_lines_str_len = mstrlen(unused_lines_str);
-        }
-        if ((stats_flags & STATS_UNUSED_FUNC) && unused_func_str_len != mstrlen(unused_func_str)) {
-          unused_func_str = mputstr(unused_func_str, "--------------------\n");
-          unused_func_str_len = mstrlen(unused_func_str);
-        }
-        if (!disable_profiler) {
-          if ((stats_flags & STATS_LINE_AVG_RAW) && line_avg_str_len != mstrlen(line_avg_str)) {
-            line_avg_str = mputstr(line_avg_str, "-------------------------------------------\n");
-            line_avg_str_len = mstrlen(line_avg_str);
-          }
-          if ((stats_flags & STATS_FUNC_AVG_RAW) && func_avg_str_len != mstrlen(func_avg_str)) {
-            func_avg_str = mputstr(func_avg_str, "------------------------------------------\n");
-            func_avg_str_len = mstrlen(func_avg_str);
-          }
-        }
-      }
-    }
-    
-    // lines
-    for (size_t j = 0; j < profiler_db[i].lines.size(); ++j) {
-      // line specification (including function name for the function's start line)
-      char* line_spec_str = mprintf("%s:%d", profiler_db[i].filename,
-        profiler_db[i].lines[j].lineno);
-      int func = get_function(i, profiler_db[i].lines[j].lineno);
-      if (-1 != func) {
-        line_spec_str = mputprintf(line_spec_str, " [%s]", profiler_db[i].functions[func].name);
-      }
-      line_spec_str = mputstrn(line_spec_str, "\n", 1);
-      
-      if (disable_coverage || 0 != profiler_db[i].lines[j].exec_count) {
-        if (!disable_profiler) {
-          if (stats_flags & STATS_LINE_DATA_RAW) {
-            char* total_time_str = timeval2string(profiler_db[i].lines[j].total_time);
-            line_data_str = mputprintf(line_data_str, "%ss", total_time_str);
-            Free(total_time_str);
-          }
-          if (!disable_coverage) {
-            if (stats_flags & STATS_LINE_DATA_RAW) {
-              line_data_str = mputstrn(line_data_str, "\t/\t", 3);
-            }
-            if (stats_flags & STATS_LINE_AVG_RAW) {
-              double avg = (profiler_db[i].lines[j].total_time.tv_sec +
-                profiler_db[i].lines[j].total_time.tv_usec / 1000000.0) /
-                profiler_db[i].lines[j].exec_count;
-              char* total_time_str = timeval2string(profiler_db[i].lines[j].total_time);
-              line_avg_str = mputprintf(line_avg_str, "%.6lfs\t(%ss / %d)", 
-                avg, total_time_str, profiler_db[i].lines[j].exec_count);
-              Free(total_time_str);
-            }
-          }
-        }
-        if (!disable_coverage && (stats_flags & STATS_LINE_DATA_RAW)) {
-          line_data_str = mputprintf(line_data_str, "%d", profiler_db[i].lines[j].exec_count);
-        }
-
-        // add the line spec string to the other strings
-        if (stats_flags & STATS_LINE_DATA_RAW) {
-          line_data_str = mputprintf(line_data_str, "\t%s", line_spec_str);
-        }
-        if (!disable_profiler && !disable_coverage && (stats_flags & STATS_LINE_AVG_RAW)) {
-          line_avg_str = mputprintf(line_avg_str, "\t%s", line_spec_str);
-        }
-        ++used_code_lines;
-      }
-      else if (stats_flags & STATS_UNUSED_LINES) {
-        // unused line
-        unused_lines_str = mputstr(unused_lines_str, line_spec_str);
-      }
-      Free(line_spec_str);
-    }
-    
-    // functions
-    for (size_t j = 0; j < profiler_db[i].functions.size(); ++j) {
-      // functions specification
-      char* func_spec_str = mprintf("%s:%d [%s]\n", profiler_db[i].filename,
-        profiler_db[i].functions[j].lineno, profiler_db[i].functions[j].name);
-
-      if (disable_coverage || 0 != profiler_db[i].functions[j].exec_count) {
-        if (!disable_profiler) {
-          if (stats_flags & STATS_FUNC_DATA_RAW) {
-            char* total_time_str = timeval2string(profiler_db[i].functions[j].total_time);
-            func_data_str = mputprintf(func_data_str, "%ss", total_time_str);
-            Free(total_time_str);
-          }
-          if (!disable_coverage) {
-            if (stats_flags & STATS_FUNC_DATA_RAW) {
-              func_data_str = mputstrn(func_data_str, "\t/\t", 3);
-            }
-            if (stats_flags & STATS_FUNC_AVG_RAW) {
-              double avg = (profiler_db[i].functions[j].total_time.tv_sec +
-                profiler_db[i].functions[j].total_time.tv_usec / 1000000.0) /
-                profiler_db[i].functions[j].exec_count;
-              char* total_time_str = timeval2string(profiler_db[i].functions[j].total_time);
-              func_avg_str = mputprintf(func_avg_str, "%.6lfs\t(%ss / %d)", 
-                avg, total_time_str, profiler_db[i].functions[j].exec_count);
-              Free(total_time_str);
-            }
-          }
-        }
-        if (!disable_coverage && (stats_flags & STATS_FUNC_DATA_RAW)) {
-          func_data_str = mputprintf(func_data_str, "%d", profiler_db[i].functions[j].exec_count);
-        }
-
-        // add the line spec string to the other strings
-        if (stats_flags & STATS_FUNC_DATA_RAW) {
-          func_data_str = mputprintf(func_data_str, "\t%s", func_spec_str);
-        }
-        if (!disable_profiler && !disable_coverage && (stats_flags & STATS_FUNC_AVG_RAW)) {
-          func_avg_str = mputprintf(func_avg_str, "\t%s", func_spec_str);
-        }
-        
-        ++used_functions;
-      }
-      else if (stats_flags & STATS_UNUSED_FUNC) {
-        // unused function
-        unused_func_str = mputprintf(unused_func_str, func_spec_str);
-      }
-      Free(func_spec_str);
-    }
-    
-    // number of lines and functions
-    if (stats_flags & STATS_NUMBER_OF_LINES) {
-      line_func_count_str = mputprintf(line_func_count_str, "%s:\t%lu lines,\t%lu functions\n",
-         profiler_db[i].filename, profiler_db[i].lines.size(), profiler_db[i].functions.size());
-    }
-    total_code_lines += profiler_db[i].lines.size();
-    total_functions += profiler_db[i].functions.size();
-  }
-  if (stats_flags & STATS_NUMBER_OF_LINES) {
-    line_func_count_str = mputprintf(line_func_count_str,
-      "--------------------------------------\n"
-      "Total:\t%lu lines,\t%lu functions\n", total_code_lines, total_functions);
-  }
-  
-  if (stats_flags & (STATS_TOP10_ALL_DATA | STATS_ALL_DATA_SORTED)) {
-    // copy code line and function info into stats_data_t containers for sorting
-    stats_data_t* code_line_stats = (stats_data_t*)Malloc(used_code_lines * sizeof(stats_data_t));
-    stats_data_t* function_stats = (stats_data_t*)Malloc(used_functions * sizeof(stats_data_t));
-    int line_index = 0;
-    int func_index = 0;
-
-    for (size_t i = 0; i < profiler_db.size(); ++i) {
-      for (size_t j = 0; j < profiler_db[i].lines.size(); ++j) {
-        if (disable_coverage || 0 != profiler_db[i].lines[j].exec_count) {
-          code_line_stats[line_index].filename = profiler_db[i].filename;
-          code_line_stats[line_index].funcname = NULL;
-          code_line_stats[line_index].lineno = profiler_db[i].lines[j].lineno;
-          code_line_stats[line_index].total_time = profiler_db[i].lines[j].total_time;
-          code_line_stats[line_index].exec_count = profiler_db[i].lines[j].exec_count;
-          int func = get_function(i, profiler_db[i].lines[j].lineno);
-          if (-1 != func) {
-            code_line_stats[line_index].funcname = profiler_db[i].functions[func].name;
-          }
-          ++line_index;
-        }
-      }
-      for (size_t j = 0; j < profiler_db[i].functions.size(); ++j) {
-        if (disable_coverage || 0 != profiler_db[i].functions[j].exec_count) {
-          function_stats[func_index].filename = profiler_db[i].filename;
-          function_stats[func_index].funcname = profiler_db[i].functions[j].name;
-          function_stats[func_index].lineno = profiler_db[i].functions[j].lineno;
-          function_stats[func_index].total_time = profiler_db[i].functions[j].total_time;
-          function_stats[func_index].exec_count = profiler_db[i].functions[j].exec_count;
-          ++func_index;
-        }
-      }
-    }
-
-    if (!disable_profiler) {
-      // sort the code lines and functions by total time
-      qsort(code_line_stats, used_code_lines, sizeof(stats_data_t), &stats_data_cmp_time);
-      qsort(function_stats, used_functions, sizeof(stats_data_t), &stats_data_cmp_time);
-
-      if (stats_flags & (STATS_LINE_TIMES_SORTED_TOTAL | STATS_TOP10_LINE_TIMES)) {
-        // cycle through the sorted code lines and gather the necessary data
-        for (size_t i = 0; i < used_code_lines; ++i) {
-          char* total_time_str = timeval2string(code_line_stats[i].total_time);
-          char* the_data = mprintf("%ss\t%s:%d", total_time_str,
-            code_line_stats[i].filename, code_line_stats[i].lineno);
-          Free(total_time_str);
-          if (NULL != code_line_stats[i].funcname) {
-            the_data = mputprintf(the_data, " [%s]", code_line_stats[i].funcname);
-          }
-          the_data = mputstrn(the_data, "\n", 1);
-          if (stats_flags & STATS_LINE_TIMES_SORTED_TOTAL) {
-            line_time_sorted_tot_str = mputstr(line_time_sorted_tot_str, the_data);
-          }
-          if (i < 10 && (stats_flags & STATS_TOP10_LINE_TIMES)) {
-            line_time_sorted_top10_str = mputprintf(line_time_sorted_top10_str,
-              "%2lu.\t%s", i + 1, the_data);
-          }
-          Free(the_data);
-        }
-      }
-
-      if (stats_flags & (STATS_FUNC_TIMES_SORTED_TOTAL | STATS_TOP10_FUNC_TIMES)) {
-        // cycle through the sorted functions and gather the necessary data
-        for (size_t i = 0; i < used_functions; ++i) {
-          char* total_time_str = timeval2string(function_stats[i].total_time);
-          char* the_data = mprintf("%ss\t%s:%d [%s]\n", total_time_str,
-            function_stats[i].filename, function_stats[i].lineno, function_stats[i].funcname);
-          Free(total_time_str);
-          if (stats_flags & STATS_FUNC_TIMES_SORTED_TOTAL) {
-            func_time_sorted_tot_str = mputstr(func_time_sorted_tot_str, the_data);
-          }
-          if (i < 10 && (stats_flags & STATS_TOP10_FUNC_TIMES)) {
-            func_time_sorted_top10_str = mputprintf(func_time_sorted_top10_str,
-              "%2lu.\t%s", i + 1, the_data);
-          }
-          Free(the_data);
-        }
-      }
-
-      if (stats_flags & (STATS_LINE_TIMES_SORTED_BY_MOD | STATS_FUNC_TIMES_SORTED_BY_MOD)) {
-        // cached string lengths, to avoid multiple separators after each other
-        size_t line_time_sorted_mod_str_len = mstrlen(line_time_sorted_mod_str);
-        size_t func_time_sorted_mod_str_len = mstrlen(func_time_sorted_mod_str);
-
-        // cycle through the sorted statistics and gather the necessary data per module
-        for (size_t i = 0; i < profiler_db.size(); ++i) {
-          if (i > 0) {
-            if ((stats_flags & STATS_LINE_TIMES_SORTED_BY_MOD) &&
-                line_time_sorted_mod_str_len != mstrlen(line_time_sorted_mod_str)) {
-              line_time_sorted_mod_str = mputstr(line_time_sorted_mod_str,
-                "------------------------------------------------\n");
-              line_time_sorted_mod_str_len = mstrlen(line_time_sorted_mod_str);
-            }
-            if ((stats_flags & STATS_FUNC_TIMES_SORTED_BY_MOD) &&
-                func_time_sorted_mod_str_len != mstrlen(func_time_sorted_mod_str)) {
-              func_time_sorted_mod_str = mputstr(func_time_sorted_mod_str,
-                "-----------------------------------------------\n");
-              func_time_sorted_mod_str_len = mstrlen(func_time_sorted_mod_str);
-            }
-          }
-          if (stats_flags & STATS_LINE_TIMES_SORTED_BY_MOD) {
-            for (size_t j = 0; j < used_code_lines; ++j) {
-              if (0 == strcmp(code_line_stats[j].filename, profiler_db[i].filename)) {
-                char* total_time_str = timeval2string(code_line_stats[j].total_time);
-                line_time_sorted_mod_str = mputprintf(line_time_sorted_mod_str,
-                  "%ss\t%s:%d", total_time_str, code_line_stats[j].filename,
-                  code_line_stats[j].lineno);
-                Free(total_time_str);
-                if (NULL != code_line_stats[j].funcname) {
-                  line_time_sorted_mod_str = mputprintf(line_time_sorted_mod_str,
-                    " [%s]", code_line_stats[j].funcname);
-                }
-                line_time_sorted_mod_str = mputstrn(line_time_sorted_mod_str, "\n", 1);
-              }
-            }
-          }
-          if (stats_flags & STATS_FUNC_TIMES_SORTED_BY_MOD) {
-            for (size_t j = 0; j < used_functions; ++j) {
-              if (0 == strcmp(function_stats[j].filename, profiler_db[i].filename)) {
-                char* total_time_str = timeval2string(function_stats[j].total_time);
-                func_time_sorted_mod_str = mputprintf(func_time_sorted_mod_str,
-                  "%ss\t%s:%d [%s]\n", total_time_str, function_stats[j].filename,
-                  function_stats[j].lineno, function_stats[j].funcname);
-                Free(total_time_str);
-              }
-            }
-          }
-        }
-      }
-    }
-
-    if (!disable_coverage) {
-      // sort the code lines and functions by execution count
-      qsort(code_line_stats, used_code_lines, sizeof(stats_data_t), &stats_data_cmp_count);
-      qsort(function_stats, used_functions, sizeof(stats_data_t), &stats_data_cmp_count);
-
-      if (stats_flags & (STATS_LINE_COUNT_SORTED_TOTAL | STATS_TOP10_LINE_COUNT)) {
-        // cycle through the sorted code lines and gather the necessary data
-        for (size_t i = 0; i < used_code_lines; ++i) {
-          char* the_data = mprintf("%d\t%s:%d", code_line_stats[i].exec_count,
-            code_line_stats[i].filename, code_line_stats[i].lineno);
-          if (NULL != code_line_stats[i].funcname) {
-            the_data = mputprintf(the_data, " [%s]", code_line_stats[i].funcname);
-          }
-          the_data = mputstrn(the_data, "\n", 1);
-          if (stats_flags & STATS_LINE_COUNT_SORTED_TOTAL) {
-            line_count_sorted_tot_str = mputstr(line_count_sorted_tot_str, the_data);
-          }
-          if (i < 10 && (stats_flags & STATS_TOP10_LINE_COUNT)) {
-            line_count_sorted_top10_str = mputprintf(line_count_sorted_top10_str,
-              "%2lu.\t%s", i + 1, the_data);
-          }
-          Free(the_data);
-        }
-      }
-
-      if (stats_flags & (STATS_FUNC_COUNT_SORTED_TOTAL | STATS_TOP10_FUNC_COUNT)) {
-        // cycle through the sorted functions and gather the necessary data
-        for (size_t i = 0; i < used_functions; ++i) {
-          char* the_data = mprintf("%d\t%s:%d [%s]\n",
-            function_stats[i].exec_count, function_stats[i].filename,
-            function_stats[i].lineno, function_stats[i].funcname);
-          if (stats_flags & STATS_FUNC_COUNT_SORTED_TOTAL) {
-            func_count_sorted_tot_str = mputstr(func_count_sorted_tot_str, the_data);
-          }
-          if (i < 10 && (stats_flags & STATS_TOP10_FUNC_COUNT)) {
-            func_count_sorted_top10_str = mputprintf(func_count_sorted_top10_str,
-              "%2lu.\t%s", i + 1, the_data);
-          }
-          Free(the_data);
-        }
-      }
-
-      if (stats_flags & (STATS_LINE_COUNT_SORTED_BY_MOD | STATS_FUNC_COUNT_SORTED_BY_MOD)) {
-        // cached string lengths, to avoid multiple separators after each other
-        size_t line_count_sorted_mod_str_len = mstrlen(line_count_sorted_mod_str);
-        size_t func_count_sorted_mod_str_len = mstrlen(func_count_sorted_mod_str);
-
-        // cycle through the sorted statistics and gather the necessary data per module
-        for (size_t i = 0; i < profiler_db.size(); ++i) {
-          if (i > 0) {
-            if ((stats_flags & STATS_LINE_COUNT_SORTED_BY_MOD) &&
-                line_count_sorted_mod_str_len != mstrlen(line_count_sorted_mod_str)) {
-              line_count_sorted_mod_str = mputstr(line_count_sorted_mod_str,
-                "-----------------------------------------------------\n");
-              line_count_sorted_mod_str_len = mstrlen(line_count_sorted_mod_str);
-            }
-            if ((stats_flags & STATS_FUNC_COUNT_SORTED_BY_MOD) &&
-                func_count_sorted_mod_str_len != mstrlen(func_count_sorted_mod_str)) {
-              func_count_sorted_mod_str = mputstr(func_count_sorted_mod_str,
-                "----------------------------------------------------\n");
-              func_count_sorted_mod_str_len = mstrlen(func_count_sorted_mod_str);
-            }
-          }
-          if (stats_flags & STATS_LINE_COUNT_SORTED_BY_MOD) {
-            for (size_t j = 0; j < used_code_lines; ++j) {
-              if (0 == strcmp(code_line_stats[j].filename, profiler_db[i].filename)) {
-                line_count_sorted_mod_str = mputprintf(line_count_sorted_mod_str,
-                  "%d\t%s:%d", code_line_stats[j].exec_count, code_line_stats[j].filename,
-                  code_line_stats[j].lineno);
-                if (NULL != code_line_stats[j].funcname) {
-                  line_count_sorted_mod_str = mputprintf(line_count_sorted_mod_str,
-                    " [%s]", code_line_stats[j].funcname);
-                }
-                line_count_sorted_mod_str = mputstrn(line_count_sorted_mod_str, "\n", 1);
-              }
-            }
-          }
-          if (stats_flags & STATS_FUNC_COUNT_SORTED_BY_MOD) {
-            for (size_t j = 0; j < used_functions; ++j) {
-              if (0 == strcmp(function_stats[j].filename, profiler_db[i].filename)) {
-                func_count_sorted_mod_str = mputprintf(func_count_sorted_mod_str,
-                  "%d\t%s:%d [%s]\n", function_stats[j].exec_count, function_stats[j].filename,
-                  function_stats[j].lineno, function_stats[j].funcname);
-              }
-            }
-          }
-        }
-      }
-    }
-
-    if (!disable_profiler && !disable_coverage) {
-      // sort the code lines and functions by average time / execution
-      qsort(code_line_stats, used_code_lines, sizeof(stats_data_t), &stats_data_cmp_avg);
-      qsort(function_stats, used_functions, sizeof(stats_data_t), &stats_data_cmp_avg);
-
-      if (stats_flags & (STATS_LINE_AVG_SORTED_TOTAL | STATS_TOP10_LINE_AVG)) {
-        // cycle through the sorted code lines and gather the necessary data
-        for (size_t i = 0; i < used_code_lines; ++i) {
-          double avg = (code_line_stats[i].total_time.tv_sec +
-            code_line_stats[i].total_time.tv_usec / 1000000.0) /
-            code_line_stats[i].exec_count;
-          char* total_time_str = timeval2string(code_line_stats[i].total_time);
-          char* the_data = mprintf("%.6lfs\t(%ss / %d)\t%s:%d",
-            avg, total_time_str, code_line_stats[i].exec_count,
-            code_line_stats[i].filename, code_line_stats[i].lineno);
-          Free(total_time_str);
-          if (NULL != code_line_stats[i].funcname) {
-            the_data = mputprintf(the_data, " [%s]", code_line_stats[i].funcname);
-          }
-          the_data = mputstrn(the_data, "\n", 1);
-          if (stats_flags & STATS_LINE_AVG_SORTED_TOTAL) {
-            line_avg_sorted_tot_str = mputstr(line_avg_sorted_tot_str, the_data);
-          }
-          if (i < 10 && (stats_flags & STATS_TOP10_LINE_AVG)) {
-            line_avg_sorted_top10_str = mputprintf(line_avg_sorted_top10_str,
-              "%2lu.\t%s", i + 1, the_data);
-          }
-          Free(the_data);
-        }
-      }
-
-      if (stats_flags & (STATS_FUNC_AVG_SORTED_TOTAL | STATS_TOP10_FUNC_AVG)) {
-        // cycle through the sorted functions and gather the necessary data
-        for (size_t i = 0; i < used_functions; ++i) {
-          double avg = (function_stats[i].total_time.tv_sec +
-            function_stats[i].total_time.tv_usec / 1000000.0) /
-            function_stats[i].exec_count;
-          char* total_time_str = timeval2string(function_stats[i].total_time);
-          char* the_data = mprintf("%.6lfs\t(%ss / %d)\t%s:%d [%s]\n",
-            avg, total_time_str, function_stats[i].exec_count,
-            function_stats[i].filename, function_stats[i].lineno, function_stats[i].funcname);
-          Free(total_time_str);
-          if (stats_flags & STATS_FUNC_AVG_SORTED_TOTAL) {
-            func_avg_sorted_tot_str = mputstr(func_avg_sorted_tot_str, the_data);
-          }
-          if (i < 10 && (stats_flags & STATS_TOP10_FUNC_AVG)) {
-            func_avg_sorted_top10_str = mputprintf(func_avg_sorted_top10_str,
-              "%2lu.\t%s", i + 1, the_data);
-          }
-          Free(the_data);
-        }
-      }
-
-      if (stats_flags & (STATS_LINE_AVG_SORTED_BY_MOD | STATS_FUNC_AVG_SORTED_BY_MOD)) {
-        // cached string lengths, to avoid multiple separators after each other
-        size_t line_avg_sorted_mod_str_len = mstrlen(line_avg_sorted_mod_str);
-        size_t func_avg_sorted_mod_str_len = mstrlen(func_avg_sorted_mod_str);
-
-        // cycle through the sorted statistics and gather the necessary data per module
-        for (size_t i = 0; i < profiler_db.size(); ++i) {
-          if (i > 0) {
-            if ((stats_flags & STATS_LINE_AVG_SORTED_BY_MOD) &&
-                line_avg_sorted_mod_str_len != mstrlen(line_avg_sorted_mod_str)) {
-              line_avg_sorted_mod_str = mputstr(line_avg_sorted_mod_str,
-                "--------------------------------------------------------------\n");
-              line_avg_sorted_mod_str_len = mstrlen(line_avg_sorted_mod_str);
-            }
-            if ((stats_flags & STATS_FUNC_AVG_SORTED_BY_MOD) &&
-                func_avg_sorted_mod_str_len != mstrlen(func_avg_sorted_mod_str)) {
-              func_avg_sorted_mod_str = mputstr(func_avg_sorted_mod_str,
-                "-------------------------------------------------------------\n");
-              func_avg_sorted_mod_str_len = mstrlen(func_avg_sorted_mod_str);
-            }
-          }
-          if (stats_flags & STATS_LINE_AVG_SORTED_BY_MOD) {
-            for (size_t j = 0; j < used_code_lines; ++j) {
-              if (0 == strcmp(code_line_stats[j].filename, profiler_db[i].filename)) {
-                double avg = (code_line_stats[j].total_time.tv_sec +
-                  code_line_stats[j].total_time.tv_usec / 1000000.0) /
-                  code_line_stats[j].exec_count;
-                char* total_time_str = timeval2string(code_line_stats[j].total_time);
-                line_avg_sorted_mod_str = mputprintf(line_avg_sorted_mod_str,
-                  "%.6lfs\t(%ss / %d)\t%s:%d",
-                  avg, total_time_str, code_line_stats[j].exec_count,
-                  code_line_stats[j].filename, code_line_stats[j].lineno);
-                Free(total_time_str);
-                if (NULL != code_line_stats[j].funcname) {
-                  line_avg_sorted_mod_str = mputprintf(line_avg_sorted_mod_str,
-                    " [%s]", code_line_stats[j].funcname);
-                }
-                line_avg_sorted_mod_str = mputstrn(line_avg_sorted_mod_str, "\n", 1);
-              }
-            }
-          }
-          if (stats_flags & STATS_FUNC_AVG_SORTED_BY_MOD) {
-            for (size_t j = 0; j < used_functions; ++j) {
-              if (0 == strcmp(function_stats[j].filename, profiler_db[i].filename)) {
-                double avg = (function_stats[j].total_time.tv_sec +
-                  function_stats[j].total_time.tv_usec / 1000000.0) /
-                  function_stats[j].exec_count;
-                char* total_time_str = timeval2string(function_stats[j].total_time);
-                func_avg_sorted_mod_str = mputprintf(func_avg_sorted_mod_str,
-                  "%.6lfs\t(%ss / %d)\t%s:%d [%s]\n",
-                  avg, total_time_str, function_stats[j].exec_count,
-                  function_stats[j].filename, function_stats[j].lineno, function_stats[j].funcname);
-                Free(total_time_str);
-              }
-            }
-          }
-        }
-      }
-    }
-
-    // free the stats data
-    Free(code_line_stats);
-    Free(function_stats);
-  }
-  
-  // add new lines at the end of each segment
-  if (stats_flags & STATS_NUMBER_OF_LINES) {
-    line_func_count_str = mputstrn(line_func_count_str, "\n", 1);
-  }
-  if (stats_flags & STATS_LINE_DATA_RAW) {
-    line_data_str = mputstrn(line_data_str, "\n", 1);
-  }
-  if (stats_flags & STATS_FUNC_DATA_RAW) {
-    func_data_str = mputstrn(func_data_str, "\n", 1);
-  }
-  if (!disable_profiler) {
-    if (stats_flags & STATS_LINE_TIMES_SORTED_BY_MOD) {
-      line_time_sorted_mod_str = mputstrn(line_time_sorted_mod_str, "\n", 1);
-    }
-    if (stats_flags & STATS_LINE_TIMES_SORTED_TOTAL) {
-      line_time_sorted_tot_str = mputstrn(line_time_sorted_tot_str, "\n", 1);
-    }
-    if (stats_flags & STATS_FUNC_TIMES_SORTED_BY_MOD) {
-      func_time_sorted_mod_str = mputstrn(func_time_sorted_mod_str, "\n", 1);
-    }
-    if (stats_flags & STATS_FUNC_TIMES_SORTED_TOTAL) {
-      func_time_sorted_tot_str = mputstrn(func_time_sorted_tot_str, "\n", 1);
-    }
-    if (stats_flags & STATS_TOP10_LINE_TIMES) {
-      line_time_sorted_top10_str = mputstrn(line_time_sorted_top10_str, "\n", 1);
-    }
-    if (stats_flags & STATS_TOP10_FUNC_TIMES) {
-      func_time_sorted_top10_str = mputstrn(func_time_sorted_top10_str, "\n", 1);
-    }
-    if (!disable_coverage) {
-      if (stats_flags & STATS_LINE_AVG_RAW) {
-        line_avg_str = mputstrn(line_avg_str, "\n", 1);
-      }
-      if (stats_flags & STATS_LINE_AVG_RAW) {
-        func_avg_str = mputstrn(func_avg_str, "\n", 1);
-      }
-      if (stats_flags & STATS_LINE_AVG_SORTED_BY_MOD) {
-        line_avg_sorted_mod_str = mputstrn(line_avg_sorted_mod_str, "\n", 1);
-      }
-      if (stats_flags & STATS_LINE_AVG_SORTED_TOTAL) {
-        line_avg_sorted_tot_str = mputstrn(line_avg_sorted_tot_str, "\n", 1);
-      }
-      if (stats_flags & STATS_FUNC_AVG_SORTED_BY_MOD) {
-        func_avg_sorted_mod_str = mputstrn(func_avg_sorted_mod_str, "\n", 1);
-      }
-      if (stats_flags & STATS_FUNC_AVG_SORTED_TOTAL) {
-        func_avg_sorted_tot_str = mputstrn(func_avg_sorted_tot_str, "\n", 1);
-      }
-      if (stats_flags & STATS_TOP10_LINE_AVG) {
-        line_avg_sorted_top10_str = mputstrn(line_avg_sorted_top10_str, "\n", 1);
-      }
-      if (stats_flags & STATS_TOP10_FUNC_AVG) {
-        func_avg_sorted_top10_str = mputstrn(func_avg_sorted_top10_str, "\n", 1);
-      }
-    }
-  }
-  if (!disable_coverage) {
-    if (stats_flags & STATS_LINE_COUNT_SORTED_BY_MOD) {
-      line_count_sorted_mod_str = mputstrn(line_count_sorted_mod_str, "\n", 1);
-    }
-    if (stats_flags & STATS_LINE_COUNT_SORTED_TOTAL) {
-      line_count_sorted_tot_str = mputstrn(line_count_sorted_tot_str, "\n", 1);
-    }
-    if (stats_flags & STATS_FUNC_COUNT_SORTED_BY_MOD) {
-      func_count_sorted_mod_str = mputstrn(func_count_sorted_mod_str, "\n", 1);
-    }
-    if (stats_flags & STATS_FUNC_COUNT_SORTED_TOTAL) {
-      func_count_sorted_tot_str = mputstrn(func_count_sorted_tot_str, "\n", 1);
-    }
-    if (stats_flags & STATS_TOP10_LINE_COUNT) {
-      line_count_sorted_top10_str = mputstrn(line_count_sorted_top10_str, "\n", 1);
-    }
-    if (stats_flags & STATS_TOP10_FUNC_COUNT) {
-      func_count_sorted_top10_str = mputstrn(func_count_sorted_top10_str, "\n", 1);
-    }
-    if (stats_flags & STATS_UNUSED_LINES) {
-      unused_lines_str = mputstrn(unused_lines_str, "\n", 1);
-    }
-    if (stats_flags & STATS_UNUSED_FUNC) {
-      unused_func_str = mputstrn(unused_func_str, "\n", 1);
-    }
-  }
-  
-  // write the statistics to the specified file
-  FILE* file = fopen(stats_filename, "w");
-  if (NULL == file) {
-    TTCN_warning("Could not open file '%s' for writing. Profiler and/or code coverage "
-      "statistics will not be saved.", stats_filename);
-    return;
-  }
-  // by now the strings for all disabled statistics entries should be null
-  fprintf(file, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
-    , title_str
-    , (NULL != line_func_count_str) ? line_func_count_str : ""
-    , (NULL != line_data_str) ? line_data_str : ""
-    , (NULL != line_avg_str) ? line_avg_str : ""
-    , (NULL != func_data_str) ? func_data_str : ""
-    , (NULL != func_avg_str) ? func_avg_str : ""
-    , (NULL != line_time_sorted_mod_str) ? line_time_sorted_mod_str : ""
-    , (NULL != line_time_sorted_tot_str) ? line_time_sorted_tot_str : ""
-    , (NULL != func_time_sorted_mod_str) ? func_time_sorted_mod_str : ""
-    , (NULL != func_time_sorted_tot_str) ? func_time_sorted_tot_str : ""
-    , (NULL != line_count_sorted_mod_str) ? line_count_sorted_mod_str : ""
-    , (NULL != line_count_sorted_tot_str) ? line_count_sorted_tot_str : ""
-    , (NULL != func_count_sorted_mod_str) ? func_count_sorted_mod_str : ""
-    , (NULL != func_count_sorted_tot_str) ? func_count_sorted_tot_str : ""
-    , (NULL != line_avg_sorted_mod_str) ? line_avg_sorted_mod_str : ""
-    , (NULL != line_avg_sorted_tot_str) ? line_avg_sorted_tot_str : ""
-    , (NULL != func_avg_sorted_mod_str) ? func_avg_sorted_mod_str : ""
-    , (NULL != func_avg_sorted_tot_str) ? func_avg_sorted_tot_str : ""
-    , (NULL != line_time_sorted_top10_str) ? line_time_sorted_top10_str : ""
-    , (NULL != func_time_sorted_top10_str) ? func_time_sorted_top10_str : ""
-    , (NULL != line_count_sorted_top10_str) ? line_count_sorted_top10_str : ""
-    , (NULL != func_count_sorted_top10_str) ? func_count_sorted_top10_str : ""
-    , (NULL != line_avg_sorted_top10_str) ? line_avg_sorted_top10_str : ""
-    , (NULL != func_avg_sorted_top10_str) ? func_avg_sorted_top10_str : ""
-    , (NULL != unused_lines_str) ? unused_lines_str : ""
-    , (NULL != unused_func_str) ? unused_func_str : "");
-  
-  fclose(file);
-  
-  // free the strings
-  Free(title_str);
-  Free(line_func_count_str);
-  Free(line_data_str);
-  Free(line_avg_str);
-  Free(func_data_str);
-  Free(func_avg_str);
-  Free(line_time_sorted_mod_str);
-  Free(line_time_sorted_tot_str);
-  Free(func_time_sorted_mod_str);
-  Free(func_time_sorted_tot_str);
-  Free(line_count_sorted_mod_str);
-  Free(line_count_sorted_tot_str);
-  Free(func_count_sorted_mod_str);
-  Free(func_count_sorted_tot_str);
-  Free(line_avg_sorted_mod_str);
-  Free(line_avg_sorted_tot_str);
-  Free(func_avg_sorted_mod_str);
-  Free(func_avg_sorted_tot_str);
-  Free(line_time_sorted_top10_str);
-  Free(func_time_sorted_top10_str);
-  Free(line_count_sorted_top10_str);
-  Free(func_count_sorted_top10_str);
-  Free(line_avg_sorted_top10_str);
-  Free(func_avg_sorted_top10_str);
-  Free(unused_lines_str);
-  Free(unused_func_str);
+  Profiler_Tools::print_stats(profiler_db, stats_filename, disable_profiler,
+    disable_coverage, stats_flags, TTCN_warning);
 }
 
 void TTCN3_Profiler::reset()
@@ -1592,7 +295,7 @@ void TTCN3_Profiler::execute_line(const char* filename, int lineno)
   if (!stopped) {
     if (!disable_profiler && NULL != prev_file) {
       // this line is in the same function as the previous one, measure the time difference
-      timeval elapsed = subtract_timeval(get_time(), prev_time);
+      timeval elapsed = Profiler_Tools::subtract_timeval(get_time(), prev_time);
 
       // add the elapsed time to the total time of the previous line
       add_line_time(elapsed, get_element(prev_file), prev_line);
@@ -1625,7 +328,7 @@ int TTCN3_Profiler::get_element(const char* filename)
     }
   }
   
-  profiler_db_item_t item;
+  Profiler_Tools::profiler_db_item_t item;
   item.filename = mcopystr(filename);
   profiler_db.push_back(item);
   return profiler_db.size() - 1;
@@ -1633,43 +336,22 @@ int TTCN3_Profiler::get_element(const char* filename)
 
 int TTCN3_Profiler::get_function(int element, int lineno)
 {
-  for (size_t i = 0; i < profiler_db[element].functions.size(); ++i) {
-    if (profiler_db[element].functions[i].lineno == lineno) {
-      return i;
-    }
-  }
-  return -1;
+  return Profiler_Tools::get_function(profiler_db, element, lineno);
 }
 
 void TTCN3_Profiler::create_function(int element, int lineno, const char* function_name)
 {
-  profiler_db_item_t::profiler_function_data_t func_data;
-  func_data.lineno = lineno;
-  func_data.total_time.tv_sec = 0;
-  func_data.total_time.tv_usec = 0;
-  func_data.exec_count = 0;
-  func_data.name = mcopystr(function_name);
-  profiler_db[element].functions.push_back(func_data);
+  Profiler_Tools::create_function(profiler_db, element, lineno, function_name);
 }
 
 int TTCN3_Profiler::get_line(int element, int lineno)
 {
-  for (size_t i = 0; i < profiler_db[element].lines.size(); ++i) {
-    if (profiler_db[element].lines[i].lineno == lineno) {
-      return i;
-    }
-  }
-  return -1;
+  return Profiler_Tools::get_line(profiler_db, element, lineno);
 }
 
 void TTCN3_Profiler::create_line(int element, int lineno)
 {
-  profiler_db_item_t::profiler_line_data_t line_data;
-  line_data.lineno = lineno;
-  line_data.total_time.tv_sec = 0;
-  line_data.total_time.tv_usec = 0;
-  line_data.exec_count = 0;
-  profiler_db[element].lines.push_back(line_data);
+  Profiler_Tools::create_line(profiler_db, element, lineno);
 }
 
 void TTCN3_Profiler::add_line_time(timeval elapsed, int element, int lineno) 
@@ -1677,7 +359,7 @@ void TTCN3_Profiler::add_line_time(timeval elapsed, int element, int lineno)
   if (0 == lineno) {
     return;
   }
-  profiler_db[element].lines[get_line(element, lineno)].total_time = add_timeval(
+  profiler_db[element].lines[get_line(element, lineno)].total_time = Profiler_Tools::add_timeval(
     profiler_db[element].lines[get_line(element, lineno)].total_time, elapsed);
 }
 
@@ -1687,7 +369,7 @@ void TTCN3_Profiler::add_function_time(timeval elapsed, int element, int lineno)
   if (-1 == func) {
     return;
   }
-  profiler_db[element].functions[func].total_time = add_timeval(
+  profiler_db[element].functions[func].total_time = Profiler_Tools::add_timeval(
     profiler_db[element].functions[func].total_time, elapsed);
 }
 
@@ -1697,7 +379,7 @@ void TTCN3_Profiler::update_last()
     return;
   }
 
-  timeval elapsed = subtract_timeval(get_time(), prev_time);
+  timeval elapsed = Profiler_Tools::subtract_timeval(get_time(), prev_time);
 
   int element = get_element(prev_file);
   
@@ -1839,7 +521,8 @@ void TTCN3_Stack_Depth::update_stack_elapsed(timeval elapsed)
     // the function/caller pair appears for the first time (marked by 'first_call')
     for(int i = 0; i <= current_depth; ++i) {
       if (call_stack_timer_db[i].first_call) {
-        call_stack_timer_db[i].elapsed = add_timeval(call_stack_timer_db[i].elapsed, elapsed);
+        call_stack_timer_db[i].elapsed = Profiler_Tools::add_timeval(
+          call_stack_timer_db[i].elapsed, elapsed);
       }
     }
   }
diff --git a/core/Profiler.hh b/core/Profiler.hh
index 67b4081a1..cf8a9fb62 100644
--- a/core/Profiler.hh
+++ b/core/Profiler.hh
@@ -9,9 +9,7 @@
 #ifndef PROFILER_HH
 #define PROFILER_HH
 
-#include "Vector.hh"
-#include "Types.h"
-#include <sys/time.h>
+#include "ProfilerTools.hh"
 
 /** This class performs profiling and code coverage on lines and functions in
   * TTCN-3 code (requires the -z compiler option).
@@ -19,79 +17,6 @@
 class TTCN3_Profiler {
 public:
   
-  /** Database entry for one file */
-  struct profiler_db_item_t {
-    /** Database entry for one line */
-    struct profiler_line_data_t {
-      /** Line number */
-      int lineno;
-      /** The line's total execution time */
-      timeval total_time;
-      /** The number of times this line was executed */
-      int exec_count;
-    };
-    /** Database entry for one function (including test cases, alt steps, the control part, etc.) */
-    struct profiler_function_data_t {
-      /** Function name (owned) */
-      char* name;
-      /** Function starting line */
-      int lineno;
-      /** The function's total execution time */
-      timeval total_time;
-      /** The number of times this function was executed */
-      int exec_count;
-    };
-    /** TTCN-3 File name (relative path, owned) */
-    char* filename;
-    /** Contains database entries for all the lines in this file */
-    Vector<profiler_line_data_t> lines;
-    /** Contains database entries for all the functions in this file */
-    Vector<profiler_function_data_t> functions;
-  };
-  
-  enum profiler_stats_flag_t {
-    // flags for each statistics entry
-    STATS_NUMBER_OF_LINES          = 0x0000001,
-    STATS_LINE_DATA_RAW            = 0x0000002,
-    STATS_FUNC_DATA_RAW            = 0x0000004,
-    STATS_LINE_AVG_RAW             = 0x0000008,
-    STATS_FUNC_AVG_RAW             = 0x0000010,
-    STATS_LINE_TIMES_SORTED_BY_MOD = 0x0000020,
-    STATS_FUNC_TIMES_SORTED_BY_MOD = 0x0000040,
-    STATS_LINE_TIMES_SORTED_TOTAL  = 0x0000080,
-    STATS_FUNC_TIMES_SORTED_TOTAL  = 0x0000100,
-    STATS_LINE_COUNT_SORTED_BY_MOD = 0x0000200,
-    STATS_FUNC_COUNT_SORTED_BY_MOD = 0x0000400,
-    STATS_LINE_COUNT_SORTED_TOTAL  = 0x0000800,
-    STATS_FUNC_COUNT_SORTED_TOTAL  = 0x0001000,
-    STATS_LINE_AVG_SORTED_BY_MOD   = 0x0002000,
-    STATS_FUNC_AVG_SORTED_BY_MOD   = 0x0004000,
-    STATS_LINE_AVG_SORTED_TOTAL    = 0x0008000,
-    STATS_FUNC_AVG_SORTED_TOTAL    = 0x0010000,
-    STATS_TOP10_LINE_TIMES         = 0x0020000,
-    STATS_TOP10_FUNC_TIMES         = 0x0040000,
-    STATS_TOP10_LINE_COUNT         = 0x0080000,
-    STATS_TOP10_FUNC_COUNT         = 0x0100000,
-    STATS_TOP10_LINE_AVG           = 0x0200000,
-    STATS_TOP10_FUNC_AVG           = 0x0400000,
-    STATS_UNUSED_LINES             = 0x0800000,
-    STATS_UNUSED_FUNC              = 0x1000000,
-    // grouped entries
-    STATS_ALL_RAW_DATA             = 0x000001E,
-    STATS_LINE_DATA_SORTED_BY_MOD  = 0x0002220,
-    STATS_FUNC_DATA_SORTED_BY_MOD  = 0x0004440,
-    STATS_LINE_DATA_SORTED_TOTAL   = 0x0008880,
-    STATS_FUNC_DATA_SORTED_TOTAL   = 0x0011100,
-    STATS_LINE_DATA_SORTED         = 0x000AAA0,
-    STATS_FUNC_DATA_SORTED         = 0x0015540,
-    STATS_ALL_DATA_SORTED          = 0x001FFE0,
-    STATS_TOP10_LINE_DATA          = 0x02A0000,
-    STATS_TOP10_FUNC_DATA          = 0x0540000,
-    STATS_TOP10_ALL_DATA           = 0x07E0000,
-    STATS_UNUSED_DATA              = 0x1800000,
-    STATS_ALL                      = 0x1FFFFFF
-  };
-  
   /** Constructor */
   TTCN3_Profiler();
   /** Destructor 
@@ -131,8 +56,8 @@ public:
   /** Returns true if the profiler is currently running (not stopped) */
   boolean is_running() const;
   
-  /** Stores the component reference of a newly created PTC (in parallel mode only) */
-  void add_ptc(component p_comp_ref);
+  /** Stores the component reference of a newly created PTC or MTC (in parallel mode only) */
+  void add_component(component p_comp_ref);
 
   /** Adds the data from the database file to the local database */
   void import_data(component p_comp_ref = NULL_COMPREF);
@@ -167,7 +92,7 @@ public:
   void create_line(int element, int lineno);
   /** Adds elapsed time to the specified TTCN-3 code line's total time */
   void add_line_time(timeval elapsed, int element, int lineno);
-  /** Adds elapsed time to the specified TTCN-3 function's total time*/
+  /** Adds elapsed time to the specified TTCN-3 function's total time */
   void add_function_time(timeval elapsed, int element, int lineno);
   /** Called when a TTCN-3 function's execution ends - stores data */
   void update_last();
@@ -199,12 +124,12 @@ private:
   /** The number of the previously executed line */
   int prev_line;
   /** The local database */
-  Vector<profiler_db_item_t> profiler_db;
+  Profiler_Tools::profiler_db_t profiler_db;
   /** The stack length at the previously executed line */
   int prev_stack_len;
-  /** Contains the component references of all PTCs (only relevant in the Host
+  /** Contains the component references of the other processes (only relevant in the Host
     * Controller's process, in parallel mode) */
-  Vector<component> ptc_list;
+  Vector<component> component_list;
 };
 
 /** The global TTCN3_Profiler object
diff --git a/core/ProfilerTools.cc b/core/ProfilerTools.cc
new file mode 100644
index 000000000..9c56ef9b2
--- /dev/null
+++ b/core/ProfilerTools.cc
@@ -0,0 +1,1412 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
+#include "ProfilerTools.hh"
+#include "JSON_Tokenizer.hh"
+#include "memory.h"
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+namespace Profiler_Tools {
+  
+  ////////////////////////////////////
+  //////// timeval operations ////////
+  ////////////////////////////////////
+
+  timeval string2timeval(const char* str)
+  {
+    // read and store the first part (atoi will read until the decimal dot)
+    long int sec = atoi(str);
+    timeval tv;
+    tv.tv_sec = sec;
+
+    do {
+      // step over each digit
+      sec /= 10;
+      ++str;
+    }
+    while (sec > 9);
+
+    // step over the decimal dot and read the second part of the number
+    tv.tv_usec = atoi(str + 1);
+    return tv;
+  }
+  
+  char* timeval2string(timeval tv)
+  {
+    // convert the first part and set the second part to all zeros
+    char* str = mprintf("%ld.000000", tv.tv_sec);
+
+    // go through each digit of the second part and add them to the zeros in the string
+    size_t pos = mstrlen(str) - 1;
+    while (tv.tv_usec > 0) {
+      str[pos] += tv.tv_usec % 10;
+      tv.tv_usec /= 10;
+      --pos;
+    }
+    return str;
+  }
+
+  timeval add_timeval(const timeval operand1, const timeval operand2)
+  {
+    timeval tv;
+    tv.tv_usec = operand1.tv_usec + operand2.tv_usec;
+    tv.tv_sec = operand1.tv_sec + operand2.tv_sec;
+    if (tv.tv_usec >= 1000000) {
+      ++tv.tv_sec;
+      tv.tv_usec -= 1000000;
+    }
+    return tv;
+  }
+
+  timeval subtract_timeval(const timeval operand1, const timeval operand2)
+  {
+    timeval tv;
+    tv.tv_usec = operand1.tv_usec - operand2.tv_usec;
+    tv.tv_sec = operand1.tv_sec - operand2.tv_sec;
+    if (tv.tv_usec < 0) {
+      --tv.tv_sec;
+      tv.tv_usec += 1000000;
+    }
+    return tv;
+  }
+  
+  ////////////////////////////////////
+  ///// profiler data operations /////
+  ////////////////////////////////////
+  
+  int get_function(const profiler_db_t& p_db, int p_element, int p_lineno)
+  {
+    for (size_t i = 0; i < p_db[p_element].functions.size(); ++i) {
+      if (p_db[p_element].functions[i].lineno == p_lineno) {
+        return i;
+      }
+    }
+    return -1;
+  }
+  
+  void create_function(profiler_db_t& p_db, int p_element, int p_lineno,
+                       const char* p_function_name)
+  {
+    profiler_db_item_t::profiler_function_data_t func_data;
+    func_data.lineno = p_lineno;
+    func_data.total_time.tv_sec = 0;
+    func_data.total_time.tv_usec = 0;
+    func_data.exec_count = 0;
+    func_data.name = mcopystr(p_function_name);
+    p_db[p_element].functions.push_back(func_data);
+  }
+  
+  int get_line(const profiler_db_t& p_db, int p_element, int p_lineno)
+  {
+    for (size_t i = 0; i < p_db[p_element].lines.size(); ++i) {
+      if (p_db[p_element].lines[i].lineno == p_lineno) {
+        return i;
+      }
+    }
+    return -1;
+  }
+  
+  void create_line(profiler_db_t& p_db, int p_element, int p_lineno)
+  {
+    profiler_db_item_t::profiler_line_data_t line_data;
+    line_data.lineno = p_lineno;
+    line_data.total_time.tv_sec = 0;
+    line_data.total_time.tv_usec = 0;
+    line_data.exec_count = 0;
+    p_db[p_element].lines.push_back(line_data);
+  }
+  
+#define IMPORT_FORMAT_ERROR(cond) \
+  if (cond) { \
+    p_error_function("Failed to load profiling and/or code coverage database. Invalid format."); \
+    return; \
+  }
+  
+  void import_data(profiler_db_t& p_db, const char* p_filename, boolean p_wait,
+                   void (*p_error_function)(const char*, ...))
+  {
+    // open the file, if it exists
+    int file_size = 0;
+    FILE* file = fopen(p_filename, "r");
+    if (NULL != file) {
+      // get the file size
+      fseek(file, 0, SEEK_END);
+      file_size = ftell(file);
+    }
+    while (0 == file_size) {
+      if (!p_wait) {
+        return;
+      }
+      // keep reading until the file appears (and is not empty)
+      if (NULL != file) {
+        fclose(file);
+      }
+      usleep(1000);
+      file = fopen(p_filename, "r");
+      if (NULL != file) {
+        // refresh the file size
+        fseek(file, 0, SEEK_END);
+        file_size = ftell(file);
+      }
+    }
+
+    // rewind the file (the file pointer has been moved to the end of the file to
+    // calculate its size)
+    rewind(file);
+
+    // read the entire file into a character buffer
+    char* buffer = (char*)Malloc(file_size);
+    int bytes_read = fread(buffer, 1, file_size, file);
+    fclose(file);
+    if (bytes_read != file_size) {
+      p_error_function("Error reading database file.");
+      return;
+    }
+
+    // initialize a JSON tokenizer with the buffer
+    JSON_Tokenizer json(buffer, file_size);
+    Free(buffer);
+
+    // attempt to read tokens from the buffer
+    // if the format is invalid, abort the importing process
+    json_token_t token = JSON_TOKEN_NONE;
+    char* value = NULL;
+    size_t value_len = 0;
+
+    // start of main array
+    json.get_next_token(&token, NULL, NULL);
+    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token);
+
+    // read objects (one for each TTCN-3 file), until the main array end mark is reached
+    json.get_next_token(&token, NULL, NULL);
+    while (JSON_TOKEN_OBJECT_START == token) {
+      size_t file_index = 0;
+
+      // file name:
+      json.get_next_token(&token, &value, &value_len);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 4 ||
+        0 != strncmp(value, "file", value_len));
+
+      // read the file name and see if its record already exists
+      json.get_next_token(&token, &value, &value_len);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_STRING != token);
+      for (file_index = 0; file_index < p_db.size(); ++file_index) {
+        if (strlen(p_db[file_index].filename) == value_len - 2 &&
+            0 == strncmp(p_db[file_index].filename, value + 1, value_len - 2)) {
+          break;
+        }
+      }
+
+      // insert a new element if the file was not found
+      if (p_db.size() == file_index) {
+        profiler_db_item_t item;
+        item.filename = mcopystrn(value + 1, value_len - 2);
+        p_db.push_back(item);
+      }
+
+      // functions:
+      json.get_next_token(&token, &value, &value_len);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 9 ||
+        0 != strncmp(value, "functions", value_len));
+
+      // read and store the functions (an array of objects, same as before)
+      json.get_next_token(&token, NULL, NULL);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token);
+      json.get_next_token(&token, NULL, NULL);
+      while (JSON_TOKEN_OBJECT_START == token) {
+        size_t function_index = 0;
+
+        // function name:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 4 ||
+          0 != strncmp(value, "name", value_len));
+
+        // read the function name, it will be checked later
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_STRING != token);
+        char* function_name = mcopystrn(value + 1, value_len - 2);
+
+        // function start line:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 10 ||
+          0 != strncmp(value, "start line", value_len));
+
+        // read the start line and check if the function already exists
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
+        int start_line = atoi(value);
+        for (function_index = 0; function_index < p_db[file_index].functions.size(); ++function_index) {
+          if (p_db[file_index].functions[function_index].lineno == start_line &&
+              0 == strcmp(p_db[file_index].functions[function_index].name, function_name)) {
+            break;
+          }
+        }
+
+        // insert a new element if the function was not found
+        if (p_db[file_index].functions.size() == function_index) {
+          profiler_db_item_t::profiler_function_data_t func_data;
+          func_data.name = function_name;
+          func_data.lineno = start_line;
+          func_data.exec_count = 0;
+          func_data.total_time.tv_sec = 0;
+          func_data.total_time.tv_usec = 0;
+          p_db[file_index].functions.push_back(func_data);
+        }
+
+        // function execution count:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 15 ||
+          0 != strncmp(value, "execution count", value_len));
+
+        // read the execution count and add it to the current data
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
+        p_db[file_index].functions[function_index].exec_count += atoi(value);
+
+        // total function execution time:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 10 ||
+          0 != strncmp(value, "total time", value_len));
+
+        // read the total time and add it to the current data
+        // note: the database contains a real number, this needs to be split into 2 integers
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
+        p_db[file_index].functions[function_index].total_time = add_timeval(
+          p_db[file_index].functions[function_index].total_time, string2timeval(value));
+
+        // end of the function's object
+        json.get_next_token(&token, NULL, NULL);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token);
+
+        // read the next token (either the start of another object or the function array end)
+        json.get_next_token(&token, NULL, NULL);
+      }
+
+      // function array end
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_END != token);
+
+      // lines:
+      json.get_next_token(&token, &value, &value_len);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 5 ||
+        0 != strncmp(value, "lines", value_len));
+
+      // read and store the lines (an array of objects, same as before)
+      json.get_next_token(&token, NULL, NULL);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token);
+      json.get_next_token(&token, NULL, NULL);
+      while (JSON_TOKEN_OBJECT_START == token) {
+        int line_index = 0;
+
+        // line number:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 6 ||
+          0 != strncmp(value, "number", value_len));
+
+        // read the line number and check if the line already exists
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
+        int lineno = atoi(value);
+        IMPORT_FORMAT_ERROR(lineno < 0);
+        line_index = get_line(p_db, file_index, lineno);
+        if (-1 == line_index) {
+          create_line(p_db, file_index, lineno);
+          line_index = p_db[file_index].lines.size() - 1;
+        }
+
+        // line execution count:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 15 ||
+          0 != strncmp(value, "execution count", value_len));
+
+        // read the execution count and add it to the current data
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
+        p_db[file_index].lines[line_index].exec_count += atoi(value);
+
+        // total line execution time:
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 10 ||
+          0 != strncmp(value, "total time", value_len));
+
+        // read the total time and add it to the current data
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_NUMBER != token);
+        p_db[file_index].lines[line_index].total_time = add_timeval(
+          p_db[file_index].lines[line_index].total_time, string2timeval(value));
+
+        // end of the line's object
+        json.get_next_token(&token, NULL, NULL);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token);
+
+        // read the next token (either the start of another object or the line array end)
+        json.get_next_token(&token, NULL, NULL);
+      }
+
+      // line array end
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_END != token);
+
+      // end of the file's object
+      json.get_next_token(&token, NULL, NULL);
+      IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token);
+
+      // read the next token (either the start of another object or the main array end)
+      json.get_next_token(&token, NULL, NULL);
+    }
+
+    // main array end
+    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_END != token);
+  }
+  
+  void export_data(profiler_db_t& p_db, const char* p_filename,
+                   boolean p_disable_profiler, boolean p_disable_coverage,
+                   void (*p_error_function)(const char*, ...))
+  {
+    // check whether the file can be opened for writing
+    FILE* file = fopen(p_filename, "w");
+    if (NULL == file) {
+      p_error_function("Could not open file '%s' for writing. Profiling and/or code coverage "
+        "data will not be saved.", p_filename);
+      return;
+    }
+
+    // use the JSON tokenizer to create a JSON document from the database
+    JSON_Tokenizer json(true);
+
+    // main array, contains an element for each file
+    json.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
+    for (size_t i = 0; i < p_db.size(); ++i) {
+
+      // each file's data is stored in an object
+      json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
+
+      // store the file name
+      json.put_next_token(JSON_TOKEN_NAME, "file");
+      char* p_filename_str = mprintf("\"%s\"", p_db[i].filename);
+      json.put_next_token(JSON_TOKEN_STRING, p_filename_str);
+      Free(p_filename_str);
+
+      // store the function data in an array (one element for each function)
+      json.put_next_token(JSON_TOKEN_NAME, "functions");
+      json.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
+      for (size_t j = 0; j < p_db[i].functions.size(); ++j) {
+
+        // the data is stored in an object for each function
+        json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
+
+        // store the function name
+        json.put_next_token(JSON_TOKEN_NAME, "name");
+        char* func_name_str = mprintf("\"%s\"", p_db[i].functions[j].name);
+        json.put_next_token(JSON_TOKEN_STRING, func_name_str);
+        Free(func_name_str);
+
+        // store the function start line
+        json.put_next_token(JSON_TOKEN_NAME, "start line");
+        char* start_line_str = mprintf("%d", p_db[i].functions[j].lineno);
+        json.put_next_token(JSON_TOKEN_NUMBER, start_line_str);
+        Free(start_line_str);
+
+        // store the function execution count
+        json.put_next_token(JSON_TOKEN_NAME, "execution count");
+        char* exec_count_str = mprintf("%d", p_disable_coverage ? 0 :
+          p_db[i].functions[j].exec_count);
+        json.put_next_token(JSON_TOKEN_NUMBER, exec_count_str);
+        Free(exec_count_str);
+
+        // store the function's total execution time
+        json.put_next_token(JSON_TOKEN_NAME, "total time");
+        if (p_disable_profiler) {
+          json.put_next_token(JSON_TOKEN_NUMBER, "0.000000");
+        }
+        else {
+          char* total_time_str = timeval2string(p_db[i].functions[j].total_time);
+          json.put_next_token(JSON_TOKEN_NUMBER, total_time_str);
+          Free(total_time_str);
+        }
+
+        // end of function object
+        json.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
+      }
+
+      // end of function data array
+      json.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
+
+      // store the line data in an array (one element for each line with useful data)
+      json.put_next_token(JSON_TOKEN_NAME, "lines");
+      json.put_next_token(JSON_TOKEN_ARRAY_START, NULL);
+      for (size_t j = 0; j < p_db[i].lines.size(); ++j) {
+        
+        // store line data in an object
+        json.put_next_token(JSON_TOKEN_OBJECT_START, NULL);
+
+        // store the line number
+        json.put_next_token(JSON_TOKEN_NAME, "number");
+        char* line_number_str = mprintf("%d", p_db[i].lines[j].lineno);
+        json.put_next_token(JSON_TOKEN_NUMBER, line_number_str);
+        Free(line_number_str);
+
+        // store the line execution count
+        json.put_next_token(JSON_TOKEN_NAME, "execution count");
+        char* exec_count_str = mprintf("%d", p_disable_coverage ? 0 :
+          p_db[i].lines[j].exec_count);
+        json.put_next_token(JSON_TOKEN_NUMBER, exec_count_str);
+        Free(exec_count_str);
+
+        // store the line's total execution time
+        json.put_next_token(JSON_TOKEN_NAME, "total time");
+        if (p_disable_profiler) {
+          json.put_next_token(JSON_TOKEN_NUMBER, "0.000000");
+        }
+        else {
+          char* total_time_str = timeval2string(p_db[i].lines[j].total_time);
+          json.put_next_token(JSON_TOKEN_NUMBER, total_time_str);
+          Free(total_time_str);
+        }
+
+        // end of this line's object
+        json.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
+      }
+
+      // end of line data array
+      json.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
+
+      // end of this file's object
+      json.put_next_token(JSON_TOKEN_OBJECT_END, NULL);
+    }
+
+    // end of main array
+    json.put_next_token(JSON_TOKEN_ARRAY_END, NULL);
+
+    // write the JSON document into the file
+    fprintf(file, "%s\n", json.get_buffer());
+    fclose(file);
+  }
+  
+  // Structure for one code line or function, used by print_stats for sorting
+  struct stats_data_t {
+    const char* filename; // not owned
+    const char* funcname; // not owned, NULL for code lines that don't start a function
+    int lineno;
+    timeval total_time;
+    int exec_count;
+  };
+
+  // Compare function for sorting stats data based on total execution time (descending)
+  int stats_data_cmp_time(const void* p_left, const void* p_right) {
+    const stats_data_t* p_left_data = (stats_data_t*)p_left;
+    const stats_data_t* p_right_data = (stats_data_t*)p_right;
+    if (p_left_data->total_time.tv_sec > p_right_data->total_time.tv_sec) return -1;
+    if (p_left_data->total_time.tv_sec < p_right_data->total_time.tv_sec) return 1;
+    if (p_left_data->total_time.tv_usec > p_right_data->total_time.tv_usec) return -1;
+    if (p_left_data->total_time.tv_usec < p_right_data->total_time.tv_usec) return 1;
+    return 0;
+  }
+
+  // Compare function for sorting stats data based on execution count (descending)
+  int stats_data_cmp_count(const void* p_left, const void* p_right) {
+    return ((stats_data_t*)p_right)->exec_count - ((stats_data_t*)p_left)->exec_count;
+  }
+
+  // Compare function for sorting stats data based on total time per execution count (descending)
+  int stats_data_cmp_avg(const void* p_left, const void* p_right) {
+    const stats_data_t* p_left_data = (stats_data_t*)p_left;
+    const stats_data_t* p_right_data = (stats_data_t*)p_right;
+    double left_time = p_left_data->total_time.tv_sec + p_left_data->total_time.tv_usec / 1000000.0;
+    double right_time = p_right_data->total_time.tv_sec + p_right_data->total_time.tv_usec / 1000000.0;
+    double diff = (right_time / p_right_data->exec_count) - (left_time / p_left_data->exec_count);
+    if (diff < 0) return -1;
+    if (diff > 0) return 1;
+    return 0;
+  }
+  
+  void print_stats(profiler_db_t& p_db, const char* p_filename,
+                   boolean p_disable_profiler, boolean p_disable_coverage,
+                   unsigned int p_flags, void (*p_error_function)(const char*, ...))
+  {
+    // title
+    char* title_str = mprintf(
+      "##################################################\n"
+      "%s## TTCN-3 %s%s%sstatistics ##%s\n"
+      "##################################################\n\n\n"
+      , p_disable_profiler ? "#######" : (p_disable_coverage ? "#########" : "")
+      , p_disable_profiler ? "" : "profiler "
+      , (p_disable_profiler || p_disable_coverage) ? "" : "and "
+      , p_disable_coverage ? "" : "code coverage "
+      , p_disable_profiler ? "######" : (p_disable_coverage ? "#########" : ""));
+
+    char* line_func_count_str = NULL;
+    if (p_flags & STATS_NUMBER_OF_LINES) {
+      line_func_count_str = mcopystr(
+        "--------------------------------------\n"
+        "- Number of code lines and functions -\n"
+        "--------------------------------------\n");
+    }
+
+    // line data
+    char* line_data_str = NULL;
+    if (p_flags & STATS_LINE_DATA_RAW) {
+      line_data_str = mprintf(
+        "-------------------------------------------------\n"
+        "%s- Code line data (%s%s%s) -%s\n"
+        "-------------------------------------------------\n"
+        , p_disable_profiler ? "-------" : (p_disable_coverage ? "---------" : "")
+        , p_disable_profiler ? "" : "total time"
+        , (p_disable_profiler || p_disable_coverage) ? "" : " / "
+        , p_disable_coverage ? "" : "execution count"
+        , p_disable_profiler ? "------" : (p_disable_coverage ? "---------" : ""));
+    }
+
+    // average time / exec count for lines
+    char* line_avg_str = NULL;
+    if (!p_disable_coverage && !p_disable_profiler && (p_flags & STATS_LINE_AVG_RAW)) {
+      line_avg_str = mcopystr(
+        "-------------------------------------------\n"
+        "- Average time / execution for code lines -\n"
+        "-------------------------------------------\n");
+    }
+
+    // function data
+    char* func_data_str = NULL;
+    if (p_flags & STATS_FUNC_DATA_RAW) {
+      func_data_str = mprintf(
+        "------------------------------------------------\n"
+        "%s- Function data (%s%s%s) -%s\n"
+        "------------------------------------------------\n"
+        , p_disable_profiler ? "-------" : (p_disable_coverage ? "---------" : "")
+        , p_disable_profiler ? "" : "total time"
+        , (p_disable_profiler || p_disable_coverage) ? "" : " / "
+        , p_disable_coverage ? "" : "execution count"
+        , p_disable_profiler ? "------" : (p_disable_coverage ? "---------" : ""));
+    }
+
+    // average time / exec count for functions
+    char* func_avg_str = NULL;
+    if (!p_disable_coverage && !p_disable_profiler && (p_flags & STATS_FUNC_AVG_RAW)) {
+      func_avg_str = mcopystr(
+        "------------------------------------------\n"
+        "- Average time / execution for functions -\n"
+        "------------------------------------------\n");
+    }
+
+    char* line_time_sorted_mod_str = NULL;
+    if (!p_disable_profiler && (p_flags & STATS_LINE_TIMES_SORTED_BY_MOD)) {
+      line_time_sorted_mod_str = mcopystr(
+        "------------------------------------------------\n"
+        "- Total time of code lines, sorted, per module -\n"
+        "------------------------------------------------\n");
+    }
+
+    char* line_count_sorted_mod_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_LINE_COUNT_SORTED_BY_MOD)) {
+      line_count_sorted_mod_str = mcopystr(
+        "-----------------------------------------------------\n"
+        "- Execution count of code lines, sorted, per module -\n"
+        "-----------------------------------------------------\n");
+    }
+
+    char* line_avg_sorted_mod_str = NULL;
+    if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_LINE_AVG_SORTED_BY_MOD)) {
+      line_avg_sorted_mod_str = mcopystr(
+        "--------------------------------------------------------------\n"
+        "- Average time / execution of code lines, sorted, per module -\n"
+        "--------------------------------------------------------------\n");
+    }
+
+    char* line_time_sorted_tot_str = NULL;
+    if (!p_disable_profiler && (p_flags & STATS_LINE_TIMES_SORTED_TOTAL)) {
+      line_time_sorted_tot_str = mcopystr(
+        "-------------------------------------------\n"
+        "- Total time of code lines, sorted, total -\n"
+        "-------------------------------------------\n");
+    }
+
+    char* line_count_sorted_tot_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_LINE_COUNT_SORTED_TOTAL)) {
+      line_count_sorted_tot_str = mcopystr(
+        "------------------------------------------------\n"
+        "- Execution count of code lines, sorted, total -\n"
+        "------------------------------------------------\n");
+    }
+
+    char* line_avg_sorted_tot_str = NULL;
+    if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_LINE_AVG_SORTED_TOTAL)) {
+      line_avg_sorted_tot_str = mcopystr(
+        "---------------------------------------------------------\n"
+        "- Average time / execution of code lines, sorted, total -\n"
+        "---------------------------------------------------------\n");
+    }
+
+    char* func_time_sorted_mod_str = NULL;
+    if (!p_disable_profiler && (p_flags & STATS_FUNC_TIMES_SORTED_BY_MOD)) {
+      func_time_sorted_mod_str = mcopystr(
+        "-----------------------------------------------\n"
+        "- Total time of functions, sorted, per module -\n"
+        "-----------------------------------------------\n");
+    }
+
+    char* func_count_sorted_mod_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_FUNC_COUNT_SORTED_BY_MOD)) {
+      func_count_sorted_mod_str = mcopystr(
+        "----------------------------------------------------\n"
+        "- Execution count of functions, sorted, per module -\n"
+        "----------------------------------------------------\n");
+    }
+
+    char* func_avg_sorted_mod_str = NULL;
+    if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_FUNC_AVG_SORTED_BY_MOD)) {
+      func_avg_sorted_mod_str = mcopystr(
+        "-------------------------------------------------------------\n"
+        "- Average time / execution of functions, sorted, per module -\n"
+        "-------------------------------------------------------------\n");
+    }
+
+    char* func_time_sorted_tot_str = NULL;
+    if (!p_disable_profiler && (p_flags & STATS_FUNC_TIMES_SORTED_TOTAL)) {
+      func_time_sorted_tot_str = mcopystr(
+        "------------------------------------------\n"
+        "- Total time of functions, sorted, total -\n"
+        "------------------------------------------\n");
+    }
+
+    char* func_count_sorted_tot_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_FUNC_COUNT_SORTED_TOTAL)) {
+      func_count_sorted_tot_str = mcopystr(
+        "-----------------------------------------------\n"
+        "- Execution count of functions, sorted, total -\n"
+        "-----------------------------------------------\n");
+    }
+
+    char* func_avg_sorted_tot_str = NULL;
+    if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_FUNC_AVG_SORTED_TOTAL)) {
+      func_avg_sorted_tot_str = mcopystr(
+        "--------------------------------------------------------\n"
+        "- Average time / execution of functions, sorted, total -\n"
+        "--------------------------------------------------------\n");
+    }
+
+    char* line_time_sorted_top10_str = NULL;
+    if (!p_disable_profiler && (p_flags & STATS_TOP10_LINE_TIMES)) {
+      line_time_sorted_top10_str = mcopystr(
+        "------------------------------------\n"
+        "- Total time of code lines, top 10 -\n"
+        "------------------------------------\n");
+    }
+
+    char* line_count_sorted_top10_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_TOP10_LINE_COUNT)) {
+      line_count_sorted_top10_str = mcopystr(
+        "-----------------------------------------\n"
+        "- Execution count of code lines, top 10 -\n"
+        "-----------------------------------------\n");
+    }
+
+    char* line_avg_sorted_top10_str = NULL;
+    if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_TOP10_LINE_AVG)) {
+      line_avg_sorted_top10_str = mcopystr(
+        "--------------------------------------------------\n"
+        "- Average time / execution of code lines, top 10 -\n"
+        "--------------------------------------------------\n");
+    }
+
+    char* func_time_sorted_top10_str = NULL;
+    if (!p_disable_profiler && (p_flags & STATS_TOP10_FUNC_TIMES)) {
+      func_time_sorted_top10_str = mcopystr(
+        "-----------------------------------\n"
+        "- Total time of functions, top 10 -\n"
+        "-----------------------------------\n");
+    }
+
+    char* func_count_sorted_top10_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_TOP10_FUNC_COUNT)) {
+      func_count_sorted_top10_str = mcopystr(
+        "----------------------------------------\n"
+        "- Execution count of functions, top 10 -\n"
+        "----------------------------------------\n");
+    }
+
+    char* func_avg_sorted_top10_str = NULL;
+    if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_TOP10_FUNC_AVG)) {
+      func_avg_sorted_top10_str = mcopystr(
+        "-------------------------------------------------\n"
+        "- Average time / execution of functions, top 10 -\n"
+        "-------------------------------------------------\n");
+    }
+
+    char* unused_lines_str = NULL;
+    char* unused_func_str = NULL;
+    if (!p_disable_coverage && (p_flags & STATS_UNUSED_LINES)) {
+      unused_lines_str = mcopystr(
+        "---------------------\n"
+        "- Unused code lines -\n"
+        "---------------------\n");
+    }
+    if (!p_disable_coverage && (p_flags & STATS_UNUSED_FUNC)) {
+      unused_func_str = mcopystr(
+        "--------------------\n"
+        "- Unused functions -\n"
+        "--------------------\n");
+    }
+
+    // variables for counting totals, and for determining the amount of unused lines/functions
+    size_t total_code_lines = 0;
+    size_t total_functions = 0;
+    size_t used_code_lines = 0;
+    size_t used_functions = 0;
+
+    // cached sizes of statistics data segments, needed to determine whether a separator
+    // is needed or not
+    size_t line_data_str_len = mstrlen(line_data_str);
+    size_t func_data_str_len = mstrlen(func_data_str);
+    size_t unused_lines_str_len = mstrlen(unused_lines_str);
+    size_t unused_func_str_len = mstrlen(unused_func_str);
+    size_t line_avg_str_len = mstrlen(line_avg_str);
+    size_t func_avg_str_len = mstrlen(func_avg_str);
+
+    // cycle through the database and gather the necessary data
+    for (size_t i = 0; i < p_db.size(); ++i) {
+      if (i > 0) {
+        // add separators between files (only add them if the previous file actually added something)
+        if ((p_flags & STATS_LINE_DATA_RAW) && line_data_str_len != mstrlen(line_data_str)) {
+          line_data_str = mputstr(line_data_str, "-------------------------------------------------\n");
+          line_data_str_len = mstrlen(line_data_str);
+        }
+        if ((p_flags & STATS_FUNC_DATA_RAW) && func_data_str_len != mstrlen(func_data_str)) {
+          func_data_str = mputstr(func_data_str, "------------------------------------------------\n");
+          func_data_str_len = mstrlen(func_data_str);
+        }
+        if (!p_disable_coverage) {
+          if ((p_flags & STATS_UNUSED_LINES) && unused_lines_str_len != mstrlen(unused_lines_str)) {
+            unused_lines_str = mputstr(unused_lines_str, "---------------------\n");
+            unused_lines_str_len = mstrlen(unused_lines_str);
+          }
+          if ((p_flags & STATS_UNUSED_FUNC) && unused_func_str_len != mstrlen(unused_func_str)) {
+            unused_func_str = mputstr(unused_func_str, "--------------------\n");
+            unused_func_str_len = mstrlen(unused_func_str);
+          }
+          if (!p_disable_profiler) {
+            if ((p_flags & STATS_LINE_AVG_RAW) && line_avg_str_len != mstrlen(line_avg_str)) {
+              line_avg_str = mputstr(line_avg_str, "-------------------------------------------\n");
+              line_avg_str_len = mstrlen(line_avg_str);
+            }
+            if ((p_flags & STATS_FUNC_AVG_RAW) && func_avg_str_len != mstrlen(func_avg_str)) {
+              func_avg_str = mputstr(func_avg_str, "------------------------------------------\n");
+              func_avg_str_len = mstrlen(func_avg_str);
+            }
+          }
+        }
+      }
+
+      // lines
+      for (size_t j = 0; j < p_db[i].lines.size(); ++j) {
+        // line specification (including function name for the function's start line)
+        char* line_spec_str = mprintf("%s:%d", p_db[i].filename,
+          p_db[i].lines[j].lineno);
+        int func = get_function(p_db, i, p_db[i].lines[j].lineno);
+        if (-1 != func) {
+          line_spec_str = mputprintf(line_spec_str, " [%s]", p_db[i].functions[func].name);
+        }
+        line_spec_str = mputstrn(line_spec_str, "\n", 1);
+
+        if (p_disable_coverage || 0 != p_db[i].lines[j].exec_count) {
+          if (!p_disable_profiler) {
+            if (p_flags & STATS_LINE_DATA_RAW) {
+              char* total_time_str = timeval2string(p_db[i].lines[j].total_time);
+              line_data_str = mputprintf(line_data_str, "%ss", total_time_str);
+              Free(total_time_str);
+            }
+            if (!p_disable_coverage) {
+              if (p_flags & STATS_LINE_DATA_RAW) {
+                line_data_str = mputstrn(line_data_str, "\t/\t", 3);
+              }
+              if (p_flags & STATS_LINE_AVG_RAW) {
+                double avg = (p_db[i].lines[j].total_time.tv_sec +
+                  p_db[i].lines[j].total_time.tv_usec / 1000000.0) /
+                  p_db[i].lines[j].exec_count;
+                char* total_time_str = timeval2string(p_db[i].lines[j].total_time);
+                line_avg_str = mputprintf(line_avg_str, "%.6lfs\t(%ss / %d)", 
+                  avg, total_time_str, p_db[i].lines[j].exec_count);
+                Free(total_time_str);
+              }
+            }
+          }
+          if (!p_disable_coverage && (p_flags & STATS_LINE_DATA_RAW)) {
+            line_data_str = mputprintf(line_data_str, "%d", p_db[i].lines[j].exec_count);
+          }
+
+          // add the line spec string to the other strings
+          if (p_flags & STATS_LINE_DATA_RAW) {
+            line_data_str = mputprintf(line_data_str, "\t%s", line_spec_str);
+          }
+          if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_LINE_AVG_RAW)) {
+            line_avg_str = mputprintf(line_avg_str, "\t%s", line_spec_str);
+          }
+          ++used_code_lines;
+        }
+        else if (p_flags & STATS_UNUSED_LINES) {
+          // unused line
+          unused_lines_str = mputstr(unused_lines_str, line_spec_str);
+        }
+        Free(line_spec_str);
+      }
+
+      // functions
+      for (size_t j = 0; j < p_db[i].functions.size(); ++j) {
+        // functions specification
+        char* func_spec_str = mprintf("%s:%d [%s]\n", p_db[i].filename,
+          p_db[i].functions[j].lineno, p_db[i].functions[j].name);
+
+        if (p_disable_coverage || 0 != p_db[i].functions[j].exec_count) {
+          if (!p_disable_profiler) {
+            if (p_flags & STATS_FUNC_DATA_RAW) {
+              char* total_time_str = timeval2string(p_db[i].functions[j].total_time);
+              func_data_str = mputprintf(func_data_str, "%ss", total_time_str);
+              Free(total_time_str);
+            }
+            if (!p_disable_coverage) {
+              if (p_flags & STATS_FUNC_DATA_RAW) {
+                func_data_str = mputstrn(func_data_str, "\t/\t", 3);
+              }
+              if (p_flags & STATS_FUNC_AVG_RAW) {
+                double avg = (p_db[i].functions[j].total_time.tv_sec +
+                  p_db[i].functions[j].total_time.tv_usec / 1000000.0) /
+                  p_db[i].functions[j].exec_count;
+                char* total_time_str = timeval2string(p_db[i].functions[j].total_time);
+                func_avg_str = mputprintf(func_avg_str, "%.6lfs\t(%ss / %d)", 
+                  avg, total_time_str, p_db[i].functions[j].exec_count);
+                Free(total_time_str);
+              }
+            }
+          }
+          if (!p_disable_coverage && (p_flags & STATS_FUNC_DATA_RAW)) {
+            func_data_str = mputprintf(func_data_str, "%d", p_db[i].functions[j].exec_count);
+          }
+
+          // add the line spec string to the other strings
+          if (p_flags & STATS_FUNC_DATA_RAW) {
+            func_data_str = mputprintf(func_data_str, "\t%s", func_spec_str);
+          }
+          if (!p_disable_profiler && !p_disable_coverage && (p_flags & STATS_FUNC_AVG_RAW)) {
+            func_avg_str = mputprintf(func_avg_str, "\t%s", func_spec_str);
+          }
+
+          ++used_functions;
+        }
+        else if (p_flags & STATS_UNUSED_FUNC) {
+          // unused function
+          unused_func_str = mputstr(unused_func_str, func_spec_str);
+        }
+        Free(func_spec_str);
+      }
+
+      // number of lines and functions
+      if (p_flags & STATS_NUMBER_OF_LINES) {
+        line_func_count_str = mputprintf(line_func_count_str, "%s:\t%lu lines,\t%lu functions\n",
+           p_db[i].filename, p_db[i].lines.size(), p_db[i].functions.size());
+      }
+      total_code_lines += p_db[i].lines.size();
+      total_functions += p_db[i].functions.size();
+    }
+    if (p_flags & STATS_NUMBER_OF_LINES) {
+      line_func_count_str = mputprintf(line_func_count_str,
+        "--------------------------------------\n"
+        "Total:\t%lu lines,\t%lu functions\n", total_code_lines, total_functions);
+    }
+
+    if (p_flags & (STATS_TOP10_ALL_DATA | STATS_ALL_DATA_SORTED)) {
+      // copy code line and function info into stats_data_t containers for sorting
+      stats_data_t* code_line_stats = (stats_data_t*)Malloc(used_code_lines * sizeof(stats_data_t));
+      stats_data_t* function_stats = (stats_data_t*)Malloc(used_functions * sizeof(stats_data_t));
+      int line_index = 0;
+      int func_index = 0;
+
+      for (size_t i = 0; i < p_db.size(); ++i) {
+        for (size_t j = 0; j < p_db[i].lines.size(); ++j) {
+          if (p_disable_coverage || 0 != p_db[i].lines[j].exec_count) {
+            code_line_stats[line_index].filename = p_db[i].filename;
+            code_line_stats[line_index].funcname = NULL;
+            code_line_stats[line_index].lineno = p_db[i].lines[j].lineno;
+            code_line_stats[line_index].total_time = p_db[i].lines[j].total_time;
+            code_line_stats[line_index].exec_count = p_db[i].lines[j].exec_count;
+            int func = get_function(p_db, i, p_db[i].lines[j].lineno);
+            if (-1 != func) {
+              code_line_stats[line_index].funcname = p_db[i].functions[func].name;
+            }
+            ++line_index;
+          }
+        }
+        for (size_t j = 0; j < p_db[i].functions.size(); ++j) {
+          if (p_disable_coverage || 0 != p_db[i].functions[j].exec_count) {
+            function_stats[func_index].filename = p_db[i].filename;
+            function_stats[func_index].funcname = p_db[i].functions[j].name;
+            function_stats[func_index].lineno = p_db[i].functions[j].lineno;
+            function_stats[func_index].total_time = p_db[i].functions[j].total_time;
+            function_stats[func_index].exec_count = p_db[i].functions[j].exec_count;
+            ++func_index;
+          }
+        }
+      }
+
+      if (!p_disable_profiler) {
+        // sort the code lines and functions by total time
+        qsort(code_line_stats, used_code_lines, sizeof(stats_data_t), &stats_data_cmp_time);
+        qsort(function_stats, used_functions, sizeof(stats_data_t), &stats_data_cmp_time);
+
+        if (p_flags & (STATS_LINE_TIMES_SORTED_TOTAL | STATS_TOP10_LINE_TIMES)) {
+          // cycle through the sorted code lines and gather the necessary data
+          for (size_t i = 0; i < used_code_lines; ++i) {
+            char* total_time_str = timeval2string(code_line_stats[i].total_time);
+            char* the_data = mprintf("%ss\t%s:%d", total_time_str,
+              code_line_stats[i].filename, code_line_stats[i].lineno);
+            Free(total_time_str);
+            if (NULL != code_line_stats[i].funcname) {
+              the_data = mputprintf(the_data, " [%s]", code_line_stats[i].funcname);
+            }
+            the_data = mputstrn(the_data, "\n", 1);
+            if (p_flags & STATS_LINE_TIMES_SORTED_TOTAL) {
+              line_time_sorted_tot_str = mputstr(line_time_sorted_tot_str, the_data);
+            }
+            if (i < 10 && (p_flags & STATS_TOP10_LINE_TIMES)) {
+              line_time_sorted_top10_str = mputprintf(line_time_sorted_top10_str,
+                "%2lu.\t%s", i + 1, the_data);
+            }
+            Free(the_data);
+          }
+        }
+
+        if (p_flags & (STATS_FUNC_TIMES_SORTED_TOTAL | STATS_TOP10_FUNC_TIMES)) {
+          // cycle through the sorted functions and gather the necessary data
+          for (size_t i = 0; i < used_functions; ++i) {
+            char* total_time_str = timeval2string(function_stats[i].total_time);
+            char* the_data = mprintf("%ss\t%s:%d [%s]\n", total_time_str,
+              function_stats[i].filename, function_stats[i].lineno, function_stats[i].funcname);
+            Free(total_time_str);
+            if (p_flags & STATS_FUNC_TIMES_SORTED_TOTAL) {
+              func_time_sorted_tot_str = mputstr(func_time_sorted_tot_str, the_data);
+            }
+            if (i < 10 && (p_flags & STATS_TOP10_FUNC_TIMES)) {
+              func_time_sorted_top10_str = mputprintf(func_time_sorted_top10_str,
+                "%2lu.\t%s", i + 1, the_data);
+            }
+            Free(the_data);
+          }
+        }
+
+        if (p_flags & (STATS_LINE_TIMES_SORTED_BY_MOD | STATS_FUNC_TIMES_SORTED_BY_MOD)) {
+          // cached string lengths, to avoid multiple separators after each other
+          size_t line_time_sorted_mod_str_len = mstrlen(line_time_sorted_mod_str);
+          size_t func_time_sorted_mod_str_len = mstrlen(func_time_sorted_mod_str);
+
+          // cycle through the sorted statistics and gather the necessary data per module
+          for (size_t i = 0; i < p_db.size(); ++i) {
+            if (i > 0) {
+              if ((p_flags & STATS_LINE_TIMES_SORTED_BY_MOD) &&
+                  line_time_sorted_mod_str_len != mstrlen(line_time_sorted_mod_str)) {
+                line_time_sorted_mod_str = mputstr(line_time_sorted_mod_str,
+                  "------------------------------------------------\n");
+                line_time_sorted_mod_str_len = mstrlen(line_time_sorted_mod_str);
+              }
+              if ((p_flags & STATS_FUNC_TIMES_SORTED_BY_MOD) &&
+                  func_time_sorted_mod_str_len != mstrlen(func_time_sorted_mod_str)) {
+                func_time_sorted_mod_str = mputstr(func_time_sorted_mod_str,
+                  "-----------------------------------------------\n");
+                func_time_sorted_mod_str_len = mstrlen(func_time_sorted_mod_str);
+              }
+            }
+            if (p_flags & STATS_LINE_TIMES_SORTED_BY_MOD) {
+              for (size_t j = 0; j < used_code_lines; ++j) {
+                if (0 == strcmp(code_line_stats[j].filename, p_db[i].filename)) {
+                  char* total_time_str = timeval2string(code_line_stats[j].total_time);
+                  line_time_sorted_mod_str = mputprintf(line_time_sorted_mod_str,
+                    "%ss\t%s:%d", total_time_str, code_line_stats[j].filename,
+                    code_line_stats[j].lineno);
+                  Free(total_time_str);
+                  if (NULL != code_line_stats[j].funcname) {
+                    line_time_sorted_mod_str = mputprintf(line_time_sorted_mod_str,
+                      " [%s]", code_line_stats[j].funcname);
+                  }
+                  line_time_sorted_mod_str = mputstrn(line_time_sorted_mod_str, "\n", 1);
+                }
+              }
+            }
+            if (p_flags & STATS_FUNC_TIMES_SORTED_BY_MOD) {
+              for (size_t j = 0; j < used_functions; ++j) {
+                if (0 == strcmp(function_stats[j].filename, p_db[i].filename)) {
+                  char* total_time_str = timeval2string(function_stats[j].total_time);
+                  func_time_sorted_mod_str = mputprintf(func_time_sorted_mod_str,
+                    "%ss\t%s:%d [%s]\n", total_time_str, function_stats[j].filename,
+                    function_stats[j].lineno, function_stats[j].funcname);
+                  Free(total_time_str);
+                }
+              }
+            }
+          }
+        }
+      }
+
+      if (!p_disable_coverage) {
+        // sort the code lines and functions by execution count
+        qsort(code_line_stats, used_code_lines, sizeof(stats_data_t), &stats_data_cmp_count);
+        qsort(function_stats, used_functions, sizeof(stats_data_t), &stats_data_cmp_count);
+
+        if (p_flags & (STATS_LINE_COUNT_SORTED_TOTAL | STATS_TOP10_LINE_COUNT)) {
+          // cycle through the sorted code lines and gather the necessary data
+          for (size_t i = 0; i < used_code_lines; ++i) {
+            char* the_data = mprintf("%d\t%s:%d", code_line_stats[i].exec_count,
+              code_line_stats[i].filename, code_line_stats[i].lineno);
+            if (NULL != code_line_stats[i].funcname) {
+              the_data = mputprintf(the_data, " [%s]", code_line_stats[i].funcname);
+            }
+            the_data = mputstrn(the_data, "\n", 1);
+            if (p_flags & STATS_LINE_COUNT_SORTED_TOTAL) {
+              line_count_sorted_tot_str = mputstr(line_count_sorted_tot_str, the_data);
+            }
+            if (i < 10 && (p_flags & STATS_TOP10_LINE_COUNT)) {
+              line_count_sorted_top10_str = mputprintf(line_count_sorted_top10_str,
+                "%2lu.\t%s", i + 1, the_data);
+            }
+            Free(the_data);
+          }
+        }
+
+        if (p_flags & (STATS_FUNC_COUNT_SORTED_TOTAL | STATS_TOP10_FUNC_COUNT)) {
+          // cycle through the sorted functions and gather the necessary data
+          for (size_t i = 0; i < used_functions; ++i) {
+            char* the_data = mprintf("%d\t%s:%d [%s]\n",
+              function_stats[i].exec_count, function_stats[i].filename,
+              function_stats[i].lineno, function_stats[i].funcname);
+            if (p_flags & STATS_FUNC_COUNT_SORTED_TOTAL) {
+              func_count_sorted_tot_str = mputstr(func_count_sorted_tot_str, the_data);
+            }
+            if (i < 10 && (p_flags & STATS_TOP10_FUNC_COUNT)) {
+              func_count_sorted_top10_str = mputprintf(func_count_sorted_top10_str,
+                "%2lu.\t%s", i + 1, the_data);
+            }
+            Free(the_data);
+          }
+        }
+
+        if (p_flags & (STATS_LINE_COUNT_SORTED_BY_MOD | STATS_FUNC_COUNT_SORTED_BY_MOD)) {
+          // cached string lengths, to avoid multiple separators after each other
+          size_t line_count_sorted_mod_str_len = mstrlen(line_count_sorted_mod_str);
+          size_t func_count_sorted_mod_str_len = mstrlen(func_count_sorted_mod_str);
+
+          // cycle through the sorted statistics and gather the necessary data per module
+          for (size_t i = 0; i < p_db.size(); ++i) {
+            if (i > 0) {
+              if ((p_flags & STATS_LINE_COUNT_SORTED_BY_MOD) &&
+                  line_count_sorted_mod_str_len != mstrlen(line_count_sorted_mod_str)) {
+                line_count_sorted_mod_str = mputstr(line_count_sorted_mod_str,
+                  "-----------------------------------------------------\n");
+                line_count_sorted_mod_str_len = mstrlen(line_count_sorted_mod_str);
+              }
+              if ((p_flags & STATS_FUNC_COUNT_SORTED_BY_MOD) &&
+                  func_count_sorted_mod_str_len != mstrlen(func_count_sorted_mod_str)) {
+                func_count_sorted_mod_str = mputstr(func_count_sorted_mod_str,
+                  "----------------------------------------------------\n");
+                func_count_sorted_mod_str_len = mstrlen(func_count_sorted_mod_str);
+              }
+            }
+            if (p_flags & STATS_LINE_COUNT_SORTED_BY_MOD) {
+              for (size_t j = 0; j < used_code_lines; ++j) {
+                if (0 == strcmp(code_line_stats[j].filename, p_db[i].filename)) {
+                  line_count_sorted_mod_str = mputprintf(line_count_sorted_mod_str,
+                    "%d\t%s:%d", code_line_stats[j].exec_count, code_line_stats[j].filename,
+                    code_line_stats[j].lineno);
+                  if (NULL != code_line_stats[j].funcname) {
+                    line_count_sorted_mod_str = mputprintf(line_count_sorted_mod_str,
+                      " [%s]", code_line_stats[j].funcname);
+                  }
+                  line_count_sorted_mod_str = mputstrn(line_count_sorted_mod_str, "\n", 1);
+                }
+              }
+            }
+            if (p_flags & STATS_FUNC_COUNT_SORTED_BY_MOD) {
+              for (size_t j = 0; j < used_functions; ++j) {
+                if (0 == strcmp(function_stats[j].filename, p_db[i].filename)) {
+                  func_count_sorted_mod_str = mputprintf(func_count_sorted_mod_str,
+                    "%d\t%s:%d [%s]\n", function_stats[j].exec_count, function_stats[j].filename,
+                    function_stats[j].lineno, function_stats[j].funcname);
+                }
+              }
+            }
+          }
+        }
+      }
+
+      if (!p_disable_profiler && !p_disable_coverage) {
+        // sort the code lines and functions by average time / execution
+        qsort(code_line_stats, used_code_lines, sizeof(stats_data_t), &stats_data_cmp_avg);
+        qsort(function_stats, used_functions, sizeof(stats_data_t), &stats_data_cmp_avg);
+
+        if (p_flags & (STATS_LINE_AVG_SORTED_TOTAL | STATS_TOP10_LINE_AVG)) {
+          // cycle through the sorted code lines and gather the necessary data
+          for (size_t i = 0; i < used_code_lines; ++i) {
+            double avg = (code_line_stats[i].total_time.tv_sec +
+              code_line_stats[i].total_time.tv_usec / 1000000.0) /
+              code_line_stats[i].exec_count;
+            char* total_time_str = timeval2string(code_line_stats[i].total_time);
+            char* the_data = mprintf("%.6lfs\t(%ss / %d)\t%s:%d",
+              avg, total_time_str, code_line_stats[i].exec_count,
+              code_line_stats[i].filename, code_line_stats[i].lineno);
+            Free(total_time_str);
+            if (NULL != code_line_stats[i].funcname) {
+              the_data = mputprintf(the_data, " [%s]", code_line_stats[i].funcname);
+            }
+            the_data = mputstrn(the_data, "\n", 1);
+            if (p_flags & STATS_LINE_AVG_SORTED_TOTAL) {
+              line_avg_sorted_tot_str = mputstr(line_avg_sorted_tot_str, the_data);
+            }
+            if (i < 10 && (p_flags & STATS_TOP10_LINE_AVG)) {
+              line_avg_sorted_top10_str = mputprintf(line_avg_sorted_top10_str,
+                "%2lu.\t%s", i + 1, the_data);
+            }
+            Free(the_data);
+          }
+        }
+
+        if (p_flags & (STATS_FUNC_AVG_SORTED_TOTAL | STATS_TOP10_FUNC_AVG)) {
+          // cycle through the sorted functions and gather the necessary data
+          for (size_t i = 0; i < used_functions; ++i) {
+            double avg = (function_stats[i].total_time.tv_sec +
+              function_stats[i].total_time.tv_usec / 1000000.0) /
+              function_stats[i].exec_count;
+            char* total_time_str = timeval2string(function_stats[i].total_time);
+            char* the_data = mprintf("%.6lfs\t(%ss / %d)\t%s:%d [%s]\n",
+              avg, total_time_str, function_stats[i].exec_count,
+              function_stats[i].filename, function_stats[i].lineno, function_stats[i].funcname);
+            Free(total_time_str);
+            if (p_flags & STATS_FUNC_AVG_SORTED_TOTAL) {
+              func_avg_sorted_tot_str = mputstr(func_avg_sorted_tot_str, the_data);
+            }
+            if (i < 10 && (p_flags & STATS_TOP10_FUNC_AVG)) {
+              func_avg_sorted_top10_str = mputprintf(func_avg_sorted_top10_str,
+                "%2lu.\t%s", i + 1, the_data);
+            }
+            Free(the_data);
+          }
+        }
+
+        if (p_flags & (STATS_LINE_AVG_SORTED_BY_MOD | STATS_FUNC_AVG_SORTED_BY_MOD)) {
+          // cached string lengths, to avoid multiple separators after each other
+          size_t line_avg_sorted_mod_str_len = mstrlen(line_avg_sorted_mod_str);
+          size_t func_avg_sorted_mod_str_len = mstrlen(func_avg_sorted_mod_str);
+
+          // cycle through the sorted statistics and gather the necessary data per module
+          for (size_t i = 0; i < p_db.size(); ++i) {
+            if (i > 0) {
+              if ((p_flags & STATS_LINE_AVG_SORTED_BY_MOD) &&
+                  line_avg_sorted_mod_str_len != mstrlen(line_avg_sorted_mod_str)) {
+                line_avg_sorted_mod_str = mputstr(line_avg_sorted_mod_str,
+                  "--------------------------------------------------------------\n");
+                line_avg_sorted_mod_str_len = mstrlen(line_avg_sorted_mod_str);
+              }
+              if ((p_flags & STATS_FUNC_AVG_SORTED_BY_MOD) &&
+                  func_avg_sorted_mod_str_len != mstrlen(func_avg_sorted_mod_str)) {
+                func_avg_sorted_mod_str = mputstr(func_avg_sorted_mod_str,
+                  "-------------------------------------------------------------\n");
+                func_avg_sorted_mod_str_len = mstrlen(func_avg_sorted_mod_str);
+              }
+            }
+            if (p_flags & STATS_LINE_AVG_SORTED_BY_MOD) {
+              for (size_t j = 0; j < used_code_lines; ++j) {
+                if (0 == strcmp(code_line_stats[j].filename, p_db[i].filename)) {
+                  double avg = (code_line_stats[j].total_time.tv_sec +
+                    code_line_stats[j].total_time.tv_usec / 1000000.0) /
+                    code_line_stats[j].exec_count;
+                  char* total_time_str = timeval2string(code_line_stats[j].total_time);
+                  line_avg_sorted_mod_str = mputprintf(line_avg_sorted_mod_str,
+                    "%.6lfs\t(%ss / %d)\t%s:%d",
+                    avg, total_time_str, code_line_stats[j].exec_count,
+                    code_line_stats[j].filename, code_line_stats[j].lineno);
+                  Free(total_time_str);
+                  if (NULL != code_line_stats[j].funcname) {
+                    line_avg_sorted_mod_str = mputprintf(line_avg_sorted_mod_str,
+                      " [%s]", code_line_stats[j].funcname);
+                  }
+                  line_avg_sorted_mod_str = mputstrn(line_avg_sorted_mod_str, "\n", 1);
+                }
+              }
+            }
+            if (p_flags & STATS_FUNC_AVG_SORTED_BY_MOD) {
+              for (size_t j = 0; j < used_functions; ++j) {
+                if (0 == strcmp(function_stats[j].filename, p_db[i].filename)) {
+                  double avg = (function_stats[j].total_time.tv_sec +
+                    function_stats[j].total_time.tv_usec / 1000000.0) /
+                    function_stats[j].exec_count;
+                  char* total_time_str = timeval2string(function_stats[j].total_time);
+                  func_avg_sorted_mod_str = mputprintf(func_avg_sorted_mod_str,
+                    "%.6lfs\t(%ss / %d)\t%s:%d [%s]\n",
+                    avg, total_time_str, function_stats[j].exec_count,
+                    function_stats[j].filename, function_stats[j].lineno, function_stats[j].funcname);
+                  Free(total_time_str);
+                }
+              }
+            }
+          }
+        }
+      }
+
+      // free the stats data
+      Free(code_line_stats);
+      Free(function_stats);
+    }
+
+    // add new lines at the end of each segment
+    if (p_flags & STATS_NUMBER_OF_LINES) {
+      line_func_count_str = mputstrn(line_func_count_str, "\n", 1);
+    }
+    if (p_flags & STATS_LINE_DATA_RAW) {
+      line_data_str = mputstrn(line_data_str, "\n", 1);
+    }
+    if (p_flags & STATS_FUNC_DATA_RAW) {
+      func_data_str = mputstrn(func_data_str, "\n", 1);
+    }
+    if (!p_disable_profiler) {
+      if (p_flags & STATS_LINE_TIMES_SORTED_BY_MOD) {
+        line_time_sorted_mod_str = mputstrn(line_time_sorted_mod_str, "\n", 1);
+      }
+      if (p_flags & STATS_LINE_TIMES_SORTED_TOTAL) {
+        line_time_sorted_tot_str = mputstrn(line_time_sorted_tot_str, "\n", 1);
+      }
+      if (p_flags & STATS_FUNC_TIMES_SORTED_BY_MOD) {
+        func_time_sorted_mod_str = mputstrn(func_time_sorted_mod_str, "\n", 1);
+      }
+      if (p_flags & STATS_FUNC_TIMES_SORTED_TOTAL) {
+        func_time_sorted_tot_str = mputstrn(func_time_sorted_tot_str, "\n", 1);
+      }
+      if (p_flags & STATS_TOP10_LINE_TIMES) {
+        line_time_sorted_top10_str = mputstrn(line_time_sorted_top10_str, "\n", 1);
+      }
+      if (p_flags & STATS_TOP10_FUNC_TIMES) {
+        func_time_sorted_top10_str = mputstrn(func_time_sorted_top10_str, "\n", 1);
+      }
+      if (!p_disable_coverage) {
+        if (p_flags & STATS_LINE_AVG_RAW) {
+          line_avg_str = mputstrn(line_avg_str, "\n", 1);
+        }
+        if (p_flags & STATS_LINE_AVG_RAW) {
+          func_avg_str = mputstrn(func_avg_str, "\n", 1);
+        }
+        if (p_flags & STATS_LINE_AVG_SORTED_BY_MOD) {
+          line_avg_sorted_mod_str = mputstrn(line_avg_sorted_mod_str, "\n", 1);
+        }
+        if (p_flags & STATS_LINE_AVG_SORTED_TOTAL) {
+          line_avg_sorted_tot_str = mputstrn(line_avg_sorted_tot_str, "\n", 1);
+        }
+        if (p_flags & STATS_FUNC_AVG_SORTED_BY_MOD) {
+          func_avg_sorted_mod_str = mputstrn(func_avg_sorted_mod_str, "\n", 1);
+        }
+        if (p_flags & STATS_FUNC_AVG_SORTED_TOTAL) {
+          func_avg_sorted_tot_str = mputstrn(func_avg_sorted_tot_str, "\n", 1);
+        }
+        if (p_flags & STATS_TOP10_LINE_AVG) {
+          line_avg_sorted_top10_str = mputstrn(line_avg_sorted_top10_str, "\n", 1);
+        }
+        if (p_flags & STATS_TOP10_FUNC_AVG) {
+          func_avg_sorted_top10_str = mputstrn(func_avg_sorted_top10_str, "\n", 1);
+        }
+      }
+    }
+    if (!p_disable_coverage) {
+      if (p_flags & STATS_LINE_COUNT_SORTED_BY_MOD) {
+        line_count_sorted_mod_str = mputstrn(line_count_sorted_mod_str, "\n", 1);
+      }
+      if (p_flags & STATS_LINE_COUNT_SORTED_TOTAL) {
+        line_count_sorted_tot_str = mputstrn(line_count_sorted_tot_str, "\n", 1);
+      }
+      if (p_flags & STATS_FUNC_COUNT_SORTED_BY_MOD) {
+        func_count_sorted_mod_str = mputstrn(func_count_sorted_mod_str, "\n", 1);
+      }
+      if (p_flags & STATS_FUNC_COUNT_SORTED_TOTAL) {
+        func_count_sorted_tot_str = mputstrn(func_count_sorted_tot_str, "\n", 1);
+      }
+      if (p_flags & STATS_TOP10_LINE_COUNT) {
+        line_count_sorted_top10_str = mputstrn(line_count_sorted_top10_str, "\n", 1);
+      }
+      if (p_flags & STATS_TOP10_FUNC_COUNT) {
+        func_count_sorted_top10_str = mputstrn(func_count_sorted_top10_str, "\n", 1);
+      }
+      if (p_flags & STATS_UNUSED_LINES) {
+        unused_lines_str = mputstrn(unused_lines_str, "\n", 1);
+      }
+      if (p_flags & STATS_UNUSED_FUNC) {
+        unused_func_str = mputstrn(unused_func_str, "\n", 1);
+      }
+    }
+
+    // write the statistics to the specified file
+    FILE* file = fopen(p_filename, "w");
+    if (NULL == file) {
+      p_error_function("Could not open file '%s' for writing. Profiling and/or "
+        "code coverage statistics will not be saved.", p_filename);
+      return;
+    }
+    // by now the strings for all disabled statistics entries should be null
+    fprintf(file, "%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s"
+      , title_str
+      , (NULL != line_func_count_str) ? line_func_count_str : ""
+      , (NULL != line_data_str) ? line_data_str : ""
+      , (NULL != line_avg_str) ? line_avg_str : ""
+      , (NULL != func_data_str) ? func_data_str : ""
+      , (NULL != func_avg_str) ? func_avg_str : ""
+      , (NULL != line_time_sorted_mod_str) ? line_time_sorted_mod_str : ""
+      , (NULL != line_time_sorted_tot_str) ? line_time_sorted_tot_str : ""
+      , (NULL != func_time_sorted_mod_str) ? func_time_sorted_mod_str : ""
+      , (NULL != func_time_sorted_tot_str) ? func_time_sorted_tot_str : ""
+      , (NULL != line_count_sorted_mod_str) ? line_count_sorted_mod_str : ""
+      , (NULL != line_count_sorted_tot_str) ? line_count_sorted_tot_str : ""
+      , (NULL != func_count_sorted_mod_str) ? func_count_sorted_mod_str : ""
+      , (NULL != func_count_sorted_tot_str) ? func_count_sorted_tot_str : ""
+      , (NULL != line_avg_sorted_mod_str) ? line_avg_sorted_mod_str : ""
+      , (NULL != line_avg_sorted_tot_str) ? line_avg_sorted_tot_str : ""
+      , (NULL != func_avg_sorted_mod_str) ? func_avg_sorted_mod_str : ""
+      , (NULL != func_avg_sorted_tot_str) ? func_avg_sorted_tot_str : ""
+      , (NULL != line_time_sorted_top10_str) ? line_time_sorted_top10_str : ""
+      , (NULL != func_time_sorted_top10_str) ? func_time_sorted_top10_str : ""
+      , (NULL != line_count_sorted_top10_str) ? line_count_sorted_top10_str : ""
+      , (NULL != func_count_sorted_top10_str) ? func_count_sorted_top10_str : ""
+      , (NULL != line_avg_sorted_top10_str) ? line_avg_sorted_top10_str : ""
+      , (NULL != func_avg_sorted_top10_str) ? func_avg_sorted_top10_str : ""
+      , (NULL != unused_lines_str) ? unused_lines_str : ""
+      , (NULL != unused_func_str) ? unused_func_str : "");
+
+    fclose(file);
+
+    // free the strings
+    Free(title_str);
+    Free(line_func_count_str);
+    Free(line_data_str);
+    Free(line_avg_str);
+    Free(func_data_str);
+    Free(func_avg_str);
+    Free(line_time_sorted_mod_str);
+    Free(line_time_sorted_tot_str);
+    Free(func_time_sorted_mod_str);
+    Free(func_time_sorted_tot_str);
+    Free(line_count_sorted_mod_str);
+    Free(line_count_sorted_tot_str);
+    Free(func_count_sorted_mod_str);
+    Free(func_count_sorted_tot_str);
+    Free(line_avg_sorted_mod_str);
+    Free(line_avg_sorted_tot_str);
+    Free(func_avg_sorted_mod_str);
+    Free(func_avg_sorted_tot_str);
+    Free(line_time_sorted_top10_str);
+    Free(func_time_sorted_top10_str);
+    Free(line_count_sorted_top10_str);
+    Free(func_count_sorted_top10_str);
+    Free(line_avg_sorted_top10_str);
+    Free(func_avg_sorted_top10_str);
+    Free(unused_lines_str);
+    Free(unused_func_str);
+  }
+  
+} // namespace
diff --git a/core/ProfilerTools.hh b/core/ProfilerTools.hh
new file mode 100644
index 000000000..fe95d6ad7
--- /dev/null
+++ b/core/ProfilerTools.hh
@@ -0,0 +1,163 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+
+#ifndef PROFILERTOOLS_HH
+#define PROFILERTOOLS_HH
+
+#include "Vector.hh"
+#include "Types.h"
+#include <sys/time.h>
+
+namespace Profiler_Tools {
+  
+  /** Reads a timeval value from the given string. The parameter must contain the
+    * string representation of a real number with 6 digits after the decimal dot. */
+  extern timeval string2timeval(const char* str);
+  
+  /** Returns the string representation of a real number (with 6 digits after the
+    * decimal dot) equivalent to the timeval parameter. 
+    * The returned character pointer needs to be freed. */
+  extern char* timeval2string(timeval tv);
+  
+  /** Adds the two timeval parameters together and returns the result. */
+  extern timeval add_timeval(const timeval operand1, const timeval operand2);
+  
+  /** Subtracts the second timeval parameter from the first one and returns the result. */
+  extern timeval subtract_timeval(const timeval operand1, const timeval operand2);
+
+  /** Database entry for one file */
+  struct profiler_db_item_t {
+    /** Database entry for one line */
+    struct profiler_line_data_t {
+      /** Line number */
+      int lineno;
+      /** The line's total execution time */
+      timeval total_time;
+      /** The number of times this line was executed */
+      int exec_count;
+    };
+    /** Database entry for one function (including test cases, alt steps, the control part, etc.) */
+    struct profiler_function_data_t {
+      /** Function name (owned) */
+      char* name;
+      /** Function starting line */
+      int lineno;
+      /** The function's total execution time */
+      timeval total_time;
+      /** The number of times this function was executed */
+      int exec_count;
+    };
+    /** TTCN-3 File name (relative path, owned) */
+    char* filename;
+    /** Contains database entries for all the lines in this file */
+    Vector<profiler_line_data_t> lines;
+    /** Contains database entries for all the functions in this file */
+    Vector<profiler_function_data_t> functions;
+  };
+  
+  /** Profiler database type */
+  typedef Vector<profiler_db_item_t> profiler_db_t;
+  
+  enum profiler_stats_flag_t {
+    // flags for each statistics entry
+    STATS_NUMBER_OF_LINES          = 0x0000001,
+    STATS_LINE_DATA_RAW            = 0x0000002,
+    STATS_FUNC_DATA_RAW            = 0x0000004,
+    STATS_LINE_AVG_RAW             = 0x0000008,
+    STATS_FUNC_AVG_RAW             = 0x0000010,
+    STATS_LINE_TIMES_SORTED_BY_MOD = 0x0000020,
+    STATS_FUNC_TIMES_SORTED_BY_MOD = 0x0000040,
+    STATS_LINE_TIMES_SORTED_TOTAL  = 0x0000080,
+    STATS_FUNC_TIMES_SORTED_TOTAL  = 0x0000100,
+    STATS_LINE_COUNT_SORTED_BY_MOD = 0x0000200,
+    STATS_FUNC_COUNT_SORTED_BY_MOD = 0x0000400,
+    STATS_LINE_COUNT_SORTED_TOTAL  = 0x0000800,
+    STATS_FUNC_COUNT_SORTED_TOTAL  = 0x0001000,
+    STATS_LINE_AVG_SORTED_BY_MOD   = 0x0002000,
+    STATS_FUNC_AVG_SORTED_BY_MOD   = 0x0004000,
+    STATS_LINE_AVG_SORTED_TOTAL    = 0x0008000,
+    STATS_FUNC_AVG_SORTED_TOTAL    = 0x0010000,
+    STATS_TOP10_LINE_TIMES         = 0x0020000,
+    STATS_TOP10_FUNC_TIMES         = 0x0040000,
+    STATS_TOP10_LINE_COUNT         = 0x0080000,
+    STATS_TOP10_FUNC_COUNT         = 0x0100000,
+    STATS_TOP10_LINE_AVG           = 0x0200000,
+    STATS_TOP10_FUNC_AVG           = 0x0400000,
+    STATS_UNUSED_LINES             = 0x0800000,
+    STATS_UNUSED_FUNC              = 0x1000000,
+    // grouped entries
+    STATS_ALL_RAW_DATA             = 0x000001E,
+    STATS_LINE_DATA_SORTED_BY_MOD  = 0x0002220,
+    STATS_FUNC_DATA_SORTED_BY_MOD  = 0x0004440,
+    STATS_LINE_DATA_SORTED_TOTAL   = 0x0008880,
+    STATS_FUNC_DATA_SORTED_TOTAL   = 0x0011100,
+    STATS_LINE_DATA_SORTED         = 0x000AAA0,
+    STATS_FUNC_DATA_SORTED         = 0x0015540,
+    STATS_ALL_DATA_SORTED          = 0x001FFE0,
+    STATS_TOP10_LINE_DATA          = 0x02A0000,
+    STATS_TOP10_FUNC_DATA          = 0x0540000,
+    STATS_TOP10_ALL_DATA           = 0x07E0000,
+    STATS_UNUSED_DATA              = 0x1800000,
+    STATS_ALL                      = 0x1FFFFFF
+  };
+  
+#define STATS_MAX_HEX_DIGITS 7
+  
+  /** Returns the index of a TTCN-3 function's entry in the specified database
+    * @param p_db profiler database
+    * @param p_element index of the file (where the function is declared)
+    * @param p_lineno function start line */
+  extern int get_function(const profiler_db_t& p_db, int p_element, int p_lineno);
+  
+  /** Creates a new TTCN-3 function entry and inserts it in the specified database 
+    * @param p_db profiler database
+    * @param p_element file entry's index
+    * @param p_lineno function start line
+    * @param p_function_name name of the function */
+  extern void create_function(profiler_db_t& p_db, int p_element, int p_lineno,
+    const char* p_function_name);
+  
+  /** Returns the index of a TTCN-3 code line's entry in the specified database */
+  extern int get_line(const profiler_db_t& p_db, int p_element, int p_lineno);
+  
+  /** Creates a new TTCN-3 code line entry and inserts it into the specified database */
+  extern void create_line(profiler_db_t& p_db, int p_element, int p_lineno);
+  
+  /** Adds the data from the database file to the local database 
+    * @param p_db local database
+    * @param p_filename database file name
+    * @param p_wait waits for the file to appear if it doesn't exist 
+    * @param p_error_function callback function for displaying error messages */
+  extern void import_data(profiler_db_t& p_db, const char* p_filename,
+    boolean p_wait, void (*p_error_function)(const char*, ...));
+  
+  /** Writes the local database to the database file (overwrites the file) 
+    * @param p_db local database
+    * @param p_filename database file name
+    * @param p_disable_profiler discard profiling data
+    * @param p_disable_coverage discard code coverage data
+    * @param p_error_function callback function for displaying error messages */
+  extern void export_data(profiler_db_t& p_db, const char* p_filename,
+    boolean p_disable_profiler, boolean p_disable_coverage,
+    void (*p_error_function)(const char*, ...));
+  
+  /** Calculates and prints statistics from the gathered data 
+    * @param p_db local database
+    * @param p_filename database file name
+    * @param p_disable_profiler discard profiling data
+    * @param p_disable_coverage discard code coverage data
+    * @param p_flags statistics filter (determines which statistics entries are printed)
+    * @param p_error_function callback function for displaying error messages */
+  extern void print_stats(profiler_db_t& p_db, const char* p_filename,
+    boolean p_disable_profiler, boolean p_disable_coverage,
+    unsigned int p_flags, void (*p_error_function)(const char*, ...));
+  
+}
+
+#endif /* PROFILERTOOLS_HH */
+
diff --git a/core/RAW.cc b/core/RAW.cc
index 72947e8b8..aaa1b6494 100644
--- a/core/RAW.cc
+++ b/core/RAW.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/RAW.hh b/core/RAW.hh
index c7328f457..6bd656552 100644
--- a/core/RAW.hh
+++ b/core/RAW.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -17,6 +17,8 @@ typedef bignum_st BIGNUM;
 #define RAW_INT_ENC_LENGTH 4
 #define REVERSE_BITS(b) (BitReverseTable[(b)&0xFF])
 
+#define RAW_INTX -1
+
 /**
  * \defgroup RAW RAW-related stuff.
  *
diff --git a/core/RInt.cc b/core/RInt.cc
index 3c4a94f73..f0dd541c7 100644
--- a/core/RInt.cc
+++ b/core/RInt.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/RInt.hh b/core/RInt.hh
index 1101061aa..07548085d 100644
--- a/core/RInt.hh
+++ b/core/RInt.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Runtime.cc b/core/Runtime.cc
index 25e07bb9d..527bf66d4 100644
--- a/core/Runtime.cc
+++ b/core/Runtime.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -2260,6 +2260,9 @@ void TTCN_Runtime::process_create_mtc()
       "state.");
     return;
   }
+  
+  // let the HC's TTCN-3 Profiler know of the MTC
+  ttcn3_prof.add_component(MTC_COMPREF);
 
   // clean Emergency log buffer before fork, to avoid duplication
   TTCN_Logger::ring_buffer_dump(false);
@@ -2307,7 +2310,7 @@ void TTCN_Runtime::process_create_ptc(component component_reference,
   }
   
   // let the HC's TTCN-3 Profiler know of this new PTC
-  ttcn3_prof.add_ptc(component_reference);
+  ttcn3_prof.add_component(component_reference);
 
   // clean Emergency log buffer before fork, to avoid duplication
   TTCN_Logger::ring_buffer_dump(false);
diff --git a/core/Runtime.hh b/core/Runtime.hh
index 929f5d27f..f91103121 100644
--- a/core/Runtime.hh
+++ b/core/Runtime.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -99,6 +99,8 @@ public:
   inline static boolean is_single()
   { return executor_state >= SINGLE_CONTROLPART &&
     executor_state <= SINGLE_TESTCASE; }
+  inline static boolean is_undefined() /* e.g.: when listing test cases (<EXE> -l) */
+  { return executor_state == UNDEFINED_STATE; }
   static boolean is_idle();
   inline static boolean is_overloaded()
   { return executor_state == HC_OVERLOADED ||
diff --git a/core/Single_main.cc b/core/Single_main.cc
index 0c2430675..c6e4bcbae 100644
--- a/core/Single_main.cc
+++ b/core/Single_main.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Snapshot.cc b/core/Snapshot.cc
index 42e32a7d6..0f1f79b5e 100644
--- a/core/Snapshot.cc
+++ b/core/Snapshot.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Snapshot.hh b/core/Snapshot.hh
index c253796b7..f9cb4d4a9 100644
--- a/core/Snapshot.hh
+++ b/core/Snapshot.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/String_struct.hh b/core/String_struct.hh
index 416ae3a90..0ada30e45 100644
--- a/core/String_struct.hh
+++ b/core/String_struct.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Struct_of.cc b/core/Struct_of.cc
index 0acdf99ec..85001a9e5 100644
--- a/core/Struct_of.cc
+++ b/core/Struct_of.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -149,7 +149,7 @@ boolean compare_set_of(const Base_Type *left_ptr, int left_size,
 
 boolean match_array(const Base_Type *value_ptr, int value_size,
   const Restricted_Length_Template *template_ptr, int template_size,
-  match_function_t match_function)
+  match_function_t match_function, boolean legacy)
 {
   if (value_ptr == NULL || value_size < 0 || template_ptr == NULL ||
     template_size < 0)
@@ -164,7 +164,7 @@ boolean match_array(const Base_Type *value_ptr, int value_size,
     //We matched if the remaining templates are
     // asterisks
     while(template_index < template_size &&
-          match_function(value_ptr, -1, template_ptr, template_index))
+          match_function(value_ptr, -1, template_ptr, template_index, legacy))
       template_index++;
 
     return template_index == template_size;
@@ -182,12 +182,14 @@ boolean match_array(const Base_Type *value_ptr, int value_size,
   // and there are limited number of templates and values
   for(;;)
   {
-    if(match_function(value_ptr, -1, template_ptr, template_index))
+    if(match_function(value_ptr, -1, template_ptr, template_index, legacy))
     {
       //if we found an asterisk we administer it, and step in the template
       last_asterisk = template_index++;
       last_value_to_asterisk = value_index;
-    }else if(match_function(value_ptr,value_index,template_ptr,template_index))
+    }
+    else if(match_function(value_ptr, value_index, template_ptr, template_index,
+      legacy))
     {
       //if we found a matching pair we step in both
       value_index++;
@@ -210,7 +212,7 @@ boolean match_array(const Base_Type *value_ptr, int value_size,
       //value_index != value_size at this point so it is pointless
       // to check it in the if statement
       //At the end of the template
-      if(match_function(value_ptr, -1, template_ptr, template_index-1)) {
+      if(match_function(value_ptr, -1, template_ptr, template_index-1, legacy)) {
         //if the templates last element is an asterisk it eats up the values
         return TRUE;
       } else if (last_asterisk == -1){
@@ -228,7 +230,7 @@ boolean match_array(const Base_Type *value_ptr, int value_size,
       //At the end of the value we matched if the remaining templates are
       // asterisks
       while(template_index < template_size &&
-            match_function(value_ptr, -1, template_ptr, template_index))
+            match_function(value_ptr, -1, template_ptr, template_index, legacy))
         template_index++;
 
       return template_index == template_size;
@@ -264,6 +266,7 @@ class Matching_Table {
   int *template_index_table;
   edge_status **edge_matrix;
   boolean *covered_vector; //tells if a value is covered
+  boolean legacy;
 
   //if the value is covered, then tells by whom it is covered
   int *covered_index_vector;
@@ -282,7 +285,7 @@ public:
   Matching_Table(const Base_Type *par_value_ptr, int par_value_start,
     int par_value_size,const Restricted_Length_Template *par_template_ptr,
     int par_template_start, int par_template_size,
-    match_function_t par_match_function)
+    match_function_t par_match_function, boolean par_legacy)
   {
     match_function = par_match_function;
     value_size = par_value_size;
@@ -290,6 +293,7 @@ public:
     template_start = par_template_start;
     value_ptr = par_value_ptr;
     template_ptr = par_template_ptr;
+    legacy = par_legacy;
     n_asterisks = 0;
     nof_covered = 0;//to get rid of the linear summing
 
@@ -299,7 +303,7 @@ public:
     // locating the asterisks in the template
     for (int i = 0; i < par_template_size; i++)
     {
-      if(match_function(value_ptr, -1,template_ptr, par_template_start+i))
+      if(match_function(value_ptr, -1,template_ptr, par_template_start+i, legacy))
         n_asterisks++;
       else template_index_table[i - n_asterisks] = i;
     }
@@ -352,7 +356,7 @@ public:
     {
       if (match_function(value_ptr, value_start + value_index,
         template_ptr,
-        template_start + template_index_table[template_index]))
+        template_start + template_index_table[template_index], legacy))
       {
         edge_matrix[template_index][value_index] = EDGE;
       }else{
@@ -589,11 +593,11 @@ boolean match_set_of_internal(const Base_Type *value_ptr,
   match_function_t match_function,
   type_of_matching match_type,
   int* number_of_uncovered, int* pair_list,
-  unsigned int number_of_checked)
+  unsigned int number_of_checked, boolean legacy)
 {
   Matching_Table table(value_ptr, value_start, value_size,
     template_ptr, template_start, template_size,
-    match_function);
+    match_function, legacy);
 
   // we have to use the reduced length of the template
   // (not counting the asterisks)
@@ -863,7 +867,8 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
   unsigned int template_size,
   unsigned int permutation_index,
   match_function_t match_function,
-  unsigned int& shift_size)
+  unsigned int& shift_size,
+  boolean legacy)
 {
   unsigned int nof_permutations = template_ptr->get_number_of_permutations();
   if (permutation_index > nof_permutations)
@@ -898,7 +903,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
       template_ptr->get_permutation_start(permutation_index);
 
   if (permutation_begins ||
-    match_function(value_ptr, -1, template_ptr, template_start_index))
+    match_function(value_ptr, -1, template_ptr, template_start_index, legacy))
   {
     unsigned int smallest_possible_size;
     unsigned int largest_possible_size;
@@ -920,7 +925,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
       for(unsigned int i = 0; i < permutation_size; i++)
       {
         if(match_function(value_ptr, -1, template_ptr,
-          i + template_start_index))
+          i + template_start_index, legacy))
         {
           has_asterisk = TRUE;
         }else{
@@ -992,7 +997,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
         boolean found = match_set_of_internal(value_ptr, value_start_index,
           temp_size, template_ptr,
           template_start_index, permutation_size,
-          match_function, SUPERSET, &x, pair_list,old_temp_size);
+          match_function, SUPERSET, &x, pair_list,old_temp_size, legacy);
 
         if(found)
         {
@@ -1048,7 +1053,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
           template_size -
           permutation_size,
           permutation_index,
-          match_function, shift_size);
+          match_function, shift_size, legacy);
       }else{
         //try with the next permutation
         result = recursive_permutation_match(value_ptr,value_start_index+i,
@@ -1057,7 +1062,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
           permutation_size,
           template_size - permutation_size,
           permutation_index + 1,
-          match_function, shift_size);
+          match_function, shift_size, legacy);
       }
 
       if(result == SUCCESS)
@@ -1106,19 +1111,19 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
     unsigned int i = 0;
     do{
       good = match_function(value_ptr, value_start_index + i,
-        template_ptr, template_start_index + i);
+        template_ptr, template_start_index + i, legacy);
       i++;
       //bad stop: something can't be matched
       //half bad half good stop: the end of values is reached
       //good stop: matching on the full distance or till an asterisk
     }while(good && i < value_size && i < distance &&
       !match_function(value_ptr, -1, template_ptr,
-        template_start_index + i));
+        template_start_index + i, legacy));
 
     //if we matched on the full distance or till an asterisk
     if(good && (i == distance ||
       match_function(value_ptr, -1, template_ptr,
-        template_start_index + i)))
+        template_start_index + i, legacy)))
     {
       //reached the end of the templates
       if(i == template_size)
@@ -1140,7 +1145,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
           template_start_index + i,
           template_size - i,
           permutation_index,
-          match_function, shift_size);
+          match_function, shift_size, legacy);
       }
     }else{
       //something bad happened, so we have to check how bad the situation is
@@ -1159,7 +1164,7 @@ static answer recursive_permutation_match(const Base_Type *value_ptr,
         do{
           good = match_function(value_ptr,
             value_start_index + i + shift_size,
-            template_ptr, template_start_index + i);
+            template_ptr, template_start_index + i, legacy);
           shift_size++;
         }while(!good && i + shift_size < value_size);
 
@@ -1186,7 +1191,7 @@ instead of slower recursive_permutation_match.
 */
 boolean match_record_of(const Base_Type *value_ptr, int value_size,
   const Record_Of_Template *template_ptr,
-  int template_size, match_function_t match_function)
+  int template_size, match_function_t match_function, boolean legacy)
 {
   if (value_ptr == NULL || value_size < 0 ||
     template_ptr == NULL || template_size < 0 ||
@@ -1197,23 +1202,23 @@ boolean match_record_of(const Base_Type *value_ptr, int value_size,
   // use the simplified algorithm if the template does not contain permutation
   if (nof_permutations == 0)
     return match_array(value_ptr, value_size,
-      template_ptr, template_size, match_function);
+      template_ptr, template_size, match_function, legacy);
   // use 'set of' matching if all template elements are grouped into one
   // permutation
   if (nof_permutations == 1 && template_ptr->get_permutation_start(0) == 0 &&
     template_ptr->get_permutation_end(0) ==
       (unsigned int)(template_size - 1))
     return match_set_of(value_ptr, value_size, template_ptr, template_size,
-      match_function);
+      match_function, legacy);
 
   unsigned int shift_size = 0;
   return recursive_permutation_match(value_ptr, 0, value_size, template_ptr,
-    0, template_size, 0, match_function, shift_size) == SUCCESS;
+    0, template_size, 0, match_function, shift_size, legacy) == SUCCESS;
 }
 
 boolean match_set_of(const Base_Type *value_ptr, int value_size,
   const Restricted_Length_Template *template_ptr,
-  int template_size, match_function_t match_function)
+  int template_size, match_function_t match_function, boolean legacy)
 {
   if (value_ptr == NULL || value_size < 0 ||
     template_ptr == NULL || template_size < 0)
@@ -1233,14 +1238,14 @@ boolean match_set_of(const Base_Type *value_ptr, int value_size,
     TTCN_error("Internal error: match_set_of: invalid matching type.");
   }
   return match_set_of_internal(value_ptr, 0, value_size, template_ptr, 0,
-    template_size, match_function, match_type, NULL, NULL, 0);
+    template_size, match_function, match_type, NULL, NULL, 0, legacy);
 }
 
 void log_match_heuristics(const Base_Type *value_ptr, int value_size,
   const Restricted_Length_Template *template_ptr,
   int template_size,
   match_function_t match_function,
-  log_function_t log_function)
+  log_function_t log_function, boolean legacy)
 {
   if (value_ptr == NULL || value_size < 0 ||
     template_ptr == NULL || template_size < 0 ||
@@ -1259,7 +1264,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
   {
     // If j == -1, check whether the template element is an asterisk.
     // There is no problem if an asterisk has no matching pair.
-    if (match_function(value_ptr, -1, template_ptr, i))
+    if (match_function(value_ptr, -1, template_ptr, i, legacy))
     {
       asterisks_found++;
     }
@@ -1294,7 +1299,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
     boolean pair_found = FALSE;
     for (int j = 0; j < template_size; j++)
     {
-      if (match_function(value_ptr, i, template_ptr, j))
+      if (match_function(value_ptr, i, template_ptr, j, legacy))
       {
         pair_found = TRUE;
         break;
@@ -1310,7 +1315,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
         else
           value_found = TRUE;
 
-        log_function(value_ptr, NULL, i, 0);
+        log_function(value_ptr, NULL, i, 0, legacy);
         TTCN_Logger::log_event(" at index %d", i);
       }
       nof_unmatched_values++;
@@ -1334,7 +1339,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
     // pair
     for (int j = -1; j < value_size; j++)
     {
-      if (match_function(value_ptr, j, template_ptr, i))
+      if (match_function(value_ptr, j, template_ptr, i, legacy))
       {
         pair_found = TRUE;
         break;
@@ -1349,7 +1354,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
         else
           template_found = TRUE;
 
-        log_function(NULL, template_ptr, 0, i);
+        log_function(NULL, template_ptr, 0, i, legacy);
         TTCN_Logger::log_event(" at index %d", i);
       }
       nof_unmatched_templates++;
@@ -1365,7 +1370,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
     {
       for (int j = 0; j < template_size; j++)
       {
-        if (match_function(value_ptr, i, template_ptr, j))
+        if (match_function(value_ptr, i, template_ptr, j, legacy))
         {
           if (pair_found)
             TTCN_Logger::log_char(',');
@@ -1391,7 +1396,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
           {
             if(unmatched_templates[j]){
               TTCN_Logger::log_logmatch_info("[%d <-> %d]", i, j);
-              log_function(value_ptr, template_ptr, i, j);
+              log_function(value_ptr, template_ptr, i, j, legacy);
 
               TTCN_Logger::set_logmatch_buffer_len(previous_size);
             }
@@ -1411,7 +1416,7 @@ void log_match_heuristics(const Base_Type *value_ptr, int value_size,
               if('{' == sep){
                 sep = ',';
               }
-              log_function(value_ptr, template_ptr, i, j);
+              log_function(value_ptr, template_ptr, i, j, legacy);
               TTCN_Logger::log_event_str(" }");
             }
           }
diff --git a/core/Struct_of.hh b/core/Struct_of.hh
index 49cce39ff..90f285cf4 100644
--- a/core/Struct_of.hh
+++ b/core/Struct_of.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -34,10 +34,11 @@ typedef boolean (*compare_function_t)(const Base_Type *left_ptr, int left_index,
 #endif
 
 typedef boolean (*match_function_t)(const Base_Type *value_ptr, int value_index,
-  const Restricted_Length_Template *template_ptr, int template_index);
+  const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
 
 typedef void (*log_function_t)(const Base_Type *value_ptr,
-  const Restricted_Length_Template *template_ptr, int index_value, int index_template);
+  const Restricted_Length_Template *template_ptr, int index_value,
+  int index_template, boolean legacy);
 
 #ifdef TITAN_RUNTIME_2
 extern boolean compare_set_of(const Record_Of_Type *left_ptr, int left_size,
@@ -51,19 +52,19 @@ extern boolean compare_set_of(const Base_Type *left_ptr, int left_size,
 
 extern boolean match_array(const Base_Type *value_ptr, int value_size,
   const Restricted_Length_Template *template_ptr, int template_size,
-  match_function_t match_function);
+  match_function_t match_function, boolean legacy);
 
 extern boolean match_record_of(const Base_Type *value_ptr, int value_size,
   const Record_Of_Template *template_ptr, int template_size,
-  match_function_t match_function);
+  match_function_t match_function, boolean legacy);
 
 extern boolean match_set_of(const Base_Type *value_ptr, int value_size,
   const Restricted_Length_Template *template_ptr, int template_size,
-  match_function_t match_function);
+  match_function_t match_function, boolean legacy);
 
 extern void log_match_heuristics(const Base_Type *value_ptr, int value_size,
   const Restricted_Length_Template *template_ptr, int template_size,
-  match_function_t match_function, log_function_t log_function);
+  match_function_t match_function, log_function_t log_function, boolean legacy);
 
 boolean match_set_of_internal(const Base_Type *value_ptr,
   int value_start, int value_size,
@@ -72,6 +73,6 @@ boolean match_set_of_internal(const Base_Type *value_ptr,
   match_function_t match_function,
   type_of_matching match_type,
   int* number_of_uncovered, int* pair_list,
-  unsigned int number_of_checked);
+  unsigned int number_of_checked, boolean legacy);
 
 #endif
diff --git a/core/TCov.cc b/core/TCov.cc
index 1cca55d78..e8bd03cf0 100644
--- a/core/TCov.cc
+++ b/core/TCov.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/TCov.hh b/core/TCov.hh
index 3fc93683e..bf121de50 100644
--- a/core/TCov.hh
+++ b/core/TCov.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/TEXT.cc b/core/TEXT.cc
index d0b57c4a4..f36264302 100644
--- a/core/TEXT.cc
+++ b/core/TEXT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/TEXT.hh b/core/TEXT.hh
index 7a2483310..e094212f2 100644
--- a/core/TEXT.hh
+++ b/core/TEXT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/TTCN3.hh b/core/TTCN3.hh
index 6fb4305eb..5cd837282 100644
--- a/core/TTCN3.hh
+++ b/core/TTCN3.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Template.cc b/core/Template.cc
index ff3aa0610..2777ead0b 100644
--- a/core/Template.cc
+++ b/core/Template.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -17,7 +17,8 @@
 #ifdef TITAN_RUNTIME_2
 #include "Integer.hh"
 
-void Base_Template::check_restriction(template_res t_res, const char* t_name) const
+void Base_Template::check_restriction(template_res t_res, const char* t_name,
+                                      boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -29,7 +30,7 @@ void Base_Template::check_restriction(template_res t_res, const char* t_name) co
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -140,6 +141,12 @@ void Base_Template::set_param(Module_Param& /*param*/)
   TTCN_error("Internal error: Base_Template::set_param()");
 }
 
+Module_Param* Base_Template::get_param(Module_Param_Name& /* param_name */) const
+{
+  TTCN_error("Internal error: Base_Template::get_param()");
+  return NULL;
+}
+
 Restricted_Length_Template::Restricted_Length_Template()
 {
   length_restriction_type = NO_LENGTH_RESTRICTION;
@@ -391,6 +398,24 @@ void Restricted_Length_Template::set_length_range(const Module_Param& param)
   }
 }
 
+Module_Param_Length_Restriction* Restricted_Length_Template::get_length_range() const
+{
+  if (length_restriction_type == NO_LENGTH_RESTRICTION) {
+    return NULL;
+  }
+  Module_Param_Length_Restriction* mp_res = new Module_Param_Length_Restriction();
+  if (length_restriction_type == SINGLE_LENGTH_RESTRICTION) {
+    mp_res->set_single(length_restriction.single_length);
+  }
+  else {
+    mp_res->set_min(length_restriction.range_length.min_length);
+    if (length_restriction.range_length.max_length_set) {
+      mp_res->set_max(length_restriction.range_length.max_length);
+    }
+  }
+  return mp_res;
+}
+
 void Restricted_Length_Template::set_single_length(int single_length)
 {
   length_restriction_type = SINGLE_LENGTH_RESTRICTION;
@@ -487,12 +512,13 @@ void Record_Of_Template::set_selection(const Record_Of_Template& other_value)
 
 boolean Record_Of_Template::match_function_specific(
   const Base_Type *value_ptr, int value_index,
-  const Restricted_Length_Template *template_ptr, int template_index)
+  const Restricted_Length_Template *template_ptr, int template_index,
+  boolean legacy)
 {
   const Record_Of_Template* rec_tmpl_ptr = static_cast<const Record_Of_Template*>(template_ptr);
   if (value_index >= 0) {
     const Record_Of_Type* recof_ptr = static_cast<const Record_Of_Type*>(value_ptr);
-    return rec_tmpl_ptr->single_value.value_elements[template_index]->matchv(recof_ptr->get_at(value_index));
+    return rec_tmpl_ptr->single_value.value_elements[template_index]->matchv(recof_ptr->get_at(value_index), legacy);
   } else {
     return rec_tmpl_ptr->single_value.value_elements[template_index]->is_any_or_omit();
   }
@@ -942,7 +968,8 @@ int Record_Of_Template::n_elem() const
              "template of type %s.", get_descriptor()->name);
 }
 
-boolean Record_Of_Template::matchv(const Base_Type* other_value) const
+boolean Record_Of_Template::matchv(const Base_Type* other_value,
+                                   boolean legacy) const
 {
   const Record_Of_Type* other_recof = static_cast<const Record_Of_Type*>(other_value);
   if (!other_value->is_bound()) return FALSE;
@@ -950,7 +977,8 @@ boolean Record_Of_Template::matchv(const Base_Type* other_value) const
   if (!match_length(value_length)) return FALSE;
   switch (template_selection) {
   case SPECIFIC_VALUE:
-    return match_record_of(other_recof, value_length, this, single_value.n_elements, match_function_specific);
+    return match_record_of(other_recof, value_length, this,
+      single_value.n_elements, match_function_specific, legacy);
   case OMIT_VALUE:
     return FALSE;
   case ANY_VALUE:
@@ -959,7 +987,7 @@ boolean Record_Of_Template::matchv(const Base_Type* other_value) const
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
     for (int list_count = 0; list_count < value_list.n_values; list_count++)
-      if (value_list.list_value[list_count]->matchv(other_value))
+      if (value_list.list_value[list_count]->matchv(other_value, legacy))
         return template_selection == VALUE_LIST;
     return template_selection == COMPLEMENTED_LIST;
   default:
@@ -1041,10 +1069,10 @@ void Record_Of_Template::log() const
   if (err_descr) err_descr->log();
 }
 
-void Record_Of_Template::log_matchv(const Base_Type* match_value) const
+void Record_Of_Template::log_matchv(const Base_Type* match_value, boolean legacy) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()) {
-    if (matchv(match_value)) {
+    if (matchv(match_value, legacy)) {
       TTCN_Logger::print_logmatch_buffer();
       TTCN_Logger::log_event_str(" matched");
     } else {
@@ -1054,9 +1082,9 @@ void Record_Of_Template::log_matchv(const Base_Type* match_value) const
           single_value.n_elements == recof_value->size_of()) {
         size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
         for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
-          if(!single_value.value_elements[elem_count]->matchv(recof_value->get_at(elem_count))){
+          if(!single_value.value_elements[elem_count]->matchv(recof_value->get_at(elem_count), legacy)){
             TTCN_Logger::log_logmatch_info("[%d]", elem_count);
-            single_value.value_elements[elem_count]->log_matchv(recof_value->get_at(elem_count));
+            single_value.value_elements[elem_count]->log_matchv(recof_value->get_at(elem_count), legacy);
             TTCN_Logger::set_logmatch_buffer_len(previous_size);
           }
         }
@@ -1077,7 +1105,7 @@ void Record_Of_Template::log_matchv(const Base_Type* match_value) const
       TTCN_Logger::log_event_str("{ ");
       for (int elem_count = 0; elem_count < single_value.n_elements; elem_count++) {
         if (elem_count > 0) TTCN_Logger::log_event_str(", ");
-        single_value.value_elements[elem_count]->log_matchv(recof_value->get_at(elem_count));
+        single_value.value_elements[elem_count]->log_matchv(recof_value->get_at(elem_count), legacy);
       }
       TTCN_Logger::log_event_str(" }");
       log_match_length(single_value.n_elements);
@@ -1085,7 +1113,7 @@ void Record_Of_Template::log_matchv(const Base_Type* match_value) const
       match_value->log();
       TTCN_Logger::log_event_str(" with ");
       log();
-      if (matchv(match_value)) TTCN_Logger::log_event_str(" matched");
+      if (matchv(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
       else TTCN_Logger::log_event_str(" unmatched");
     }
   }
@@ -1151,13 +1179,13 @@ void Record_Of_Template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean Record_Of_Template::is_present() const
+boolean Record_Of_Template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean Record_Of_Template::match_omit() const
+boolean Record_Of_Template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1166,10 +1194,14 @@ boolean Record_Of_Template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i]->match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i]->match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -1194,7 +1226,13 @@ void Record_Of_Template::set_param(Module_Param& param)
   }
   
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "record of template");
-  switch (param.get_type()) {
+  
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     set_value(OMIT_VALUE);
     break;
@@ -1205,17 +1243,24 @@ void Record_Of_Template::set_param(Module_Param& param)
     set_value(ANY_OR_OMIT);
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      get_list_item(i)->set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    Record_Of_Template** list_items = (Record_Of_Template**)
+      allocate_pointers(mp->get_size());
+    for (size_t i = 0; i < mp->get_size(); i++) {
+      list_items[i] = create();
+      list_items[i]->set_param(*mp->get_elem(i));
     }
-    break;
+    clean_up();
+    template_selection = mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST;
+    value_list.n_values = mp->get_size();
+    value_list.list_value = list_items;
+    break; }
   case Module_Param::MP_Value_List: {
-    set_size(param.get_size()); // at least this size if there are no permutation elements, if there are then get_at() will automatically resize
+    set_size(mp->get_size()); // at least this size if there are no permutation elements, if there are then get_at() will automatically resize
     int curr_idx = 0; // current index into this
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const curr = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const curr = mp->get_elem(i);
       switch (curr->get_type()) {
       case Module_Param::MP_NotUsed:
         // skip this element
@@ -1239,19 +1284,85 @@ void Record_Of_Template::set_param(Module_Param& param)
   } break;
   case Module_Param::MP_Indexed_List:
     if (template_selection!=SPECIFIC_VALUE) set_size(0);
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const current = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const current = mp->get_elem(i);
       get_at((int)current->get_id()->get_index())->set_param(*current);
     }
     break;
   default:
     param.type_error("record of template", get_descriptor()->name);
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
 }
 
-void Record_Of_Template::check_restriction(template_res t_res, const char* t_name) const
+Module_Param* Record_Of_Template::get_param(Module_Param_Name& param_name) const
+{
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] < '0' || param_field[0] > '9') {
+      TTCN_error("Unexpected record field name in module parameter reference, "
+        "expected a valid index for record of template type `%s'",
+        get_descriptor()->name);
+    }
+    int param_index = -1;
+    sscanf(param_field, "%d", &param_index);
+    return get_at(param_index)->get_param(param_name);
+  }
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Vector<Module_Param*> values;
+    for (int i = 0; i < single_value.n_elements; ++i) {
+      values.push_back(single_value.value_elements[i]->get_param(param_name));
+    }
+    mp = new Module_Param_Value_List();
+    mp->add_list_with_implicit_ids(&values);
+    values.clear();
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (int i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i]->get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
+}
+
+void Record_Of_Template::check_restriction(template_res t_res, const char* t_name,
+                                           boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name && (t_res==TR_VALUE)) ? TR_OMIT : t_res) {
@@ -1264,7 +1375,7 @@ void Record_Of_Template::check_restriction(template_res t_res, const char* t_nam
       single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : get_descriptor()->name);
     return;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -1631,12 +1742,13 @@ int Set_Of_Template::n_elem() const
 
 boolean Set_Of_Template::match_function_specific(
   const Base_Type *value_ptr, int value_index,
-  const Restricted_Length_Template *template_ptr, int template_index)
+  const Restricted_Length_Template *template_ptr, int template_index,
+  boolean legacy)
 {
   const Set_Of_Template* set_tmpl_ptr = static_cast<const Set_Of_Template*>(template_ptr);
   if (value_index >= 0) {
     const Record_Of_Type* recof_ptr = static_cast<const Record_Of_Type*>(value_ptr);
-    return set_tmpl_ptr->single_value.value_elements[template_index]->matchv(recof_ptr->get_at(value_index));
+    return set_tmpl_ptr->single_value.value_elements[template_index]->matchv(recof_ptr->get_at(value_index), legacy);
   } else {
     return set_tmpl_ptr->single_value.value_elements[template_index]->is_any_or_omit();
   }
@@ -1644,12 +1756,13 @@ boolean Set_Of_Template::match_function_specific(
 
 boolean Set_Of_Template::match_function_set(
   const Base_Type *value_ptr, int value_index,
-  const Restricted_Length_Template *template_ptr, int template_index)
+  const Restricted_Length_Template *template_ptr, int template_index,
+  boolean legacy)
 {
   const Set_Of_Template* set_tmpl_ptr = static_cast<const Set_Of_Template*>(template_ptr);
   if (value_index >= 0) {
     const Record_Of_Type* recof_ptr = static_cast<const Record_Of_Type*>(value_ptr);
-    return set_tmpl_ptr->single_value.value_elements[template_index]->matchv(recof_ptr->get_at(value_index));
+    return set_tmpl_ptr->single_value.value_elements[template_index]->matchv(recof_ptr->get_at(value_index), legacy);
   } else {
     return set_tmpl_ptr->single_value.value_elements[template_index]->is_any_or_omit();
   }
@@ -1657,19 +1770,20 @@ boolean Set_Of_Template::match_function_set(
 
 void Set_Of_Template::log_function(
   const Base_Type *value_ptr, const Restricted_Length_Template *template_ptr,
-  int index_value, int index_template)
+  int index_value, int index_template, boolean legacy)
 {
   const Set_Of_Template* set_tmpl_ptr = static_cast<const Set_Of_Template*>(template_ptr);
   const Record_Of_Type* recof_ptr = static_cast<const Record_Of_Type*>(value_ptr);
   if (value_ptr != NULL && template_ptr != NULL)
-    set_tmpl_ptr->single_value.value_elements[index_template]->log_matchv(recof_ptr->get_at(index_value));
+    set_tmpl_ptr->single_value.value_elements[index_template]->log_matchv(recof_ptr->get_at(index_value), legacy);
   else if (value_ptr != NULL)
     recof_ptr->get_at(index_value)->log();
   else if (template_ptr != NULL)
     set_tmpl_ptr->single_value.value_elements[index_template]->log();
 }
 
-boolean Set_Of_Template::matchv(const Base_Type* other_value) const
+boolean Set_Of_Template::matchv(const Base_Type* other_value,
+                                boolean legacy) const
 {
   const Record_Of_Type* other_recof = static_cast<const Record_Of_Type*>(other_value);
   if (!other_recof->is_bound())
@@ -1680,7 +1794,7 @@ boolean Set_Of_Template::matchv(const Base_Type* other_value) const
   switch (template_selection) {
   case SPECIFIC_VALUE:
     return match_set_of(other_recof, value_length, this,
-                        single_value.n_elements, match_function_specific);
+                        single_value.n_elements, match_function_specific, legacy);
   case OMIT_VALUE:
     return FALSE;
   case ANY_VALUE:
@@ -1689,13 +1803,13 @@ boolean Set_Of_Template::matchv(const Base_Type* other_value) const
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
     for (int list_count = 0; list_count < value_list.n_values; list_count++)
-      if (value_list.list_value[list_count]->matchv(other_recof))
+      if (value_list.list_value[list_count]->matchv(other_recof, legacy))
         return template_selection == VALUE_LIST;
     return template_selection == COMPLEMENTED_LIST;
   case SUPERSET_MATCH:
   case SUBSET_MATCH:
     return match_set_of(other_recof, value_length, this,
-                        single_value.n_elements, match_function_set);
+                        single_value.n_elements, match_function_set, legacy);
   default:
     TTCN_error("Matching with an uninitialized/unsupported template of type %s.",
                get_descriptor()->name);
@@ -1820,17 +1934,18 @@ void Set_Of_Template::log() const
   if (err_descr) err_descr->log();
 }
 
-void Set_Of_Template::log_matchv(const Base_Type* match_value) const
+void Set_Of_Template::log_matchv(const Base_Type* match_value, boolean legacy) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()) {
-    if (matchv(match_value)) {
+    if (matchv(match_value, legacy)) {
       TTCN_Logger::print_logmatch_buffer();
       TTCN_Logger::log_event_str(" matched");
     } else {
       size_t previous_size = TTCN_Logger::get_logmatch_buffer_len();
       if (template_selection == SPECIFIC_VALUE) {
         const Record_Of_Type* setof_value = static_cast<const Record_Of_Type*>(match_value);
-        log_match_heuristics(setof_value, setof_value->size_of(), this, single_value.n_elements, match_function_specific, log_function);
+        log_match_heuristics(setof_value, setof_value->size_of(), this,
+          single_value.n_elements, match_function_specific, log_function, legacy);
       } else {
         if (previous_size != 0) {
           TTCN_Logger::print_logmatch_buffer();
@@ -1847,12 +1962,13 @@ void Set_Of_Template::log_matchv(const Base_Type* match_value) const
     match_value->log();
     TTCN_Logger::log_event_str(" with ");
     log();
-    if (matchv(match_value)) TTCN_Logger::log_event_str(" matched");
+    if (matchv(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
     else {
       TTCN_Logger::log_event_str(" unmatched");
       if (template_selection == SPECIFIC_VALUE) {
         const Record_Of_Type* setof_value = static_cast<const Record_Of_Type*>(match_value);
-        log_match_heuristics(setof_value, setof_value->size_of(), this, single_value.n_elements, match_function_specific, log_function);
+        log_match_heuristics(setof_value, setof_value->size_of(), this,
+          single_value.n_elements, match_function_specific, log_function, legacy);
       }
     }
   }
@@ -1922,13 +2038,13 @@ void Set_Of_Template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean Set_Of_Template::is_present() const
+boolean Set_Of_Template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean Set_Of_Template::match_omit() const
+boolean Set_Of_Template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -1937,10 +2053,14 @@ boolean Set_Of_Template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i]->match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i]->match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -1965,7 +2085,13 @@ void Set_Of_Template::set_param(Module_Param& param)
   }
   
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "set of template");
-  switch (param.get_type()) {
+  
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     set_value(OMIT_VALUE);
     break;
@@ -1976,16 +2102,23 @@ void Set_Of_Template::set_param(Module_Param& param)
     set_value(ANY_OR_OMIT);
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      get_list_item(i)->set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    Set_Of_Template** list_items = (Set_Of_Template**)
+      allocate_pointers(mp->get_size());
+    for (size_t i = 0; i < mp->get_size(); i++) {
+      list_items[i] = create();
+      list_items[i]->set_param(*mp->get_elem(i));
     }
-    break;
+    clean_up();
+    template_selection = mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST;
+    value_list.n_values = mp->get_size();
+    value_list.list_value = list_items;
+    break; }
   case Module_Param::MP_Value_List:
-    set_size(param.get_size());
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const curr = param.get_elem(i);
+    set_size(mp->get_size());
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const curr = mp->get_elem(i);
       if (curr->get_type()!=Module_Param::MP_NotUsed) {
         get_at(i)->set_param(*curr);
       }
@@ -1993,26 +2126,92 @@ void Set_Of_Template::set_param(Module_Param& param)
     break;
   case Module_Param::MP_Indexed_List:
     if (template_selection!=SPECIFIC_VALUE) set_size(0);
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const current = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const current = mp->get_elem(i);
       get_at((int)current->get_id()->get_index())->set_param(*current);
     }
     break;
   case Module_Param::MP_Superset_Template:
   case Module_Param::MP_Subset_Template:
-    set_type(param.get_type()==Module_Param::MP_Superset_Template ? SUPERSET_MATCH : SUBSET_MATCH, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      get_set_item((int)i)->set_param(*param.get_elem(i));
+    set_type(mp->get_type()==Module_Param::MP_Superset_Template ? SUPERSET_MATCH : SUBSET_MATCH, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      get_set_item((int)i)->set_param(*mp->get_elem(i));
     }
     break;
   default:
     param.type_error("set of template", get_descriptor()->name);
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
+}
+
+Module_Param* Set_Of_Template::get_param(Module_Param_Name& param_name) const
+{
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] < '0' || param_field[0] > '9') {
+      TTCN_error("Unexpected record field name in module parameter reference, "
+        "expected a valid index for set of template type `%s'",
+        get_descriptor()->name);
+    }
+    int param_index = -1;
+    sscanf(param_field, "%d", &param_index);
+    return get_at(param_index)->get_param(param_name);
+  }
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    Vector<Module_Param*> values;
+    for (int i = 0; i < single_value.n_elements; ++i) {
+      values.push_back(single_value.value_elements[i]->get_param(param_name));
+    }
+    mp = new Module_Param_Value_List();
+    mp->add_list_with_implicit_ids(&values);
+    values.clear();
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (int i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i]->get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
 }
 
-void Set_Of_Template::check_restriction(template_res t_res, const char* t_name) const
+void Set_Of_Template::check_restriction(template_res t_res, const char* t_name,
+                                        boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2025,7 +2224,7 @@ void Set_Of_Template::check_restriction(template_res t_res, const char* t_name)
       single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : get_descriptor()->name);
     return;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2307,7 +2506,8 @@ void Record_Template::log() const
   if (err_descr) err_descr->log();
 }
 
-boolean Record_Template::matchv(const Base_Type* other_value) const
+boolean Record_Template::matchv(const Base_Type* other_value,
+                                boolean legacy) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2325,8 +2525,8 @@ boolean Record_Template::matchv(const Base_Type* other_value) const
       const Base_Type* elem_value = other_rec->get_at(elem_count);
       if (!elem_value->is_bound()) return FALSE;
       boolean elem_match = is_optional ?
-        ( elem_value->ispresent() ? elem_tmpl->matchv(elem_value->get_opt_value()) : elem_tmpl->match_omit() ) :
-        elem_tmpl->matchv(other_rec->get_at(elem_count));
+        ( elem_value->ispresent() ? elem_tmpl->matchv(elem_value->get_opt_value(), legacy) : elem_tmpl->match_omit(legacy) ) :
+        elem_tmpl->matchv(other_rec->get_at(elem_count), legacy);
       if (!elem_match) return FALSE;
       if (is_optional) next_optional_idx++;
     }
@@ -2334,7 +2534,7 @@ boolean Record_Template::matchv(const Base_Type* other_value) const
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
     for (int list_count = 0; list_count < value_list.n_values; list_count++)
-      if (value_list.list_value[list_count]->matchv(other_value)) return template_selection == VALUE_LIST;
+      if (value_list.list_value[list_count]->matchv(other_value, legacy)) return template_selection == VALUE_LIST;
     return template_selection == COMPLEMENTED_LIST;
   default:
     TTCN_error("Matching an uninitialized/unsupported template of type %s.", get_descriptor()->name);
@@ -2342,10 +2542,10 @@ boolean Record_Template::matchv(const Base_Type* other_value) const
   return FALSE;
 }
 
-void Record_Template::log_matchv(const Base_Type* match_value) const
+void Record_Template::log_matchv(const Base_Type* match_value, boolean legacy) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()) {
-    if (matchv(match_value)) {
+    if (matchv(match_value, legacy)) {
       TTCN_Logger::print_logmatch_buffer();
       TTCN_Logger::log_event_str(" matched");
     } else {
@@ -2360,13 +2560,13 @@ void Record_Template::log_matchv(const Base_Type* match_value) const
           const Base_Type* elem_value = match_rec->get_at(elem_count);
           if (is_optional) {
             if (elem_value->ispresent()) {
-              if (!elem_tmpl->matchv(elem_value->get_opt_value())) {
+              if (!elem_tmpl->matchv(elem_value->get_opt_value(), legacy)) {
                 TTCN_Logger::log_logmatch_info(".%s", fld_name(elem_count));
-                elem_tmpl->log_matchv(elem_value->get_opt_value());
+                elem_tmpl->log_matchv(elem_value->get_opt_value(), legacy);
                 TTCN_Logger::set_logmatch_buffer_len(previous_size);
               }
             } else {
-              if (!elem_tmpl->match_omit()) {
+              if (!elem_tmpl->match_omit(legacy)) {
                 TTCN_Logger::log_logmatch_info(".%s := omit with ", fld_name(elem_count));
                 TTCN_Logger::print_logmatch_buffer();
                 elem_tmpl->log();
@@ -2375,9 +2575,9 @@ void Record_Template::log_matchv(const Base_Type* match_value) const
               }
             }
           } else {//mandatory
-            if (!elem_tmpl->matchv(elem_value)) {
+            if (!elem_tmpl->matchv(elem_value, legacy)) {
               TTCN_Logger::log_logmatch_info(".%s", fld_name(elem_count));
-              elem_tmpl->log_matchv(elem_value);
+              elem_tmpl->log_matchv(elem_value, legacy);
               TTCN_Logger::set_logmatch_buffer_len(previous_size);
             }
           }//if
@@ -2405,15 +2605,15 @@ void Record_Template::log_matchv(const Base_Type* match_value) const
         TTCN_Logger::log_event_str(fld_name(elem_count));
         TTCN_Logger::log_event_str(" := ");
         if (is_optional) {
-          if (elem_value->ispresent()) elem_tmpl->log_matchv(elem_value->get_opt_value());
+          if (elem_value->ispresent()) elem_tmpl->log_matchv(elem_value->get_opt_value(), legacy);
           else {
             TTCN_Logger::log_event_str("omit with ");
             elem_tmpl->log();
-            if (elem_tmpl->match_omit()) TTCN_Logger::log_event_str(" matched");
+            if (elem_tmpl->match_omit(legacy)) TTCN_Logger::log_event_str(" matched");
             else TTCN_Logger::log_event_str(" unmatched");
           }
         } else {
-          elem_tmpl->log_matchv(elem_value);
+          elem_tmpl->log_matchv(elem_value, legacy);
         }
         if (is_optional) next_optional_idx++;
       }
@@ -2422,7 +2622,7 @@ void Record_Template::log_matchv(const Base_Type* match_value) const
       match_value->log();
       TTCN_Logger::log_event_str(" with ");
       log();
-      if (matchv(match_value)) TTCN_Logger::log_event_str(" matched");
+      if (matchv(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
       else TTCN_Logger::log_event_str(" unmatched");
     }
   }
@@ -2481,13 +2681,13 @@ void Record_Template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean Record_Template::is_present() const
+boolean Record_Template::is_present(boolean legacy /*= FALSE*/) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean Record_Template::match_omit() const
+boolean Record_Template::match_omit(boolean legacy /*= FALSE*/) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2496,9 +2696,13 @@ boolean Record_Template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i]->match_omit()) return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i]->match_omit()) return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -2528,7 +2732,13 @@ void Record_Template::set_param(Module_Param& param)
   }
   
   param.basic_check(Module_Param::BC_TEMPLATE, "record/set template");
-  switch (param.get_type()) {
+  
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     set_value(OMIT_VALUE);
     break;
@@ -2539,28 +2749,35 @@ void Record_Template::set_param(Module_Param& param)
     set_value(ANY_OR_OMIT);
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      get_list_item(i)->set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    Record_Template** list_items = (Record_Template**)
+      allocate_pointers(mp->get_size());
+    for (size_t i = 0; i < mp->get_size(); i++) {
+      list_items[i] = create();
+      list_items[i]->set_param(*mp->get_elem(i));
     }
-    break;
+    clean_up();
+    template_selection = mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST;
+    value_list.n_values = mp->get_size();
+    value_list.list_value = list_items;
+    break; }
   case Module_Param::MP_Value_List:
     set_specific();
-    if (single_value.n_elements<(int)param.get_size()) {
-      param.error("Record/set template of type %s has %d fields but list value has %d fields", get_descriptor()->name, single_value.n_elements, (int)param.get_size());
+    if (single_value.n_elements<(int)mp->get_size()) {
+      param.error("Record/set template of type %s has %d fields but list value has %d fields", get_descriptor()->name, single_value.n_elements, (int)mp->get_size());
     }
-    for (size_t i=0; i<param.get_size(); i++) {
-      Module_Param* mp = param.get_elem(i);
-      if (mp->get_type()!=Module_Param::MP_NotUsed) {
-        get_at((int)i)->set_param(*mp);
+    for (size_t i=0; i<mp->get_size(); i++) {
+      Module_Param* mp_field = mp->get_elem(i);
+      if (mp_field->get_type()!=Module_Param::MP_NotUsed) {
+        get_at((int)i)->set_param(*mp_field);
       }
     }
     break;
   case Module_Param::MP_Assignment_List:
     set_specific();
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const current = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const current = mp->get_elem(i);
       bool found = false;
       for (int j=0; j<single_value.n_elements; ++j) {
         if (!strcmp(fld_name(j), current->get_id()->get_name())) {
@@ -2579,10 +2796,73 @@ void Record_Template::set_param(Module_Param& param)
   default:
     param.type_error("record/set template", get_descriptor()->name);
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
 }
 
-void Record_Template::check_restriction(template_res t_res, const char* t_name) const
+Module_Param* Record_Template::get_param(Module_Param_Name& param_name) const
+{
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the fields, not to the whole record
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] >= '0' && param_field[0] <= '9') {
+      TTCN_error("Unexpected array index in module parameter reference, "
+        "expected a valid field name for record/set template type `%s'",
+        get_descriptor()->name);
+    }
+    for (int field_idx = 0; field_idx < single_value.n_elements; field_idx++) {
+      if (strcmp(fld_name(field_idx), param_field) == 0) {
+        return get_at(field_idx)->get_param(param_name);
+      }
+    }
+    TTCN_error("Field `%s' not found in record/set type `%s'",
+      param_field, get_descriptor()->name);
+  }
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE: {
+    mp = new Module_Param_Assignment_List();
+    for (int i = 0; i < single_value.n_elements; ++i) {
+      Module_Param* mp_field = get_at(i)->get_param(param_name);
+      mp_field->set_id(new Module_Param_FieldName(mcopystr(fld_name(i))));
+      mp->add_elem(mp_field);
+    }
+    break; }
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (int i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i]->get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
+}
+
+void Record_Template::check_restriction(template_res t_res, const char* t_name,
+                                        boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -2595,7 +2875,7 @@ void Record_Template::check_restriction(template_res t_res, const char* t_name)
       single_value.value_elements[i]->check_restriction(t_res, t_name ? t_name : get_descriptor()->name);
     return;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
@@ -2780,7 +3060,8 @@ void Empty_Record_Template::log() const
   log_ifpresent();
 }
 
-boolean Empty_Record_Template::matchv(const Base_Type* other_value) const
+boolean Empty_Record_Template::matchv(const Base_Type* other_value,
+                                      boolean legacy) const
 {
   switch (template_selection) {
   case ANY_VALUE:
@@ -2793,7 +3074,7 @@ boolean Empty_Record_Template::matchv(const Base_Type* other_value) const
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
     for (int list_count = 0; list_count < value_list.n_values; list_count++)
-      if (value_list.list_value[list_count]->matchv(other_value)) return template_selection == VALUE_LIST;
+      if (value_list.list_value[list_count]->matchv(other_value, legacy)) return template_selection == VALUE_LIST;
     return template_selection == COMPLEMENTED_LIST;
   default:
     TTCN_error("Matching an uninitialized/unsupported template of type %s.", get_descriptor()->name);
@@ -2801,12 +3082,12 @@ boolean Empty_Record_Template::matchv(const Base_Type* other_value) const
   return FALSE;
 }
 
-void Empty_Record_Template::log_matchv(const Base_Type* match_value) const
+void Empty_Record_Template::log_matchv(const Base_Type* match_value, boolean legacy) const
 {
   match_value->log();
   TTCN_Logger::log_event_str(" with ");
   log();
-  if (matchv(match_value)) TTCN_Logger::log_event_str(" matched");
+  if (matchv(match_value, legacy)) TTCN_Logger::log_event_str(" matched");
   else TTCN_Logger::log_event_str(" unmatched");
 }
 
@@ -2854,13 +3135,13 @@ void Empty_Record_Template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean Empty_Record_Template::is_present() const
+boolean Empty_Record_Template::is_present(boolean legacy /*= FALSE*/) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean Empty_Record_Template::match_omit() const
+boolean Empty_Record_Template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -2869,9 +3150,13 @@ boolean Empty_Record_Template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i]->match_omit()) return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i]->match_omit()) return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -2881,7 +3166,11 @@ boolean Empty_Record_Template::match_omit() const
 void Empty_Record_Template::set_param(Module_Param& param)
 {
   param.basic_check(Module_Param::BC_TEMPLATE, "empty record/set template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     set_value(OMIT_VALUE);
     break;
@@ -2892,20 +3181,69 @@ void Empty_Record_Template::set_param(Module_Param& param)
     set_value(ANY_OR_OMIT);
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      get_list_item(i)->set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    Empty_Record_Template** list_items = (Empty_Record_Template**)
+      allocate_pointers(mp->get_size());
+    for (size_t i = 0; i < mp->get_size(); i++) {
+      list_items[i] = create();
+      list_items[i]->set_param(*mp->get_elem(i));
     }
-    break;
+    clean_up();
+    template_selection = mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST;
+    value_list.n_values = mp->get_size();
+    value_list.list_value = list_items;
+    break; }
   case Module_Param::MP_Value_List:
-    if (param.get_size()==0) set_value(SPECIFIC_VALUE);
+    if (mp->get_size()==0) {
+      set_selection(SPECIFIC_VALUE);
+    }
     else param.type_error("empty record/set template", get_descriptor()->name);
     break;
   default:
     param.type_error("empty record/set template", get_descriptor()->name);
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* Empty_Record_Template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = new Module_Param_Value_List();
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (int i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i]->get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 #endif
diff --git a/core/Template.hh b/core/Template.hh
index 9b3a0d192..a40610b2d 100644
--- a/core/Template.hh
+++ b/core/Template.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -19,6 +19,8 @@ struct Erroneous_descriptor_t;
 
 class Text_Buf;
 class Module_Param;
+class Module_Param_Name;
+class Module_Param_Length_Restriction;
 
 enum template_sel {
   UNINITIALIZED_TEMPLATE = -1,
@@ -83,7 +85,22 @@ public:
   /** return the name of template restriction \a tr */
   static const char* get_res_name(template_res tr);
 
+  /** Initialize this object (or one of its fields/elements) with a 
+    * module parameter value. The module parameter may contain references to
+    * other module parameters or module parameter expressions, which are processed
+    * by this method to calculated the final result.
+    * @note Sets the 'ifpresent' flag if either the reference (if any) or the
+    * (referenced) module parameter value have their 'ifpresent' flag
+    * @note If both the reference (if any) and the (referenced) module parameter
+    * have a length restriction, then the reference's length restriction is used.
+    * @note A temporary object is used when setting VALUE_LIST or COMPLEMENT_LIST
+    * templates, as the list of templates might contain a reference to this object.
+    * @param param module parameter value (its ID specifies which object is to be set) */
   VIRTUAL_IF_RUNTIME_2 void set_param(Module_Param& param);
+  /** Create a module parameter value equivalent to this object (or one of its
+    * fields/elements)
+    * @param param_name module parameter ID, specifies which object to convert */
+  VIRTUAL_IF_RUNTIME_2 Module_Param* get_param(Module_Param_Name& param_name) const;
   
   /** not a component by default (component templates will return true) */
   inline boolean is_component() { return FALSE; }
@@ -100,15 +117,16 @@ public:
   virtual void log() const = 0;
 
   // virtual functions for match and log_match
-  virtual boolean matchv(const Base_Type* other_value) const = 0;
-  virtual void log_matchv(const Base_Type* match_value) const = 0;
+  virtual boolean matchv(const Base_Type* other_value, boolean legacy) const = 0;
+  virtual void log_matchv(const Base_Type* match_value, boolean legacy) const = 0;
 
   virtual void encode_text(Text_Buf& text_buf) const = 0;
   virtual void decode_text(Text_Buf& text_buf) = 0;
-  virtual boolean is_present() const = 0;
-  virtual boolean match_omit() const = 0;
+  virtual boolean is_present(boolean legacy = FALSE) const = 0;
+  virtual boolean match_omit(boolean legacy = FALSE) const = 0;
 
-  virtual void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  virtual void check_restriction(template_res t_res, const char* t_name=NULL,
+    boolean legacy = FALSE) const;
 
   virtual ~Base_Template() { }
 #endif
@@ -156,6 +174,7 @@ protected:
   void decode_text_restricted(Text_Buf& text_buf);
 
   void set_length_range(const Module_Param& param);
+  Module_Param_Length_Restriction* get_length_range() const;
 
 public:
 
@@ -264,8 +283,8 @@ protected:
 public:
   void log() const;
 
-  boolean matchv(const Base_Type* other_value) const;
-  void log_matchv(const Base_Type* match_value) const;
+  boolean matchv(const Base_Type* other_value, boolean legacy) const;
+  void log_matchv(const Base_Type* match_value, boolean legacy) const;
   /** create an instance of this */
   virtual Set_Of_Template* create() const = 0;
   /** create an instance of the element class */
@@ -274,23 +293,26 @@ public:
   // used for both set of and record of types
   static boolean match_function_specific(
     const Base_Type *value_ptr, int value_index,
-    const Restricted_Length_Template *template_ptr, int template_index);
+    const Restricted_Length_Template *template_ptr, int template_index,
+    boolean legacy);
   // 2 static functions only for set of types
   static boolean match_function_set(
     const Base_Type *value_ptr, int value_index,
-    const Restricted_Length_Template *template_ptr, int template_index);
+    const Restricted_Length_Template *template_ptr, int template_index,
+    boolean legacy);
   static void log_function(const Base_Type *value_ptr,
     const Restricted_Length_Template *template_ptr,
-    int index_value, int index_template);
+    int index_value, int index_template, boolean legacy);
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
   
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
   void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; }
 };
 
@@ -373,8 +395,8 @@ public:
   int n_elem() const;
   void log() const;
 
-  boolean matchv(const Base_Type* other_value) const;
-  void log_matchv(const Base_Type* match_value) const;
+  boolean matchv(const Base_Type* other_value, boolean legacy) const;
+  void log_matchv(const Base_Type* match_value, boolean legacy) const;
   /** create an instance of this */
   virtual Record_Of_Template* create() const = 0;
   /** create an instance of the element class */
@@ -383,16 +405,17 @@ public:
   // used for both set of and record of types
   static boolean match_function_specific(
     const Base_Type *value_ptr, int value_index,
-    const Restricted_Length_Template *template_ptr, int template_index);
+    const Restricted_Length_Template *template_ptr, int template_index, boolean legacy);
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
   void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; }
 };
 
@@ -452,17 +475,18 @@ public:
 
   void log() const;
 
-  boolean matchv(const Base_Type* other_value) const;
-  void log_matchv(const Base_Type* match_value) const;
+  boolean matchv(const Base_Type* other_value, boolean legacy) const;
+  void log_matchv(const Base_Type* match_value, boolean legacy) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
   void set_err_descr(Erroneous_descriptor_t* p_err_descr) { err_descr=p_err_descr; }
 };
 
@@ -507,15 +531,16 @@ public:
 
   void log() const;
 
-  boolean matchv(const Base_Type* other_value) const;
-  void log_matchv(const Base_Type* match_value) const;
+  boolean matchv(const Base_Type* other_value, boolean legacy) const;
+  void log_matchv(const Base_Type* match_value, boolean legacy) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 };
 
 #undef VIRTUAL_IF_RUNTIME_2
diff --git a/core/Textbuf.cc b/core/Textbuf.cc
index 4d88b73d5..b8a4b2f65 100644
--- a/core/Textbuf.cc
+++ b/core/Textbuf.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -200,8 +200,33 @@ boolean Text_Buf::safe_pull_int(int_val_t& value)
  */
 void Text_Buf::push_double(double value)
 {
-  Reallocate(buf_len + 32);
-  buf_len += sprintf((char*)data_ptr + buf_begin + buf_len, "%.16g ", value);
+  Reallocate(buf_len + 8);
+  union{
+    double d;
+    unsigned char c[8];
+  } m;
+  m.d=value;
+  unsigned char *st=(unsigned char *)data_ptr + buf_begin + buf_len;
+#if defined __sparc__ || defined __sparc
+    st[0]=m.c[0];
+    st[1]=m.c[1];
+    st[2]=m.c[2];
+    st[3]=m.c[3];
+    st[4]=m.c[4];
+    st[5]=m.c[5];
+    st[6]=m.c[6];
+    st[7]=m.c[7];
+#else
+    st[0]=m.c[7];
+    st[1]=m.c[6];
+    st[2]=m.c[5];
+    st[3]=m.c[4];
+    st[4]=m.c[3];
+    st[5]=m.c[2];
+    st[6]=m.c[1];
+    st[7]=m.c[0];
+#endif
+  buf_len += 8;
 }
 
 /** Extract a double precision floating point number
@@ -212,27 +237,35 @@ void Text_Buf::push_double(double value)
  */
 double Text_Buf::pull_double()
 {
-  int buf_end = buf_begin + buf_len;
-  const char *char_ptr = (const char*)data_ptr;
-  // check for the proper format (printed in ascii, followed by a space)
-  if (buf_pos >= buf_end) TTCN_error("Text decoder: Decoding of float failed. "
+  if (buf_pos + 8 > buf_begin + buf_len) TTCN_error("Text decoder: Decoding of float failed. "
     "(End of buffer reached)");
-  else if (char_ptr[buf_pos] == ' ') TTCN_error("Text decoder: Decoding of "
-    "float failed. (No data before the end marker)");
-  int end_pos = buf_pos + 1;
-  for ( ; ; end_pos++) {
-    if (end_pos >= buf_end) TTCN_error("Text decoder: Decoding of float "
-      "failed. (Missing end marker)");
-    else if (char_ptr[end_pos] == ' ') break;
-  }
-  // perform the decoding
-  errno = 0;
-  double ret_val = atof(char_ptr + buf_pos);
-  if (ret_val == 0.0 && errno != 0) TTCN_error("Text decoder: Decoding of "
-    "float failed.");
-  // increment the read pointer
-  buf_pos = end_pos + 1;
-  return ret_val;
+  const unsigned char *st = (unsigned char *)data_ptr+buf_pos;
+
+  union{
+    double d;
+    unsigned char c[8];
+  } m;
+#if defined __sparc__ || defined __sparc
+    m.c[0]=st[0];
+    m.c[1]=st[1];
+    m.c[2]=st[2];
+    m.c[3]=st[3];
+    m.c[4]=st[4];
+    m.c[5]=st[5];
+    m.c[6]=st[6];
+    m.c[7]=st[7];
+#else
+    m.c[0]=st[7];
+    m.c[1]=st[6];
+    m.c[2]=st[5];
+    m.c[3]=st[4];
+    m.c[4]=st[3];
+    m.c[5]=st[2];
+    m.c[6]=st[1];
+    m.c[7]=st[0];
+#endif
+buf_pos += 8;
+return m.d;
 }
 
 /** Write a fixed number of bytes in the buffer.
diff --git a/core/Textbuf.hh b/core/Textbuf.hh
index debeed2c7..f755eb474 100644
--- a/core/Textbuf.hh
+++ b/core/Textbuf.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Timer.cc b/core/Timer.cc
index 97d82bfc6..26a338a49 100644
--- a/core/Timer.cc
+++ b/core/Timer.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Timer.hh b/core/Timer.hh
index 953445164..56bef8d79 100644
--- a/core/Timer.hh
+++ b/core/Timer.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/TitanLoggerApi.xsd b/core/TitanLoggerApi.xsd
index f742ad667..8956dc8e8 100644
--- a/core/TitanLoggerApi.xsd
+++ b/core/TitanLoggerApi.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
-  Copyright (c) 2000-2014 Ericsson Telecom AB
+  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
diff --git a/core/TitanLoggerControl.ttcn b/core/TitanLoggerControl.ttcn
index 8e0dcd4df..7a4f2dce8 100644
--- a/core/TitanLoggerControl.ttcn
+++ b/core/TitanLoggerControl.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/core/TitanLoggerControlImpl.cc b/core/TitanLoggerControlImpl.cc
index c7edcdbcd..dce76c66d 100644
--- a/core/TitanLoggerControlImpl.cc
+++ b/core/TitanLoggerControlImpl.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Types.h b/core/Types.h
index 9c93a8677..6ef22e6ee 100644
--- a/core/Types.h
+++ b/core/Types.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/Universal_charstring.cc b/core/Universal_charstring.cc
index 9b7f53444..a2070229f 100644
--- a/core/Universal_charstring.cc
+++ b/core/Universal_charstring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -933,10 +933,14 @@ UNIVERSAL_CHARSTRING UNIVERSAL_CHARSTRING::from_UTF8_buffer(TTCN_Buffer& p_buff)
   }
 }
 
-void UNIVERSAL_CHARSTRING::set_param(Module_Param& param) {
+boolean UNIVERSAL_CHARSTRING::set_param_internal(Module_Param& param, boolean allow_pattern) {
+  boolean is_pattern = FALSE;
   param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, "universal charstring value");
-  
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Charstring: {
     switch (param.get_operation_type()) {
     case Module_Param::OT_ASSIGN:
@@ -944,7 +948,7 @@ void UNIVERSAL_CHARSTRING::set_param(Module_Param& param) {
       // no break
     case Module_Param::OT_CONCAT: {
       TTCN_Buffer buff;
-      buff.put_s(param.get_string_size(), (unsigned char*)param.get_string_data());
+      buff.put_s(mp->get_string_size(), (unsigned char*)mp->get_string_data());
       if (is_bound()) {
         *this = *this + from_UTF8_buffer(buff);
       } else {
@@ -960,60 +964,61 @@ void UNIVERSAL_CHARSTRING::set_param(Module_Param& param) {
     case Module_Param::OT_ASSIGN:
       clean_up();
       // no break
-    case Module_Param::OT_CONCAT: {
-      const Module_Param_Universal_Charstring* ucs_param = dynamic_cast<const Module_Param_Universal_Charstring*>(&param);
-      if (0 != ucs_param) {
-        // The Module_Param_Universal_Charstring class also contains the positions
-        // of all characters added in quadruple form (in char(g,p,r,c) form)
-        // The strings between these positions need to be decoded if they are
-        // in UTF-8 format (the quad characters shouldn't be decoded).
-        int nof_quads = ucs_param->get_nof_quads();
-        universal_char* uchars = (universal_char*)ucs_param->get_string_data();
-        for (int i = 0; i < nof_quads + 1; ++i) {
-          // Each iteration processes the string before a quad and the quad itself
-          // the last iteration processes the string after the last quad
-          // ex.         "ccccccQccccccccQcccccccc" => 2 quads at positions 6 and 15
-          // iterations:  <-1st-><--2nd--><--3rd->  
-          int start_pos = (i == 0) ? 0 : ucs_param->get_quad_pos(i - 1) + 1;
-          int end_pos = (i == nof_quads) ? ucs_param->get_string_size() : ucs_param->get_quad_pos(i);
-          if (end_pos > start_pos) {
-            TTCN_Buffer buff;
-            for (int j = start_pos; j < end_pos; ++j) {
-              buff.put_c(uchars[j].uc_cell);
-            }
-            if (is_bound()) {
-              // Add the string before the quad character
-              *this = *this + from_UTF8_buffer(buff);
-            } else {
-              *this = from_UTF8_buffer(buff);
-            }
-          }
-          if (i != nof_quads) {
-            // Add the quad character itself
-            if (is_bound()) {
-              *this = *this + uchars[end_pos];
-            } else {
-              *this = UNIVERSAL_CHARSTRING(uchars[end_pos]);
-            }
-          }
-        }
+    case Module_Param::OT_CONCAT:
+      if (is_bound()) {
+        *this = *this + UNIVERSAL_CHARSTRING(mp->get_string_size(), (universal_char*)mp->get_string_data());
       } else {
-        // plan B (should never happen)
-        if (is_bound()) {
-          *this = *this + UNIVERSAL_CHARSTRING(param.get_string_size(), (universal_char*)param.get_string_data());
-        } else {
-          init_struct(param.get_string_size());
-          memcpy(val_ptr->uchars_ptr, param.get_string_data(), val_ptr->n_uchars * sizeof(universal_char));
-        }
+        *this = UNIVERSAL_CHARSTRING(mp->get_string_size(), (universal_char*)mp->get_string_data());
       }
-      break; }
+      break;
     default:
       TTCN_error("Internal error: UNIVERSAL_CHARSTRING::set_param()");
     }
     break; }
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      UNIVERSAL_CHARSTRING operand1, operand2;
+      is_pattern = operand1.set_param_internal(*mp->get_operand1(), allow_pattern);
+      operand2.set_param(*mp->get_operand2());
+      if (param.get_operation_type() == Module_Param::OT_CONCAT) {
+        *this = *this + operand1 + operand2;
+      }
+      else {
+        *this = operand1 + operand2;
+      }
+    }
+    else {
+      param.expr_type_error("a universal charstring");
+    }
+    break;
+  case Module_Param::MP_Pattern:
+    if (allow_pattern) {
+      *this = CHARSTRING(mp->get_pattern());
+      is_pattern = TRUE;
+      break;
+    }
+    // else fall through
   default:
     param.type_error("universal charstring value");
   }
+  return is_pattern;
+}
+
+void UNIVERSAL_CHARSTRING::set_param(Module_Param& param) {
+  set_param_internal(param, FALSE);
+}
+
+Module_Param* UNIVERSAL_CHARSTRING::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  if (charstring) {
+    return cstr.get_param(param_name);
+  }
+  universal_char* val_cpy = (universal_char*)Malloc(val_ptr->n_uchars * sizeof(universal_char));
+  memcpy(val_cpy, val_ptr->uchars_ptr, val_ptr->n_uchars * sizeof(universal_char));
+  return new Module_Param_Universal_Charstring(val_ptr->n_uchars, val_cpy);
 }
 
 void UNIVERSAL_CHARSTRING::encode_text(Text_Buf& text_buf) const
@@ -3800,7 +3805,7 @@ const UNIVERSAL_CHARSTRING_ELEMENT UNIVERSAL_CHARSTRING_template::operator[](con
 }
 
 boolean UNIVERSAL_CHARSTRING_template::match
-  (const UNIVERSAL_CHARSTRING& other_value) const
+  (const UNIVERSAL_CHARSTRING& other_value, boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   int value_length = other_value.lengthof();
@@ -4061,7 +4066,7 @@ void UNIVERSAL_CHARSTRING_template::log() const
 }
 
 void UNIVERSAL_CHARSTRING_template::log_match
-  (const UNIVERSAL_CHARSTRING& match_value) const
+  (const UNIVERSAL_CHARSTRING& match_value, boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -4077,7 +4082,11 @@ void UNIVERSAL_CHARSTRING_template::log_match
 
 void UNIVERSAL_CHARSTRING_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE|Module_Param::BC_LIST, "universal charstring template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -4088,21 +4097,24 @@ void UNIVERSAL_CHARSTRING_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    UNIVERSAL_CHARSTRING_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Charstring:
-    *this = CHARSTRING(param.get_string_size(), (char*)param.get_string_data());
+    *this = CHARSTRING(mp->get_string_size(), (char*)mp->get_string_data());
     break;
   case Module_Param::MP_Universal_Charstring:
-    *this = UNIVERSAL_CHARSTRING(param.get_string_size(), (universal_char*)param.get_string_data());
+    *this = UNIVERSAL_CHARSTRING(mp->get_string_size(), (universal_char*)mp->get_string_data());
     break;
   case Module_Param::MP_StringRange: {
-    universal_char lower_uchar = param.get_lower_uchar();
-    universal_char upper_uchar = param.get_upper_uchar();
+    universal_char lower_uchar = mp->get_lower_uchar();
+    universal_char upper_uchar = mp->get_upper_uchar();
     clean_up();
     set_selection(VALUE_RANGE);
     value_range.min_is_set = TRUE;
@@ -4112,15 +4124,92 @@ void UNIVERSAL_CHARSTRING_template::set_param(Module_Param& param) {
   } break;
   case Module_Param::MP_Pattern:
     clean_up();
-    pattern_string = new CHARSTRING(param.get_pattern());
+    pattern_string = new CHARSTRING(mp->get_pattern());
     pattern_value.regexp_init = FALSE;
     set_selection(STRING_PATTERN);
     break;
+  case Module_Param::MP_Expression:
+    if (mp->get_expr_type() == Module_Param::EXPR_CONCATENATE) {
+      UNIVERSAL_CHARSTRING operand1, operand2, result;
+      boolean is_pattern = operand1.set_param_internal(*mp->get_operand1(), TRUE);
+      operand2.set_param(*mp->get_operand2());
+      result = operand1 + operand2;
+      if (is_pattern) {
+        clean_up();
+        if (result.charstring) {
+          pattern_string = new CHARSTRING(result.cstr);
+        }
+        else {
+          pattern_string = new CHARSTRING(result.get_stringRepr_for_pattern());
+        }
+        pattern_value.regexp_init = FALSE;
+        set_selection(STRING_PATTERN);
+      }
+      else {
+        *this = result;
+      }
+    }
+    else {
+      param.expr_type_error("a charstring");
+    }
+    break;
   default:
     param.type_error("universal charstring template");
   }
-  is_ifpresent = param.get_ifpresent();
-  set_length_range(param);
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+  if (param.get_length_restriction() != NULL) {
+    set_length_range(param);
+  }
+  else {
+    set_length_range(*mp);
+  }
+}
+
+Module_Param* UNIVERSAL_CHARSTRING_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = single_value.get_param(param_name);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  case VALUE_RANGE:
+    mp = new Module_Param_StringRange(value_range.min_value, value_range.max_value);
+    break;
+  case STRING_PATTERN:
+    mp = new Module_Param_Pattern(mcopystr(*pattern_string));
+    break;
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  mp->set_length_restriction(get_length_range());
+  return mp;
 }
 
 void UNIVERSAL_CHARSTRING_template::encode_text(Text_Buf& text_buf) const
@@ -4205,13 +4294,13 @@ void UNIVERSAL_CHARSTRING_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean UNIVERSAL_CHARSTRING_template::is_present() const
+boolean UNIVERSAL_CHARSTRING_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean UNIVERSAL_CHARSTRING_template::match_omit() const
+boolean UNIVERSAL_CHARSTRING_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -4220,10 +4309,14 @@ boolean UNIVERSAL_CHARSTRING_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -4232,7 +4325,7 @@ boolean UNIVERSAL_CHARSTRING_template::match_omit() const
 
 #ifndef TITAN_RUNTIME_2
 void UNIVERSAL_CHARSTRING_template::check_restriction(template_res t_res,
-  const char* t_name) const
+  const char* t_name, boolean legacy) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -4244,7 +4337,7 @@ void UNIVERSAL_CHARSTRING_template::check_restriction(template_res t_res,
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Universal_charstring.hh b/core/Universal_charstring.hh
index 5d2e66a61..a6dd30cff 100644
--- a/core/Universal_charstring.hh
+++ b/core/Universal_charstring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -92,6 +92,12 @@ class UNIVERSAL_CHARSTRING : public Base_Type {
   void init_struct(int n_uchars);
   void copy_value();
   UNIVERSAL_CHARSTRING(int n_uchars, bool cstring = false);
+  
+  /** An extended version of set_param(), which also accepts string patterns if
+    * the second parameter is set (needed by UNIVERSAL_CHARSTRING_template to
+    * concatenate string patterns). 
+    * @return TRUE, if the module parameter was a string pattern, otherwise FALSE */
+  boolean set_param_internal(Module_Param& param, boolean allow_pattern);
 
 public:
 
@@ -303,6 +309,7 @@ public:
     * @note UFT-8 strings (whose characters were not in quadruple notation) will 
     * be decoded */
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -548,7 +555,7 @@ public:
   const UNIVERSAL_CHARSTRING_ELEMENT operator[]
     (const INTEGER& index_value) const;
 
-  boolean match(const UNIVERSAL_CHARSTRING& other_value) const;
+  boolean match(const UNIVERSAL_CHARSTRING& other_value, boolean legacy = FALSE) const;
   const UNIVERSAL_CHARSTRING& valueof() const;
 
   int lengthof() const;
@@ -560,15 +567,16 @@ public:
   void set_max(const UNIVERSAL_CHARSTRING& max_value);
 
   void log() const;
-  void log_match(const UNIVERSAL_CHARSTRING& match_value) const;
+  void log_match(const UNIVERSAL_CHARSTRING& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const { *(static_cast<UNIVERSAL_CHARSTRING*>(value)) = valueof(); }
@@ -576,10 +584,10 @@ public:
   void copy_value(const Base_Type* other_value) { *this = *(static_cast<const UNIVERSAL_CHARSTRING*>(other_value)); }
   Base_Template* clone() const { return new UNIVERSAL_CHARSTRING_template(*this); }
   const TTCN_Typedescriptor_t* get_descriptor() const { return &UNIVERSAL_CHARSTRING_descr_; }
-  boolean matchv(const Base_Type* other_value) const { return match(*(static_cast<const UNIVERSAL_CHARSTRING*>(other_value))); }
-  void log_matchv(const Base_Type* match_value) const  { log_match(*(static_cast<const UNIVERSAL_CHARSTRING*>(match_value))); }
+  boolean matchv(const Base_Type* other_value, boolean legacy) const { return match(*(static_cast<const UNIVERSAL_CHARSTRING*>(other_value)), legacy); }
+  void log_matchv(const Base_Type* match_value, boolean legacy) const  { log_match(*(static_cast<const UNIVERSAL_CHARSTRING*>(match_value)), legacy); }
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 
   const CHARSTRING& get_single_value() const;
diff --git a/core/VIRAG.asn b/core/VIRAG.asn
index 65f868526..1a2ab9beb 100644
--- a/core/VIRAG.asn
+++ b/core/VIRAG.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/core/Vector.hh b/core/Vector.hh
index a439f913b..8f5ed5551 100644
--- a/core/Vector.hh
+++ b/core/Vector.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -11,7 +11,23 @@
 
 #include <stddef.h>
 
+#ifndef PROF_MERGE
 #include "Error.hh"
+#else
+// there's no point in including Error.hh and all the includes that come with it
+// when building the profiler merge tool, just use this simple error function
+#include <stdio.h>
+#include <stdarg.h>
+void TTCN_error(const char *fmt, ...)
+{
+  va_list parameters;
+  va_start(parameters, fmt);
+  vfprintf(stderr, fmt, parameters);
+  va_end(parameters);
+  putc('\n', stderr);
+  fflush(stderr);
+}
+#endif
 
 // Not invented here 
 template<typename T>
diff --git a/core/Verdicttype.cc b/core/Verdicttype.cc
index e8ba46055..d74aff451 100644
--- a/core/Verdicttype.cc
+++ b/core/Verdicttype.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -95,12 +95,24 @@ void VERDICTTYPE::log() const
 
 void VERDICTTYPE::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "verdict value");
-  if (param.get_type()!=Module_Param::MP_Verdict) param.type_error("verdict value");
-  const verdicttype verdict = param.get_verdict();
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()!=Module_Param::MP_Verdict) param.type_error("verdict value");
+  const verdicttype verdict = mp->get_verdict();
   if (!IS_VALID(verdict)) param.error("Internal error: invalid verdict value (%d).", verdict);
   verdict_value = verdict;
 }
 
+Module_Param* VERDICTTYPE::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Verdict(verdict_value);
+}
+
 void VERDICTTYPE::encode_text(Text_Buf& text_buf) const
 {
   if (!is_bound())
@@ -547,7 +559,8 @@ VERDICTTYPE_template& VERDICTTYPE_template::operator=
   return *this;
 }
 
-boolean VERDICTTYPE_template::match(verdicttype other_value) const
+boolean VERDICTTYPE_template::match(verdicttype other_value,
+                                    boolean /* legacy */) const
 {
   if (!IS_VALID(other_value)) TTCN_error("Matching a verdict template with "
     "an invalid value (%d).", other_value);
@@ -571,7 +584,8 @@ boolean VERDICTTYPE_template::match(verdicttype other_value) const
   return FALSE;
 }
 
-boolean VERDICTTYPE_template::match(const VERDICTTYPE& other_value) const
+boolean VERDICTTYPE_template::match(const VERDICTTYPE& other_value,
+                                    boolean /* legacy */) const
 {
   if (!other_value.is_bound()) return FALSE;
   return match(other_value.verdict_value);
@@ -635,7 +649,8 @@ void VERDICTTYPE_template::log() const
   log_ifpresent();
 }
 
-void VERDICTTYPE_template::log_match(const VERDICTTYPE& match_value) const
+void VERDICTTYPE_template::log_match(const VERDICTTYPE& match_value,
+                                     boolean /* legacy */) const
 {
   if (TTCN_Logger::VERBOSITY_COMPACT == TTCN_Logger::get_matching_verbosity()
   &&  TTCN_Logger::get_logmatch_buffer_len() != 0) {
@@ -651,7 +666,11 @@ void VERDICTTYPE_template::log_match(const VERDICTTYPE& match_value) const
 
 void VERDICTTYPE_template::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_TEMPLATE, "verdict template");
-  switch (param.get_type()) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  switch (mp->get_type()) {
   case Module_Param::MP_Omit:
     *this = OMIT_VALUE;
     break;
@@ -662,19 +681,62 @@ void VERDICTTYPE_template::set_param(Module_Param& param) {
     *this = ANY_OR_OMIT;
     break;
   case Module_Param::MP_List_Template:
-  case Module_Param::MP_ComplementList_Template:
-    set_type(param.get_type()==Module_Param::MP_List_Template ? VALUE_LIST : COMPLEMENTED_LIST, param.get_size());
-    for (size_t i=0; i<param.get_size(); i++) {
-      list_item(i).set_param(*param.get_elem(i));
+  case Module_Param::MP_ComplementList_Template: {
+    VERDICTTYPE_template temp;
+    temp.set_type(mp->get_type() == Module_Param::MP_List_Template ?
+      VALUE_LIST : COMPLEMENTED_LIST, mp->get_size());
+    for (size_t i=0; i<mp->get_size(); i++) {
+      temp.list_item(i).set_param(*mp->get_elem(i));
     }
-    break;
+    *this = temp;
+    break; }
   case Module_Param::MP_Verdict:
-    *this = param.get_verdict();
+    *this = mp->get_verdict();
     break;
   default:
     param.type_error("verdict template");
   }
-  is_ifpresent = param.get_ifpresent();
+  is_ifpresent = param.get_ifpresent() || mp->get_ifpresent();
+}
+
+Module_Param* VERDICTTYPE_template::get_param(Module_Param_Name& param_name) const
+{
+  Module_Param* mp = NULL;
+  switch (template_selection) {
+  case UNINITIALIZED_TEMPLATE:
+    mp = new Module_Param_Unbound();
+    break;
+  case OMIT_VALUE:
+    mp = new Module_Param_Omit();
+    break;
+  case ANY_VALUE:
+    mp = new Module_Param_Any();
+    break;
+  case ANY_OR_OMIT:
+    mp = new Module_Param_AnyOrNone();
+    break;
+  case SPECIFIC_VALUE:
+    mp = new Module_Param_Verdict(single_value);
+    break;
+  case VALUE_LIST:
+  case COMPLEMENTED_LIST: {
+    if (template_selection == VALUE_LIST) {
+      mp = new Module_Param_List_Template();
+    }
+    else {
+      mp = new Module_Param_ComplementList_Template();
+    }
+    for (size_t i = 0; i < value_list.n_values; ++i) {
+      mp->add_elem(value_list.list_value[i].get_param(param_name));
+    }
+    break; }
+  default:
+    break;
+  }
+  if (is_ifpresent) {
+    mp->set_ifpresent();
+  }
+  return mp;
 }
 
 void VERDICTTYPE_template::encode_text(Text_Buf& text_buf) const
@@ -728,13 +790,13 @@ void VERDICTTYPE_template::decode_text(Text_Buf& text_buf)
   }
 }
 
-boolean VERDICTTYPE_template::is_present() const
+boolean VERDICTTYPE_template::is_present(boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return FALSE;
-  return !match_omit();
+  return !match_omit(legacy);
 }
 
-boolean VERDICTTYPE_template::match_omit() const
+boolean VERDICTTYPE_template::match_omit(boolean legacy /* = FALSE */) const
 {
   if (is_ifpresent) return TRUE;
   switch (template_selection) {
@@ -743,10 +805,14 @@ boolean VERDICTTYPE_template::match_omit() const
     return TRUE;
   case VALUE_LIST:
   case COMPLEMENTED_LIST:
-    for (unsigned int i=0; i<value_list.n_values; i++)
-      if (value_list.list_value[i].match_omit())
-        return template_selection==VALUE_LIST;
-    return template_selection==COMPLEMENTED_LIST;
+    if (legacy) {
+      // legacy behavior: 'omit' can appear in the value/complement list
+      for (unsigned int i=0; i<value_list.n_values; i++)
+        if (value_list.list_value[i].match_omit())
+          return template_selection==VALUE_LIST;
+      return template_selection==COMPLEMENTED_LIST;
+    }
+    // else fall through
   default:
     return FALSE;
   }
@@ -754,7 +820,8 @@ boolean VERDICTTYPE_template::match_omit() const
 }
 
 #ifndef TITAN_RUNTIME_2
-void VERDICTTYPE_template::check_restriction(template_res t_res, const char* t_name) const
+void VERDICTTYPE_template::check_restriction(template_res t_res, const char* t_name,
+                                             boolean legacy /* = FALSE */) const
 {
   if (template_selection==UNINITIALIZED_TEMPLATE) return;
   switch ((t_name&&(t_res==TR_VALUE))?TR_OMIT:t_res) {
@@ -766,7 +833,7 @@ void VERDICTTYPE_template::check_restriction(template_res t_res, const char* t_n
         template_selection==SPECIFIC_VALUE)) return;
     break;
   case TR_PRESENT:
-    if (!match_omit()) return;
+    if (!match_omit(legacy)) return;
     break;
   default:
     return;
diff --git a/core/Verdicttype.hh b/core/Verdicttype.hh
index 4ea1a52c1..0faba13bd 100644
--- a/core/Verdicttype.hh
+++ b/core/Verdicttype.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -71,6 +71,7 @@ public:
   void log() const;
 
   void set_param(Module_Param& param); 
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
@@ -143,33 +144,34 @@ public:
   VERDICTTYPE_template& operator=(const OPTIONAL<VERDICTTYPE>& other_value);
   VERDICTTYPE_template& operator=(const VERDICTTYPE_template& other_value);
 
-  boolean match(verdicttype other_value) const;
-  boolean match(const VERDICTTYPE& other_value) const;
+  boolean match(verdicttype other_value, boolean legacy = FALSE) const;
+  boolean match(const VERDICTTYPE& other_value, boolean legacy = FALSE) const;
   verdicttype valueof() const;
 
   void set_type(template_sel template_type, unsigned int list_length);
   VERDICTTYPE_template& list_item(unsigned int list_index);
 
   void log() const;
-  void log_match(const VERDICTTYPE& match_value) const;
+  void log_match(const VERDICTTYPE& match_value, boolean legacy = FALSE) const;
 
   void set_param(Module_Param& param);
+  Module_Param* get_param(Module_Param_Name& param_name) const;
 
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  boolean is_present() const;
-  boolean match_omit() const;
+  boolean is_present(boolean legacy = FALSE) const;
+  boolean match_omit(boolean legacy = FALSE) const;
 #ifdef TITAN_RUNTIME_2
   void valueofv(Base_Type* value) const {*(static_cast<VERDICTTYPE*>(value)) = valueof();}
   void set_value(template_sel other_value) {*this = other_value;}
   void copy_value(const Base_Type* other_value) {*this = *(static_cast<const VERDICTTYPE*>(other_value));}
   Base_Template* clone() const {return new VERDICTTYPE_template(*this);}
   const TTCN_Typedescriptor_t* get_descriptor() const {return &VERDICTTYPE_descr_;}
-  boolean matchv(const Base_Type* other_value) const {return match(*(static_cast<const VERDICTTYPE*>(other_value)));}
-  void log_matchv(const Base_Type* match_value) const {log_match(*(static_cast<const VERDICTTYPE*>(match_value)));}
+  boolean matchv(const Base_Type* other_value, boolean legacy) const {return match(*(static_cast<const VERDICTTYPE*>(other_value)), legacy);}
+  void log_matchv(const Base_Type* match_value, boolean legacy) const {log_match(*(static_cast<const VERDICTTYPE*>(match_value)), legacy);}
 #else
-  void check_restriction(template_res t_res, const char* t_name=NULL) const;
+  void check_restriction(template_res t_res, const char* t_name=NULL, boolean legacy = FALSE) const;
 #endif
 };
 
diff --git a/core/XER.cc b/core/XER.cc
index 5fa5effe6..03259a0b1 100644
--- a/core/XER.cc
+++ b/core/XER.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/XER.hh b/core/XER.hh
index 78262afc4..181f6afe3 100644
--- a/core/XER.hh
+++ b/core/XER.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/XmlReader.cc b/core/XmlReader.cc
index 4f602ae55..3b0da21a3 100644
--- a/core/XmlReader.cc
+++ b/core/XmlReader.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/XmlReader.hh b/core/XmlReader.hh
index 5a0b8dc3d..c6c480fd4 100644
--- a/core/XmlReader.hh
+++ b/core/XmlReader.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/config_process.l b/core/config_process.l
index dafbf2d1d..aba858461 100644
--- a/core/config_process.l
+++ b/core/config_process.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -303,11 +303,19 @@ TTCNSTRINGPARSING_COMPONENT "$#&&&(#TTCNSTRINGPARSING_COMPONENT$#&&^#% "
 
 {NUMBER}	{
 	yylval.int_val = new int_val_t(yytext);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    // return a different token for module parameters so it doesn't conflict with references
+    return MPNumber;
+  }
 	return Number;
 	}
 
 {FLOAT}		{
 	yylval.float_val = atof(yytext);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    // return a different token for module parameters so it doesn't conflict with references
+    return MPFloat;
+  }
 	return Float;
 	}
 
@@ -421,6 +429,10 @@ TTCNSTRINGPARSING_COMPONENT "$#&&&(#TTCNSTRINGPARSING_COMPONENT$#&&^#% "
     break;
   default:
     set_ret_val_cstr(cstring);
+    if (caller_state == SC_MODULE_PARAMETERS) {
+      // return a different token for module parameters so it doesn't conflict with references
+      return MPCstring;
+    }
     return Cstring;
   }
 
@@ -474,6 +486,10 @@ TTCNSTRINGPARSING_COMPONENT "$#&&&(#TTCNSTRINGPARSING_COMPONENT$#&&^#% "
   BEGIN(caller_state);
   if (caller_state!=SC_DEFINE) {
     set_ret_val_cstr(cstring);
+    if (caller_state == SC_MODULE_PARAMETERS) {
+      // return a different token for module parameters so it doesn't conflict with references
+      return MPCstring;
+    }
 	  return Cstring;
   } 
 
@@ -1000,155 +1016,155 @@ LOG_ALL	{
   
   /* statistics filters */
   [Nn]umber[Oo]f[Ll]ines {
-    yylval.uint_val = TTCN3_Profiler::STATS_NUMBER_OF_LINES;
+    yylval.uint_val = Profiler_Tools::STATS_NUMBER_OF_LINES;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Dd]ata[Rr]aw {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_DATA_RAW;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_DATA_RAW;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Dd]ata[Rr]aw {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_DATA_RAW;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_DATA_RAW;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Aa]vg[Rr]aw {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_AVG_RAW;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_AVG_RAW;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Aa]vg[Rr]aw {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_AVG_RAW;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_AVG_RAW;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Tt]imes[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_TIMES_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_TIMES_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Tt]imes[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_TIMES_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_TIMES_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Tt]imes[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_TIMES_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_TIMES_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Tt]imes[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_TIMES_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_TIMES_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Cc]ount[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_COUNT_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_COUNT_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Cc]ount[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_COUNT_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_COUNT_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Cc]ount[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_COUNT_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_COUNT_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Cc]ount[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_COUNT_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_COUNT_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Aa]vg[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_AVG_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_AVG_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Aa]vg[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_AVG_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_AVG_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Aa]vg[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_AVG_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_AVG_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Aa]vg[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_AVG_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_AVG_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ll]ine[Tt]imes {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_LINE_TIMES;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_LINE_TIMES;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ff]unc[Tt]imes {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_FUNC_TIMES;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_FUNC_TIMES;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ll]ine[Cc]ount {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_LINE_COUNT;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_LINE_COUNT;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ff]unc[Cc]ount {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_FUNC_COUNT;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_FUNC_COUNT;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ll]ine[Aa]vg {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_LINE_AVG;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_LINE_AVG;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ff]unc[Aa]vg {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_FUNC_AVG;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_FUNC_AVG;
     return ProfilerStatsFlag;
   }
   [Uu]nused[Ll]ines {
-    yylval.uint_val = TTCN3_Profiler::STATS_UNUSED_LINES;
+    yylval.uint_val = Profiler_Tools::STATS_UNUSED_LINES;
     return ProfilerStatsFlag;
   }
   [Uu]nused[Ff]unc {
-    yylval.uint_val = TTCN3_Profiler::STATS_UNUSED_FUNC;
+    yylval.uint_val = Profiler_Tools::STATS_UNUSED_FUNC;
     return ProfilerStatsFlag;
   }
   [Aa]ll[Rr]aw[Dd]ata {
-    yylval.uint_val = TTCN3_Profiler::STATS_ALL_RAW_DATA;
+    yylval.uint_val = Profiler_Tools::STATS_ALL_RAW_DATA;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Dd]ata[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_DATA_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_DATA_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Dd]ata[Ss]orted[Bb]y[Mm]od {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_DATA_SORTED_BY_MOD;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_DATA_SORTED_BY_MOD;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Dd]ata[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_DATA_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_DATA_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Dd]ata[Ss]orted[Tt]otal {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_DATA_SORTED_TOTAL;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_DATA_SORTED_TOTAL;
     return ProfilerStatsFlag;
   }
   [Ll]ine[Dd]ata[Ss]orted {
-    yylval.uint_val = TTCN3_Profiler::STATS_LINE_DATA_SORTED;
+    yylval.uint_val = Profiler_Tools::STATS_LINE_DATA_SORTED;
     return ProfilerStatsFlag;
   }
   [Ff]unc[Dd]ata[Ss]orted {
-    yylval.uint_val = TTCN3_Profiler::STATS_FUNC_DATA_SORTED;
+    yylval.uint_val = Profiler_Tools::STATS_FUNC_DATA_SORTED;
     return ProfilerStatsFlag;
   }
   [Aa]ll[Dd]ata[Ss]orted {
-    yylval.uint_val = TTCN3_Profiler::STATS_ALL_DATA_SORTED;
+    yylval.uint_val = Profiler_Tools::STATS_ALL_DATA_SORTED;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ll]ine[Dd]ata {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_LINE_DATA;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_LINE_DATA;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Ff]unc[Dd]ata {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_FUNC_DATA;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_FUNC_DATA;
     return ProfilerStatsFlag;
   }
   [Tt]op10[Aa]ll[Dd]ata {
-    yylval.uint_val = TTCN3_Profiler::STATS_TOP10_ALL_DATA;
+    yylval.uint_val = Profiler_Tools::STATS_TOP10_ALL_DATA;
     return ProfilerStatsFlag;
   }
   [Uu]nused[Dd]ata {
-    yylval.uint_val = TTCN3_Profiler::STATS_UNUSED_DATA;
+    yylval.uint_val = Profiler_Tools::STATS_UNUSED_DATA;
     return ProfilerStatsFlag;
   }
   [Aa]ll {
-    yylval.uint_val = TTCN3_Profiler::STATS_ALL;
+    yylval.uint_val = Profiler_Tools::STATS_ALL;
     return ProfilerStatsFlag;
   }
 }
@@ -1181,7 +1197,7 @@ LOG_ALL	{
 
 <SC_MODULE_PARAMETERS>{ASN1LOWERIDENTIFIER}	{
     yylval.str_val = mcopystr(yytext);
-    for (int i = 0; i < yyleng; i++) {
+    for (size_t i = 0; i < yyleng; i++) {
 	if (yylval.str_val[i] == '-') yylval.str_val[i] = '_';
     }
     TTCN_warning("In line %d of configuration file: `%s' is not a valid TTCN-3 "
@@ -1202,7 +1218,7 @@ LOG_ALL	{
   char* comp_num_str = mcopystrn(yytext + pos + 1, len - pos - 1);
   yylval.int_val = new int_val_t(comp_num_str);
   Free(comp_num_str);
-  return Number;
+  return MPNumber;
 }
 
 {MACRO_BOOL} {
@@ -1258,6 +1274,10 @@ LOG_ALL	{
       "this context.");
     yylval.int_val = new int_val_t((RInt)0);
   }
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    // return a different token for module parameters so it doesn't conflict with references
+    return MPNumber;
+  }
   return Number;
 }
 
@@ -1286,6 +1306,10 @@ LOG_ALL	{
       "this context.");
     yylval.float_val = 0.0;
   }
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    // return a different token for module parameters so it doesn't conflict with references
+    return MPFloat;
+  }
   return Float;
 }
 
@@ -1335,6 +1359,10 @@ LOG_ALL	{
         "this context.");
     yylval.charstring_val.n_chars = 0;
     yylval.charstring_val.chars_ptr = memptystr();
+    if (YY_START == SC_MODULE_PARAMETERS) {
+      // return a different token for module parameters so it doesn't conflict with references
+      return MPCstring;
+    }
     return Cstring;
   }
 
@@ -1351,6 +1379,10 @@ LOG_ALL	{
     yylval.charstring_val.n_chars=0;
     yylval.charstring_val.chars_ptr=memptystr();
     Free(macroname);
+    if (YY_START == SC_MODULE_PARAMETERS) {
+      // return a different token for module parameters so it doesn't conflict with references
+      return MPCstring;
+    }
     return Cstring;
   }
 
@@ -1364,6 +1396,10 @@ LOG_ALL	{
     yylval.charstring_val.chars_ptr=(char*)Malloc(macrolen+1);
     memcpy(yylval.charstring_val.chars_ptr, macrovalue, macrolen+1);
     Free(macroname);
+    if (YY_START == SC_MODULE_PARAMETERS) {
+      // return a different token for module parameters so it doesn't conflict with references
+      return MPCstring;
+    }
     return Cstring;
   }
 }
diff --git a/core/config_process.y b/core/config_process.y
index 28dce692f..37e0d81e2 100644
--- a/core/config_process.y
+++ b/core/config_process.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -181,8 +181,8 @@ string_map_t *config_defines;
 %token EndTestCase
 %token <str_val> Identifier
 %token <str_val> ASN1LowerIdentifier "ASN.1 identifier beginning with a lowercase letter"
-%token <int_val> Number
-%token <float_val> Float
+%token <int_val> Number MPNumber "integer value"
+%token <float_val> Float MPFloat "float value"
 %token <bool_val> BooleanValue "true or false"
 %token <verdict_val> VerdictValue
 %token <bitstring_val> Bstring "bit string value"
@@ -191,7 +191,7 @@ string_map_t *config_defines;
 %token <str_val> BstringMatch "bit string template"
 %token <str_val> HstringMatch "hex string template"
 %token <str_val> OstringMatch "octet string template"
-%token <charstring_val> Cstring "charstring value"
+%token <charstring_val> Cstring MPCstring "charstring value"
 %token DNSName "hostname"
 /* a single bit */
 %token <logseverity_val> LoggingBit
@@ -236,10 +236,8 @@ string_map_t *config_defines;
 %type <objid_val> ObjIdValue ObjIdComponentList
 %type <int_val> ObjIdComponent NumberForm NameAndNumberForm
 
-%type <universal_charstring_val> UniversalCharstringValue
-	seqUniversalCharstringFragment UniversalCharstringFragment
+%type <universal_charstring_val> UniversalCharstringValue UniversalCharstringFragment
 %type <universal_char_val> Quadruple
-%type <str_val> EnumeratedValue
 
 %type <str_val> LoggerPluginId
 %type <logging_plugins> LoggerPlugin LoggerPluginList
@@ -270,9 +268,10 @@ string_map_t *config_defines;
 %type <str_val> FieldName
 %type <module_param_val> ParameterValue SimpleParameterValue ParameterValueOrNotUsedSymbol
   FieldValue ArrayItem IndexItem IndexItemList FieldValueList ArrayItemList CompoundValue IntegerRange FloatRange StringRange
+  ParameterExpression ParameterReference
 %type <module_param_list> TemplateItemList
 %type <module_param_length_restriction> LengthMatch
-%type <str_val> PatternChunk PatternChunkList
+%type <str_val> PatternChunk
 %type <int_native> IndexItemIndex LengthBound
 %type <uint_val> ProfilerStatsFlags
 
@@ -280,7 +279,6 @@ string_map_t *config_defines;
 ArrayRef
 ASN1LowerIdentifier
 Command
-EnumeratedValue
 FieldName
 Identifier
 LogFileName
@@ -289,7 +287,6 @@ TestportName
 TestportParameterName
 TestportParameterValue
 PatternChunk
-PatternChunkList
 BstringMatch
 HstringMatch
 OstringMatch
@@ -312,9 +309,9 @@ OctetstringValue
 
 %destructor { Free($$.chars_ptr); }
 Cstring
+MPCstring
 
-%destructor { Free($$.uchars_ptr); Free($$.quad_positions); }
-seqUniversalCharstringFragment
+%destructor { Free($$.uchars_ptr); }
 UniversalCharstringFragment
 UniversalCharstringValue
 
@@ -328,6 +325,7 @@ ExecuteItem
 IntegerValue
 NameAndNumberForm
 Number
+MPNumber
 NumberForm
 ObjIdComponent
 ParameterValue
@@ -343,6 +341,8 @@ IndexItem
 IntegerRange
 FloatRange
 StringRange
+ParameterExpression
+ParameterReference
 
 %destructor { delete $$; }
 LengthMatch
@@ -354,18 +354,18 @@ TemplateItemList
 ParameterName
 ParameterNameSegment
 
+%left '&' /* to avoid shift/reduce conflicts */
 %left '+' '-'
 %left '*' '/'
 %left UnarySign
 
-%expect 2
+%expect 1
 
 /*
-2 conflicts in two distinct states.
-When seeing a '*' token after an integer or float value in section
-[MODULE_PARAMETERS] parser cannot decide whether the token is a multiplication
-operator (shift) or it refers to all modules in the next module parameter
-(reduce).
+1 conflict:
+When seeing a '*' token after a module parameter expression the parser cannot
+decide whether the token is a multiplication operator (shift) or it refers to 
+all modules in the next module parameter (reduce).
 */
 %%
 
@@ -433,11 +433,10 @@ ParameterNameSegment:
   $$ = $1;
   $$->push_back($3);
 }
-| ParameterNameSegment '[' Number ']'
+| ParameterNameSegment IndexItemIndex
 {
   $$ = $1;
-  $$->push_back($3->as_string());
-  delete $3;
+  $$->push_back(mprintf("%d", $2));
 }
 | Identifier
 {
@@ -447,21 +446,21 @@ ParameterNameSegment:
 ;
 
 ParameterValue:
-  SimpleParameterValue
+  ParameterExpression
   {
     $$ = $1;
   }
-| SimpleParameterValue LengthMatch
+| ParameterExpression LengthMatch
   {
     $$ = $1;
     $$->set_length_restriction($2);
   }
-| SimpleParameterValue IfpresentKeyword
+| ParameterExpression IfpresentKeyword
   {
     $$ = $1;
     $$->set_ifpresent();
   }
-| SimpleParameterValue LengthMatch IfpresentKeyword
+| ParameterExpression LengthMatch IfpresentKeyword
   {
     $$ = $1;
     $$->set_length_restriction($2);
@@ -492,27 +491,69 @@ LengthMatch:
 ;
 
 LengthBound:
-  IntegerValue
+  ParameterExpression
 {
-  if (!$1->is_native()) {
+  $1->set_id(new Module_Param_CustomName(mcopystr("length bound")));
+  INTEGER tmp;
+  tmp.set_param(*$1);
+  if (!tmp.get_val().is_native()) {
     config_process_error("bignum length restriction bound.");
     $$ = 0;
-  } else if ($1->is_negative()) {
+  } else if (tmp.get_val().is_negative()) {
     config_process_error("negative length restriction bound.");
     $$ = 0;
   } else {
-    $$ = $1->get_val();
+    $$ = tmp;
   }
   delete $1;
 }
 ;
 
+// one global rule for expressions in module parameters
+// the expression's result will be calculated by set_param()
+ParameterExpression:
+  SimpleParameterValue { $$ = $1; }
+| ParameterReference { $$ = $1; }
+| '(' ParameterExpression ')' { $$ = $2; }
+| '+' ParameterExpression %prec UnarySign { $$ = $2; }
+| '-' ParameterExpression %prec UnarySign { $$ = new Module_Param_Expression($2); }
+| ParameterExpression '+' ParameterExpression
+  {
+    $$ = new Module_Param_Expression(Module_Param::EXPR_ADD, $1, $3);
+  }
+| ParameterExpression '-' ParameterExpression
+  {
+    $$ = new Module_Param_Expression(Module_Param::EXPR_SUBTRACT, $1, $3);
+  }
+| ParameterExpression '*' ParameterExpression
+  {
+    $$ = new Module_Param_Expression(Module_Param::EXPR_MULTIPLY, $1, $3);
+  }
+| ParameterExpression '/' ParameterExpression
+  {
+    $$ = new Module_Param_Expression(Module_Param::EXPR_DIVIDE, $1, $3);
+  }
+| ParameterExpression '&' ParameterExpression
+  {
+    $$ = new Module_Param_Expression(Module_Param::EXPR_CONCATENATE, $1, $3);
+  }
+;
+
+ParameterReference:
+  // enumerated values are also treated as references by the parser,
+  // these will be sorted out later during set_param()
+  ParameterNameSegment
+  {
+    $$ = new Module_Param_Reference(new Module_Param_Name(*$1));
+  }
+;
+
 SimpleParameterValue:
-	IntegerValue
+	MPNumber
   {
     $$ = new Module_Param_Integer($1);
   }
-| FloatValue
+| MPFloat
   {
     $$ = new Module_Param_Float($1);
   }
@@ -540,17 +581,13 @@ SimpleParameterValue:
   {
     $$ = new Module_Param_Octetstring($1.n_octets, $1.octets_ptr);
   }
-| Cstring
+| MPCstring
   {
     $$ = new Module_Param_Charstring($1.n_chars, $1.chars_ptr);
   }
 | UniversalCharstringValue
   {
-    $$ = new Module_Param_Universal_Charstring($1.n_uchars, $1.uchars_ptr, $1.n_quads, $1.quad_positions);
-  }
-| EnumeratedValue
-  {
-    $$ = new Module_Param_Enumerated($1);
+    $$ = new Module_Param_Universal_Charstring($1.n_uchars, $1.uchars_ptr);
   }
 | OmitKeyword
   {
@@ -592,7 +629,7 @@ SimpleParameterValue:
   {
     $$ = $1;
   }
-| PatternKeyword PatternChunkList
+| PatternKeyword PatternChunk
   {
     $$ = new Module_Param_Pattern($2);
   }
@@ -665,21 +702,8 @@ SimpleParameterValue:
   }
 ;
 
-PatternChunkList:
-  PatternChunk
-  {
-    $$ = $1;
-  }
-| PatternChunkList '&' PatternChunk
-  {
-    $$ = $1;
-    $$ = mputstr($$, $3);
-    Free($3);
-  }
-;
-
 PatternChunk:
-  Cstring
+  MPCstring
   {
     $$ = mcopystr($1.chars_ptr);
     Free($1.chars_ptr);
@@ -691,30 +715,30 @@ PatternChunk:
 ;
 
 IntegerRange:
-  '(' '-' InfinityKeyword DotDot IntegerValue ')'
+  '(' '-' InfinityKeyword DotDot MPNumber ')'
   {
     $$ = new Module_Param_IntRange(NULL, $5);
   }
-| '(' IntegerValue DotDot IntegerValue ')'
+| '(' MPNumber DotDot MPNumber ')'
   {
     $$ = new Module_Param_IntRange($2, $4);
   }
-| '(' IntegerValue DotDot InfinityKeyword ')'
+| '(' MPNumber DotDot InfinityKeyword ')'
   {
     $$ = new Module_Param_IntRange($2, NULL);
   }
 ;
 
 FloatRange:
-  '(' '-' InfinityKeyword DotDot FloatValue ')'
+  '(' '-' InfinityKeyword DotDot MPFloat ')'
   {
     $$ = new Module_Param_FloatRange(0.0, false, $5, true);
   }
-| '(' FloatValue DotDot FloatValue ')'
+| '(' MPFloat DotDot MPFloat ')'
   {
     $$ = new Module_Param_FloatRange($2, true, $4, true);
   }
-| '(' FloatValue DotDot InfinityKeyword ')'
+| '(' MPFloat DotDot InfinityKeyword ')'
   {
     $$ = new Module_Param_FloatRange($2, true, 0.0, false);
   }
@@ -739,12 +763,11 @@ StringRange:
     }
     Free($2.uchars_ptr);
     Free($4.uchars_ptr);
-    Free($2.quad_positions);
-    Free($4.quad_positions);
     $$ = new Module_Param_StringRange(lower, upper);
   }
 ;
 
+// integers outside of the [MODULE_PARAMETERS] section
 IntegerValue:
 	Number { $$ = $1; }
 	| '(' IntegerValue ')' { $$ = $2; }
@@ -801,6 +824,7 @@ IntegerValue:
 }
 ;
 
+// floats outside of the [MODULE_PARAMETERS] section
 FloatValue:
 	Float { $$ = $1; }
 	| '(' FloatValue ')' { $$ = $2; }
@@ -846,11 +870,11 @@ ObjIdComponent:
 ;
 
 NumberForm:
-	Number { $$ = $1; }
+	MPNumber { $$ = $1; }
 ;
 
 NameAndNumberForm:
-	Identifier '(' Number ')'
+	Identifier '(' MPNumber ')'
 {
 	Free($1);
 	$$ = $3;
@@ -858,149 +882,28 @@ NameAndNumberForm:
 ;
 
 BitstringValue:
-	Bstring
-{
-	$$ = $1;
-}
-	| BitstringValue ConcatOp Bstring
-{
-	$$.n_bits = $1.n_bits + $3.n_bits;
-	int n_bytes_1 = ($1.n_bits+7)/8;
-        int n_bytes_3 = ($3.n_bits+7)/8;
-        int n_bytes   = ($$.n_bits+7)/8;
-	$$.bits_ptr = (unsigned char *)Realloc($1.bits_ptr, n_bytes);
-	int n_rem_1 = $1.n_bits % 8; // remainder bits
-	if (n_rem_1!=0) {
-          for (int i=n_bytes_1; i<n_bytes; i++) {
-            unsigned char S3_byte = $3.bits_ptr[i-n_bytes_1];
-            $$.bits_ptr[i-1] |= S3_byte << n_rem_1;
-            $$.bits_ptr[i] = S3_byte >> (8-n_rem_1);
-          }
-          if (n_bytes_1+n_bytes_3>n_bytes)
-            $$.bits_ptr[n_bytes-1] |= $3.bits_ptr[n_bytes_3-1] << n_rem_1;
-	} else {
-	  memcpy($$.bits_ptr + n_bytes_1, $3.bits_ptr, n_bytes_3);
-	}
-        Free($3.bits_ptr);
-}
+	Bstring { $$ = $1; }
 ;
 
 HexstringValue:
-	Hstring
-{
-	$$ = $1;
-}
-	| HexstringValue ConcatOp Hstring
-{
-	$$.n_nibbles = $1.n_nibbles + $3.n_nibbles;
-        int n_bytes = ($$.n_nibbles + 1) / 2;
-	$$.nibbles_ptr = (unsigned char *)Realloc($1.nibbles_ptr, n_bytes);
-	int n_bytes_1 = ($1.n_nibbles + 1) / 2;
-	int n_bytes_3 = ($3.n_nibbles + 1) / 2;
-	if ($1.n_nibbles % 2) {
-	  for (int i=n_bytes_1; i<n_bytes; i++) {
-	    unsigned char S3_byte = $3.nibbles_ptr[i - n_bytes_1];
-	    $$.nibbles_ptr[i - 1] |= S3_byte << 4;
-	    $$.nibbles_ptr[i] = S3_byte >> 4;
-	  }
-	  if ($3.n_nibbles % 2)
-	    $$.nibbles_ptr[n_bytes - 1] |= $3.nibbles_ptr[n_bytes_3 - 1] << 4;
-	} else {
-	  memcpy($$.nibbles_ptr + n_bytes_1, $3.nibbles_ptr, n_bytes_3);
-	}
-	Free($3.nibbles_ptr);
-}
+	Hstring { $$ = $1; }
 ;
 
 OctetstringValue:
-	Ostring
-{
-	$$ = $1;
-}
-	| OctetstringValue ConcatOp Ostring
-{
-	$$.n_octets = $1.n_octets + $3.n_octets;
-	$$.octets_ptr = (unsigned char *)Realloc($1.octets_ptr, $$.n_octets);
-	memcpy($$.octets_ptr + $1.n_octets, $3.octets_ptr, $3.n_octets);
-	Free($3.octets_ptr);
-}
+	Ostring { $$ = $1; }
 ;
 
 UniversalCharstringValue:
-	Cstring seqUniversalCharstringFragment
-{
-	$$.n_uchars = $1.n_chars + $2.n_uchars;
-	$$.uchars_ptr = (universal_char*)
-		Malloc($$.n_uchars * sizeof(universal_char));
-	for (int i = 0; i < $1.n_chars; i++) {
-		$$.uchars_ptr[i].uc_group = 0;
-		$$.uchars_ptr[i].uc_plane = 0;
-		$$.uchars_ptr[i].uc_row = 0;
-		$$.uchars_ptr[i].uc_cell = $1.chars_ptr[i];
-	}
-	memcpy($$.uchars_ptr + $1.n_chars, $2.uchars_ptr,
-		$2.n_uchars * sizeof(universal_char));
-  $$.n_quads = $2.n_quads;
-  $$.quad_positions = (int*)Malloc($$.n_quads * sizeof(int));
-  for (int i = 0; i < $$.n_quads; i++) {
-    $$.quad_positions[i] = $2.quad_positions[i] + $1.n_chars;
-  }
-	Free($1.chars_ptr);
-	Free($2.uchars_ptr);
-  Free($2.quad_positions);
-}
-	| Quadruple
+  Quadruple
 {
 	$$.n_uchars = 1;
 	$$.uchars_ptr = (universal_char*)Malloc(sizeof(universal_char));
 	$$.uchars_ptr[0] = $1;
-  $$.n_quads = 1;
-  $$.quad_positions = (int*)Malloc(sizeof(int));
-  $$.quad_positions[0] = 0;
-}
-	| Quadruple seqUniversalCharstringFragment
-{
-	$$.n_uchars = $2.n_uchars + 1;
-	$$.uchars_ptr = (universal_char*)
-		Malloc($$.n_uchars * sizeof(universal_char));
-	$$.uchars_ptr[0] = $1;
-	memcpy($$.uchars_ptr + 1, $2.uchars_ptr,
-		$2.n_uchars * sizeof(universal_char));
-  $$.n_quads = $2.n_quads + 1;
-  $$.quad_positions = (int*)Malloc($$.n_quads * sizeof(int));
-  $$.quad_positions[0] = 0;
-  for (int i = 0; i < $2.n_quads; i++) {
-    $$.quad_positions[i + 1] = $2.quad_positions[i] + 1; 
-  }
-	Free($2.uchars_ptr);
-  Free($2.quad_positions);
-}
-;
-
-seqUniversalCharstringFragment:
-	ConcatOp UniversalCharstringFragment
-{
-	$$ = $2;
-}
-	| seqUniversalCharstringFragment ConcatOp UniversalCharstringFragment
-{
-	$$.n_uchars = $1.n_uchars + $3.n_uchars;
-	$$.uchars_ptr = (universal_char*)
-		Realloc($1.uchars_ptr, $$.n_uchars * sizeof(universal_char));
-	memcpy($$.uchars_ptr + $1.n_uchars, $3.uchars_ptr,
-		$3.n_uchars * sizeof(universal_char));
-  $$.n_quads = $1.n_quads + $3.n_quads;
-  $$.quad_positions = (int*)Realloc($1.quad_positions, $$.n_quads * sizeof(int));
-  for (int i = 0; i < $3.n_quads; i++) {
-    $$.quad_positions[$1.n_quads + i] = $3.quad_positions[i] + $1.n_uchars;
-  }
-	Free($3.uchars_ptr);
-  Free($3.quad_positions);
 }
 ;
 
 UniversalCharstringFragment:
-	Cstring
+	MPCstring
 {
 	$$.n_uchars = $1.n_chars;
 	$$.uchars_ptr = (universal_char*)
@@ -1011,8 +914,6 @@ UniversalCharstringFragment:
 		$$.uchars_ptr[i].uc_row = 0;
 		$$.uchars_ptr[i].uc_cell = $1.chars_ptr[i];
 	}
-  $$.n_quads = 0;
-  $$.quad_positions = 0;
 	Free($1.chars_ptr);
 }
 	| Quadruple
@@ -1020,51 +921,57 @@ UniversalCharstringFragment:
 	$$.n_uchars = 1;
 	$$.uchars_ptr = (universal_char*)Malloc(sizeof(universal_char));
 	$$.uchars_ptr[0] = $1;
-  $$.n_quads = 1;
-  $$.quad_positions = (int*)Malloc(sizeof(int));
-  $$.quad_positions[0] = 0;
 }
 ;
 
 Quadruple:
-	CharKeyword '(' IntegerValue ',' IntegerValue ',' IntegerValue ','
-	IntegerValue ')'
-{
-  if (*$3 < 0 || *$3 > 127) {
-    char *s = $3->as_string();
+	CharKeyword '(' ParameterExpression ',' ParameterExpression ','
+  ParameterExpression ','	ParameterExpression ')'
+{
+  $3->set_id(new Module_Param_CustomName(mcopystr("quadruple group")));
+  $5->set_id(new Module_Param_CustomName(mcopystr("quadruple plane")));
+  $7->set_id(new Module_Param_CustomName(mcopystr("quadruple row")));
+  $9->set_id(new Module_Param_CustomName(mcopystr("quadruple cell")));
+  INTEGER g, p, r, c;
+  g.set_param(*$3);
+  p.set_param(*$5);
+  r.set_param(*$7);
+  c.set_param(*$9);
+  if (g < 0 || g > 127) {
+    char *s = g.get_val().as_string();
     config_process_error_f("The first number of quadruple (group) must be "
       "within the range 0 .. 127 instead of %s.", s);
     Free(s);
-    $$.uc_group = *$3 < 0 ? 0 : 127;
+    $$.uc_group = g < 0 ? 0 : 127;
   } else {
-    $$.uc_group = $3->get_val();
+    $$.uc_group = g;
   }
-  if (*$5 < 0 || *$5 > 255) {
-    char *s = $5->as_string();
+  if (p < 0 || p > 255) {
+    char *s = p.get_val().as_string();
     config_process_error_f("The second number of quadruple (plane) must be "
       "within the range 0 .. 255 instead of %s.", s);
     Free(s);
-    $$.uc_plane = *$5 < 0 ? 0 : 255;
+    $$.uc_plane = p < 0 ? 0 : 255;
   } else {
-    $$.uc_plane = $5->get_val();
+    $$.uc_plane = p;
   }
-  if (*$7 < 0 || *$7 > 255) {
-    char *s = $7->as_string();
+  if (r < 0 || r > 255) {
+    char *s = r.get_val().as_string();
     config_process_error_f("The third number of quadruple (row) must be "
       "within the range 0 .. 255 instead of %s.", s);
     Free(s);
-    $$.uc_row = *$7 < 0 ? 0 : 255;
+    $$.uc_row = r < 0 ? 0 : 255;
   } else {
-    $$.uc_row = $7->get_val();
+    $$.uc_row = r;
   }
-  if (*$9 < 0 || *$9 > 255) {
-    char *s = $9->as_string();
+  if (c < 0 || c > 255) {
+    char *s = c.get_val().as_string();
     config_process_error_f("The fourth number of quadruple (cell) must be "
       "within the range 0 .. 255 instead of %s.", s);
     Free(s);
-    $$.uc_cell = *$9 < 0 ? 0 : 255;
+    $$.uc_cell = c < 0 ? 0 : 255;
   } else {
-    $$.uc_cell = $9->get_val();
+    $$.uc_cell = c;
   }
   delete $3;
   delete $5;
@@ -1073,28 +980,20 @@ Quadruple:
 }
 ;
 
-ConcatOp:
-	'&'
-;
-
+// character strings outside of the [MODULE_PARAMETERS] section
 StringValue:
 	Cstring
 {
     $$ = mcopystr($1.chars_ptr);
     Free($1.chars_ptr);
 }
-	| StringValue ConcatOp Cstring
+	| StringValue '&' Cstring
 {
     $$ = mputstr($1, $3.chars_ptr);
     Free($3.chars_ptr);
 }
 ;
 
-EnumeratedValue:
-	Identifier { $$ = $1; }
-	| ASN1LowerIdentifier { $$ = $1; }
-;
-
 CompoundValue:
 '{' '}'
   {
@@ -1112,7 +1011,7 @@ CompoundValue:
   {
     $$ = $2;
   }
-| '(' ParameterValue ',' TemplateItemList ')' /* at least 2 elements to avoid shift/reduce conflicts with IntegerValue and FloatValue rules */
+| '(' ParameterValue ',' TemplateItemList ')' /* at least 2 elements to avoid shift/reduce conflicts with the ParameterExpression rule */
   {
     $$ = new Module_Param_List_Template();
     $2->set_id(new Module_Param_Index($$->get_size(),false));
@@ -1246,16 +1145,19 @@ IndexItem:
 ;
 
 IndexItemIndex:
-	'[' IntegerValue ']'
+	'[' ParameterExpression ']'
 {
-        if (!$2->is_native()) {
-          config_process_error("bignum index."); // todo
-        }
-        if ($2->is_negative()) {
-          config_process_error("negative index."); // todo
-        }
-        $$ = $2->get_val();
-        delete $2;
+  $2->set_id(new Module_Param_CustomName(mcopystr("array index")));
+  INTEGER tmp;
+  tmp.set_param(*$2);
+  if (!tmp.get_val().is_native()) {
+    config_process_error("bignum index."); // todo
+  }
+  if (tmp.get_val().is_negative()) {
+    config_process_error("negative index."); // todo
+  }
+  $$ = tmp;
+  delete $2;
 }
 ;
 
diff --git a/core/gccversion.c b/core/gccversion.c
index ee87f5736..18cdfd942 100644
--- a/core/gccversion.c
+++ b/core/gccversion.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/license_gen.c b/core/license_gen.c
index c945a6c1e..2c0a20d11 100644
--- a/core/license_gen.c
+++ b/core/license_gen.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/core/simplify.pl b/core/simplify.pl
index 612f12c5c..e56384e61 100644
--- a/core/simplify.pl
+++ b/core/simplify.pl
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/core/ttcn3_profmerge.1 b/core/ttcn3_profmerge.1
new file mode 100644
index 000000000..f91b84121
--- /dev/null
+++ b/core/ttcn3_profmerge.1
@@ -0,0 +1,98 @@
+.TH ttcn3_profmerge 1 "August 2015" "Ericsson Telecom AB" "TTCN-3 Tools" 
+.SH NAME
+ttcn3_profmerge \- TTCN-3 profiler and code coverage merge tool
+.SH SYNOPSIS
+.B ttcn3_profmerge
+.RB "[ " \-pc
+.RB "] [ " \-o
+.I "file"
+.RB "] [ " \-s
+.IR "file" " ]"
+.RB "[ " \-f
+.IR "filter" " ]"
+.IR db_file1 " ["
+.IR db_file2 " ... ]"
+.br
+or
+.br
+.B ttcn3_profmerge
+.B \-v
+.SH DESCRIPTION
+This manual page is a quick reference for the TTCN-3 profmerge utility of
+the TTCN-3 Test Executor. The 
+.B ttcn3_profmerge
+utility, which can be found in 
+.I $TTCN3_DIR/bin,
+merges all input files (profiler databases) given in the command argument into a
+single output file. It can also generate profiler statistics from the merged
+database.
+.br
+Since there are two possible outputs, neither of them are written to the standard output.
+.br
+It is useful for test suites that are run on multiple Host Controllers (in parallel mode).
+.SH OPTIONS
+Available command line switches are:
+.TP 10
+.B \-p
+Discards profiler data from the merged database. All execution times will be set to zero in
+the output database file, and statistics related to execution times will not be generated (both
+profiler and code coverage data cannot be discarded, since there would be no data left).
+.TP
+.B \-c
+Discards code coverage data from the merged database. All execution counts will be set to zero in
+the output database file, and statistics related to execution counts will not be generated (both
+profiler and code coverage data cannot be discarded, since there would be no data left).
+.TP
+.BI \-o " file"
+Prints the output (merged) database to the specified
+.IR file \.
+At least one output file (this or the statistics file) must be set.
+.TP
+.BI \-s " file"
+Prints statistics for the merged database into the specified
+.IR file \.
+At least one output file (this or the output database file) must be set.
+.TP
+.BI \-f " filter"
+Specifies which statistics entries are generated. The
+.I filter
+is a hexadecimal number, the last 25 bits each correspond to the 25 entries
+in the statistics file (the least significant bit corresponds to the first entry,
+and so on). The filter is ignored if the statistics file is not set.
+.TP
+.B \-v
+Prints
+.I version
+and license key information and exits.
+.SH ENVIRONMENT VARIABLES
+.TP
+.SM
+TTCN3_DIR
+The installation directory where the uncompressed binary package of the
+TTCN-3 Test Executor can be found.
+.TP
+.SM
+TTCN3_LICENSE_FILE
+Points to the
+.I file
+.RB ( NB:
+.I not
+the directory) that contains the personalized license key for the
+current user or host.
+.SH BUGS
+None known at this time
+.LP
+.SH SEE ALSO
+The
+.B Programmer's Technical Reference for the TTCN-3
+.B Test Executor.
+.SH AUTHOR
+This manpage is written by Botond Baranyi, Ericsson Telecom AB
+.br
+Copyright (c) 2000-2015 Ericsson Telecom AB
+.br
+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
+.br
+http://www.eclipse.org/legal/epl-v10.html
diff --git a/core2/Basetype2.cc b/core2/Basetype2.cc
index 189fa743f..41a165dc3 100644
--- a/core2/Basetype2.cc
+++ b/core2/Basetype2.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -255,7 +255,8 @@ Record_Of_Type::Record_Of_Type(null_type /*other_value*/)
 }
 
 Record_Of_Type::Record_Of_Type(const Record_Of_Type& other_value)
-: Base_Type(other_value), val_ptr(NULL), err_descr(other_value.err_descr), refd_ind_ptr(NULL)
+: Base_Type(other_value), RefdIndexInterface(other_value)
+, val_ptr(NULL), err_descr(other_value.err_descr), refd_ind_ptr(NULL)
 {
   if (!other_value.is_bound())
     TTCN_error("Copying an unbound record of/set of value.");
@@ -2289,25 +2290,31 @@ void Record_Of_Type::set_param(Module_Param& param) {
   }
   
   param.basic_check(Module_Param::BC_VALUE|Module_Param::BC_LIST, is_set()?"set of value":"record of value");
+  
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  
   switch (param.get_operation_type()) {
   case Module_Param::OT_ASSIGN:
-    if (param.get_type()==Module_Param::MP_Value_List && param.get_size()==0) {
+    if (mp->get_type()==Module_Param::MP_Value_List && mp->get_size()==0) {
       set_val(NULL_VALUE);
       return;
     }
-    switch (param.get_type()) {
+    switch (mp->get_type()) {
     case Module_Param::MP_Value_List:
-      set_size(param.get_size());
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
+      set_size(mp->get_size());
+      for (size_t i=0; i<mp->get_size(); ++i) {
+        Module_Param* const curr = mp->get_elem(i);
         if (curr->get_type()!=Module_Param::MP_NotUsed) {
           get_at(i)->set_param(*curr);
         }
       }
       break;
     case Module_Param::MP_Indexed_List:
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const current = param.get_elem(i);
+      for (size_t i=0; i<mp->get_size(); ++i) {
+        Module_Param* const current = mp->get_elem(i);
         get_at(current->get_id()->get_index())->set_param(*current);
       }
       break;
@@ -2316,12 +2323,12 @@ void Record_Of_Type::set_param(Module_Param& param) {
     }
     break;
   case Module_Param::OT_CONCAT:
-    switch (param.get_type()) {
+    switch (mp->get_type()) {
     case Module_Param::MP_Value_List: {
       if (!is_bound()) set_val(NULL_VALUE);
       int start_idx = lengthof();
-      for (size_t i=0; i<param.get_size(); ++i) {
-        Module_Param* const curr = param.get_elem(i);
+      for (size_t i=0; i<mp->get_size(); ++i) {
+        Module_Param* const curr = mp->get_elem(i);
         if ((curr->get_type()!=Module_Param::MP_NotUsed)) {
           get_at(start_idx+(int)i)->set_param(*curr);
         }
@@ -2339,6 +2346,34 @@ void Record_Of_Type::set_param(Module_Param& param) {
   }
 }
 
+Module_Param* Record_Of_Type::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the elements, not to the whole record of
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] < '0' || param_field[0] > '9') {
+      TTCN_error("Unexpected record field name in module parameter reference, "
+        "expected a valid index for %s type `%s'",
+        is_set() ? "set of" : "record of", get_descriptor()->name);
+    }
+    int param_index = -1;
+    sscanf(param_field, "%d", &param_index);
+    return get_at(param_index)->get_param(param_name);
+  }
+  Vector<Module_Param*> values;
+  for (int i = 0; i < val_ptr->n_elements; ++i) {
+    values.push_back(val_ptr->value_elements[i]->get_param(param_name));
+  }
+  Module_Param_Value_List* mp = new Module_Param_Value_List();
+  mp->add_list_with_implicit_ids(&values);
+  values.clear();
+  return mp;
+}
+
 void Record_Of_Type::set_implicit_omit()
 {
   for (int i = 0; i < get_nof_elements(); ++i) {
@@ -2474,21 +2509,27 @@ void Record_Type::set_param(Module_Param& param) {
   }
 
   param.basic_check(Module_Param::BC_VALUE, is_set()?"set value":"record value");
-  switch (param.get_type()) {
+  
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  
+  switch (mp->get_type()) {
   case Module_Param::MP_Value_List:
-    if (get_count()<(int)param.get_size()) {
-      param.error("%s value of type %s has %d fields but list value has %d fields", is_set()?"Set":"Record", get_descriptor()->name, get_count(), (int)param.get_size());
+    if (get_count()<(int)mp->get_size()) {
+      param.error("%s value of type %s has %d fields but list value has %d fields", is_set()?"Set":"Record", get_descriptor()->name, get_count(), (int)mp->get_size());
     }
-    for (size_t i=0; i<param.get_size(); i++) {
-      Module_Param* mp = param.get_elem(i);
-      if (mp->get_type()!=Module_Param::MP_NotUsed) {
-        get_at((int)i)->set_param(*mp);
+    for (size_t i=0; i<mp->get_size(); i++) {
+      Module_Param* mp_elem = mp->get_elem(i);
+      if (mp_elem->get_type()!=Module_Param::MP_NotUsed) {
+        get_at((int)i)->set_param(*mp_elem);
       }
     }
     break;
   case Module_Param::MP_Assignment_List:
-    for (size_t i=0; i<param.get_size(); ++i) {
-      Module_Param* const current = param.get_elem(i);
+    for (size_t i=0; i<mp->get_size(); ++i) {
+      Module_Param* const current = mp->get_elem(i);
       bool found = false;
       for (int j=0; j<get_count(); ++j) {
         if (!strcmp(fld_name(j), current->get_id()->get_name())) {
@@ -2509,6 +2550,38 @@ void Record_Type::set_param(Module_Param& param) {
   }
 }
 
+Module_Param* Record_Type::get_param(Module_Param_Name& param_name) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  if (param_name.next_name()) {
+    // Haven't reached the end of the module parameter name
+    // => the name refers to one of the fields, not to the whole record
+    char* param_field = param_name.get_current_name();
+    if (param_field[0] >= '0' && param_field[0] <= '9') {
+      TTCN_error("Unexpected array index in module parameter reference, "
+        "expected a valid field name for %s type `%s'",
+        is_set() ? "set" : "record", get_descriptor()->name);
+    }
+    int field_cnt = get_count();
+    for (int field_idx = 0; field_idx < field_cnt; field_idx++) {
+      if (strcmp(fld_name(field_idx), param_field) == 0) {
+        return get_at(field_idx)->get_param(param_name);
+      }
+    }
+    TTCN_error("Field `%s' not found in %s type `%s'",
+      param_field, is_set() ? "set" : "record", get_descriptor()->name);
+  }
+  Module_Param_Assignment_List* mp = new Module_Param_Assignment_List();
+  for (int i = 0; i < get_count(); ++i) {
+    Module_Param* mp_field = get_at(i)->get_param(param_name);
+    mp_field->set_id(new Module_Param_FieldName(mcopystr(fld_name(i))));
+    mp->add_elem(mp_field);
+  }
+  return mp;
+}
+
 void Record_Type::set_implicit_omit()
 {
   int field_cnt = get_count();
@@ -5167,98 +5240,79 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
         get_at(oi)->set_to_omit();
         ++n_optionals;
       }
+
       Record_Of_Type *use_order = static_cast<Record_Of_Type*>(get_at(uo_index));
       // Initialize the use_order field to empty. Let it grow on demand.
       // (setting it to the minimum acceptable size may leave unbound elements
       // if the XML was incomplete).
       use_order->set_size(0);
 
-      Record_Type *jumbled = this; // the record affected by USE_ORDER
-      int begin = first_nonattr;
-      int end   = field_cnt; // "one past"
-      if (p_td.xer_bits & USE_NIL) {
-        Base_Type *last_optional = get_at(field_cnt-1);
-        if (!usenil_attribute) { // exer known true
-          last_optional->set_to_present();
-          jumbled = static_cast<Record_Type*>(last_optional->get_opt_value());
-          // We will operate on the members of last_optional,
-          // effectively bypassing last_optional->XER_decode() itself.
-          begin = 0;
-          end   = jumbled->get_count();
-          ec_1.set_msg("%s': ", fld_name(field_cnt-1));
-        }
-      }
-      if (num_attributes > 0
-        && first_nonattr != field_cnt
-        && i == first_nonattr - 1) { // exer known true
-        // If there were attributes and their processing just finished,
-        // the reader is positioned on the start tag of the record.
-        // Move ahead, unless there are no non-attribute fields.
-        reader.Read();
-      }
-      // Then, the non-attributes
-
-      // The index runs over the members affected by USE-ORDER.
-      // This is [first_nonattr,field_cnt) unless USE-NIL is involved,
-      // in which case it's [0,optional_sequence::field_cnt)
-      int *seen = new int[end-begin];
-      int num_seen = 0;
-      int last_any_elem = begin - 1;
-      // The index of the latest embedded value can change outside of this function
-      // (if the field is a untagged record of), in this case the next value should
-      // be ignored, as it's already been handled by the record of
-      int last_embval_index = 0;
-      for (i = begin; i < end; i++) {
-        for (success = reader.Ok(); success == 1; success = reader.Read()) {
-          type = reader.NodeType();
-          if (0 != emb_val && reader.NodeType()==XML_READER_TYPE_TEXT) {
-            UNIVERSAL_CHARSTRING emb_ustr((const char*)reader.Value());
-            emb_val->embval_array->get_at(emb_val->embval_index)->set_value(&emb_ustr);
+      // Nothing to order if there are no child elements
+      if (!tag_closed) {
+        Record_Type *jumbled = this; // the record affected by USE_ORDER
+        int begin = first_nonattr;
+        int end   = field_cnt; // "one past"
+        if (p_td.xer_bits & USE_NIL) {
+          Base_Type *last_optional = get_at(field_cnt-1);
+          if (!usenil_attribute) { // exer known true
+            last_optional->set_to_present();
+            jumbled = static_cast<Record_Type*>(last_optional->get_opt_value());
+            // We will operate on the members of last_optional,
+            // effectively bypassing last_optional->XER_decode() itself.
+            begin = 0;
+            end   = jumbled->get_count();
+            ec_1.set_msg("%s': ", fld_name(field_cnt-1));
           }
-          // The non-attribute components must not be UNTAGGED
-          if (type == XML_READER_TYPE_ELEMENT) break;
-          // else if (type==XML_READER_TYPE_END_ELEMENT) panic?
         }
-        if (0 != emb_val) {
-          if (last_embval_index == emb_val->embval_index) {
-            ++emb_val->embval_index;
-          }
-          last_embval_index = emb_val->embval_index;
+        if (num_attributes > 0
+          && first_nonattr != field_cnt
+          && i == first_nonattr - 1) { // exer known true
+          // If there were attributes and their processing just finished,
+          // the reader is positioned on the start tag of the record.
+          // Move ahead, unless there are no non-attribute fields.
+          reader.Read();
         }
-        if (success != 1) break;
-        const char *name = (const char *)reader.LocalName();
-        boolean field_name_found = false;
-        // Find out which member it is.
-        // FIXME some hashing should be implemented
-        for (int k = begin; k < end; k++) {
-          if (!(jumbled->xer_descr(k)->xer_bits & ANY_ELEMENT) &&
-              check_name(name, *jumbled->xer_descr(k), 1)) {
-            ec_1.set_msg("%s': ", jumbled->fld_name(k));
-
-            // Check for the same field being decoded twice.
-            // We can't use the field's is_bound()/is_present(),
-            // because the field may be bound on input, e.g. for
-            // prototype(fast) or prototype(backtrack).
-            int in_dex = k - begin;
-            for (int o = 0; o < num_seen ;++o) {
-              if (in_dex == seen[o]) TTCN_EncDec_ErrorContext::error(
-                TTCN_EncDec::ET_INVAL_MSG, "Duplicate element");
+        // Then, the non-attributes
+
+        // The index runs over the members affected by USE-ORDER.
+        // This is [first_nonattr,field_cnt) unless USE-NIL is involved,
+        // in which case it's [0,optional_sequence::field_cnt)
+        int *seen = new int[end-begin];
+        int num_seen = 0;
+        int last_any_elem = begin - 1;
+        // The index of the latest embedded value can change outside of this function
+        // (if the field is an untagged record of), in this case the next value should
+        // be ignored, as it's already been handled by the record of
+        int last_embval_index = 0;
+        bool early_exit = false;
+        for (i = begin; i < end; i++) {
+          for (success = reader.Ok(); success == 1; success = reader.Read()) {
+            type = reader.NodeType();
+            if (0 != emb_val && reader.NodeType()==XML_READER_TYPE_TEXT) {
+              UNIVERSAL_CHARSTRING emb_ustr((const char*)reader.Value());
+              emb_val->embval_array->get_at(emb_val->embval_index)->set_value(&emb_ustr);
+            }
+            // The non-attribute components must not be UNTAGGED
+            if (type == XML_READER_TYPE_ELEMENT) break;
+            if (type == XML_READER_TYPE_END_ELEMENT) {
+              early_exit = true;
+              break;
             }
-            seen[num_seen++] = in_dex;
-            // Set the next use-order member.
-            // Non-const get_at creates the object in the record-of.
-            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);
-            field_name_found = true;
-            break;
           }
-        }
-        if (!field_name_found) {
-          // Check the anyElement fields
-          for (int k = last_any_elem + 1; k < end; k++) {
-            if (jumbled->xer_descr(k)->xer_bits & ANY_ELEMENT) {
+          if (0 != emb_val) {
+            if (last_embval_index == emb_val->embval_index) {
+              ++emb_val->embval_index;
+            }
+            last_embval_index = emb_val->embval_index;
+          }
+          if (success != 1 || early_exit) break;
+          const char *name = (const char *)reader.LocalName();
+          bool field_name_found = false;
+          // Find out which member it is.
+          // FIXME some hashing should be implemented
+          for (int k = begin; k < end; k++) {
+            if (!(jumbled->xer_descr(k)->xer_bits & ANY_ELEMENT) &&
+                check_name(name, *jumbled->xer_descr(k), 1)) {
               ec_1.set_msg("%s': ", jumbled->fld_name(k));
 
               // Check for the same field being decoded twice.
@@ -5277,44 +5331,77 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
               ->from_int(in_dex);
               Base_Type *b = jumbled->get_at(k);
               b->XER_decode(*jumbled->xer_descr(k), reader, flavor, emb_val);
-              last_any_elem = k;
+              field_name_found = true;
               break;
             }
           }
+          if (!field_name_found) {
+            // Check the anyElement fields
+            for (int k = last_any_elem + 1; k < end; k++) {
+              if (jumbled->xer_descr(k)->xer_bits & ANY_ELEMENT) {
+                ec_1.set_msg("%s': ", jumbled->fld_name(k));
+
+                // Check for the same field being decoded twice.
+                // We can't use the field's is_bound()/is_present(),
+                // because the field may be bound on input, e.g. for
+                // prototype(fast) or prototype(backtrack).
+                int in_dex = k - begin;
+                for (int o = 0; o < num_seen ;++o) {
+                  if (in_dex == seen[o]) TTCN_EncDec_ErrorContext::error(
+                    TTCN_EncDec::ET_INVAL_MSG, "Duplicate element");
+                }
+                seen[num_seen++] = in_dex;
+                // Set the next use-order member.
+                // Non-const get_at creates the object in the record-of.
+                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);
+                last_any_elem = k;
+                field_name_found = true;
+                break;
+              }
+            }
+          }
+          if (!field_name_found) {
+            TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INVAL_MSG,
+              "Bad XML tag '%s' instead of a valid field", name);
+            break;
+          }
+        } // next field
+        if (0 != emb_val) {
+          if (reader.NodeType()==XML_READER_TYPE_TEXT) {
+            UNIVERSAL_CHARSTRING emb_ustr((const char*)reader.Value());
+            emb_val->embval_array->get_at(emb_val->embval_index)->set_value(&emb_ustr);
+          }
+          if (last_embval_index == emb_val->embval_index) {
+            ++emb_val->embval_index;
+          }
         }
-      } // next field
-      if (0 != emb_val) {
-        if (reader.NodeType()==XML_READER_TYPE_TEXT) {
-          UNIVERSAL_CHARSTRING emb_ustr((const char*)reader.Value());
-          emb_val->embval_array->get_at(emb_val->embval_index)->set_value(&emb_ustr);
-        }
-        if (last_embval_index == emb_val->embval_index) {
-          ++emb_val->embval_index;
-        }
-      }
-      delete [] seen;
-      ec_1.set_msg(" "); // no active component
-      ec_0.set_msg(" ");
-
-      // Check that we collected the required number of children
-      int num_collected = use_order->size_of();
-      if (p_td.xer_bits & USE_NIL) {
-        int expected = usenil_attribute ? 0 : jumbled->get_count();
-        if (num_collected != expected) {
-          TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
-            "Incorrect number of fields %d, expected %d",
-            num_collected, expected);
+        delete [] seen;
+        ec_1.set_msg(" "); // no active component
+        ec_0.set_msg(" ");
+
+        // Check that we collected the required number of children
+        int num_collected = use_order->size_of();
+        if (p_td.xer_bits & USE_NIL) {
+          int expected = usenil_attribute ? 0 : jumbled->get_count();
+          if (num_collected != expected) {
+            TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
+              "Incorrect number of fields %d, expected %d",
+              num_collected, expected);
+          }
         }
-      }
-      else {
-        if (num_collected < field_cnt - first_nonattr - n_optionals
-          ||num_collected > field_cnt - first_nonattr) {
-          TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
-            "Wrong number of fields! size = %d, expected %d..%d",
-            use_order->size_of(), field_cnt - first_nonattr - n_optionals,
-            field_cnt - first_nonattr);
+        else {
+          if (num_collected < field_cnt - first_nonattr - n_optionals
+            ||num_collected > field_cnt - first_nonattr) {
+            TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
+              "Wrong number of fields! size = %d, expected %d..%d",
+              use_order->size_of(), field_cnt - first_nonattr - n_optionals,
+              field_cnt - first_nonattr);
+          }
         }
-      }
+      } // not empty element
     }
     else { // not USE-ORDER, simpler code      
       if (usenil_attribute) {
@@ -5391,7 +5478,15 @@ int Record_Type::XER_decode(const XERdescriptor_t& p_td, XmlReaderWrap& reader,
     } // if embed-values
 
   } // if use-qname
-
+  
+  // Check if every non-optional field has been set
+  for (i = 0; i < field_cnt; ++i) {
+    if (!get_at(i)->is_optional() && !get_at(i)->is_bound()) {
+      TTCN_EncDec_ErrorContext::error(TTCN_EncDec::ET_INCOMPL_MSG,
+        "No data found for non-optional field '%s'", fld_name(i));
+    }
+  }
+  
   if (own_tag) {
     // We had our start tag. Then our fields did their thing.
     // Now we expect the end tag. And it better be our end tag!
@@ -5450,14 +5545,22 @@ int Record_Type::JSON_encode(const TTCN_Typedescriptor_t&, JSON_Tokenizer& p_tok
   
   int field_count = get_count();
   for(int i = 0; i < field_count; ++i) {
+    boolean metainfo_unbound = NULL != fld_descr(i)->json && fld_descr(i)->json->metainfo_unbound;
     if ((NULL != fld_descr(i)->json && fld_descr(i)->json->omit_as_null) || 
-        !get_at(i)->is_optional() || get_at(i)->is_present()) {
-      if (NULL != fld_descr(i)->json && NULL != fld_descr(i)->json->alias) {
-        enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, fld_descr(i)->json->alias);
-      } else {
-        enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, fld_name(i));
+        get_at(i)->is_present() || metainfo_unbound) {
+      const char* field_name = (NULL != fld_descr(i)->json && NULL != fld_descr(i)->json->alias) ?
+        fld_descr(i)->json->alias : fld_name(i);
+      enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, field_name);
+      if (metainfo_unbound && !get_at(i)->is_bound()) {
+        enc_len += p_tok.put_next_token(JSON_TOKEN_LITERAL_NULL);
+        char* metainfo_str = mprintf("metainfo %s", field_name);
+        enc_len += p_tok.put_next_token(JSON_TOKEN_NAME, metainfo_str);
+        Free(metainfo_str);
+        enc_len += p_tok.put_next_token(JSON_TOKEN_STRING, "\"unbound\"");
+      }
+      else {
+        enc_len += get_at(i)->JSON_encode(*fld_descr(i), p_tok);
       }
-      enc_len += get_at(i)->JSON_encode(*fld_descr(i), p_tok);
     }
   }
   
@@ -5480,6 +5583,13 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
   
   const int field_count = get_count();
   
+  // initialize meta info states
+  int* metainfo = new int[field_count];
+  for (int i = 0; i < field_count; ++i) {
+    metainfo[i] = (NULL != fld_descr(i)->json && fld_descr(i)->json->metainfo_unbound) ?
+      JSON_METAINFO_NONE : JSON_METAINFO_NOT_APPLICABLE;
+  }
+  
   while (true) {
     // Read name - value token pairs until we reach some other token
     char* name = 0;
@@ -5496,6 +5606,14 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
       break;
     }
     else {
+      // check for meta info
+      boolean is_metainfo = FALSE;
+      if (name_len > 9 && 0 == strncmp(name, "metainfo ", 9)) {
+        name += 9;
+        name_len -= 9;
+        is_metainfo = TRUE;
+      }
+      
       // check field name
       int field_idx;
       for (field_idx = 0; field_idx < field_count; ++field_idx) {
@@ -5513,7 +5631,8 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
       if (field_count == field_idx) {
         // invalid field name
         char* name2 = mcopystrn(name, name_len);
-        JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_INVALID_NAME_ERROR, name2);
+        JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, is_metainfo ?
+          JSON_DEC_METAINFO_NAME_ERROR : JSON_DEC_INVALID_NAME_ERROR, name2);
         // if this is set to a warning, skip the value of the field
         dec_len += p_tok.get_next_token(&token, NULL, NULL);
         if (JSON_TOKEN_NUMBER != token && JSON_TOKEN_STRING != token &&
@@ -5527,14 +5646,53 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
         continue;
       }
       
-      int ret_val = get_at(field_idx)->JSON_decode(*fld_descr(field_idx), p_tok, p_silent);
-      if (0 > ret_val) {
-        if (JSON_ERROR_INVALID_TOKEN) {
-          JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_FIELD_TOKEN_ERROR, fld_name(field_idx));
+      if (is_metainfo) {
+        if (JSON_METAINFO_NOT_APPLICABLE != metainfo[field_idx]) {
+          // check meta info
+          char* info_value = 0;
+          size_t info_len = 0;
+          dec_len += p_tok.get_next_token(&token, &info_value, &info_len);
+          if (JSON_TOKEN_STRING == token && 9 == info_len &&
+              0 == strncmp(info_value, "\"unbound\"", 9)) {
+            metainfo[field_idx] = JSON_METAINFO_UNBOUND;
+          }
+          else {
+            JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_METAINFO_VALUE_ERROR,
+              fld_name(field_idx));
+            return JSON_ERROR_FATAL;
+          }
+        }
+        else {
+          JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_METAINFO_NOT_APPLICABLE,
+            fld_name(field_idx));
+          return JSON_ERROR_FATAL;
         }
-        return JSON_ERROR_FATAL;
       }
-      dec_len += ret_val;
+      else {
+        buf_pos = p_tok.get_buf_pos();
+        int ret_val = get_at(field_idx)->JSON_decode(*fld_descr(field_idx), p_tok, p_silent);
+        if (0 > ret_val) {
+          if (JSON_ERROR_INVALID_TOKEN == ret_val) {
+            // undo the last action on the buffer, check if the invalid token was a null token 
+            p_tok.set_buf_pos(buf_pos);
+            p_tok.get_next_token(&token, NULL, NULL);
+            if (JSON_TOKEN_LITERAL_NULL == token) {
+              if (JSON_METAINFO_NONE == metainfo[field_idx]) {
+                // delay reporting an error for now, there might be meta info later
+                metainfo[field_idx] = JSON_METAINFO_NEEDED;
+                continue;
+              }
+              else if (JSON_METAINFO_UNBOUND == metainfo[field_idx]) {
+                // meta info already found
+                continue;
+              }
+            }
+            JSON_ERROR(TTCN_EncDec::ET_INVAL_MSG, JSON_DEC_FIELD_TOKEN_ERROR, fld_name(field_idx));
+          }
+          return JSON_ERROR_FATAL;
+        }
+        dec_len += ret_val;
+      }
     }
   }
   
@@ -5544,10 +5702,17 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
     return JSON_ERROR_FATAL;
   }
   
-  // Check if every field has been set
+  // Check if every field has been set and handle meta info
   for (int field_idx = 0; field_idx < field_count; ++field_idx) {
     Base_Type* field = get_at(field_idx);
-    if (!field->is_bound()) {
+    if (JSON_METAINFO_UNBOUND == metainfo[field_idx]) {
+      field->clean_up();
+    }
+    else if (JSON_METAINFO_NEEDED == metainfo[field_idx]) {
+      // 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()) {
       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);
       }
@@ -5560,6 +5725,8 @@ int Record_Type::JSON_decode(const TTCN_Typedescriptor_t& p_td, JSON_Tokenizer&
     }
   }
   
+  delete metainfo;
+  
   return dec_len;
 }
 
@@ -5593,12 +5760,24 @@ void Empty_Record_Type::log() const
 
 void Empty_Record_Type::set_param(Module_Param& param) {
   param.basic_check(Module_Param::BC_VALUE, "empty record/set value (i.e. { })");
-  if (param.get_type()!=Module_Param::MP_Value_List || param.get_size()>0) {
+  Module_Param_Ptr mp = &param;
+  if (param.get_type() == Module_Param::MP_Reference) {
+    mp = param.get_referenced_param();
+  }
+  if (mp->get_type()!=Module_Param::MP_Value_List || mp->get_size()>0) {
     param.type_error("empty record/set value (i.e. { })", get_descriptor()->name);
   }
   bound_flag = TRUE;
 }
 
+Module_Param* Empty_Record_Type::get_param(Module_Param_Name& /* param_name */) const
+{
+  if (!is_bound()) {
+    return new Module_Param_Unbound();
+  }
+  return new Module_Param_Value_List();
+}
+
 void Empty_Record_Type::encode_text(Text_Buf& /*text_buf*/) const
 {
   if (!bound_flag)
diff --git a/core2/Makefile b/core2/Makefile
index a597ae23a..2444bcdf8 100644
--- a/core2/Makefile
+++ b/core2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/doc/parallelarch/Makefile b/doc/parallelarch/Makefile
index e7f356851..93c3b0a92 100644
--- a/doc/parallelarch/Makefile
+++ b/doc/parallelarch/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/doc/parallelarch/state_mach_conn_endpoint.dot b/doc/parallelarch/state_mach_conn_endpoint.dot
index a5fdf6001..564d40680 100644
--- a/doc/parallelarch/state_mach_conn_endpoint.dot
+++ b/doc/parallelarch/state_mach_conn_endpoint.dot
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/doc/parallelarch/state_mach_conn_mc.dot b/doc/parallelarch/state_mach_conn_mc.dot
index 2d6dde040..68dc9def7 100644
--- a/doc/parallelarch/state_mach_conn_mc.dot
+++ b/doc/parallelarch/state_mach_conn_mc.dot
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/doc/parallelarch/state_mach_hc_mc.dot b/doc/parallelarch/state_mach_hc_mc.dot
index 08f0e44c4..4d9f199c5 100644
--- a/doc/parallelarch/state_mach_hc_mc.dot
+++ b/doc/parallelarch/state_mach_hc_mc.dot
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/doc/parallelarch/state_mach_mapping_mc.dot b/doc/parallelarch/state_mach_mapping_mc.dot
index ad8e59102..5c3cfb448 100644
--- a/doc/parallelarch/state_mach_mapping_mc.dot
+++ b/doc/parallelarch/state_mach_mapping_mc.dot
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/doc/parallelarch/state_mach_mc.dot b/doc/parallelarch/state_mach_mc.dot
index 1622650ca..99c06bd0e 100644
--- a/doc/parallelarch/state_mach_mc.dot
+++ b/doc/parallelarch/state_mach_mc.dot
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/doc/parallelarch/state_mach_ptc_mc.dot b/doc/parallelarch/state_mach_ptc_mc.dot
index 65585c6a9..0a7a21d77 100644
--- a/doc/parallelarch/state_mach_ptc_mc.dot
+++ b/doc/parallelarch/state_mach_ptc_mc.dot
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/etc/Makefile b/etc/Makefile
index 68ea35628..fffb344bf 100644
--- a/etc/Makefile
+++ b/etc/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/TXDSample.xml b/etc/TXDSample.xml
index dc866a4d3..1068532e9 100644
--- a/etc/TXDSample.xml
+++ b/etc/TXDSample.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-  Copyright (c) 2000-2014 Ericsson Telecom AB
+  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
diff --git a/etc/autotest/freshbuild.sh b/etc/autotest/freshbuild.sh
index 774764a1a..7033d8c75 100755
--- a/etc/autotest/freshbuild.sh
+++ b/etc/autotest/freshbuild.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/autotest/mountall.sh b/etc/autotest/mountall.sh
index 22692fe7f..663edd451 100755
--- a/etc/autotest/mountall.sh
+++ b/etc/autotest/mountall.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/autotest/product_handler.py b/etc/autotest/product_handler.py
index 60af9e11e..fd1ca579a 100755
--- a/etc/autotest/product_handler.py
+++ b/etc/autotest/product_handler.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/autotest/titan_builder.py b/etc/autotest/titan_builder.py
index b567e2256..ad371a230 100755
--- a/etc/autotest/titan_builder.py
+++ b/etc/autotest/titan_builder.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/autotest/titan_builder.sh b/etc/autotest/titan_builder.sh
index eab3d4ff8..f0510df4a 100755
--- a/etc/autotest/titan_builder.sh
+++ b/etc/autotest/titan_builder.sh
@@ -1,6 +1,6 @@
 #!/bin/bash -x
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/autotest/titan_builder_cfg.py b/etc/autotest/titan_builder_cfg.py
index 8c8bcefec..907045893 100755
--- a/etc/autotest/titan_builder_cfg.py
+++ b/etc/autotest/titan_builder_cfg.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/autotest/titan_publisher.py b/etc/autotest/titan_publisher.py
index e4515b7e1..2dcfb51a7 100755
--- a/etc/autotest/titan_publisher.py
+++ b/etc/autotest/titan_publisher.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/howto/pqb_stats_howto.txt b/etc/howto/pqb_stats_howto.txt
index 7f5645b18..fb035bfba 100755
--- a/etc/howto/pqb_stats_howto.txt
+++ b/etc/howto/pqb_stats_howto.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/howto/titan_release_howto.txt b/etc/howto/titan_release_howto.txt
index 1308de9bb..d361ef8d7 100755
--- a/etc/howto/titan_release_howto.txt
+++ b/etc/howto/titan_release_howto.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/scripts/cfg_msg_maker.py b/etc/scripts/cfg_msg_maker.py
index cae6bf1ea..907937d41 100644
--- a/etc/scripts/cfg_msg_maker.py
+++ b/etc/scripts/cfg_msg_maker.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/scripts/stacklogger.pl b/etc/scripts/stacklogger.pl
index 4c9178436..d7d12fe35 100644
--- a/etc/scripts/stacklogger.pl
+++ b/etc/scripts/stacklogger.pl
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/scripts/tpd_graph_xml2dot.py b/etc/scripts/tpd_graph_xml2dot.py
index 6ba8736d8..6003bbc8f 100644
--- a/etc/scripts/tpd_graph_xml2dot.py
+++ b/etc/scripts/tpd_graph_xml2dot.py
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/scripts/ttcn3_archive.pl b/etc/scripts/ttcn3_archive.pl
index 058f5e34f..2c5f0b86a 100644
--- a/etc/scripts/ttcn3_archive.pl
+++ b/etc/scripts/ttcn3_archive.pl
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/solaris/build.sh b/etc/solaris/build.sh
index 33edafe5e..8de9dc510 100755
--- a/etc/solaris/build.sh
+++ b/etc/solaris/build.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/solaris/get.sh b/etc/solaris/get.sh
index b36952e7b..8ffdfdb98 100755
--- a/etc/solaris/get.sh
+++ b/etc/solaris/get.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/solaris/path.sh b/etc/solaris/path.sh
index 4d15c4b6f..6600e00df 100755
--- a/etc/solaris/path.sh
+++ b/etc/solaris/path.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/solaris/titan.sh b/etc/solaris/titan.sh
index 7f61f7582..31c996ee9 100755
--- a/etc/solaris/titan.sh
+++ b/etc/solaris/titan.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/etc/xsd/Junit.xsd b/etc/xsd/Junit.xsd
index 8c31d75ab..028ed8e9b 100644
--- a/etc/xsd/Junit.xsd
+++ b/etc/xsd/Junit.xsd
@@ -2,7 +2,7 @@
 <!--
 XML Schema for JunitLogger plugin
 
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/etc/xsd/TPD.xsd b/etc/xsd/TPD.xsd
index d56c8e15f..7d952d119 100644
--- a/etc/xsd/TPD.xsd
+++ b/etc/xsd/TPD.xsd
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
-XML Schema for JunitLogger plugin
+XML Schema for TITAN_Project_File_Information
 
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -104,12 +104,14 @@ XML Schema for JunitLogger plugin
                     <xs:element name="addSourceLineInfo" minOccurs="0" maxOccurs="1" type="xs:boolean" />
                     <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="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" />
                     <xs:element name="CxxCompiler" minOccurs="0" maxOccurs="1" type="xs:normalizedString" />
                     <xs:element name="optimizationLevel" minOccurs="0" maxOccurs="1" type="xs:normalizedString" />
-                    <xs:element name="otherOptimizationFlags" minOccurs="0" maxOccurs="1" type="xs:string" />	
+                    <xs:element name="otherOptimizationFlags" minOccurs="0" maxOccurs="1" type="xs:string" />
+                    <xs:element name="profiledFileList" minOccurs="0" maxOccurs="1" type="ResourceType" />
 
                     <xs:element name="SolarisSpecificLibraries" minOccurs="0" maxOccurs="1">
                       <xs:complexType>
@@ -168,6 +170,8 @@ XML Schema for JunitLogger plugin
                       </xs:complexType>
                     </xs:element>
                     <xs:element name="disablePredefinedExternalFolder" minOccurs="0" maxOccurs="1" type="xs:boolean" />
+                    <xs:element name="useGoldLinker" minOccurs="0" maxOccurs="1" type="xs:boolean" />
+                    <xs:element name="freeTextLinkerOptions" minOccurs="0" maxOccurs="1" type="xs:normalizedString" /> 
                     <xs:element name="buildLevel" minOccurs="0" maxOccurs="1" type="xs:string" />
                     <xs:element name="ProjectSpecificRulesGenerator" minOccurs="0" maxOccurs="1">
                       <xs:complexType>
diff --git a/function_test/BER_EncDec/BER_EncDec_TD.fast_script b/function_test/BER_EncDec/BER_EncDec_TD.fast_script
index 49b8a3e8d..cff9a7cd4 100644
--- a/function_test/BER_EncDec/BER_EncDec_TD.fast_script
+++ b/function_test/BER_EncDec/BER_EncDec_TD.fast_script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/BER_EncDec/BER_EncDec_TD.script b/function_test/BER_EncDec/BER_EncDec_TD.script
index 271cbb94d..53ac0e0af 100644
--- a/function_test/BER_EncDec/BER_EncDec_TD.script
+++ b/function_test/BER_EncDec/BER_EncDec_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/BER_EncDec/Makefile b/function_test/BER_EncDec/Makefile
index d8097b7dd..e3745f7be 100644
--- a/function_test/BER_EncDec/Makefile
+++ b/function_test/BER_EncDec/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -23,6 +23,10 @@
 # Set these variables...
 #
 
+TOP := ../../
+include   $(TOP)/Makefile.cfg
+
+
 # The path of your TTCN-3 Test Executor installation:
 # Uncomment this line to override the environment variable.
 # TTCN3_DIR =
@@ -35,7 +39,6 @@ endif
 # Your C++ compiler:
 CXX = g++
 
-XMLDIR = /mnt/TTCN/Tools/libxml2-2.7.1
 # Flags for the C++ preprocessor (and makedepend as well):
 CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
 ifdef RT2
@@ -95,6 +98,7 @@ OBJECTS = Temp.o TempA.o
 TARGET = Temp
 
 ifdef COVERAGE
+CPPFLAGS += -fprofile-arcs -ftest-coverage -g
 CXXFLAGS += -fprofile-arcs -ftest-coverage -g
 LDFLAGS += -fprofile-arcs -ftest-coverage -g -lgcov
 endif
diff --git a/function_test/BER_EncDec/Temp.cfg b/function_test/BER_EncDec/Temp.cfg
index e58216eb8..1cde7caf3 100644
--- a/function_test/BER_EncDec/Temp.cfg
+++ b/function_test/BER_EncDec/Temp.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Config_Parser/Logging_1_TD.script b/function_test/Config_Parser/Logging_1_TD.script
index e3a6a6c07..fbbef50a1 100755
--- a/function_test/Config_Parser/Logging_1_TD.script
+++ b/function_test/Config_Parser/Logging_1_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
@@ -1575,71 +1575,74 @@ tsp_union := ENUM_1
 Temp.control
 <END_MODULE>
 
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_integer'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_float'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_boolean'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_objid'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_verdict'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_bitstring'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_hexstring'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_octetstring'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_charstring'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_universal_charstring'
 <END_RESULT>
 <RESULT COUNT 28>
 (?im)Error while setting parameter field 'tsp_enumerated'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_record'
 <END_RESULT>
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_record.nonexistent1'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_record_of'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_set'
 <END_RESULT>
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_set.nonexistent1'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_set_of'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_anytype'
 <END_RESULT>
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_anytype.field3'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_union'
 <END_RESULT>
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_union.field3'
 <END_RESULT>
 <RESULT COUNT 1>
-(?im)Test execution summary: 0 test case was executed. Overall verdict: none
+(?im)Test execution summary: 0 test case was executed. Overall verdict: error
+<END_RESULT>
+<RESULT COUNT 16>
+Dynamic test case error: Referenced module parameter cannot be found.
 <END_RESULT>
 <RESULT COUNT 1>
 
@@ -1797,7 +1800,7 @@ tsp_anytype &= {integer := 3}
 [EXECUTE]
 Temp.control
 <END_MODULE>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while concatenating parameter field 'tsp_ROI'
 <END_RESULT>
 <RESULT COUNT 4>
@@ -1809,7 +1812,7 @@ Temp.control
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_ROROI\[0\]'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while concatenating parameter field 'tsp_SOI'
 <END_RESULT>
 <RESULT COUNT 4>
@@ -1863,6 +1866,9 @@ Temp.control
 <RESULT COUNT 4>
 (?im)Error while concatenating parameter field 'tsp_anytype'
 <END_RESULT>
+<RESULT COUNT 2>
+Dynamic test case error: Referenced module parameter cannot be found.
+<END_RESULT>
 
 <END_TC>
 
@@ -2208,67 +2214,70 @@ tsp_union := ENUM_1
 Temp.control
 <END_MODULE>
 
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_integer'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_float'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_boolean'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_objid'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_verdict'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_bitstring'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_hexstring'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_octetstring'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_charstring'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_universal_charstring'
 <END_RESULT>
 <RESULT COUNT 28>
 (?im)Error while setting parameter field 'tsp_enumerated'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_record'
 <END_RESULT>
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_record.nonexistent1'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_record_of'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while setting parameter field 'tsp_set'
 <END_RESULT>
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_set.nonexistent1'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_set_of'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_anytype'
 <END_RESULT>
-<RESULT COUNT 26>
+<RESULT COUNT 24>
 (?im)Error while setting parameter field 'tsp_union'
 <END_RESULT>
 
 <RESULT COUNT 1>
 (?im)There were errors during configuring HCs.
 <END_RESULT>
+<RESULT COUNT 16>
+Dynamic test case error: Referenced module parameter cannot be found.
+<END_RESULT>
 <RESULT COUNT 1>
 
 <END_RESULT>
@@ -2425,7 +2434,7 @@ tsp_anytype &= {integer := 3}
 [EXECUTE]
 Temp.control
 <END_MODULE>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while concatenating parameter field 'tsp_ROI'
 <END_RESULT>
 <RESULT COUNT 4>
@@ -2437,7 +2446,7 @@ Temp.control
 <RESULT COUNT 2>
 (?im)Error while setting parameter field 'tsp_ROROI\[0\]'
 <END_RESULT>
-<RESULT COUNT 28>
+<RESULT COUNT 26>
 (?im)Error while concatenating parameter field 'tsp_SOI'
 <END_RESULT>
 <RESULT COUNT 4>
@@ -2491,6 +2500,9 @@ Temp.control
 <RESULT COUNT 4>
 (?im)Error while concatenating parameter field 'tsp_anytype'
 <END_RESULT>
+<RESULT COUNT 2>
+Dynamic test case error: Referenced module parameter cannot be found.
+<END_RESULT>
 
 <END_TC>
 
diff --git a/function_test/Config_Parser/OrderedInclude.script b/function_test/Config_Parser/OrderedInclude.script
index e22683fda..83a4b38f7 100644
--- a/function_test/Config_Parser/OrderedInclude.script
+++ b/function_test/Config_Parser/OrderedInclude.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Config_Parser/PreprocessingCfgFiles_TD.script b/function_test/Config_Parser/PreprocessingCfgFiles_TD.script
index 19926d924..6df2d6f6b 100644
--- a/function_test/Config_Parser/PreprocessingCfgFiles_TD.script
+++ b/function_test/Config_Parser/PreprocessingCfgFiles_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
@@ -1296,8 +1296,8 @@ control{}
 [EXECUTE]
 Temp.control
 <END_MODULE>
-<RESULT IF_PASS COUNT 2>
-Error while setting parameter field
+<RESULT IF_PASS COUNT 1>
+Dynamic test case error: Referenced module parameter cannot be found.
 <END_RESULT>
 
 <END_TC>
@@ -1327,8 +1327,8 @@ DEF_1:={ f3:=${DEF_1_f} }
 [MODULE_PARAMETERS]
   tsp_1 := ${DEF_1}
 <END_MODULE>
-<RESULT IF_PASS COUNT 2>
-Error while setting parameter field
+<RESULT IF_PASS COUNT 1>
+Dynamic test case error: Referenced module parameter cannot be found.
 <END_RESULT>
  
 <END_TC>
@@ -1674,8 +1674,8 @@ control{}
 [EXECUTE]
 Temp.control
 <END_MODULE>
-<RESULT IF_PASS COUNT 2>
-Error while setting parameter field
+<RESULT IF_PASS COUNT 1>
+Dynamic test case error: Referenced module parameter cannot be found.
 <END_RESULT>
 
 <END_TC>
@@ -1705,8 +1705,8 @@ DEF_1:={ f3:=${DEF_1_f} }
 [MODULE_PARAMETERS]
   tsp_1 := ${DEF_1}
 <END_MODULE>
-<RESULT IF_PASS COUNT 2>
-Error while setting parameter field
+<RESULT IF_PASS COUNT 1>
+Dynamic test case error: Referenced module parameter cannot be found.
 <END_RESULT>
  
 <END_TC>
diff --git a/function_test/Config_Parser/begin_script.sh b/function_test/Config_Parser/begin_script.sh
index 834124e97..705346256 100755
--- a/function_test/Config_Parser/begin_script.sh
+++ b/function_test/Config_Parser/begin_script.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Config_Parser/end_script.sh b/function_test/Config_Parser/end_script.sh
index 3b5d7da3f..e0daa87a1 100755
--- a/function_test/Config_Parser/end_script.sh
+++ b/function_test/Config_Parser/end_script.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Config_Parser/extfunc.cc b/function_test/Config_Parser/extfunc.cc
index 8d91d3833..d729ad778 100755
--- a/function_test/Config_Parser/extfunc.cc
+++ b/function_test/Config_Parser/extfunc.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/function_test/Makefile b/function_test/Makefile
index cf129617b..647ba8a0b 100644
--- a/function_test/Makefile
+++ b/function_test/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/RAW_EncDec/Makefile b/function_test/RAW_EncDec/Makefile
index d9c52ebda..0de92d788 100644
--- a/function_test/RAW_EncDec/Makefile
+++ b/function_test/RAW_EncDec/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -20,6 +20,10 @@
 # Set these variables...
 #
 
+TOP := ../../
+include   $(TOP)/Makefile.cfg
+
+
 # The path of your TTCN-3 Test Executor installation:
 # Uncomment this line to override the environment variable.
 # TTCN3_DIR =
@@ -32,7 +36,6 @@ endif
 # Your C++ compiler:
 CXX = g++
 
-XMLDIR = /mnt/TTCN/Tools/libxml2-2.7.1
 # Flags for the C++ preprocessor (and makedepend as well):
 CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
 ifdef RT2
@@ -91,6 +94,7 @@ OBJECTS = Temp.o
 TARGET = Temp
 
 ifdef COVERAGE
+CPPFLAGS += -fprofile-arcs -ftest-coverage -g
 CXXFLAGS += -fprofile-arcs -ftest-coverage -g
 LDFLAGS += -fprofile-arcs -ftest-coverage -g -lgcov
 endif
diff --git a/function_test/RAW_EncDec/RAW_EncDec_TD.fast_script b/function_test/RAW_EncDec/RAW_EncDec_TD.fast_script
index fd145b621..87f6e62de 100644
--- a/function_test/RAW_EncDec/RAW_EncDec_TD.fast_script
+++ b/function_test/RAW_EncDec/RAW_EncDec_TD.fast_script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/RAW_EncDec/RAW_EncDec_TD.script b/function_test/RAW_EncDec/RAW_EncDec_TD.script
index 4a9a0314b..b44f99c7e 100644
--- a/function_test/RAW_EncDec/RAW_EncDec_TD.script
+++ b/function_test/RAW_EncDec/RAW_EncDec_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/RAW_EncDec/Temp.cfg b/function_test/RAW_EncDec/Temp.cfg
index e58216eb8..1cde7caf3 100644
--- a/function_test/RAW_EncDec/Temp.cfg
+++ b/function_test/RAW_EncDec/Temp.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/README.txt b/function_test/README.txt
index 489fbbbe9..6eadceae5 100755
--- a/function_test/README.txt
+++ b/function_test/README.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/ASN_SA_1_TD.script b/function_test/Semantic_Analyser/ASN_SA_1_TD.script
index d3dedc04f..589eb0f50 100644
--- a/function_test/Semantic_Analyser/ASN_SA_1_TD.script
+++ b/function_test/Semantic_Analyser/ASN_SA_1_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/ASN_SA_asn1adhoc_TD.script b/function_test/Semantic_Analyser/ASN_SA_asn1adhoc_TD.script
index f4436d6ac..d443f94fb 100644
--- a/function_test/Semantic_Analyser/ASN_SA_asn1adhoc_TD.script
+++ b/function_test/Semantic_Analyser/ASN_SA_asn1adhoc_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/Makefile.semantic b/function_test/Semantic_Analyser/Makefile.semantic
index ef604e024..28a394d53 100644
--- a/function_test/Semantic_Analyser/Makefile.semantic
+++ b/function_test/Semantic_Analyser/Makefile.semantic
@@ -1,11 +1,11 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
 ###############################################################################
-SADIRS := ver xer encode param
+SADIRS := ver xer encode param template_restrictions
 #$(wildcard TTCN3_[a0-9]* ASN_[a0-9]*) ver xer
 
 all run check clean distclean:
diff --git a/function_test/Semantic_Analyser/SA_6_TD.script b/function_test/Semantic_Analyser/SA_6_TD.script
index bf9a3230b..e5d490210 100644
--- a/function_test/Semantic_Analyser/SA_6_TD.script
+++ b/function_test/Semantic_Analyser/SA_6_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_10_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_10_TD.script
index 3d0552ce9..8c5a32aa2 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_10_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_10_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_11_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_11_TD.script
index 03373a9c4..1dc98c0a9 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_11_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_11_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_13_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_13_TD.script
index 3011ec228..e3abe004b 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_13_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_13_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script
index f4c5b926d..2d389814d 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_1_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_3_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_3_TD.script
index 5ced083cd..335156284 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_3_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_3_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_4_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_4_TD.script
index bde23e488..346ec7d32 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_4_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_4_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_5_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_5_TD.script
index 86e414e24..f955987ec 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_5_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_5_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_6_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_6_TD.script
index b86039917..ac36eca81 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_6_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_6_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
@@ -2135,7 +2135,7 @@ template recT r:={
 	f3:= "aiyyo"
 }
 
-template recT f modifies r:= ({ f1:= 1, f2:= 0.9 }, omit);
+template recT f modifies r:= ({ f1:= 1, f2:= 0.9 }, { f1 := 1, f2 := 0.9, f3 := "pppp" });
 
 }
 <END_MODULE>
@@ -2170,7 +2170,7 @@ template recT r:={
 	f3:= "aiyyo"
 }
 
-template recT f modifies r:= complement({ f1:= 1, f2:= 0.9 }, omit);
+template recT f modifies r:= complement({ f1:= 1, f2:= 0.9 }, { f1:= 1, f2:= 0.9, f3 := "pppp" });
 
 }
 <END_MODULE>
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_7_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_7_TD.script
index 10878ccfc..95ccf1837 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_7_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_7_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_9_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_9_TD.script
index 9076fc2ca..852673eab 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_9_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_9_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/TTCN3_SA_ttcn3adhoc_TD.script b/function_test/Semantic_Analyser/TTCN3_SA_ttcn3adhoc_TD.script
index b1daa6a20..af97ca52a 100644
--- a/function_test/Semantic_Analyser/TTCN3_SA_ttcn3adhoc_TD.script
+++ b/function_test/Semantic_Analyser/TTCN3_SA_ttcn3adhoc_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Semantic_Analyser/cw.pl b/function_test/Semantic_Analyser/cw.pl
index b9c8a9ab9..02a61ad96 100755
--- a/function_test/Semantic_Analyser/cw.pl
+++ b/function_test/Semantic_Analyser/cw.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/defpars/HQ30279A.ttcn b/function_test/Semantic_Analyser/defpars/HQ30279A.ttcn
index 12bb213e5..bc1b2d842 100644
--- a/function_test/Semantic_Analyser/defpars/HQ30279A.ttcn
+++ b/function_test/Semantic_Analyser/defpars/HQ30279A.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/defpars/Makefile b/function_test/Semantic_Analyser/defpars/Makefile
index 23587f581..16deb6f81 100644
--- a/function_test/Semantic_Analyser/defpars/Makefile
+++ b/function_test/Semantic_Analyser/defpars/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/defpars/bende_fn_SE.ttcn b/function_test/Semantic_Analyser/defpars/bende_fn_SE.ttcn
index ed9e4fc55..cbbb4f319 100644
--- a/function_test/Semantic_Analyser/defpars/bende_fn_SE.ttcn
+++ b/function_test/Semantic_Analyser/defpars/bende_fn_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/defpars/bende_t_SE.ttcn b/function_test/Semantic_Analyser/defpars/bende_t_SE.ttcn
index 6044b41bc..b24649837 100644
--- a/function_test/Semantic_Analyser/defpars/bende_t_SE.ttcn
+++ b/function_test/Semantic_Analyser/defpars/bende_t_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/encode/Makefile b/function_test/Semantic_Analyser/encode/Makefile
index 23587f581..16deb6f81 100644
--- a/function_test/Semantic_Analyser/encode/Makefile
+++ b/function_test/Semantic_Analyser/encode/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/encode/encode_SE.ttcn b/function_test/Semantic_Analyser/encode/encode_SE.ttcn
index c96bba94f..409f3bc40 100644
--- a/function_test/Semantic_Analyser/encode/encode_SE.ttcn
+++ b/function_test/Semantic_Analyser/encode/encode_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/float/Makefile b/function_test/Semantic_Analyser/float/Makefile
index d949776f8..6288f55e0 100644
--- a/function_test/Semantic_Analyser/float/Makefile
+++ b/function_test/Semantic_Analyser/float/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/float/subtype_OK.ttcn b/function_test/Semantic_Analyser/float/subtype_OK.ttcn
index c7386fc4e..63d71dd5d 100644
--- a/function_test/Semantic_Analyser/float/subtype_OK.ttcn
+++ b/function_test/Semantic_Analyser/float/subtype_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/float/subtype_SE.ttcn b/function_test/Semantic_Analyser/float/subtype_SE.ttcn
index c56d0f338..afa6ab752 100644
--- a/function_test/Semantic_Analyser/float/subtype_SE.ttcn
+++ b/function_test/Semantic_Analyser/float/subtype_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/harness.pl b/function_test/Semantic_Analyser/harness.pl
index 6ba82010e..90a2fd69b 100755
--- a/function_test/Semantic_Analyser/harness.pl
+++ b/function_test/Semantic_Analyser/harness.pl
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/A_CYCLIC.ttcn b/function_test/Semantic_Analyser/import_of_iports/A_CYCLIC.ttcn
index da3dd1cbd..5ca393a21 100644
--- a/function_test/Semantic_Analyser/import_of_iports/A_CYCLIC.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/A_CYCLIC.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/A_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/A_SE.ttcn
index 543e2927f..da310fa76 100644
--- a/function_test/Semantic_Analyser/import_of_iports/A_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/A_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/B_APR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/B_APR_SE.ttcn
index 6202fd575..cc0f4dff3 100644
--- a/function_test/Semantic_Analyser/import_of_iports/B_APR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/B_APR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/B_APU_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/B_APU_SE.ttcn
index 15560f05a..e9004b044 100644
--- a/function_test/Semantic_Analyser/import_of_iports/B_APU_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/B_APU_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/B_CEFR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/B_CEFR_SE.ttcn
index 72a664081..88440d98d 100644
--- a/function_test/Semantic_Analyser/import_of_iports/B_CEFR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/B_CEFR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/B_CYCLIC.ttcn b/function_test/Semantic_Analyser/import_of_iports/B_CYCLIC.ttcn
index 89f360a94..038937b10 100644
--- a/function_test/Semantic_Analyser/import_of_iports/B_CYCLIC.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/B_CYCLIC.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/B_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/B_SE.ttcn
index cf01ed27a..9daf1b1d9 100644
--- a/function_test/Semantic_Analyser/import_of_iports/B_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/B_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/C_BPR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/C_BPR_SE.ttcn
index abd89344b..798879e72 100644
--- a/function_test/Semantic_Analyser/import_of_iports/C_BPR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/C_BPR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/C_BPU_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/C_BPU_SE.ttcn
index c1d6b6b29..590429207 100644
--- a/function_test/Semantic_Analyser/import_of_iports/C_BPU_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/C_BPU_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/C_CYCLIC.ttcn b/function_test/Semantic_Analyser/import_of_iports/C_CYCLIC.ttcn
index 8816adfed..da88b239d 100644
--- a/function_test/Semantic_Analyser/import_of_iports/C_CYCLIC.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/C_CYCLIC.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/C_FR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/C_FR_SE.ttcn
index 8e81be7f9..d19e48452 100644
--- a/function_test/Semantic_Analyser/import_of_iports/C_FR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/C_FR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/C_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/C_SE.ttcn
index 459fbf98a..eff45d72a 100644
--- a/function_test/Semantic_Analyser/import_of_iports/C_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/C_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/D_CPR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/D_CPR_SE.ttcn
index 188fe0ef9..36795f574 100644
--- a/function_test/Semantic_Analyser/import_of_iports/D_CPR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/D_CPR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/D_CPU_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/D_CPU_SE.ttcn
index e466ab566..23d5c809d 100644
--- a/function_test/Semantic_Analyser/import_of_iports/D_CPU_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/D_CPU_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/D_FR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/D_FR_SE.ttcn
index 1472ca194..04485ce6a 100644
--- a/function_test/Semantic_Analyser/import_of_iports/D_FR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/D_FR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/D_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/D_SE.ttcn
index 58ef24ef9..ac128646e 100644
--- a/function_test/Semantic_Analyser/import_of_iports/D_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/D_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/E_DPR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/E_DPR_SE.ttcn
index 4a47e2297..092a82822 100644
--- a/function_test/Semantic_Analyser/import_of_iports/E_DPR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/E_DPR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/E_DPU_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/E_DPU_SE.ttcn
index 7515e0942..1bcc2d87c 100644
--- a/function_test/Semantic_Analyser/import_of_iports/E_DPU_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/E_DPU_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/E_FR_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/E_FR_SE.ttcn
index f1a742704..160e6fda3 100644
--- a/function_test/Semantic_Analyser/import_of_iports/E_FR_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/E_FR_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/E_SE.ttcn b/function_test/Semantic_Analyser/import_of_iports/E_SE.ttcn
index c38040f94..7ec5ddb06 100644
--- a/function_test/Semantic_Analyser/import_of_iports/E_SE.ttcn
+++ b/function_test/Semantic_Analyser/import_of_iports/E_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/import_of_iports/Makefile b/function_test/Semantic_Analyser/import_of_iports/Makefile
index d949776f8..6288f55e0 100644
--- a/function_test/Semantic_Analyser/import_of_iports/Makefile
+++ b/function_test/Semantic_Analyser/import_of_iports/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/options/quitter3.ttcn b/function_test/Semantic_Analyser/options/quitter3.ttcn
index 1388bec1c..049c9ece6 100644
--- a/function_test/Semantic_Analyser/options/quitter3.ttcn
+++ b/function_test/Semantic_Analyser/options/quitter3.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/options/quitter3Q1.ttcn b/function_test/Semantic_Analyser/options/quitter3Q1.ttcn
index e536a7232..5cfd965cb 100644
--- a/function_test/Semantic_Analyser/options/quitter3Q1.ttcn
+++ b/function_test/Semantic_Analyser/options/quitter3Q1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/options/quitter3Q1S.ttcn b/function_test/Semantic_Analyser/options/quitter3Q1S.ttcn
index 7dbce4ba1..7d29ac5a3 100644
--- a/function_test/Semantic_Analyser/options/quitter3Q1S.ttcn
+++ b/function_test/Semantic_Analyser/options/quitter3Q1S.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/options/quitter3Q2.ttcn b/function_test/Semantic_Analyser/options/quitter3Q2.ttcn
index df96649a4..fd3a24669 100644
--- a/function_test/Semantic_Analyser/options/quitter3Q2.ttcn
+++ b/function_test/Semantic_Analyser/options/quitter3Q2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/options/quitter3Q2S.ttcn b/function_test/Semantic_Analyser/options/quitter3Q2S.ttcn
index 0603a2277..869d656a3 100644
--- a/function_test/Semantic_Analyser/options/quitter3Q2S.ttcn
+++ b/function_test/Semantic_Analyser/options/quitter3Q2S.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/options/quitter3S.ttcn b/function_test/Semantic_Analyser/options/quitter3S.ttcn
index 922258a60..b3fd1592b 100644
--- a/function_test/Semantic_Analyser/options/quitter3S.ttcn
+++ b/function_test/Semantic_Analyser/options/quitter3S.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/param/Makefile b/function_test/Semantic_Analyser/param/Makefile
index 23587f581..16deb6f81 100644
--- a/function_test/Semantic_Analyser/param/Makefile
+++ b/function_test/Semantic_Analyser/param/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/param/param_SE.ttcn b/function_test/Semantic_Analyser/param/param_SE.ttcn
index f67613bdf..910a6bd67 100644
--- a/function_test/Semantic_Analyser/param/param_SE.ttcn
+++ b/function_test/Semantic_Analyser/param/param_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/template_restrictions/.gitignore b/function_test/Semantic_Analyser/template_restrictions/.gitignore
new file mode 100644
index 000000000..e2d293255
--- /dev/null
+++ b/function_test/Semantic_Analyser/template_restrictions/.gitignore
@@ -0,0 +1,2 @@
+!Makefile
+!*.ttcn
diff --git a/function_test/Semantic_Analyser/template_restrictions/Makefile b/function_test/Semantic_Analyser/template_restrictions/Makefile
new file mode 100644
index 000000000..16deb6f81
--- /dev/null
+++ b/function_test/Semantic_Analyser/template_restrictions/Makefile
@@ -0,0 +1,8 @@
+###############################################################################
+# 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
+###############################################################################
+include ../common.mk
diff --git a/function_test/Semantic_Analyser/template_restrictions/TempRes_SE.ttcn b/function_test/Semantic_Analyser/template_restrictions/TempRes_SE.ttcn
new file mode 100644
index 000000000..9f8b73a42
--- /dev/null
+++ b/function_test/Semantic_Analyser/template_restrictions/TempRes_SE.ttcn
@@ -0,0 +1,56 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+module TempRes_SE { //^In TTCN-3 module//
+
+type record Rec {
+  integer i,
+  float f,
+  charstring cs,
+  octetstring os
+}
+
+template (present) Rec t_original(in template (present) integer pt_i) := { //^Referenced template parameter is here$//2
+  i := pt_i, //^warning: Inadequate restriction on the referenced template parameter//2
+  f := ?, //^Referenced template is here$//
+  cs := ?, //^Referenced template is here$//2
+  os := ? //^Referenced template is here$//2
+}
+
+template (present) Rec t_modified(in template (present) integer pt_i, in template (present) float pt_f) //^Referenced template parameter is here$//
+  modifies t_original := {
+  f := pt_f //^warning: Inadequate restriction on the referenced template parameter//
+}
+
+function f_rec_temp(in template (value) Rec pt_rec_temp) { 
+  log(pt_rec_temp);
+}
+
+template float t_f := (-10.0..-1.0); //^Referenced template is here$//
+template charstring t_cs := ("abc", "def") ifpresent; //^Referenced template is here$//
+
+function f_float_temp() return template (value) float { //^In function definition// 
+  return t_f; //^In return statement// //^error: Restriction on return template does not allow usage of value range match$//
+}
+
+control { //^In control part//
+  var template (present) charstring vt_cs := "a";
+
+  var template integer vt_i := 3; //^Referenced template variable is here$//
+
+  f_rec_temp(t_modified(3, f_float_temp())); //^In function instance// //^In actual parameter list of function// \
+  //^In parameter #1 for// //^error: Restriction on template formal parameter does not allow usage of any value$//2
+
+  f_rec_temp(t_original(vt_i)); //^In function instance// //^In actual parameter list of function// \
+  //^In parameter #1 for//2 //^In actual parameter list of template// \
+  //^warning: Inadequate restriction on the referenced template variable// \
+  //^error: Restriction on template formal parameter does not allow usage of any value$//3
+
+  vt_cs := t_cs; //^In variable assignment:$// //^error: Restriction on template does not allow usage of \`ifpresent\'$//
+}
+
+}
diff --git a/function_test/Semantic_Analyser/template_restrictions/t b/function_test/Semantic_Analyser/template_restrictions/t
new file mode 100755
index 000000000..3a4b58ec1
--- /dev/null
+++ b/function_test/Semantic_Analyser/template_restrictions/t
@@ -0,0 +1,9 @@
+#!/usr/bin/perl
+# note this is called through "perl -w"
+use strict;
+
+my $self = $0;
+$self =~ s!/t!!;
+
+exec('make check --no-print-directory -s -C ' . $self);
+
diff --git a/function_test/Semantic_Analyser/ver/CRL_111_222_3_R2D_OK.ttcn b/function_test/Semantic_Analyser/ver/CRL_111_222_3_R2D_OK.ttcn
index 3e9418197..8a4b4b069 100644
--- a/function_test/Semantic_Analyser/ver/CRL_111_222_3_R2D_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/CRL_111_222_3_R2D_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/CRL_111_222_R2D_OK.ttcn b/function_test/Semantic_Analyser/ver/CRL_111_222_R2D_OK.ttcn
index b9f769fad..a0a5020fe 100644
--- a/function_test/Semantic_Analyser/ver/CRL_111_222_R2D_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/CRL_111_222_R2D_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/Makefile b/function_test/Semantic_Analyser/ver/Makefile
index 26596b983..c572344c6 100644
--- a/function_test/Semantic_Analyser/ver/Makefile
+++ b/function_test/Semantic_Analyser/ver/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/ver/R2D2_SE.ttcn b/function_test/Semantic_Analyser/ver/R2D2_SE.ttcn
index efc218530..23de70334 100644
--- a/function_test/Semantic_Analyser/ver/R2D2_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/R2D2_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/R2D_SE.ttcn b/function_test/Semantic_Analyser/ver/R2D_SE.ttcn
index 9d6fef899..ddc23cec9 100644
--- a/function_test/Semantic_Analyser/ver/R2D_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/R2D_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/c3p0_SE.ttcn b/function_test/Semantic_Analyser/ver/c3p0_SE.ttcn
index 6c18c5191..9261c58f6 100644
--- a/function_test/Semantic_Analyser/ver/c3p0_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/c3p0_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/dup_ver_SE.ttcn b/function_test/Semantic_Analyser/ver/dup_ver_SE.ttcn
index cc2ee339e..ebb2c6f88 100644
--- a/function_test/Semantic_Analyser/ver/dup_ver_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/dup_ver_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/high_titan_SE.ttcn b/function_test/Semantic_Analyser/ver/high_titan_SE.ttcn
index e986d513e..4fb408d74 100644
--- a/function_test/Semantic_Analyser/ver/high_titan_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/high_titan_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -16,8 +16,8 @@ with {
   // check for the more general /R\d[A-HJ-NS-VX-Z](\d{1,2})?/
 
   /* Test needs to be adjusted for every release !!!!!!! */
-  extension "requiresTITAN CRL 113 200/5 R1A"; /* This one must just pass, the next one must just fail */
-  extension "requiresTITAN CRL 113 200/5 R9A01"; //^error: This module needs to be compiled with TITAN version (C[RN]L \d+ \d+\/\d+ )?R\d{1,2}[A-HJ-NS-VX-Z](\d{1,2})? or higher; version (C[RN]L \d+ \d+\/\d+ )?R\d{1,2}[A-HJ-NS-VX-Z](\d{1,2})? detected//
+  extension "requiresTITAN CRL 113 200/5 R4A"; /* This one must just pass, the next one must just fail */
+  extension "requiresTITAN CRL 113 200/5 R5A01"; //^error: This module needs to be compiled with TITAN version (C[RN]L \d+ \d+\/\d+ )?R\d{1,2}[A-HJ-NS-VX-Z](\d{1,2})? or higher; version (C[RN]L \d+ \d+\/\d+ )?R\d{1,2}[A-HJ-NS-VX-Z](\d{1,2})? detected//
 
   /* The old style RnXnn, without the CRL 113 200 and the suffix, implies major version 1
    * Now that Titan is at version 2, the following will always pass:
diff --git a/function_test/Semantic_Analyser/ver/importer_SE.ttcn b/function_test/Semantic_Analyser/ver/importer_SE.ttcn
index 9fab451f8..db532da1e 100644
--- a/function_test/Semantic_Analyser/ver/importer_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/importer_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/new_ver_SE.ttcn b/function_test/Semantic_Analyser/ver/new_ver_SE.ttcn
index 8267c7e80..6c5bf499c 100644
--- a/function_test/Semantic_Analyser/ver/new_ver_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/new_ver_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/notimported_SE.ttcn b/function_test/Semantic_Analyser/ver/notimported_SE.ttcn
index b798f7724..6752f7e3e 100644
--- a/function_test/Semantic_Analyser/ver/notimported_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/notimported_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/noversion_SE.ttcn b/function_test/Semantic_Analyser/ver/noversion_SE.ttcn
index 7b1374227..336bb81c0 100644
--- a/function_test/Semantic_Analyser/ver/noversion_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/noversion_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/unreleased_SE.ttcn b/function_test/Semantic_Analyser/ver/unreleased_SE.ttcn
index bbc017d83..8e7f40c7a 100644
--- a/function_test/Semantic_Analyser/ver/unreleased_SE.ttcn
+++ b/function_test/Semantic_Analyser/ver/unreleased_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/ver_OK.ttcn b/function_test/Semantic_Analyser/ver/ver_OK.ttcn
index e159b32cb..c44b24c58 100644
--- a/function_test/Semantic_Analyser/ver/ver_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/ver_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/ver_highest_OK.ttcn b/function_test/Semantic_Analyser/ver/ver_highest_OK.ttcn
index ae3ff7995..22f0a4495 100644
--- a/function_test/Semantic_Analyser/ver/ver_highest_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/ver_highest_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/ver_newstyle_OK.ttcn b/function_test/Semantic_Analyser/ver/ver_newstyle_OK.ttcn
index ea0c78daa..9e640eae4 100644
--- a/function_test/Semantic_Analyser/ver/ver_newstyle_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/ver_newstyle_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/ver_newstyle_per1_template_OK.ttcn b/function_test/Semantic_Analyser/ver/ver_newstyle_per1_template_OK.ttcn
index 3c60f7bdc..5df9e2a0e 100644
--- a/function_test/Semantic_Analyser/ver/ver_newstyle_per1_template_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/ver_newstyle_per1_template_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/ver/ver_newstyle_template_OK.ttcn b/function_test/Semantic_Analyser/ver/ver_newstyle_template_OK.ttcn
index 1e038fd06..7a90b7124 100644
--- a/function_test/Semantic_Analyser/ver/ver_newstyle_template_OK.ttcn
+++ b/function_test/Semantic_Analyser/ver/ver_newstyle_template_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/Makefile b/function_test/Semantic_Analyser/xer/Makefile
index d949776f8..6288f55e0 100644
--- a/function_test/Semantic_Analyser/xer/Makefile
+++ b/function_test/Semantic_Analyser/xer/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Semantic_Analyser/xer/aa_not_in_record_SE.ttcn b/function_test/Semantic_Analyser/xer/aa_not_in_record_SE.ttcn
index ad76f898d..81fe5b939 100644
--- a/function_test/Semantic_Analyser/xer/aa_not_in_record_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/aa_not_in_record_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/aa_not_string_SE.ttcn b/function_test/Semantic_Analyser/xer/aa_not_string_SE.ttcn
index 6831b134f..f402ee399 100644
--- a/function_test/Semantic_Analyser/xer/aa_not_string_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/aa_not_string_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/aa_twice_SE.ttcn b/function_test/Semantic_Analyser/xer/aa_twice_SE.ttcn
index d4b7a487e..1df2abe1b 100644
--- a/function_test/Semantic_Analyser/xer/aa_twice_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/aa_twice_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/aa_untagged_SE.ttcn b/function_test/Semantic_Analyser/xer/aa_untagged_SE.ttcn
index c5d16a723..57f284152 100644
--- a/function_test/Semantic_Analyser/xer/aa_untagged_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/aa_untagged_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/ae_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/ae_clash_SE.ttcn
index dcca18e78..1cf912cde 100644
--- a/function_test/Semantic_Analyser/xer/ae_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/ae_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/ae_wrong_type_SE.ttcn b/function_test/Semantic_Analyser/xer/ae_wrong_type_SE.ttcn
index 6b64f585d..e43389af2 100644
--- a/function_test/Semantic_Analyser/xer/ae_wrong_type_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/ae_wrong_type_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/atr_not_on_record_SE.ttcn b/function_test/Semantic_Analyser/xer/atr_not_on_record_SE.ttcn
index 7aaa2c377..276c2155a 100644
--- a/function_test/Semantic_Analyser/xer/atr_not_on_record_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/atr_not_on_record_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/atr_untagged_SE.ttcn b/function_test/Semantic_Analyser/xer/atr_untagged_SE.ttcn
index 642ce2e2c..9a295d3a0 100644
--- a/function_test/Semantic_Analyser/xer/atr_untagged_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/atr_untagged_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/attribs_OK.ttcn b/function_test/Semantic_Analyser/xer/attribs_OK.ttcn
index 8dbe9c1f9..e54e781f6 100644
--- a/function_test/Semantic_Analyser/xer/attribs_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/attribs_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/b64_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/b64_clash_SE.ttcn
index 6d1376e08..aa2284c25 100644
--- a/function_test/Semantic_Analyser/xer/b64_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/b64_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/b64_wrong_type_SE.ttcn b/function_test/Semantic_Analyser/xer/b64_wrong_type_SE.ttcn
index ce124b947..950da56e0 100644
--- a/function_test/Semantic_Analyser/xer/b64_wrong_type_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/b64_wrong_type_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/bogus_SE.ttcn b/function_test/Semantic_Analyser/xer/bogus_SE.ttcn
index a6bdb0bc7..c531ba810 100644
--- a/function_test/Semantic_Analyser/xer/bogus_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/bogus_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/decimal_SE.ttcn b/function_test/Semantic_Analyser/xer/decimal_SE.ttcn
index 4b0954721..5e041bd0d 100644
--- a/function_test/Semantic_Analyser/xer/decimal_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/decimal_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/dfe_charenc_OK.ttcn b/function_test/Semantic_Analyser/xer/dfe_charenc_OK.ttcn
index 466ff2da3..2f0062f3c 100644
--- a/function_test/Semantic_Analyser/xer/dfe_charenc_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/dfe_charenc_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/dfe_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/dfe_clash_SE.ttcn
index 877507627..4ab37d48e 100644
--- a/function_test/Semantic_Analyser/xer/dfe_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/dfe_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/dfe_int_OK.ttcn b/function_test/Semantic_Analyser/xer/dfe_int_OK.ttcn
index 65508f828..82a683c4a 100644
--- a/function_test/Semantic_Analyser/xer/dfe_int_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/dfe_int_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/disorder_SE.ttcn b/function_test/Semantic_Analyser/xer/disorder_SE.ttcn
index df982443f..6bfabedcd 100644
--- a/function_test/Semantic_Analyser/xer/disorder_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/disorder_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/dup_text_SE.ttcn b/function_test/Semantic_Analyser/xer/dup_text_SE.ttcn
index 07fe80646..4c7d93eea 100644
--- a/function_test/Semantic_Analyser/xer/dup_text_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/dup_text_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/dupenum_SE.ttcn b/function_test/Semantic_Analyser/xer/dupenum_SE.ttcn
index 995095668..e2e176813 100644
--- a/function_test/Semantic_Analyser/xer/dupenum_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/dupenum_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/emb_first_opt_SE.ttcn b/function_test/Semantic_Analyser/xer/emb_first_opt_SE.ttcn
index 7f88bd33f..dd5261864 100644
--- a/function_test/Semantic_Analyser/xer/emb_first_opt_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/emb_first_opt_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/emb_first_untag_SE.ttcn b/function_test/Semantic_Analyser/xer/emb_first_untag_SE.ttcn
index 8b9f63121..a3435cee1 100644
--- a/function_test/Semantic_Analyser/xer/emb_first_untag_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/emb_first_untag_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/emb_not_record_SE.ttcn b/function_test/Semantic_Analyser/xer/emb_not_record_SE.ttcn
index c82e869c0..c6f72c9ea 100644
--- a/function_test/Semantic_Analyser/xer/emb_not_record_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/emb_not_record_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/emb_untag_SE.ttcn b/function_test/Semantic_Analyser/xer/emb_untag_SE.ttcn
index ae969d375..24e61adc8 100644
--- a/function_test/Semantic_Analyser/xer/emb_untag_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/emb_untag_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/emb_wrong_first_SE.ttcn b/function_test/Semantic_Analyser/xer/emb_wrong_first_SE.ttcn
index 6d2ee007a..f9e35597f 100644
--- a/function_test/Semantic_Analyser/xer/emb_wrong_first_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/emb_wrong_first_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/encdec_OK.ttcn b/function_test/Semantic_Analyser/xer/encdec_OK.ttcn
index 538932bb7..47ba47638 100644
--- a/function_test/Semantic_Analyser/xer/encdec_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/encdec_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/ifq_SE.ttcn b/function_test/Semantic_Analyser/xer/ifq_SE.ttcn
index be93139a3..7522267f7 100644
--- a/function_test/Semantic_Analyser/xer/ifq_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/ifq_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/list_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/list_clash_SE.ttcn
index 365636f00..2815d46ce 100644
--- a/function_test/Semantic_Analyser/xer/list_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/list_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/list_not_recof_SE.ttcn b/function_test/Semantic_Analyser/xer/list_not_recof_SE.ttcn
index b215fd33e..5ede61a47 100644
--- a/function_test/Semantic_Analyser/xer/list_not_recof_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/list_not_recof_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/namedup1_SE.ttcn b/function_test/Semantic_Analyser/xer/namedup1_SE.ttcn
index 21b0bdac7..cddd73cbc 100644
--- a/function_test/Semantic_Analyser/xer/namedup1_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/namedup1_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/namedup2_SE.ttcn b/function_test/Semantic_Analyser/xer/namedup2_SE.ttcn
index d8292ec08..43b31572c 100644
--- a/function_test/Semantic_Analyser/xer/namedup2_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/namedup2_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/no_text_all_SE.ttcn b/function_test/Semantic_Analyser/xer/no_text_all_SE.ttcn
index 4f04a3bf3..1b2c91a69 100644
--- a/function_test/Semantic_Analyser/xer/no_text_all_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/no_text_all_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/ns_empty_prefix_dup_OK.ttcn b/function_test/Semantic_Analyser/xer/ns_empty_prefix_dup_OK.ttcn
index 4acf7cf85..1e6cf607e 100644
--- a/function_test/Semantic_Analyser/xer/ns_empty_prefix_dup_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/ns_empty_prefix_dup_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/ns_prefix_dup_OK.ttcn b/function_test/Semantic_Analyser/xer/ns_prefix_dup_OK.ttcn
index b8472e349..6a955fba4 100644
--- a/function_test/Semantic_Analyser/xer/ns_prefix_dup_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/ns_prefix_dup_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/ns_xml_SE.ttcn b/function_test/Semantic_Analyser/xer/ns_xml_SE.ttcn
index 3105b7c64..b341c3550 100644
--- a/function_test/Semantic_Analyser/xer/ns_xml_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/ns_xml_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/qname_SE.ttcn b/function_test/Semantic_Analyser/xer/qname_SE.ttcn
index 195d3c8a5..d56f5cf2a 100644
--- a/function_test/Semantic_Analyser/xer/qname_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/qname_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/qname_attr_OK.ttcn b/function_test/Semantic_Analyser/xer/qname_attr_OK.ttcn
index 93e84af53..6eabb39e7 100644
--- a/function_test/Semantic_Analyser/xer/qname_attr_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/qname_attr_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/recur_SE.ttcn b/function_test/Semantic_Analyser/xer/recur_SE.ttcn
index 561abe37f..037aab716 100644
--- a/function_test/Semantic_Analyser/xer/recur_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/recur_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/soapy.ttcn b/function_test/Semantic_Analyser/xer/soapy.ttcn
index fe80cd227..61d3f3b9c 100644
--- a/function_test/Semantic_Analyser/xer/soapy.ttcn
+++ b/function_test/Semantic_Analyser/xer/soapy.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/text_clash_use_number_SE.ttcn b/function_test/Semantic_Analyser/xer/text_clash_use_number_SE.ttcn
index 52c1163cf..2869b4c4b 100644
--- a/function_test/Semantic_Analyser/xer/text_clash_use_number_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/text_clash_use_number_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/text_no_enum_SE.ttcn b/function_test/Semantic_Analyser/xer/text_no_enum_SE.ttcn
index 082a22dbf..7ef2d4c02 100644
--- a/function_test/Semantic_Analyser/xer/text_no_enum_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/text_no_enum_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/text_over_text_SE.ttcn b/function_test/Semantic_Analyser/xer/text_over_text_SE.ttcn
index 4590fbbf5..895cff14c 100644
--- a/function_test/Semantic_Analyser/xer/text_over_text_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/text_over_text_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untag2_SE.ttcn b/function_test/Semantic_Analyser/xer/untag2_SE.ttcn
index fdb92c39e..4a1ae274b 100644
--- a/function_test/Semantic_Analyser/xer/untag2_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/untag2_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untagged_charenc_OK.ttcn b/function_test/Semantic_Analyser/xer/untagged_charenc_OK.ttcn
index 37d7123fd..588c8f40b 100644
--- a/function_test/Semantic_Analyser/xer/untagged_charenc_OK.ttcn
+++ b/function_test/Semantic_Analyser/xer/untagged_charenc_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untagged_charenc_another_SE.ttcn b/function_test/Semantic_Analyser/xer/untagged_charenc_another_SE.ttcn
index 66216937f..9a5804446 100644
--- a/function_test/Semantic_Analyser/xer/untagged_charenc_another_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/untagged_charenc_another_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untagged_charenc_optional_SE.ttcn b/function_test/Semantic_Analyser/xer/untagged_charenc_optional_SE.ttcn
index 1536b8dca..590a4d11a 100644
--- a/function_test/Semantic_Analyser/xer/untagged_charenc_optional_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/untagged_charenc_optional_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untagged_noncharenc_SE.ttcn b/function_test/Semantic_Analyser/xer/untagged_noncharenc_SE.ttcn
index 84fada1b3..3107f156b 100644
--- a/function_test/Semantic_Analyser/xer/untagged_noncharenc_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/untagged_noncharenc_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untagged_parent_not_record_SE.ttcn b/function_test/Semantic_Analyser/xer/untagged_parent_not_record_SE.ttcn
index ffac6f14e..83ab60ad8 100644
--- a/function_test/Semantic_Analyser/xer/untagged_parent_not_record_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/untagged_parent_not_record_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/untagged_parent_untagged_SE.ttcn b/function_test/Semantic_Analyser/xer/untagged_parent_untagged_SE.ttcn
index ab224ded8..dfdf113ac 100644
--- a/function_test/Semantic_Analyser/xer/untagged_parent_untagged_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/untagged_parent_untagged_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/uo_attribonly_SE.ttcn b/function_test/Semantic_Analyser/xer/uo_attribonly_SE.ttcn
index 50b9f43b7..b3bc69285 100644
--- a/function_test/Semantic_Analyser/xer/uo_attribonly_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/uo_attribonly_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/uo_no_recof_SE.ttcn b/function_test/Semantic_Analyser/xer/uo_no_recof_SE.ttcn
index aeacb8963..97815d2be 100644
--- a/function_test/Semantic_Analyser/xer/uo_no_recof_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/uo_no_recof_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usenil_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/usenil_clash_SE.ttcn
index 529a5cbb6..39bed6888 100644
--- a/function_test/Semantic_Analyser/xer/usenil_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usenil_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usenil_comp_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/usenil_comp_clash_SE.ttcn
index a612d95c6..9d3b4b93c 100644
--- a/function_test/Semantic_Analyser/xer/usenil_comp_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usenil_comp_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usenil_no_controlns_SE.ttcn b/function_test/Semantic_Analyser/xer/usenil_no_controlns_SE.ttcn
index 71a23dfc9..85291637a 100644
--- a/function_test/Semantic_Analyser/xer/usenil_no_controlns_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usenil_no_controlns_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usenil_no_optional_SE.ttcn b/function_test/Semantic_Analyser/xer/usenil_no_optional_SE.ttcn
index 57fa3d694..4d112f3c2 100644
--- a/function_test/Semantic_Analyser/xer/usenil_no_optional_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usenil_no_optional_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usenil_not_attr_SE.ttcn b/function_test/Semantic_Analyser/xer/usenil_not_attr_SE.ttcn
index 61af359dc..6d5c351ca 100644
--- a/function_test/Semantic_Analyser/xer/usenil_not_attr_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usenil_not_attr_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usenil_not_record_SE.ttcn b/function_test/Semantic_Analyser/xer/usenil_not_record_SE.ttcn
index 219103fc5..79bcb4e68 100644
--- a/function_test/Semantic_Analyser/xer/usenil_not_record_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usenil_not_record_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usetype_clash_SE.ttcn b/function_test/Semantic_Analyser/xer/usetype_clash_SE.ttcn
index e03610ef8..e40490dea 100644
--- a/function_test/Semantic_Analyser/xer/usetype_clash_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usetype_clash_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usetype_not_union_SE.ttcn b/function_test/Semantic_Analyser/xer/usetype_not_union_SE.ttcn
index 1ce861476..7c311d641 100644
--- a/function_test/Semantic_Analyser/xer/usetype_not_union_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usetype_not_union_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usetype_with_untagged_SE.ttcn b/function_test/Semantic_Analyser/xer/usetype_with_untagged_SE.ttcn
index 39779fc6c..ca6a8317b 100644
--- a/function_test/Semantic_Analyser/xer/usetype_with_untagged_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usetype_with_untagged_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/usetype_with_usetype_SE.ttcn b/function_test/Semantic_Analyser/xer/usetype_with_usetype_SE.ttcn
index 57e9d2610..dc930cad1 100644
--- a/function_test/Semantic_Analyser/xer/usetype_with_usetype_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/usetype_with_usetype_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/useunion_not_union_SE.ttcn b/function_test/Semantic_Analyser/xer/useunion_not_union_SE.ttcn
index 549abcab5..c8e0f8bc1 100644
--- a/function_test/Semantic_Analyser/xer/useunion_not_union_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/useunion_not_union_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/useunion_with_non_charenc_SE.ttcn b/function_test/Semantic_Analyser/xer/useunion_with_non_charenc_SE.ttcn
index 1531845f0..3476d0403 100644
--- a/function_test/Semantic_Analyser/xer/useunion_with_non_charenc_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/useunion_with_non_charenc_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Semantic_Analyser/xer/useunion_with_useunion_SE.ttcn b/function_test/Semantic_Analyser/xer/useunion_with_useunion_SE.ttcn
index 348f9b389..d3346d726 100644
--- a/function_test/Semantic_Analyser/xer/useunion_with_useunion_SE.ttcn
+++ b/function_test/Semantic_Analyser/xer/useunion_with_useunion_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/function_test/Text_EncDec/Makefile b/function_test/Text_EncDec/Makefile
index 530ae95fd..5235adbe8 100644
--- a/function_test/Text_EncDec/Makefile
+++ b/function_test/Text_EncDec/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -20,6 +20,9 @@
 # Set these variables...
 #
 
+TOP := ../../
+include   $(TOP)/Makefile.cfg
+
 # The path of your TTCN-3 Test Executor installation:
 # Uncomment this line to override the environment variable.
 # TTCN3_DIR =
@@ -32,8 +35,6 @@ endif
 # Your C++ compiler:
 CXX = g++
 
-#superfluous????:
-XMLDIR = /mnt/TTCN/Tools/libxml2-2.7.1
 # Flags for the C++ preprocessor (and makedepend as well):
 CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
 ifdef RT2
@@ -92,6 +93,7 @@ OBJECTS = Temp.o
 TARGET = Temp
 
 ifdef COVERAGE
+CPPFLAGS += -fprofile-arcs -ftest-coverage -g
 CXXFLAGS += -fprofile-arcs -ftest-coverage -g
 LDFLAGS += -fprofile-arcs -ftest-coverage -g -lgcov
 endif
diff --git a/function_test/Text_EncDec/TEXT_1_TD.fast_script b/function_test/Text_EncDec/TEXT_1_TD.fast_script
index 9b834137d..b9bb50a0d 100644
--- a/function_test/Text_EncDec/TEXT_1_TD.fast_script
+++ b/function_test/Text_EncDec/TEXT_1_TD.fast_script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Text_EncDec/TEXT_1_TD.script b/function_test/Text_EncDec/TEXT_1_TD.script
index 3fc1c2b9b..b58ae7758 100644
--- a/function_test/Text_EncDec/TEXT_1_TD.script
+++ b/function_test/Text_EncDec/TEXT_1_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/Text_EncDec/Temp.cfg b/function_test/Text_EncDec/Temp.cfg
index 78d8025a0..41a513d7a 100644
--- a/function_test/Text_EncDec/Temp.cfg
+++ b/function_test/Text_EncDec/Temp.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/Tools/SAtester.pl b/function_test/Tools/SAtester.pl
index 189ad85af..858f10580 100755
--- a/function_test/Tools/SAtester.pl
+++ b/function_test/Tools/SAtester.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/XER_EncDec/Makefile b/function_test/XER_EncDec/Makefile
index 2d8b8d194..1a226dfd6 100644
--- a/function_test/XER_EncDec/Makefile
+++ b/function_test/XER_EncDec/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -20,6 +20,10 @@
 # Set these variables...
 #
 
+TOP := ../../
+include   $(TOP)/Makefile.cfg
+
+
 # The path of your TTCN-3 Test Executor installation:
 # Uncomment this line to override the environment variable.
 # TTCN3_DIR =
@@ -32,7 +36,6 @@ endif
 # Your C++ compiler:
 CXX = g++
 
-XMLDIR = /mnt/TTCN/Tools/libxml2-2.7.1
 # Flags for the C++ preprocessor (and makedepend as well):
 CPPFLAGS = -D$(PLATFORM) -I$(TTCN3_DIR)/include -I$(XMLDIR)/include/libxml2
 ifdef RT2
@@ -91,6 +94,7 @@ OBJECTS = Temp.o
 TARGET = Temp
 
 ifdef COVERAGE
+CPPFLAGS += -fprofile-arcs -ftest-coverage -g
 CXXFLAGS += -fprofile-arcs -ftest-coverage -g
 LDFLAGS += -fprofile-arcs -ftest-coverage -g -lgcov
 endif
diff --git a/function_test/XER_EncDec/Temp.cfg b/function_test/XER_EncDec/Temp.cfg
index e58216eb8..1cde7caf3 100644
--- a/function_test/XER_EncDec/Temp.cfg
+++ b/function_test/XER_EncDec/Temp.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/function_test/XER_EncDec/XER_EncDec_TD.script b/function_test/XER_EncDec/XER_EncDec_TD.script
index e110cb134..31b827cfe 100644
--- a/function_test/XER_EncDec/XER_EncDec_TD.script
+++ b/function_test/XER_EncDec/XER_EncDec_TD.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/function_test/doc/TTCN3_Executor_TestReport.doc b/function_test/doc/TTCN3_Executor_TestReport.doc
old mode 100644
new mode 100755
index 860c9b06e00f2cb20da5ba5a7f7624facfee12c2..0e7faadb85541bc3ef0022491cf0fd580be3fb53
GIT binary patch
delta 101472
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

delta 82270
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
HTdRKotFybY

diff --git a/hello/Makefile b/hello/Makefile
index 50b53ea6d..7b03f87f8 100644
--- a/hello/Makefile
+++ b/hello/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -11,7 +11,7 @@ TOP := $(shell cd .. && pwd)
 
 include ../Makefile.cfg
 
-DEMOFILES := MyExample.ttcn PCOType.hh PCOType.cc MyExample.cfg
+DEMOFILES := MyExample.ttcn PCOType.hh PCOType.cc hello_world.ttcn MyExample.cfg
 
 MAKEFILEGENFLAGS := -g
 ifeq ($(COVERAGE), yes)
diff --git a/hello/MyExample.cfg b/hello/MyExample.cfg
index 99bc07e8d..ca64e58ef 100644
--- a/hello/MyExample.cfg
+++ b/hello/MyExample.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -12,3 +12,4 @@ ConsoleMask := TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS
 
 [EXECUTE]
 MyExample.control
+hello_world.control
\ No newline at end of file
diff --git a/hello/MyExample.ttcn b/hello/MyExample.ttcn
index edead6dfe..899b24161 100644
--- a/hello/MyExample.ttcn
+++ b/hello/MyExample.ttcn
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -42,5 +42,6 @@ module MyExample
     {
 	execute(HelloW());
 	execute(HelloW2());
+  //1 pass, 1 inconc expected
     }
 }
diff --git a/hello/PCOType.cc b/hello/PCOType.cc
index 21e611bbc..c0c0cfc7c 100644
--- a/hello/PCOType.cc
+++ b/hello/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/hello/PCOType.hh b/hello/PCOType.hh
index 798c2fed6..7eb96a329 100644
--- a/hello/PCOType.hh
+++ b/hello/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/hello/hello_world.ttcn b/hello/hello_world.ttcn
new file mode 100644
index 000000000..0a2adb074
--- /dev/null
+++ b/hello/hello_world.ttcn
@@ -0,0 +1,79 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+module hello_world
+{
+//====================== Data Types ======================
+type record of charstring RoC; //unconstrained array of character strings
+
+//====================== Port Types ======================
+type port MYPORT message {
+  inout charstring
+} with {extension "internal"}
+
+//====================== Component Types ======================
+type component MYCOMP {
+  const integer c_MyCompDummyConstant := 42;
+  var integer v_MyCompDummyVariable1, v_MyCompDummyVariable2 := 1;
+  timer T_MyCompDummyTimer;
+  port MYPORT myport
+}
+
+//====================== Constants ======================
+const charstring ws0 := "(\n| )#(0,)"
+
+//====================== Templates ======================
+//Strings containing the words "hello" and "word", in all small, or
+//all capital letters, or small letters with first letter capital;
+//exclamation mark is optional; whitespaces allowed
+template charstring t_expected :=
+  pattern "{ws0}(((h|H)ello {ws0}(w|W)orld)|HELLO {ws0}WORLD){ws0}!#(0,1){ws0}"
+
+//====================== Functions ======================
+function f_PTC(charstring pl_toSend) runs on MYCOMP {
+  myport.send(pl_toSend);
+}
+
+//====================== Testcases ======================
+testcase TC(charstring pl_toSend) runs on MYCOMP {
+  var charstring vl_received;
+  var MYCOMP vl_PTC := MYCOMP.create alive;
+  connect (self:myport,vl_PTC:myport);
+  vl_PTC.start(f_PTC(pl_toSend));
+  T_MyCompDummyTimer.start(5.0);
+  alt {
+    [] myport.receive(t_expected)-> value vl_received {
+     setverdict(pass,"expected message received: ",vl_received)
+    }
+    [] myport.receive (charstring:?) -> value vl_received{
+      setverdict(fail,"Unexpected message received: ",vl_received)
+    }
+    [] T_MyCompDummyTimer.timeout { setverdict(inconc);}
+  }
+}
+
+//=========================================================================
+// Control Part
+//=========================================================================
+control {
+  var RoC vl_inputs := {
+    "HELLO WORLD!",
+    "hello world",
+    "Hello World!",
+    "hello WORLD!",
+    "hELLO wORLD!",
+    "helloworld!"
+  }
+  var integer i, vl_noStrings := sizeof(vl_inputs);
+  for (i:=0; i< vl_noStrings; i:=i+1){
+    execute (TC(vl_inputs[i]),5.0)
+  }
+  
+  //3 pass, 3 fail expected
+} // end of control part
+
+}  // end of module
diff --git a/help/Makefile b/help/Makefile
index 55bbae00d..4e571c65d 100644
--- a/help/Makefile
+++ b/help/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/help/chm_refact.sh b/help/chm_refact.sh
index 2492a76be..f27e75a7e 100755
--- a/help/chm_refact.sh
+++ b/help/chm_refact.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/help/info/BNF.html b/help/info/BNF.html
index db883ca64..6d80dda63 100644
--- a/help/info/BNF.html
+++ b/help/info/BNF.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/action.html b/help/info/action.html
index c0a495ae0..65b4776af 100644
--- a/help/info/action.html
+++ b/help/info/action.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/activate.html b/help/info/activate.html
index 8db23380d..890be2c51 100644
--- a/help/info/activate.html
+++ b/help/info/activate.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/address.html b/help/info/address.html
index f83c98221..7996899ed 100644
--- a/help/info/address.html
+++ b/help/info/address.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/alive.html b/help/info/alive.html
index 3f45f49b2..4a87914f8 100644
--- a/help/info/alive.html
+++ b/help/info/alive.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/all.html b/help/info/all.html
index 7c3e10a2b..3d33e3db2 100644
--- a/help/info/all.html
+++ b/help/info/all.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/alt.html b/help/info/alt.html
index 799a8667b..94be11c3a 100644
--- a/help/info/alt.html
+++ b/help/info/alt.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/altstep.html b/help/info/altstep.html
index 1fd25e94f..7ffe7ef1e 100644
--- a/help/info/altstep.html
+++ b/help/info/altstep.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/and.html b/help/info/and.html
index ff6078df6..54ea38a43 100644
--- a/help/info/and.html
+++ b/help/info/and.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/and4b.html b/help/info/and4b.html
index e8acdd7aa..8619ad7ce 100644
--- a/help/info/and4b.html
+++ b/help/info/and4b.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/any.html b/help/info/any.html
index c6f480a6c..fc28c9c95 100644
--- a/help/info/any.html
+++ b/help/info/any.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/anytype.html b/help/info/anytype.html
index 7811d2354..d9f677396 100644
--- a/help/info/anytype.html
+++ b/help/info/anytype.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -23,7 +23,7 @@
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
     <td><a href="any.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
-    <td><a href="bit2hex.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+    <td><a href="apply.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
 <p><br clear="all">
diff --git a/help/info/apply.html b/help/info/apply.html
new file mode 100644
index 000000000..5ed4c752b
--- /dev/null
+++ b/help/info/apply.html
@@ -0,0 +1,71 @@
+<!--
+ 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
+ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Language" content="en-us">
+<title>apply</title>
+</head>
+<body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
+<table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
+  <tr>
+    <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+  </tr>
+</table>
+<table border="0" align="right" cellpadding="0" cellspacing="0">
+  <tr>
+    <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
+    <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="anytype.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="next" href="bit2hex.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+  </tr>
+</table>
+<p><br clear="all">
+</p>
+<hr>
+<h1>apply</h1>
+<hr align="left" width="75%">
+<p>This function is used to call a function, altstep or testcase referenced by a behavior type variable.</p>
+<hr align="left" width="50%">
+<p>Related keyword:</p>
+<ul>
+  <li><b><font face="Courier New" size="4" color="#003258"> <a href="type.html">type</a></font></b></li>
+</ul>
+<hr align="left" width="50%">
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="center">
+	<font face="Courier New" color="#003258" size="5">
+	<i>behavior_type_variable</i><b>.apply(</b></font>
+	<i>arguments</i>
+	<font face="Courier New" color="#003258" size="5"><b>) </b></font></h3>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>behavior_type_variable</b></font> denotes a behavior type variable that refers to a function, altstep or testcase.</p>
+  </li>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>arguments</b></font> denotes the argument list of the function, see <a href="function.html"><b>function</b></a>.</p>
+  </li>
+  <li>
+  <p>Details and examples can be found under <a href="type.html#behavior_type"><b>behavior_type</b></a>.</p>
+  </li>
+</ul>
+
+
+<hr align="left" width="50%">
+</body>
+</html>
diff --git a/help/info/bit2hex.html b/help/info/bit2hex.html
index aac0d364e..032ea67bf 100644
--- a/help/info/bit2hex.html
+++ b/help/info/bit2hex.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -22,7 +22,7 @@
   <tr>
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
-    <td><a alt="previous" href="anytype.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="apply.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
     <td><a alt="next" href="bit2int.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
diff --git a/help/info/bit2int.html b/help/info/bit2int.html
index 3e472163b..c1a12a60d 100644
--- a/help/info/bit2int.html
+++ b/help/info/bit2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/bit2oct.html b/help/info/bit2oct.html
index c393d0b34..dba42aa86 100644
--- a/help/info/bit2oct.html
+++ b/help/info/bit2oct.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/bit2str.html b/help/info/bit2str.html
index fa4d2ed3e..e0928c87c 100644
--- a/help/info/bit2str.html
+++ b/help/info/bit2str.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/bitstring.html b/help/info/bitstring.html
index 566ae405c..fd8e3e270 100644
--- a/help/info/bitstring.html
+++ b/help/info/bitstring.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/boolean.html b/help/info/boolean.html
index 1be8bd3d5..a01d9c421 100644
--- a/help/info/boolean.html
+++ b/help/info/boolean.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/break.html b/help/info/break.html
index 2e2851c46..2e72772e7 100644
--- a/help/info/break.html
+++ b/help/info/break.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/call.html b/help/info/call.html
index a3f3c13d1..146211e19 100644
--- a/help/info/call.html
+++ b/help/info/call.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/case.html b/help/info/case.html
index e9c66b8e5..22fce52b0 100644
--- a/help/info/case.html
+++ b/help/info/case.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/catch.html b/help/info/catch.html
index 5a2ee5ad2..afedc1d0e 100644
--- a/help/info/catch.html
+++ b/help/info/catch.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/char.html b/help/info/char.html
index 5fbcc3033..4ffae2cb1 100644
--- a/help/info/char.html
+++ b/help/info/char.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/char2int.html b/help/info/char2int.html
index ef527f942..346a2d52e 100644
--- a/help/info/char2int.html
+++ b/help/info/char2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/char2oct.html b/help/info/char2oct.html
index c13a6d691..8cbcc6205 100644
--- a/help/info/char2oct.html
+++ b/help/info/char2oct.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/charstring.html b/help/info/charstring.html
index 96cd52ccd..57f56d699 100644
--- a/help/info/charstring.html
+++ b/help/info/charstring.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/check.html b/help/info/check.html
index 96f6a1007..c6c364946 100644
--- a/help/info/check.html
+++ b/help/info/check.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/clear.html b/help/info/clear.html
index d75ca66fb..19d8c937b 100644
--- a/help/info/clear.html
+++ b/help/info/clear.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/complement.html b/help/info/complement.html
index faab90845..c72b6335a 100644
--- a/help/info/complement.html
+++ b/help/info/complement.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/component.html b/help/info/component.html
index 4a09a2785..b0213569e 100644
--- a/help/info/component.html
+++ b/help/info/component.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/connect.html b/help/info/connect.html
index 3e0b3de01..b999bb54f 100644
--- a/help/info/connect.html
+++ b/help/info/connect.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/const.html b/help/info/const.html
index 8bae89df5..62599e0d8 100644
--- a/help/info/const.html
+++ b/help/info/const.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/continue.html b/help/info/continue.html
index 7a4a7a73d..9e64719d2 100644
--- a/help/info/continue.html
+++ b/help/info/continue.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/control.html b/help/info/control.html
index 8feb427b1..570e9169a 100644
--- a/help/info/control.html
+++ b/help/info/control.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/create.html b/help/info/create.html
index f9686af8f..9b9770c60 100644
--- a/help/info/create.html
+++ b/help/info/create.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/deactivate.html b/help/info/deactivate.html
index 04f388c6f..3c9d29d78 100644
--- a/help/info/deactivate.html
+++ b/help/info/deactivate.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/decode_base64.html b/help/info/decode_base64.html
index f2344584b..bfbd80551 100644
--- a/help/info/decode_base64.html
+++ b/help/info/decode_base64.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/decvalue.html b/help/info/decvalue.html
index 1d637d985..72727f4f9 100644
--- a/help/info/decvalue.html
+++ b/help/info/decvalue.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/default.html b/help/info/default.html
index 50fb536e4..7976cfde1 100644
--- a/help/info/default.html
+++ b/help/info/default.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -23,7 +23,7 @@
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
     <td><a href="decvalue.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
-    <td><a href="disconnect.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+    <td><a href="derefers.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
 <p><br clear="all">
diff --git a/help/info/derefers.html b/help/info/derefers.html
new file mode 100644
index 000000000..4044bcf79
--- /dev/null
+++ b/help/info/derefers.html
@@ -0,0 +1,72 @@
+<!--
+ 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
+ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Language" content="en-us">
+<title>derefers</title>
+</head>
+<body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
+<table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
+  <tr>
+    <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+  </tr>
+</table>
+<table border="0" align="right" cellpadding="0" cellspacing="0">
+  <tr>
+    <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
+    <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="default.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="next" href="disconnect.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+  </tr>
+</table>
+<p><br clear="all">
+</p>
+<hr>
+<h1>derefers</h1>
+<hr align="left" width="75%">
+<p>This function is used to start a behavior function referred by a behavior type variable that refers to a behavior name (reference for function name, altstep name or testcase name).</p>
+<hr align="left" width="50%">
+<p>Related keyword:</p>
+<ul>
+  <li><b><font face="Courier New" size="4" color="#003258"> <a href="type.html">type</a></font></b></li>
+</ul>
+<hr align="left" width="50%">
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="center">
+	<font face="Courier New" color="#003258" size="5"><b>derefers (</b></font>
+	<i>reference_var</i>
+	<font face="Courier New" color="#003258" size="5"><b>) (</b></font>
+	<i>arguments</i>
+	<font face="Courier New" color="#003258" size="5"><b> ) </b></font></h3>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>reference_var</b></font> denotes a behavior type variable that refers to a function, an altstep or a testcase.</p>
+  </li>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>arguments</b></font> denotes the argument list of the function, see <a href="function.html"><b>function</b></a>.</p>
+  </li>
+  <li>
+  <p>Details and examples can be found under <a href="type.html#behavior_type"><b>behavior_type</b></a>.</p>
+  </li>
+</ul>
+
+
+<hr align="left" width="50%">
+</body>
+</html>
diff --git a/help/info/disconnect.html b/help/info/disconnect.html
index 524c8ce6f..c009c782e 100644
--- a/help/info/disconnect.html
+++ b/help/info/disconnect.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -22,7 +22,7 @@
   <tr>
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
-    <td><a href="default.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a href="derefers.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
     <td><a href="display.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
diff --git a/help/info/display.html b/help/info/display.html
index af5b94d12..044c4e2f5 100644
--- a/help/info/display.html
+++ b/help/info/display.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/do.html b/help/info/do.html
index 6a42268bb..de3321a34 100644
--- a/help/info/do.html
+++ b/help/info/do.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/done.html b/help/info/done.html
index 65f27d38c..b1de69501 100644
--- a/help/info/done.html
+++ b/help/info/done.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/else.html b/help/info/else.html
index 11a1d3fa6..9970a037d 100644
--- a/help/info/else.html
+++ b/help/info/else.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/encode.html b/help/info/encode.html
index 316b9fba0..e89e8ba7a 100644
--- a/help/info/encode.html
+++ b/help/info/encode.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/encode_base64.html b/help/info/encode_base64.html
index f967169a0..f750107a5 100644
--- a/help/info/encode_base64.html
+++ b/help/info/encode_base64.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/encvalue.html b/help/info/encvalue.html
index 22ae99c87..aa075916e 100644
--- a/help/info/encvalue.html
+++ b/help/info/encvalue.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/enumerated.html b/help/info/enumerated.html
index edbe71edf..376be1931 100644
--- a/help/info/enumerated.html
+++ b/help/info/enumerated.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/error.html b/help/info/error.html
index 92cd11c75..5c337a5f6 100644
--- a/help/info/error.html
+++ b/help/info/error.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/except.html b/help/info/except.html
index a33620519..750e46258 100644
--- a/help/info/except.html
+++ b/help/info/except.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/exception.html b/help/info/exception.html
index fe787908e..fd308ee28 100644
--- a/help/info/exception.html
+++ b/help/info/exception.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/execute.html b/help/info/execute.html
index 54f67536b..66a2d56d2 100644
--- a/help/info/execute.html
+++ b/help/info/execute.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/extension.html b/help/info/extension.html
index e8ca4bf32..76ef3954e 100644
--- a/help/info/extension.html
+++ b/help/info/extension.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/external.html b/help/info/external.html
index 305dbcf4b..7e1a26c79 100644
--- a/help/info/external.html
+++ b/help/info/external.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/fail.html b/help/info/fail.html
index 30929594a..cd4f57156 100644
--- a/help/info/fail.html
+++ b/help/info/fail.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/false.html b/help/info/false.html
index 56aa55eef..1c520f8ca 100644
--- a/help/info/false.html
+++ b/help/info/false.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/float.html b/help/info/float.html
index 5a39aab18..7a922194c 100644
--- a/help/info/float.html
+++ b/help/info/float.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/float2int.html b/help/info/float2int.html
index a28892773..67f3311c3 100644
--- a/help/info/float2int.html
+++ b/help/info/float2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/float2str.html b/help/info/float2str.html
index 10f6e7a18..32dae049c 100644
--- a/help/info/float2str.html
+++ b/help/info/float2str.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/for.html b/help/info/for.html
index fa3ce4bea..78215ce48 100644
--- a/help/info/for.html
+++ b/help/info/for.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/friend.html b/help/info/friend.html
index b36039e2e..44c090261 100644
--- a/help/info/friend.html
+++ b/help/info/friend.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/from.html b/help/info/from.html
index 637ce41e4..8030f2f3b 100644
--- a/help/info/from.html
+++ b/help/info/from.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/function.html b/help/info/function.html
index 53b5253d8..ddf95d689 100644
--- a/help/info/function.html
+++ b/help/info/function.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/get_stringencoding.html b/help/info/get_stringencoding.html
index 2178c723e..159aa95da 100644
--- a/help/info/get_stringencoding.html
+++ b/help/info/get_stringencoding.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/getcall.html b/help/info/getcall.html
index 5b34f1d44..2eb9693f9 100644
--- a/help/info/getcall.html
+++ b/help/info/getcall.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/getreply.html b/help/info/getreply.html
index 959df7a0a..2c84e3065 100644
--- a/help/info/getreply.html
+++ b/help/info/getreply.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/getverdict.html b/help/info/getverdict.html
index 4b3fb660c..0c2fc6bbf 100644
--- a/help/info/getverdict.html
+++ b/help/info/getverdict.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/goto.html b/help/info/goto.html
index 760f4dc46..43dbe1a2b 100644
--- a/help/info/goto.html
+++ b/help/info/goto.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/group.html b/help/info/group.html
index cd3c6864d..b1e9d3729 100644
--- a/help/info/group.html
+++ b/help/info/group.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/hex2bit.html b/help/info/hex2bit.html
index 079d57a67..7c53359dd 100644
--- a/help/info/hex2bit.html
+++ b/help/info/hex2bit.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/hex2int.html b/help/info/hex2int.html
index 7e9d7cf3a..e5dfe00c5 100644
--- a/help/info/hex2int.html
+++ b/help/info/hex2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/hex2oct.html b/help/info/hex2oct.html
index a8314ad4f..80f7ca323 100644
--- a/help/info/hex2oct.html
+++ b/help/info/hex2oct.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/hex2str.html b/help/info/hex2str.html
index bce21eeb2..9f9412746 100644
--- a/help/info/hex2str.html
+++ b/help/info/hex2str.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/hexstring.html b/help/info/hexstring.html
index 166740540..bff732c39 100644
--- a/help/info/hexstring.html
+++ b/help/info/hexstring.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/if.html b/help/info/if.html
index 4b5701598..31641c833 100644
--- a/help/info/if.html
+++ b/help/info/if.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/ifpresent.html b/help/info/ifpresent.html
index 4e2edb715..d55420c33 100644
--- a/help/info/ifpresent.html
+++ b/help/info/ifpresent.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/import.html b/help/info/import.html
index f18446d5c..1930b49a1 100644
--- a/help/info/import.html
+++ b/help/info/import.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/in.html b/help/info/in.html
index b84fa9799..99ae0abe5 100644
--- a/help/info/in.html
+++ b/help/info/in.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/inconc.html b/help/info/inconc.html
index e9beb4592..f1310c893 100644
--- a/help/info/inconc.html
+++ b/help/info/inconc.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/infinity.html b/help/info/infinity.html
index be33dd261..1b477141f 100644
--- a/help/info/infinity.html
+++ b/help/info/infinity.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/inout.html b/help/info/inout.html
index cffb90114..ec4e94c7c 100644
--- a/help/info/inout.html
+++ b/help/info/inout.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/int2bit.html b/help/info/int2bit.html
index e94804a39..d8e5320ee 100644
--- a/help/info/int2bit.html
+++ b/help/info/int2bit.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/int2char.html b/help/info/int2char.html
index 326741de3..c569730d2 100644
--- a/help/info/int2char.html
+++ b/help/info/int2char.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -15,39 +15,54 @@
 <body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
 <table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
   <tr>
-    <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+  <td width=105 height=40>
+     <a href="https://projects.eclipse.org/projects/tools.titan">
+      <img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan">
+     </a>
+  </td>
   </tr>
 </table>
 <table border="0" align="right" cellpadding="0" cellspacing="0">
   <tr>
-    <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
-    <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
-    <td><a alt="previous" href="int2bit.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
-    <td><a alt="next" href="int2float.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+  <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
+  <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
+  <td><a alt="previous" href="int2bit.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+  <td><a alt="next" href="int2enum.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
-<p><br clear="all">
-</p>
-<hr>
+<p> <br clear="all"> </p>
+<hr/>
 <h1>int2char</h1>
 <hr align="left" width="75%">
-<p>This function converts an <b><font face="Courier New">integer</font></b> value in the range of 0 ... 127 (8-bit encoding) into a character value of ISO/IEC 646. The integer value describes the
-8-bit encoding of the character.
-<hr align="left" width="50%">
+<p>This function converts an 
+  <b><font face="Courier New">integer</font></b>
+  value in the range of 0 ... 127 (8-bit encoding) into a character value of ISO/IEC 646. The integer value describes the
+  8-bit encoding of the character.
+<hr align="left" width="50%"/>
 <p>Related keyword:</p>
 <ul>
   <li><b><font face="Courier New" size="4" color="#003258"> <a href="integer.html">integer</a></font></b></li>
   <li><b><a href="charstring.html"><font face="Courier New" size="4" color="#003258"> charstring</font></a></b></li>
 </ul>
-<hr align="left" width="50%">
+<hr align="left" width="50%"/>
 <div align="center">
 <center>
 <table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
   <tr>
-    <td width="100%">
-    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>int2char</b></font><font face="Courier New" color="#003258" size="5"><b>(</b></font><i>integer value</i><font
-      face="Courier New" color="#003258" size="5"><b>) return charstring</b></font></h3>
-    </td>
+  <td width="100%">
+  <h3 align="center">
+    <font face="Courier New" color="#003258" size="5">
+      <b>int2char</b>
+    </font>
+    <font face="Courier New" color="#003258" size="5">
+      <b>(</b>
+    </font>
+    <i>integer value</i>
+    <font face="Courier New" color="#003258" size="5">
+      <b>) return charstring</b> 
+    </font>
+  </h3>
+  </td>
   </tr>
 </table>
 </center>
@@ -59,9 +74,11 @@
 </ul>
 <hr align="left" width="25%">
 <p>Example 1:</p>
-<p><font face="Courier New">var charstring MyChar; <br>
-... <br>
-&nbsp;&nbsp;&nbsp;MyChar := int2char(97); // MyChar will contain the character 'a' </font></p>
+<p>
+<font face="Courier New">
+var charstring MyChar;<br/>
+MyChar := int2char(97); // MyChar will contain the character 'a' 
+</font></p>
 <hr align="left" width="25%">
 </body>
-</html>
+</html>
\ No newline at end of file
diff --git a/help/info/int2enum.html b/help/info/int2enum.html
new file mode 100644
index 000000000..279b7409f
--- /dev/null
+++ b/help/info/int2enum.html
@@ -0,0 +1,91 @@
+<!--
+ 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
+ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Language" content="en-us">
+<title>int2enum</title>
+</head>
+<body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
+<table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
+  <tr>
+    <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+  </tr>
+</table>
+<table border="0" align="right" cellpadding="0" cellspacing="0">
+  <tr>
+    <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
+    <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="int2char.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="next" href="int2float.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+  </tr>
+</table>
+<p><br clear="all">
+</p>
+<hr>
+<h1>int2enum</h1>
+<hr align="left" width="75%"/>
+<p>This function converts an <b><font face="Courier New">integer</font></b> value into an <b><font face="Courier New">enumerated</font></b> value of a given enumerated type. 
+<hr align="left" width="50%"/>
+<p>Related keyword:</p>
+<ul>
+  <li><b><font face="Courier New" size="4" color="#003258"> <a href="integer.html">integer</a></font></b></li>
+  <li><b><a href="enumerated.html"><font face="Courier New" size="4" color="#003258">enumerated</font></a></b></li>
+</ul>
+<hr align="left" width="50%">
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="center">
+		<font face="Courier New" color="#003258" size="5"><b>int2enum ( in integer </b></font>
+		<i>inpar</i>
+		<font  face="Courier New" color="#003258" size="5"><b> ,out</b></font>
+		Enumerated_type
+		<i>outpar</i>
+		<font  face="Courier New" color="#003258" size="5"><b> )</b></font>
+	</h3>
+	
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+  <li>
+  <p>The integer value shall be
+provided as in parameter "inpar" and the result of the conversion shall be stored in an out parameter "outpar".</p>
+  </li>
+  <li>
+  <p>The type of the out parameter determines the type into which the in parameter is converted.</p>
+  </li>
+</ul>
+<hr align="left" width="25%"/>
+
+<p>Example:</p>
+<p>
+	<font face="Courier New">
+		type enumerated MyFirstEnumType { <br/>
+			&nbsp;&nbsp;&nbsp;Monday, Tuesday, Wednesday, Thursday, Friday <br/>
+		};<br/> <br/> 
+		type enumerated MySecondEnumType {<br/>
+			&nbsp;&nbsp;&nbsp;Saturday(-3), Sunday (0), Monday<br/>
+		};<br/><br/>
+		//within a dynamic language element:<br/>
+		var MyFirstEnumType firstEnum := Tuesday;<br/>
+		var MySecondEnumType secondEnum := Sunday;<br/><br/>
+		int2enum(0, firstEnum) // firstEnum == Monday<br/>
+		int2enum(1, secondEnum) // secondEnum == Monday<br/>
+	</font>
+</p>
+
+<hr align="left" width="25%"/>
+</body>
+</html>
diff --git a/help/info/int2float.html b/help/info/int2float.html
index 7af596e52..5d5894290 100644
--- a/help/info/int2float.html
+++ b/help/info/int2float.html
@@ -1,16 +1,16 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
- -->
+-->
 <html>
 <head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<meta http-equiv="Content-Language" content="en-us">
-<title>int2float</title>
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+  <meta http-equiv="Content-Language" content="en-us">
+  <title>int2float</title>
 </head>
 <body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
 <table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
@@ -22,16 +22,15 @@
   <tr>
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
-    <td><a alt="previous" href="int2char.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="int2enum.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
     <td><a alt="next" href="int2hex.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
-<p><br clear="all">
-</p>
+<p><br clear="all"></p>
 <hr>
 <h1>int2float</h1>
 <hr align="left" width="75%">
-<p>This function converts an <b><font face="Courier New">integer</font></b> value into a <b><font face="Courier New">float</font></b> value.
+<p>This function converts an <b><font face="Courier New">integer</font></b> value into a <b><font face="Courier New">float</font></b> value.</p>
 <hr align="left" width="50%">
 <p>Related keyword:</p>
 <ul>
@@ -56,7 +55,7 @@
 <hr align="left" width="25%">
 <p>Example 1:</p>
 <p><font face="Courier New"> const float c_csarnoka := int2float(3); </font></p>
-<p>The constant called c_csarnoka will have the floating point value 3.0.
+<p>The constant called c_csarnoka will have the floating point value 3.0.</p>
 <hr align="left" width="25%">
 </body>
 </html>
diff --git a/help/info/int2hex.html b/help/info/int2hex.html
index 68d077db2..11389da1f 100644
--- a/help/info/int2hex.html
+++ b/help/info/int2hex.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/int2oct.html b/help/info/int2oct.html
index 8a600ffc9..4ba6fe0fb 100644
--- a/help/info/int2oct.html
+++ b/help/info/int2oct.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/int2str.html b/help/info/int2str.html
index 11d0b7552..c77578612 100644
--- a/help/info/int2str.html
+++ b/help/info/int2str.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/int2unichar.html b/help/info/int2unichar.html
index a90ffd38a..7fccc2a62 100644
--- a/help/info/int2unichar.html
+++ b/help/info/int2unichar.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/integer.html b/help/info/integer.html
index cf4fe5832..0231adef2 100644
--- a/help/info/integer.html
+++ b/help/info/integer.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/interleave.html b/help/info/interleave.html
index 6f941010f..ee49e8d40 100644
--- a/help/info/interleave.html
+++ b/help/info/interleave.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/isbound.html b/help/info/isbound.html
index 76a88f74c..178e8040d 100644
--- a/help/info/isbound.html
+++ b/help/info/isbound.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/ischosen.html b/help/info/ischosen.html
index 480609a6d..87c602f20 100644
--- a/help/info/ischosen.html
+++ b/help/info/ischosen.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/ispresent.html b/help/info/ispresent.html
index 15b27af7f..eacd01156 100644
--- a/help/info/ispresent.html
+++ b/help/info/ispresent.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/isvalue.html b/help/info/isvalue.html
index e853f8182..e5cc3608d 100644
--- a/help/info/isvalue.html
+++ b/help/info/isvalue.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/kill.html b/help/info/kill.html
index cc5a3efab..4b7e8bd73 100644
--- a/help/info/kill.html
+++ b/help/info/kill.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/killed.html b/help/info/killed.html
index 9c38b856b..4ddc07c60 100644
--- a/help/info/killed.html
+++ b/help/info/killed.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/label.html b/help/info/label.html
index ea9735075..aba9a5b74 100644
--- a/help/info/label.html
+++ b/help/info/label.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/language.html b/help/info/language.html
index 065950f50..1b84ebb2a 100644
--- a/help/info/language.html
+++ b/help/info/language.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/length.html b/help/info/length.html
index 55ce6dc47..1d3c159b5 100644
--- a/help/info/length.html
+++ b/help/info/length.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/lengthof.html b/help/info/lengthof.html
index ce807f19b..f1cc2cfff 100644
--- a/help/info/lengthof.html
+++ b/help/info/lengthof.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/log.html b/help/info/log.html
index 61fbb4c73..570a3b515 100644
--- a/help/info/log.html
+++ b/help/info/log.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -23,7 +23,7 @@
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
     <td><a href="lengthof.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
-    <td><a href="map.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+    <td><a href="log2str.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
 <p><br clear="all">
diff --git a/help/info/log2str.html b/help/info/log2str.html
new file mode 100644
index 000000000..99fe3d8df
--- /dev/null
+++ b/help/info/log2str.html
@@ -0,0 +1,67 @@
+<!--
+ 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
+ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Language" content="en-us">
+<title>log2str</title>
+</head>
+<body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
+<table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
+  <tr>
+    <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+  </tr>
+</table>
+<table border="0" align="right" cellpadding="0" cellspacing="0">
+  <tr>
+    <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
+    <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
+    <td><a href="log.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a href="map.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+  </tr>
+</table>
+<p><br clear="all">
+</p>
+<hr>
+<h1>log2str</h1>
+<hr align="left" width="75%">
+<p>The function log2str  can be used to log into charstring  instead of the log file.</p>
+<hr align="left" width="50%"/>
+<p>Related keyword:</p>
+<ul>
+  <li><b><font face="Courier New" size="4" color="#003258"> <a href="log.html">log</a></font></b></li>
+  <li><b><a href="charstring.html"><font face="Courier New" size="4" color="#003258">charstring</font></a></b></li>
+</ul>
+<hr align="left" width="50%">
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="center">
+	<font face="Courier New" color="#003258" size="5"><b>log2str ( ... ) return charstring"</b></font> 
+	</h3>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+This function can be parameterized in the same way as the log function.<br/>
+It returns a charstring value which contains the log string for all the provided parameters, 
+but it does not contain the timestamp, severity and call stack information, thus the output does not depend on the runtime configuration file. <br/>
+The parameters are interpreted the same way as they are in the log function: 
+their string values are identical to what the log statement writes to the log file. <br/>
+The extra information (timestamp, severity, call stack) not included in the output can be obtained by writing external functions 
+which use the runtime’s Logger class to obtain the required data.
+</ul>
+<hr align="left" width="25%">
+<p><a HREF="../info/BNF.html#logstatement">BNF definition</a> of <font face="Courier New">log</font></p>
+</body>
+</html>
diff --git a/help/info/map.html b/help/info/map.html
index 49dec2dff..e653df99c 100644
--- a/help/info/map.html
+++ b/help/info/map.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/match.html b/help/info/match.html
index 9c3d3ff78..9f85d54a9 100644
--- a/help/info/match.html
+++ b/help/info/match.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/message.html b/help/info/message.html
index 8b7e30702..2d82d81e2 100644
--- a/help/info/message.html
+++ b/help/info/message.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/mixed.html b/help/info/mixed.html
index d12c001fa..524dbe222 100644
--- a/help/info/mixed.html
+++ b/help/info/mixed.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/mod.html b/help/info/mod.html
index 6faba2457..a276ed5d7 100644
--- a/help/info/mod.html
+++ b/help/info/mod.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/modifies.html b/help/info/modifies.html
index e1a838e02..9ff9b9d80 100644
--- a/help/info/modifies.html
+++ b/help/info/modifies.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/module.html b/help/info/module.html
index 18e53ffeb..279b0e132 100644
--- a/help/info/module.html
+++ b/help/info/module.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/modulepar.html b/help/info/modulepar.html
index 3f9ac7f33..aab4280a6 100644
--- a/help/info/modulepar.html
+++ b/help/info/modulepar.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/mtc.html b/help/info/mtc.html
index 5a3a6aa91..5fc7dc13d 100644
--- a/help/info/mtc.html
+++ b/help/info/mtc.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/noblock.html b/help/info/noblock.html
index 3a757bc1a..daad11437 100644
--- a/help/info/noblock.html
+++ b/help/info/noblock.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/none.html b/help/info/none.html
index 465844ac6..e24b3f690 100644
--- a/help/info/none.html
+++ b/help/info/none.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/not.html b/help/info/not.html
index ea6cbd0ac..2119f84e0 100644
--- a/help/info/not.html
+++ b/help/info/not.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/not4b.html b/help/info/not4b.html
index 23618406f..c9e1c7d63 100644
--- a/help/info/not4b.html
+++ b/help/info/not4b.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/nowait.html b/help/info/nowait.html
index 70fd3daad..decd5a84f 100644
--- a/help/info/nowait.html
+++ b/help/info/nowait.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/null.html b/help/info/null.html
index dfafcf236..bbe6ecdc2 100644
--- a/help/info/null.html
+++ b/help/info/null.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/objid.html b/help/info/objid.html
index 51d3d93d0..38075d892 100644
--- a/help/info/objid.html
+++ b/help/info/objid.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/oct2bit.html b/help/info/oct2bit.html
index aafecee1d..31c570a60 100644
--- a/help/info/oct2bit.html
+++ b/help/info/oct2bit.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/oct2char.html b/help/info/oct2char.html
index 5b9a3e4aa..3e98daccb 100644
--- a/help/info/oct2char.html
+++ b/help/info/oct2char.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/oct2hex.html b/help/info/oct2hex.html
index 9b6981119..0256d5733 100644
--- a/help/info/oct2hex.html
+++ b/help/info/oct2hex.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/oct2int.html b/help/info/oct2int.html
index d4fe34773..db955fdac 100644
--- a/help/info/oct2int.html
+++ b/help/info/oct2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/oct2str.html b/help/info/oct2str.html
index 665eaf6f4..7b805d895 100644
--- a/help/info/oct2str.html
+++ b/help/info/oct2str.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/oct2unichar.html b/help/info/oct2unichar.html
index 3d6219cad..4378fe0f3 100644
--- a/help/info/oct2unichar.html
+++ b/help/info/oct2unichar.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/octetstring.html b/help/info/octetstring.html
index e97382d04..49d2a1411 100644
--- a/help/info/octetstring.html
+++ b/help/info/octetstring.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/of.html b/help/info/of.html
index 4f42e94e8..7c5874b24 100644
--- a/help/info/of.html
+++ b/help/info/of.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/omit.html b/help/info/omit.html
index 218fe5426..a8555059b 100644
--- a/help/info/omit.html
+++ b/help/info/omit.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/on.html b/help/info/on.html
index 944626b78..2c825e80a 100644
--- a/help/info/on.html
+++ b/help/info/on.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/operators.html b/help/info/operators.html
index 66c7482f4..5906f4ba7 100644
--- a/help/info/operators.html
+++ b/help/info/operators.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/optional.html b/help/info/optional.html
index 22c315789..c1f8f9ffb 100644
--- a/help/info/optional.html
+++ b/help/info/optional.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/or.html b/help/info/or.html
index 6da6dfd75..456783500 100644
--- a/help/info/or.html
+++ b/help/info/or.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/or4b.html b/help/info/or4b.html
index 466adfa00..6f68b995c 100644
--- a/help/info/or4b.html
+++ b/help/info/or4b.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/out.html b/help/info/out.html
index 0918920e3..c726c9b18 100644
--- a/help/info/out.html
+++ b/help/info/out.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/override.html b/help/info/override.html
index 13fe624b0..a92d3b39f 100644
--- a/help/info/override.html
+++ b/help/info/override.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/param.html b/help/info/param.html
index 4dbaebba8..2f3357eb2 100644
--- a/help/info/param.html
+++ b/help/info/param.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/pass.html b/help/info/pass.html
index 7769f83a0..aa2b1ed07 100644
--- a/help/info/pass.html
+++ b/help/info/pass.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/pattern.html b/help/info/pattern.html
index ad908538e..5e84d4573 100644
--- a/help/info/pattern.html
+++ b/help/info/pattern.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/permutation.html b/help/info/permutation.html
index cd95bec87..cf1cff3d5 100644
--- a/help/info/permutation.html
+++ b/help/info/permutation.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/port.html b/help/info/port.html
index eb29a25f7..94ca88c70 100644
--- a/help/info/port.html
+++ b/help/info/port.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/private.html b/help/info/private.html
index ddc0686b5..50f893df6 100644
--- a/help/info/private.html
+++ b/help/info/private.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/procedure.html b/help/info/procedure.html
index 11a0b8153..ad77b9d47 100644
--- a/help/info/procedure.html
+++ b/help/info/procedure.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/profiler.html b/help/info/profiler.html
index 1f5c2bf29..c8403f13d 100644
--- a/help/info/profiler.html
+++ b/help/info/profiler.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/public.html b/help/info/public.html
index 7448a817f..0be342d6c 100644
--- a/help/info/public.html
+++ b/help/info/public.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/raise.html b/help/info/raise.html
index 9873bd089..1bf8a2076 100644
--- a/help/info/raise.html
+++ b/help/info/raise.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/read.html b/help/info/read.html
index 6fc460256..4f31e1d94 100644
--- a/help/info/read.html
+++ b/help/info/read.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/receive.html b/help/info/receive.html
index c78d8bd0f..5a5570f53 100644
--- a/help/info/receive.html
+++ b/help/info/receive.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/record.html b/help/info/record.html
index cf2c635e9..8b9826b59 100644
--- a/help/info/record.html
+++ b/help/info/record.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/recursive.html b/help/info/recursive.html
index d7aee11e0..702a601ab 100644
--- a/help/info/recursive.html
+++ b/help/info/recursive.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -23,7 +23,7 @@
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
     <td><a href="record.html" alt="previous"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
-    <td><a href="regexp.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+    <td><a href="refers.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
 <p><br clear="all">
diff --git a/help/info/refers.html b/help/info/refers.html
new file mode 100644
index 000000000..24e6f8d0a
--- /dev/null
+++ b/help/info/refers.html
@@ -0,0 +1,68 @@
+<!--
+ 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
+ -->
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<meta http-equiv="Content-Language" content="en-us">
+<title>refers</title>
+</head>
+<body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
+<table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
+  <tr>
+    <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="../images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+  </tr>
+</table>
+<table border="0" align="right" cellpadding="0" cellspacing="0">
+  <tr>
+    <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
+    <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="recursive.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="next" href="regexp.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
+  </tr>
+</table>
+<p><br clear="all">
+</p>
+<hr>
+<h1>refers</h1>
+<hr align="left" width="75%">
+<p>This function is used to define a variable having reference for behavior type (reference for function type, altstep type or testcase type).</p>
+<hr align="left" width="50%">
+<p>Related keyword:</p>
+<ul>
+  <li><b><font face="Courier New" size="4" color="#003258"> <a href="type.html">type</a></font></b></li>
+</ul>
+<hr align="left" width="50%">
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="center">
+	<font face="Courier New" color="#003258" size="5"><b>refers</b></font>
+	<font face="Courier New" color="#003258" size="5"><b>(</b></font> 
+	<i>behavior_name</i>
+	<font face="Courier New" color="#003258" size="5"><b>) </b></font></h3>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>behavior_name</b></font> denotes a name of a function, altstep or testcase.</p>
+  </li>
+  <li>
+  <p>Details and examples can be found under <a href="type.html#behavior_type"><b>behavior_type</b></a>.</p>
+  </li>
+</ul>
+
+
+<hr align="left" width="50%">
+</body>
+</html>
diff --git a/help/info/regexp.html b/help/info/regexp.html
index b06763020..e4e533a03 100644
--- a/help/info/regexp.html
+++ b/help/info/regexp.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -22,7 +22,7 @@
   <tr>
     <td><a href="../titan_main.html" alt="contents"><img border="0" src="../images/ao.jpg" width="53" height="40"></a></td>
     <td><a href="../titan_index.html" alt="index"><img border="0" src="../images/up.jpg" width="53" height="40"></a></td>
-    <td><a alt="previous" href="recursive.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
+    <td><a alt="previous" href="refers.html"><img border="0" src="../images/left.jpg" width="53" height="40"></a></td>
     <td><a alt="next" href="rem.html"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
diff --git a/help/info/rem.html b/help/info/rem.html
index 5281b9068..dd450b211 100644
--- a/help/info/rem.html
+++ b/help/info/rem.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/remove_bom.html b/help/info/remove_bom.html
index 250bd9ce5..4df316c7c 100644
--- a/help/info/remove_bom.html
+++ b/help/info/remove_bom.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/repeat.html b/help/info/repeat.html
index 375577eb8..8a86e6895 100644
--- a/help/info/repeat.html
+++ b/help/info/repeat.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/replace.html b/help/info/replace.html
index e13c4ee99..180908847 100644
--- a/help/info/replace.html
+++ b/help/info/replace.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/reply.html b/help/info/reply.html
index a6a1c0ca1..4f178444a 100644
--- a/help/info/reply.html
+++ b/help/info/reply.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/return.html b/help/info/return.html
index f75dd79a9..8c6d016fd 100644
--- a/help/info/return.html
+++ b/help/info/return.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/rnd.html b/help/info/rnd.html
index 2b14697b2..de5d63042 100644
--- a/help/info/rnd.html
+++ b/help/info/rnd.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/running.html b/help/info/running.html
index 40abdc673..773946296 100644
--- a/help/info/running.html
+++ b/help/info/running.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/runs.html b/help/info/runs.html
index 81feb494f..48f989544 100644
--- a/help/info/runs.html
+++ b/help/info/runs.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/select.html b/help/info/select.html
index a633b0f8c..c87410fea 100644
--- a/help/info/select.html
+++ b/help/info/select.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/self.html b/help/info/self.html
index 8241cfc1e..ecedea1f1 100644
--- a/help/info/self.html
+++ b/help/info/self.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/send.html b/help/info/send.html
index c7400a78d..3e1bd5d9c 100644
--- a/help/info/send.html
+++ b/help/info/send.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/sender.html b/help/info/sender.html
index 837fdb0af..e11ac04c7 100644
--- a/help/info/sender.html
+++ b/help/info/sender.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/set.html b/help/info/set.html
index 791996bd4..fc5a13c62 100644
--- a/help/info/set.html
+++ b/help/info/set.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/setverdict.html b/help/info/setverdict.html
index ba8e281e0..33fa5f92d 100644
--- a/help/info/setverdict.html
+++ b/help/info/setverdict.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/signature.html b/help/info/signature.html
index 572affdbd..a16e7b61c 100644
--- a/help/info/signature.html
+++ b/help/info/signature.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/sizeof.html b/help/info/sizeof.html
index 9d9e49165..db0da42f8 100644
--- a/help/info/sizeof.html
+++ b/help/info/sizeof.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/start.html b/help/info/start.html
index dec0f968d..b4ddf4c6f 100644
--- a/help/info/start.html
+++ b/help/info/start.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/stop.html b/help/info/stop.html
index 0bc493c5b..815c2cfe9 100644
--- a/help/info/stop.html
+++ b/help/info/stop.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/str2bit.html b/help/info/str2bit.html
index 52e7ebcae..45d37e6de 100644
--- a/help/info/str2bit.html
+++ b/help/info/str2bit.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/str2float.html b/help/info/str2float.html
index a621872e7..c7aa1b69b 100644
--- a/help/info/str2float.html
+++ b/help/info/str2float.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/str2hex.html b/help/info/str2hex.html
index 8b87335a0..52ac9b6ae 100644
--- a/help/info/str2hex.html
+++ b/help/info/str2hex.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/str2int.html b/help/info/str2int.html
index fcae067d8..e264e8ab5 100644
--- a/help/info/str2int.html
+++ b/help/info/str2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/str2oct.html b/help/info/str2oct.html
index 8a13767e1..e27f1d50e 100644
--- a/help/info/str2oct.html
+++ b/help/info/str2oct.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/subset.html b/help/info/subset.html
index 2c699e72c..e09697033 100644
--- a/help/info/subset.html
+++ b/help/info/subset.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -45,7 +45,7 @@
 <table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
   <tr>
     <td width="100%">
-    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>subset{</b></font><i>value_list</i><font face="Courier New" color="#003258" size="5"><b>}</b></font></h3>
+    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>subset(</b></font><i>value_list</i><font face="Courier New" color="#003258" size="5"><b>)</b></font></h3>
     </td>
   </tr>
 </table>
@@ -56,8 +56,27 @@
   <p><i>value_list</i> is a comma separated list containing all the values that are&nbsp; permitted for the concerned field. The field must not contain elements not included in the list.</p>
   </li>
 </ul>
-<hr align="left" width="25%">
-<hr align="left" width="25%">
+<hr align="left" width="50%">
+<p><a name="Example 1">Example 1</a>
+<font face="Courier New">
+	<p>type set of integer MySetOfType (0 .. 10);
+	<p>template MySetOfType MyTemplate1 := subset (1, 2, 3);
+</font>
+<p>matches any sequence of integers which contains zero or one occurrences of the numbers 1, 2 and 3 in any order and position </p>
+<p><a name="Example 2">Example 2</a>
+<font face="Courier New">
+	<p>template MySetOfType MyTemplate2 := subset (1, 2, ?);
+</font>
+<p>matches any sequence of integers which contains zero or one occurrences of the numbers 1, 2 and a valid integer value (i.e. between 0 and 10, inclusive) in any order and position </p>
+<p><a name="Example 3">Example 3</a>
+<font face="Courier New">
+	<p>type record of integer RoI;
+	<p>type set of integer SoI;
+	<p>template RoI t_RoI1 := {1, 2, ?};
+	<p>template SoI t_SoI1 := subset(all from t_RoI1);
+</font>
+<p>Results in subset(1, 2, ?).</p>
+<hr align="left" width="50%">
 <p><a HREF="BNF.html#subsetmatch">BNF definition</a> of <font face="Courier New">subset</font></p>
 </body>
 </html>
diff --git a/help/info/substr.html b/help/info/substr.html
index 59bbd3192..fcc490b37 100644
--- a/help/info/substr.html
+++ b/help/info/substr.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/superset.html b/help/info/superset.html
index 1fec6085f..4695de22a 100644
--- a/help/info/superset.html
+++ b/help/info/superset.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -45,7 +45,7 @@
 <table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
   <tr>
     <td width="100%">
-    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>superset{</b></font><i>value_list</i><font face="Courier New" color="#003258" size="5"><b>}</b></font></h3>
+    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>superset(</b></font><i>value_list</i><font face="Courier New" color="#003258" size="5"><b>)</b></font></h3>
     </td>
   </tr>
 </table>
@@ -56,8 +56,27 @@
   <p><i>value_list</i> is a comma separated list containing all the values that the concerned field must contain. The field may contain elements not included in the list.</p>
   </li>
 </ul>
-<hr align="left" width="25%">
-<hr align="left" width="25%">
+<hr align="left" width="50%">
+<p><a name="Example 1">Example 1</a>
+<font face="Courier New">
+	<p>type set of integer MySetOfType (0 .. 10);
+	<p>template MySetOfType MyTemplate1 := superset (1, 2, 3);
+</font>
+<p>Matches any sequence of integers which contains at least one occurrences of the numbers 1, 2 and at least one more valid integer value 
+(i.e. between 0 and 10, inclusively), in any order and position.</p>
+<p><a name="Example 2">Example 2</a>
+<font face="Courier New">
+	<p>template MySetOfType MyTemplate2_AnyValue := superset (1, 2, ?);
+</font>
+<p>Matches any sequence of integers which contains at least one occurrences of the numbers 1, 2 and at least one more valid integer value.</p>
+<p><a name="Example 3">Example 3</a>
+<font face="Courier New">
+	<p>type record of integer RoI;
+	<p>type set of integer SoI;
+	<p>template RoI t_RoI1 := {1, 2, ?};
+	<p>template SoI t_SoI1 := superset(all from t_RoI1);
+</font>
+<p>Results in superset(1, 2, ?) .</p>
 <p><a HREF="BNF.html#supersetmatch">BNF definition</a> of <font face="Courier New">superset</font></p>
 </body>
 </html>
diff --git a/help/info/system.html b/help/info/system.html
index 178bf1cb9..df1c1cb87 100644
--- a/help/info/system.html
+++ b/help/info/system.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/template.html b/help/info/template.html
index d9a4e96a3..974622893 100644
--- a/help/info/template.html
+++ b/help/info/template.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/testcase.html b/help/info/testcase.html
index 77c7a1d2c..52ffeb5a1 100644
--- a/help/info/testcase.html
+++ b/help/info/testcase.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/testcasename.html b/help/info/testcasename.html
index e30215180..c09374af7 100644
--- a/help/info/testcasename.html
+++ b/help/info/testcasename.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/timeout.html b/help/info/timeout.html
index d6f5b8aac..17195e72d 100644
--- a/help/info/timeout.html
+++ b/help/info/timeout.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/timer.html b/help/info/timer.html
index 19009e19c..aadf60503 100644
--- a/help/info/timer.html
+++ b/help/info/timer.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/to.html b/help/info/to.html
index 6bd354a7b..01a3e5bb5 100644
--- a/help/info/to.html
+++ b/help/info/to.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/trigger.html b/help/info/trigger.html
index cad631b89..0754052cc 100644
--- a/help/info/trigger.html
+++ b/help/info/trigger.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/true.html b/help/info/true.html
index 4af0a2f20..5ce2dde64 100644
--- a/help/info/true.html
+++ b/help/info/true.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/type.html b/help/info/type.html
index 688b6aece..9fe661274 100644
--- a/help/info/type.html
+++ b/help/info/type.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -26,23 +26,57 @@
     <td><a href="unichar2char.html" alt="next"><img border="0" src="../images/right.jpg" width="53" height="40"></a></td>
   </tr>
 </table>
-<p><br clear="all">
-</p>
+<p><br clear="all"></p>
 <hr>
 <h1>type</h1>
 <hr align="left" width="75%">
-<p>The keyword is used to specify user-defined structured types.
+<p>The keyword is used to specify user-defined 
+<a href="#type">structured types</a>, 
+<a href="#subtype">subtypes</a> or 
+<a href="#behavior_type">behavior types</a> (
+<a href="#function_type">function type</a>, 
+<a href="#altstep_type">altstep type</a> or 
+<a href="#testcase_type">testcase type</a>).</p>
+
+<hr align="left" width="50%">
+<p>Related keyword:</p>
+<ul>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="record.html">record</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="union.html">union</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="set.html">set</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="enumerated.html">enumerated</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="port.html">port</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="component.html">component</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="function.html">function</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="altstep.html">altstep</a></font></b></li>
+<li><b><font face="Courier New" size="4" color="#003258"><a href="testcase.html">testcase</a></font></b></li>
+  <li><b><font face="Courier New" size="4" color="#003258"> <a href="refers.html">refers</a></font></b></li>
+  <li><b><a href="derefers.html"><font face="Courier New" size="4" color="#003258">derefers</font></a></b></li>
+  <li><b><font face="Courier New" size="4" color="#003258"><a href="apply.html">apply</a></font></b></li>
+</ul>
+
 <hr align="left" width="50%">
+<h2> <a name=#type>1. Structured type</a></h2>
 <div align="center">
 <center>
 <table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
   <tr>
     <td width="100%">
-    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>type </b></font> ( <font face="Courier New" color="#003258" size="5"><b>record</b></font> | <font face="Courier New"
-      color="#003258" size="5"> <b>union</b></font> | <font face="Courier New" color="#003258" size="5"> <b>set</b></font> | <font face="Courier New" color="#003258" size="5"> <b>record of</b></font>
-    | <font face="Courier New" color="#003258" size="5"> <b>set of</b></font> | <font face="Courier New" color="#003258" size="5"> <b>enumerated</b></font> | <font face="Courier New" color="#003258"
-      size="5"> <b>port</b></font> | <font face="Courier New" color="#003258" size="5"> <b>component</b></font> ) <i>identifier&nbsp;</i> <font face="Courier New" color="#003258" size="5"> <b>{</b></font>
-    <i> body</i> <font face="Courier New" color="#003258" size="5"> <b>};</b></font></h3>
+    <h3 align="left">
+		<font face="Courier New" color="#003258" size="5"><b>type </b></font> ( 
+			<font face="Courier New" color="#003258" size="5"><b>record</b></font> | 
+			<font face="Courier New" color="#003258" size="5"> <b>union</b></font> | 
+			<font face="Courier New" color="#003258" size="5"> <b>set</b></font> |
+			<font face="Courier New" color="#003258" size="5"> <b>record of</b></font> | 
+			<font face="Courier New" color="#003258" size="5"> <b>set of</b></font> | 
+			<font face="Courier New" color="#003258" size="5"> <b>enumerated</b></font> | 
+			<font face="Courier New" color="#003258" size="5"> <b>port</b></font> | 
+			<font face="Courier New" color="#003258" size="5"> <b>component</b></font> ) 
+		<i>identifier&nbsp;</i> 
+		<font face="Courier New" color="#003258" size="5"> <b>{</b></font>
+		<i> body</i> 
+		<font face="Courier New" color="#003258" size="5"> <b>};</b></font>
+	</h3>
     </td>
   </tr>
 </table>
@@ -56,16 +90,19 @@
   <p><a href="record.html"><font face="Courier New" color="#003258" size="4"><b>record</b></font></a> denotes an ordered structured type.</p>
   </li>
   <li>
-  <p><a href="union.html"><font face="Courier New" color="#003258" size="4"><b>union</b></font></a> is a structure which can take one and only one of a finite number of known types.</p>
+  <p><a href="union.html"><font face="Courier New" color="#003258" size="4"><b>union</b></font></a> 
+  is a structure which can take one and only one of a finite number of known types.</p>
   </li>
   <li>
   <p><a href="set.html"><font face="Courier New" color="#003258" size="4"><b>set</b></font></a> denotes an unordered structured type.</p>
   </li>
   <li>
-  <p><a href="record.html"><font face="Courier New" color="#003258" size="4"><b>record of</b></font></a> denotes a record the elements of which are all of the same type.</p>
+  <p><a href="record.html"><font face="Courier New" color="#003258" size="4"><b>record of</b></font></a> 
+  denotes a record the elements of which are all of the same type.</p>
   </li>
   <li>
-  <p><a href="set.html"><font face="Courier New" color="#003258" size="4"><b>set of</b></font></a> denotes a set the elements of which are all of the same type.</p>
+  <p><a href="set.html"><font face="Courier New" color="#003258" size="4"><b>set of</b></font></a> 
+  denotes a set the elements of which are all of the same type.</p>
   </li>
   <li>
   <p><a href="enumerated.html"><font face="Courier New" color="#003258" size="4"><b>enumerated</b></font></a> stands for a type that take only a distinct named set of values.</p>
@@ -83,21 +120,31 @@
   <p><i>body</i> contains the type definition itself. Its content differs from type to type.</p>
   </li>
 </ul>
-<hr align="left" width="75%" color="#0094D2">
+<hr align="left" width="75%" >
+<h2> <a name=#subtype>2. Subtype</a></h2>
 <p>Another use of the keyword is the subtype definition.</p>
 <ul>
   <li>Subtypes define a new constrained type from an already existing parent type.</li>
   <li>When no constraint is given, it is possible to define type aliases.</li>
 </ul>
-<hr align="left" width="50%" color="#0094D2">
+<hr align="left" width="75%">
 <div align="center">
 <center>
 <table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
   <tr>
     <td width="100%">
-    <h3 align="center"><font face="Courier New" color="#003258" size="5"><b>type</b></font> <i>parent_identifier</i>&nbsp; (<i>identifier&nbsp;</i> | <font face="Courier New" color="#003258"
-      size="5"> <b>address</b></font>) [<i>array_def</i>] [<font face="Courier New" color="#003258" size="5"><b>(</b></font><i>list</i><font face="Courier New" color="#003258" size="5"><b>)</b></font>]
-    [<i>length</i>] <font face="Courier New" color="#003258" size="5"><b>;</b></font> &nbsp;</h3>
+    <h3 align="left">
+		<font face="Courier New" color="#003258" size="5"><b>type</b></font>
+		<i>parent_identifier</i>&nbsp; ( 
+		<i>identifier&nbsp;</i> | 
+		<font face="Courier New" color="#003258" size="5"> <b>address</b></font>) [
+			<i>array_def</i>] [ 
+				<font face="Courier New" color="#003258" size="5"><b>(</b></font>
+				<i>list</i>
+				<font face="Courier New" color="#003258" size="5"><b>)</b></font>]
+			[<i>length</i>] [
+			<font face="Courier New" color="#003258" size="5"><b>;</b></font> ]
+	</h3>
     </td>
   </tr>
 </table>
@@ -130,13 +177,145 @@
   </li>
 </ul>
 <hr align="left" width="50%">
-<p>Example 1:
-<p><font face="Courier New">type enumerated Example {tisdag, fredag, onsdag};</font>
+<p>Example 1:</p>
+<p><font face="Courier New">type enumerated Example {tisdag, fredag, onsdag};</font></p>
 <p>The enumerated type called Example containing three elements is defined.</p>
-<p>Example 2:
-<p><font face="Courier New">type Ex_subt Example (tisdag, onsdag);</font>
+<p>Example 2:</p>
+<p><font face="Courier New">type Ex_subt Example (tisdag, onsdag);</font></p>
 <p>The sub-type, called Ex_subt, may contain only two elements of the parent type (called Example).</p>
-<hr align="left" width="25%">
+
+
+<hr align="left" width="75%"/>
+<h2> <a name=#behavior_type>3. Behavior type</a></h2>
+<p>Another use of the keyword is the behavior type definition.</p>
+<p>It introduces a function type, an altstep type or a testcase type.</p>
+<ul>
+  <li>
+  <p>A function, altstep or testcase has the given type if its formal parameter list, runs on type and returned value type is the same as given in the type definition.</p>
+  </li>
+</ul>
+<hr align="left" width="50%"/>
+<h3> <a name=#function_type>3.1. Function type</a></h3>
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="left"><font face="Courier New" color="#003258" size="5"><b>type function</b></font> <i>Function_type_name</i>&nbsp;<b>(</b><i> formal_parameter_list&nbsp;</i><b>)</b> [<font face="Courier New" color="#003258"
+      size="5"> <b>runs on</b></font> <i>component_type_ref&nbsp</i>] [<font face="Courier New" color="#003258" size="5"><b>return</b></font><i>&nbsp;returned_type</i> ]<font face="Courier New" color="#003258" size="5"><b>&nbsp;</b>[;]</font></h3>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>type function</b></font> keywords introduce the type definition.</p>
+  </li>
+  <li>
+	<p><i>Function_type_name</i> is the&nbsp;name used to refer to the function type. Must begin with a letter, may contain letters, numbers and underscore characters.</p>
+  </li>
+  <li>
+	<p><i>formal_parameter_list</i> is the&nbsp;list of the formal parameters (arguments). See the definion of <a href="function.html"><font face="Courier New" color="#003258" size="4"><b>function</b></font></a>.</p>
+  </li>
+  <li>
+	<p><i>component_type_ref&nbsp</i> See the definion of <a href="function.html"><font face="Courier New" color="#003258" size="4"><b>function</b></font></a>.</p>
+  </li>
+ <li>
+	<p><i>returned_type</i> See the definion of <a href="function.html"><font face="Courier New" color="#003258" size="4"><b>function</b></font></a>.</p>
+  </li>
+</ul>
+<hr align="left" width="50%"/>
+<p>Example 3:</p>
+<font face="Courier New">
+	<p>type function F_type(in integer pl_i) runs on CT returns charstring; // line 1</p>
+	<p>function f(in integer pl_ii) runs on CT returns charstring { log(pl_ii);return "Hello" }; // line 2</p>
+	<p>var F_type v_f := refers(f);   // line 3</p>
+	<p>var CT v_comp := CT.create;    // line 4</p>
+	<p>v_comp.start(derefers(v_f)(1));// line 5</p>
+	<p>v_f.apply(2);                  // line 6</p>
+</font>
+
+<p>Line 1: Function type "F_type" is defined. Its parameter is type of integer and it is an "in" parameter. It runs on CT and its return value a charstring.</p>
+<p>Line 2: The function f defined here has type of F_type. </p> 
+<p>Line 3: The function reference variable v_f has a type of function (reference) type F_type and its value is defined here as a reference to function f. 
+This definition is valid because v_f refers to the same type as f. </p>
+<p>Line 5: The behavior function referenced by v_f is started on component v_comp.</p>
+<p>Line 6: The function referenced by v_f is called. It is the same as calling f(2).</p>
+<hr align="left" width="50%"/>
+<h3> <a name=#altstep_type>3.2. Altstep type</a></h3>
+<div align="center">
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="left">
+		<font face="Courier New" color="#003258" size="5"><b>type altstep&nbsp;</b></font>
+		<i> altstep_identifier </i> 
+		<font face="Courier New" color="#003258" size="5"><b>(</b></font> 
+		[<i> altstep_parameter</i> ... ] 
+		<font face="Courier New" color="#003258" size="5"><b>)</b></font> 
+		<font face="Courier New" color="#003258" size="5"><b>runs on</b></font>
+		<i>component_type_ref</i> [
+		<font face="Courier New" color="#003258" size="5"><b>;</b></font>]
+	</h3>
+    </td>
+  </tr>
+</table>
+</div>
+<ul>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>type altstep</b></font> keywords introduce the altstep type definition.</p>
+  </li>
+  <li>
+  <p>Details can be found in <a href="altstep.html"><font face="Courier New" color="#003258" size="4"><b>altstep</b></font></a>.</p>
+  </li>
+</ul>
+<p>Example 4:</p>
+<font face="Courier New">
+<p>type component CT {} </p>
+<p>type altstep As_type() runs on CT </p>
+<p>altstep as_1() runs on CT {</p>
+<p>	&nbsp;&nbsp;[else]  {}</p>
+<p>}</p>
+<p>testcase tc() runs on CT {</p>
+<p>&nbsp;&nbsp;var As_type v_as := refers(as_1);</p>
+<p>&nbsp;&nbsp;v_as.apply(); //same as "as_1();"
+<p>};</p>
+
+</font>
+<hr align="left" width="50%">
+<h3> <a name=#testcase_type>3.3. Testcase type</a></h3>
+<div align="center">
+<center>
+<table border="0" width="90%" bgcolor="#FFB599" cellpadding="4">
+  <tr>
+    <td width="100%">
+    <h3 align="left">
+		<font face="Courier New" color="#003258" size="5"><b>type testcase</b></font>
+		<i> testcase_identifier </i>
+		<font face="Courier New" color="#003258" size="5"><b>(</b></font> [ 
+			<i>testcase_parameters</i>
+			<b>...</b>&nbsp; ] 
+		<font face="Courier New" color="#003258" size="5"><b>)</b></font> 
+		<font face="Courier New" color="#003258" size="5"><b>runs on</b></font>
+		<i> component_type_ref&nbsp;</i> [ 
+		<font face="Courier New" color="#003258" size="5"><b>system</b></font>
+		<i> system_component_type_ref </i>] [
+		<font face="Courier New" color="#003258" size="5"><b>;</b></font> ]
+	  </h3>
+    </td>
+  </tr>
+</table>
+</center>
+</div>
+<ul>
+  <li>
+  <p>The <font face="Courier New" color="#003258" size="4"><b>type testcase</b></font> keywords introduce the test case type definition.</p>
+  </li>
+  <li>
+  <p>Details can be found in <a href="testcase.html"><font face="Courier New" color="#003258" size="4"><b>testcase</b></font></a>.</p>
+  </li>
+</ul>
 <p><a HREF="BNF.html#typedef">BNF definition</a> of <font face="Courier New"> type</font></p>
 </body>
 </html>
diff --git a/help/info/unichar2char.html b/help/info/unichar2char.html
index 9eb1767e6..e2a9be385 100644
--- a/help/info/unichar2char.html
+++ b/help/info/unichar2char.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/unichar2int.html b/help/info/unichar2int.html
index ea2db0ba3..f1c8effca 100644
--- a/help/info/unichar2int.html
+++ b/help/info/unichar2int.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/unichar2oct.html b/help/info/unichar2oct.html
index 1dff1e1d3..be3745280 100644
--- a/help/info/unichar2oct.html
+++ b/help/info/unichar2oct.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/union.html b/help/info/union.html
index fe66f1005..7c0f74bd7 100644
--- a/help/info/union.html
+++ b/help/info/union.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/universal.html b/help/info/universal.html
index 693f544d0..95130ab74 100644
--- a/help/info/universal.html
+++ b/help/info/universal.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/unmap.html b/help/info/unmap.html
index 626c8c62a..e3a25c919 100644
--- a/help/info/unmap.html
+++ b/help/info/unmap.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/value.html b/help/info/value.html
index 65b3a8735..f8110429c 100644
--- a/help/info/value.html
+++ b/help/info/value.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/valueof.html b/help/info/valueof.html
index 70b6ebd61..dcc6f383c 100644
--- a/help/info/valueof.html
+++ b/help/info/valueof.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/var.html b/help/info/var.html
index 8f2f58682..d819d2ff6 100644
--- a/help/info/var.html
+++ b/help/info/var.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/variant.html b/help/info/variant.html
index b953fdb5e..3ecadf566 100644
--- a/help/info/variant.html
+++ b/help/info/variant.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/verdicttype.html b/help/info/verdicttype.html
index eaf507f2a..d282cef4c 100644
--- a/help/info/verdicttype.html
+++ b/help/info/verdicttype.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/while.html b/help/info/while.html
index 06afc85e7..8f5e308df 100644
--- a/help/info/while.html
+++ b/help/info/while.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/with.html b/help/info/with.html
index 5cb194a17..d8f0c0fed 100644
--- a/help/info/with.html
+++ b/help/info/with.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/xor.html b/help/info/xor.html
index 35df1c72f..297addc18 100644
--- a/help/info/xor.html
+++ b/help/info/xor.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/info/xor4b.html b/help/info/xor4b.html
index 6915335ba..11f01f2a0 100644
--- a/help/info/xor4b.html
+++ b/help/info/xor4b.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/titan.hhc b/help/titan.hhc
index 9cbb595ae..e880e0e87 100644
--- a/help/titan.hhc
+++ b/help/titan.hhc
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/help/titan.hhp b/help/titan.hhp
index d2e5bfc3f..a1300bbd5 100644
--- a/help/titan.hhp
+++ b/help/titan.hhp
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/help/titan_index.html b/help/titan_index.html
index a35510a29..767e3cc2a 100644
--- a/help/titan_index.html
+++ b/help/titan_index.html
@@ -1,11 +1,11 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
- -->
+-->
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
@@ -16,7 +16,7 @@
 <body bgcolor="#DAD3C5" vlink="#0094D2" link="#003258">
 <table align="left" border="0" cellspacing="0" cellpadding="0" valign=top>
    <tr>
-	 <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
+     <td width=105 height=40><a href="https://projects.eclipse.org/projects/tools.titan"><img src="images/titan_transparent.gif" border=0 width=105 height=40 align="left" alt="Titan"></a></td>
    </tr>
 </table>
 <table border="0" align="right" cellpadding="0" cellspacing="0">
@@ -47,7 +47,7 @@
     <td width="17%"><a href="info/and4b.html">and4b</a></td>
     <td width="17%"><a href="info/any.html">any</a></td>
     <td width="17%"><a href="info/anytype.html">anytype</a></td>
-    <td width="17%">&nbsp;</td>
+    <td width="17%"><a href="info/apply.html">apply</a></td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
   </tr>
@@ -92,18 +92,18 @@
     <td width="17%"><a href="info/decode_base64.html">decode_base64</a></td>
     <td width="17%"><a href="info/decvalue.html">decvalue</a></td>
     <td width="17%"><a href="info/default.html">default</a></td>
+    <td width="17%"><a href="info/derefers.html">derefers</a></td>
     <td width="17%"><a href="info/disconnect.html">disconnect</a></td>
     <td width="17%"><a href="info/display.html">display</a></td>
-    <td width="17%"><a href="info/do.html">do</a></td>
   </tr>
   <tr>
+    <td width="17%"><a href="info/do.html">do</a></td>
     <td width="17%"><a href="info/done.html">done</a></td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
-    <td width="17%">&nbsp;</td>
   </tr>
   <tr>
     <td width="17%"><a name="e"></a><a href="info/else.html">else</a></td>
@@ -171,20 +171,20 @@
   <tr>
     <td width="17%"><a href="info/int2bit.html">int2bit</a></td>
     <td width="17%"><a href="info/int2char.html">int2char</a></td>
+    <td width="17%"><a href="info/int2enum.html">int2enum</a></td>
     <td width="17%"><a href="info/int2float.html">int2float</a></td>
     <td width="17%"><a href="info/int2hex.html">int2hex</a></td>
     <td width="17%"><a href="info/int2oct.html">int2oct</a></td>
     <td width="17%"><a href="info/int2str.html">int2str</a></td>
-    <td width="17%"><a href="info/int2unichar.html">int2unichar</a></td>
   </tr>
   <tr>
+    <td width="17%"><a href="info/int2unichar.html">int2unichar</a></td>
     <td width="17%"><a href="info/integer.html">integer</a></td>
     <td width="17%"><a href="info/interleave.html">interleave</a></td>
     <td width="17%"><a href="info/isbound.html">isbound</a></td>
     <td width="17%"><a href="info/ischosen.html">ischosen</a></td>
     <td width="17%"><a href="info/ispresent.html">ispresent</a></td>
     <td width="17%"><a href="info/isvalue.html">isvalue</a></td>
-    <td width="17%">&nbsp;</td>
   </tr>
   <tr>
     <td width="17%"><a name="k"></a><a href="info/kill.html">kill</a></td>
@@ -201,7 +201,7 @@
     <td width="17%"><a href="info/length.html">length</a></td>
     <td width="17%"><a href="info/lengthof.html">lengthof</a></td>
     <td width="17%"><a href="info/log.html">log</a></td>
-    <td width="17%">&nbsp;</td>
+    <td width="17%"><a href="info/log2str.html">log2str</a></td>
     <td width="17%">&nbsp;</td>
   </tr>
   <tr>
@@ -282,26 +282,26 @@
     <td width="17%"><a href="info/receive.html">receive</a></td>
     <td width="17%"><a href="info/record.html">record</a></td>
     <td width="17%"><a href="info/recursive.html">recursive</a></td>
-    <td width="17%"><a href="info/regexp.html">regexp</a></td>
-    <td width="17%"><a href="info/rem.html">rem</a></td>
+    <td width="17%"><a href="info/refers.html">refers</a></td>
+    <td width="17%"><a href="info/regexp.html">regexp</a></td> 
   </tr>
   <tr>
+    <td width="17%"><a href="info/rem.html">rem</a></td>
     <td width="17%"><a href="info/remove_bom.html">remove_bom</a></td>
     <td width="17%"><a href="info/repeat.html">repeat</a></td>
     <td width="17%"><a href="info/replace.html">replace</a></td>
     <td width="17%"><a href="info/reply.html">reply</a></td>
     <td width="17%"><a href="info/return.html">return</a></td>
     <td width="17%"><a href="info/rnd.html">rnd</a></td>
-    <td width="17%"><a href="info/running.html">running</a></td>
   </tr>
-  <tr>
+  <tr> 
+    <td width="17%"><a href="info/running.html">running</a></td>
     <td width="17%"><a href="info/runs.html">runs</a></td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
-    <td width="17%">&nbsp;</td>
   </tr>
   <tr>
     <td width="17%"><a href="info/select.html">select</a></td>
@@ -384,7 +384,7 @@
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
   </tr>
-   <tr>
+  <tr>
     <td width="17%"><a name="@"></a><a href="info/profiler.html">@profiler</a></td>
     <td width="17%">&nbsp;</td>
     <td width="17%">&nbsp;</td>
diff --git a/help/titan_main.html b/help/titan_main.html
index 1c7e9a32e..9a46fea4e 100644
--- a/help/titan_main.html
+++ b/help/titan_main.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -64,7 +64,7 @@
   </ul>
   </li>
   <li>
-  <p align="left"><a href="http://www.ttcn3.org/StandardSuite.htm">TTCN-3 standards</a>
+  <p align="left"><a href="http://www.ttcn-3.org/index.php/downloads/standards">TTCN-3 standards</a>
   <ul>
     <li><a href="http://www.etsi.org/deliver/etsi_es\201800_201899\20187301\04.02.01_60\es_20187301v040201p.pdf" target="_blank">ETSI ES 201 873-1 v4.1.2</a>: TTCN-3 Core Language</li>
     <li><a href="http://www.etsi.org/deliver/etsi_es\201800_201899\20187304\04.01.01_60\es_20187304v040101p.pdf" target="_blank">ETSI ES 201 873-4 v4.1.1</a>: TTCN-3 Operational Semantics</li>
@@ -93,10 +93,10 @@
     <p align="left"><a href="docs/userguide.pdf" target="_blank">TITAN User Guide</a>
     </li>
     <li>
-    <p align="left"><a href="docs/Eclipse_Designer_userguide.pdf">TITAN Designer for the Eclipse IDE User Guide</a>
+    <p align="left"><a href="docs/Eclipse_Designer_userguide.pdf" target="_blank">TITAN Designer for the Eclipse IDE User Guide</a>
     </li>
     <li>
-    <p align="left"><a href="docs/Eclipse_Executor_userguide.pdf">TITAN Executor for the Eclipse IDE User Guide</a>
+    <p align="left"><a href="docs/Eclipse_Executor_userguide.pdf" target="_blank">TITAN Executor for the Eclipse IDE User Guide</a>
     </li>
     <li>
     <p align="left"><a href="docs/referenceguide.pdf" target="_blank">Programmer's Technical Reference for TITAN</a>
@@ -108,7 +108,7 @@
     <p align="left"><a href="docs/installationguide.pdf" target="_blank">TITAN Installation Guide</a>
     </li>
     <li>
-    <p align="left"><a href="docs/Eclipse_installationguide.pdf">TITAN Designer and TITAN Executor for the Eclipse IDE Installation Guide</a>
+    <p align="left"><a href="docs/Eclipse_installationguide.pdf" target="_blank">TITAN Designer and TITAN Executor for the Eclipse IDE Installation Guide</a>
     </li>
     <li>
     <p align="left"><a href="docs/releasenotes.pdf" target="_blank">Release Notes for TITAN</a></p>
diff --git a/help/ttcn3_help b/help/ttcn3_help
index a81e5aa1a..3db12048a 100644
--- a/help/ttcn3_help
+++ b/help/ttcn3_help
@@ -2,7 +2,7 @@
 #
 #! /bin/sh -x
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/langviz/Grammar.cc b/langviz/Grammar.cc
index 1546fca41..85a60ed81 100644
--- a/langviz/Grammar.cc
+++ b/langviz/Grammar.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Grammar.hh b/langviz/Grammar.hh
index ee8a2ba74..8f3f53ae2 100644
--- a/langviz/Grammar.hh
+++ b/langviz/Grammar.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Graph.cc b/langviz/Graph.cc
index 4ba49f51a..e016cdfac 100644
--- a/langviz/Graph.cc
+++ b/langviz/Graph.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Graph.hh b/langviz/Graph.hh
index 0360892d9..6589fe318 100644
--- a/langviz/Graph.hh
+++ b/langviz/Graph.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Iterator.cc b/langviz/Iterator.cc
index 439787ab6..d2c6e6955 100644
--- a/langviz/Iterator.cc
+++ b/langviz/Iterator.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Iterator.hh b/langviz/Iterator.hh
index 67b1d27da..14a8ea2aa 100644
--- a/langviz/Iterator.hh
+++ b/langviz/Iterator.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Makefile b/langviz/Makefile
index 94cfaecc5..8bb2d87d1 100644
--- a/langviz/Makefile
+++ b/langviz/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/langviz/Node.cc b/langviz/Node.cc
index 09cde1969..5defb1fd1 100644
--- a/langviz/Node.cc
+++ b/langviz/Node.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Node.hh b/langviz/Node.hh
index d4b41d53d..070604ae9 100644
--- a/langviz/Node.hh
+++ b/langviz/Node.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Rule.cc b/langviz/Rule.cc
index 43ab512fb..40fd5ec68 100644
--- a/langviz/Rule.cc
+++ b/langviz/Rule.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Rule.hh b/langviz/Rule.hh
index 9014a827f..f509bce6d 100644
--- a/langviz/Rule.hh
+++ b/langviz/Rule.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Symbol.cc b/langviz/Symbol.cc
index ab0cf12a7..a04459a0a 100644
--- a/langviz/Symbol.cc
+++ b/langviz/Symbol.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/Symbol.hh b/langviz/Symbol.hh
index 5ab761a14..cbfff95cf 100644
--- a/langviz/Symbol.hh
+++ b/langviz/Symbol.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/bison_la.l b/langviz/bison_la.l
index be1254b53..c2bfd0d57 100644
--- a/langviz/bison_la.l
+++ b/langviz/bison_la.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/langviz/bison_p.y b/langviz/bison_p.y
index f69d5fdff..8034e12a6 100644
--- a/langviz/bison_p.y
+++ b/langviz/bison_p.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/langviz/error.c b/langviz/error.c
index c5e7133db..bf6bc6637 100644
--- a/langviz/error.c
+++ b/langviz/error.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/error.h b/langviz/error.h
index d28fa1291..97e6d837e 100644
--- a/langviz/error.h
+++ b/langviz/error.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/langviz/main.cc b/langviz/main.cc
index 38eb7ae3c..30eaca1d3 100644
--- a/langviz/main.cc
+++ b/langviz/main.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/license/Makefile b/license/Makefile
index e5de509a1..e2da83ece 100644
--- a/license/Makefile
+++ b/license/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/license/Makefile_renew_license b/license/Makefile_renew_license
index 2d46dd64e..b6b3eb034 100644
--- a/license/Makefile_renew_license
+++ b/license/Makefile_renew_license
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/license/license.dat b/license/license.dat
index 6cc561a0b..2b98250a4 100644
--- a/license/license.dat
+++ b/license/license.dat
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/license/license_gen.c b/license/license_gen.c
index b02c61090..d306ad938 100644
--- a/license/license_gen.c
+++ b/license/license_gen.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/license/renew_license.c b/license/renew_license.c
index bef7c7239..cb45ed7a4 100644
--- a/license/renew_license.c
+++ b/license/renew_license.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/license/renew_license.html b/license/renew_license.html
index 6f3610fc5..c812ae640 100644
--- a/license/renew_license.html
+++ b/license/renew_license.html
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/loggerplugins/JUnitLogger/JUnitLogger.cc b/loggerplugins/JUnitLogger/JUnitLogger.cc
index d15dc3cea..c5eede8a6 100644
--- a/loggerplugins/JUnitLogger/JUnitLogger.cc
+++ b/loggerplugins/JUnitLogger/JUnitLogger.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/loggerplugins/JUnitLogger/JUnitLogger.hh b/loggerplugins/JUnitLogger/JUnitLogger.hh
index a40e61434..3c40b6451 100644
--- a/loggerplugins/JUnitLogger/JUnitLogger.hh
+++ b/loggerplugins/JUnitLogger/JUnitLogger.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/loggerplugins/JUnitLogger/Makefile b/loggerplugins/JUnitLogger/Makefile
index cfb04ebcf..3f137bbe3 100644
--- a/loggerplugins/JUnitLogger/Makefile
+++ b/loggerplugins/JUnitLogger/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/loggerplugins/JUnitLogger2/JUnitLogger2.cc b/loggerplugins/JUnitLogger2/JUnitLogger2.cc
index 825056ea0..0e38052dc 100644
--- a/loggerplugins/JUnitLogger2/JUnitLogger2.cc
+++ b/loggerplugins/JUnitLogger2/JUnitLogger2.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/loggerplugins/JUnitLogger2/JUnitLogger2.hh b/loggerplugins/JUnitLogger2/JUnitLogger2.hh
index 702981540..7726f416a 100644
--- a/loggerplugins/JUnitLogger2/JUnitLogger2.hh
+++ b/loggerplugins/JUnitLogger2/JUnitLogger2.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/loggerplugins/JUnitLogger2/Makefile b/loggerplugins/JUnitLogger2/Makefile
index 98bb5751e..6ec7a0353 100644
--- a/loggerplugins/JUnitLogger2/Makefile
+++ b/loggerplugins/JUnitLogger2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/loggerplugins/Makefile b/loggerplugins/Makefile
index 19b40d502..fe83955af 100644
--- a/loggerplugins/Makefile
+++ b/loggerplugins/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/loggerplugins/TSTLogger/Makefile b/loggerplugins/TSTLogger/Makefile
index 8a0027303..e8ad97527 100644
--- a/loggerplugins/TSTLogger/Makefile
+++ b/loggerplugins/TSTLogger/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/loggerplugins/TSTLogger/TSTLogger.cc b/loggerplugins/TSTLogger/TSTLogger.cc
index c29a2736e..849bdf5f9 100644
--- a/loggerplugins/TSTLogger/TSTLogger.cc
+++ b/loggerplugins/TSTLogger/TSTLogger.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/loggerplugins/TSTLogger/TSTLogger.hh b/loggerplugins/TSTLogger/TSTLogger.hh
index f1a522ba0..bb7acc6f8 100644
--- a/loggerplugins/TSTLogger/TSTLogger.hh
+++ b/loggerplugins/TSTLogger/TSTLogger.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/makefiles/Makefile.personal.bangjohansen b/makefiles/Makefile.personal.bangjohansen
index 39572cc03..94d4d43d6 100644
--- a/makefiles/Makefile.personal.bangjohansen
+++ b/makefiles/Makefile.personal.bangjohansen
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.cygwin15 b/makefiles/Makefile.personal.cygwin15
index abf7365a0..78cd133b9 100644
--- a/makefiles/Makefile.personal.cygwin15
+++ b/makefiles/Makefile.personal.cygwin15
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.ehubuux110 b/makefiles/Makefile.personal.ehubuux110
index 93ee3f171..2458f90d9 100644
--- a/makefiles/Makefile.personal.ehubuux110
+++ b/makefiles/Makefile.personal.ehubuux110
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.elx1pjld12-hz b/makefiles/Makefile.personal.elx1pjld12-hz
new file mode 100644
index 000000000..9a515ba5a
--- /dev/null
+++ b/makefiles/Makefile.personal.elx1pjld12-hz
@@ -0,0 +1,2 @@
+OPENSSL_DIR := default
+JDKDIR := /usr/lib/jvm/java-7-openjdk-amd64
\ No newline at end of file
diff --git a/makefiles/Makefile.personal.esekilxxen1843.rnd.ericsson.se b/makefiles/Makefile.personal.esekilxxen1843.rnd.ericsson.se
index 50e788007..e18daad92 100644
--- a/makefiles/Makefile.personal.esekilxxen1843.rnd.ericsson.se
+++ b/makefiles/Makefile.personal.esekilxxen1843.rnd.ericsson.se
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.esekits1024 b/makefiles/Makefile.personal.esekits1024
index 113334d20..62b75151f 100644
--- a/makefiles/Makefile.personal.esekits1024
+++ b/makefiles/Makefile.personal.esekits1024
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.esekits1080 b/makefiles/Makefile.personal.esekits1080
index d84c7e044..0b3b68ae1 100644
--- a/makefiles/Makefile.personal.esekits1080
+++ b/makefiles/Makefile.personal.esekits1080
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.esekits3013 b/makefiles/Makefile.personal.esekits3013
index 528fc2bbd..2c71dd524 100644
--- a/makefiles/Makefile.personal.esekits3013
+++ b/makefiles/Makefile.personal.esekits3013
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.esekiux5120 b/makefiles/Makefile.personal.esekiux5120
index d84c7e044..0b3b68ae1 100644
--- a/makefiles/Makefile.personal.esekiux5120
+++ b/makefiles/Makefile.personal.esekiux5120
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.tcclab1 b/makefiles/Makefile.personal.tcclab1
index 36ccc2e04..3ba7ed714 100644
--- a/makefiles/Makefile.personal.tcclab1
+++ b/makefiles/Makefile.personal.tcclab1
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.tcclab2 b/makefiles/Makefile.personal.tcclab2
index 546ab1372..9b9232e67 100644
--- a/makefiles/Makefile.personal.tcclab2
+++ b/makefiles/Makefile.personal.tcclab2
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -21,6 +21,8 @@ COMPILERFLAGS += -g
 LDFLAGS += -g
 endif
 
+LDFLAGS += -ldl
+
 CC  := /usr/bin/gcc
 CXX := /usr/bin/g++
 
diff --git a/makefiles/Makefile.personal.tcclab3 b/makefiles/Makefile.personal.tcclab3
index 0ca21ef61..f40c5895e 100644
--- a/makefiles/Makefile.personal.tcclab3
+++ b/makefiles/Makefile.personal.tcclab3
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.tcclab4 b/makefiles/Makefile.personal.tcclab4
index fd6d723db..d2bbc4ec8 100644
--- a/makefiles/Makefile.personal.tcclab4
+++ b/makefiles/Makefile.personal.tcclab4
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.tcclab5 b/makefiles/Makefile.personal.tcclab5
index 8d49aaf7b..af45888b7 100644
--- a/makefiles/Makefile.personal.tcclab5
+++ b/makefiles/Makefile.personal.tcclab5
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/makefiles/Makefile.personal.tcclab6 b/makefiles/Makefile.personal.tcclab6
index b4823f176..308300e7c 100644
--- a/makefiles/Makefile.personal.tcclab6
+++ b/makefiles/Makefile.personal.tcclab6
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/mctr2/Makefile b/mctr2/Makefile
index f53225f3d..f293c97bc 100644
--- a/mctr2/Makefile
+++ b/mctr2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/mctr2/cli/Cli.cc b/mctr2/cli/Cli.cc
index 709ad165e..101930f98 100644
--- a/mctr2/cli/Cli.cc
+++ b/mctr2/cli/Cli.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Gecse Roland
 // mail:                  ethrge@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 //----------------------------------------------------------------------------
 #include "Cli.h"
@@ -242,7 +242,7 @@ void Cli::printWelcome()
     "*************************************************************************\n"
     "* TTCN-3 Test Executor - Main Controller 2                              *\n"
     "* Version: %-40s                     *\n"
-    "* Copyright (c) 2000-2014 Ericsson Telecom AB                           *\n"
+    "* Copyright (c) 2000-2015 Ericsson Telecom AB                           *\n"
     "* 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"
diff --git a/mctr2/cli/Cli.h b/mctr2/cli/Cli.h
index 7aa3fb2d5..bd12162ac 100644
--- a/mctr2/cli/Cli.h
+++ b/mctr2/cli/Cli.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Vilmos Varga
 // mail:                  ethvva@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 #ifndef CLI_CLI_H
 #define CLI_CLI_H
diff --git a/mctr2/cli/Makefile b/mctr2/cli/Makefile
index cfb8beffc..5d9e47216 100644
--- a/mctr2/cli/Makefile
+++ b/mctr2/cli/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/mctr2/cli/config_read.l b/mctr2/cli/config_read.l
index 12978bdb7..f9a02b0fa 100644
--- a/mctr2/cli/config_read.l
+++ b/mctr2/cli/config_read.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -334,11 +334,17 @@ IPV6 [0-9A-Fa-f:.]+(%[0-9A-Za-z]+)?
 {NUMBER} {
 	yylval.int_val = NULL;
   BN_dec2bn(&yylval.int_val, *yytext == '+' ? yytext + 1 : yytext);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    RETURN(MPNumber);
+  }
 	RETURN(Number);
 }
 
 {FLOAT}	{
 	yylval.float_val = atof(yytext);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    RETURN(MPFloat);
+  }
 	RETURN(Float);
 }
 
@@ -375,6 +381,9 @@ IPV6 [0-9A-Fa-f:.]+(%[0-9A-Za-z]+)?
 
 {CHARSTRING}	{
   yylval.str_val = mcopystrn(yytext, yyleng);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    RETURN(MPCstring);
+  }
   RETURN(Cstring);
 }
 
@@ -656,7 +665,7 @@ WARNING_UNQUALIFIED RETURN(LoggingBit);
 
 <SC_MODULE_PARAMETERS>{ASN1LOWERIDENTIFIER} {
   char *ttcn3_id = (char*)Malloc(yyleng + 1);
-  for (int i = 0; i < yyleng; i++) {
+  for (size_t i = 0; i < yyleng; i++) {
     if (yytext[i] == '-') ttcn3_id[i] = '_';
     else ttcn3_id[i] = yytext[i];
   }
@@ -670,7 +679,7 @@ WARNING_UNQUALIFIED RETURN(LoggingBit);
 
 <SC_GROUPS,SC_COMPONENTS,SC_MAIN_CONTROLLER>{DNSNAME}|{IPV6} {
   yylval.str_val = (char*)Malloc(yyleng + 1);
-  for (int i = 0; i < yyleng; i++) yylval.str_val[i] = tolower(yytext[i]);
+  for (size_t i = 0; i < yyleng; i++) yylval.str_val[i] = tolower(yytext[i]);
   yylval.str_val[yyleng] = '\0';
   RETURN(DNSName);
 }
@@ -728,6 +737,9 @@ WARNING_UNQUALIFIED RETURN(LoggingBit);
   if (whether_update_buffer())
     cfg->config_read_buffer = mputprintf(cfg->config_read_buffer, "%s ", int_val_str);
   OPENSSL_free(int_val_str);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    return MPNumber;
+  }
   return Number;
 }
 
@@ -752,6 +764,9 @@ WARNING_UNQUALIFIED RETURN(LoggingBit);
   Free(macroname);
   if (whether_update_buffer()) cfg->config_read_buffer =
     mputprintf(cfg->config_read_buffer, "%f ", yylval.float_val);
+  if (YY_START == SC_MODULE_PARAMETERS) {
+    return MPFloat;
+  }
   return Float;
 }
 
@@ -800,6 +815,9 @@ WARNING_UNQUALIFIED RETURN(LoggingBit);
         "name `%s'", macroname);
     yylval.str_val = memptystr();
     Free(macroname);
+    if (YY_START == SC_MODULE_PARAMETERS) {
+      return MPCstring;
+    }
     return Cstring;
   }
 
@@ -830,6 +848,9 @@ WARNING_UNQUALIFIED RETURN(LoggingBit);
     }
     Free(macroname);
     yylval.str_val = mcopystr(macrovalue);
+    if (YY_START == SC_MODULE_PARAMETERS) {
+      return MPCstring;
+    }
     return Cstring;
   }
 }
diff --git a/mctr2/cli/config_read.y b/mctr2/cli/config_read.y
index fa787f2a2..d9b03a5a6 100644
--- a/mctr2/cli/config_read.y
+++ b/mctr2/cli/config_read.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -130,8 +130,8 @@ static void yyprint(FILE *file, int type, const YYSTYPE& value);
 %token <str_val> Identifier
 %token ASN1LowerIdentifier "ASN.1 identifier beginning with a lowercase letter"
 %token MacroRValue
-%token <int_val> Number
-%token <float_val> Float
+%token <int_val> Number MPNumber "integer value"
+%token <float_val> Float MPFloat "float value"
 %token BooleanValue "true or false"
 %token VerdictValue
 %token Bstring "bit string value"
@@ -141,6 +141,7 @@ static void yyprint(FILE *file, int type, const YYSTYPE& value);
 %token HstringMatch "hex string template"
 %token OstringMatch "octet string template"
 %token <str_val> Cstring "character string value"
+%token <str_val> MPCstring "charstring value"
 %token <str_val> DNSName "a host name"
 %token LoggingBit
 %token LoggingBitCollection
@@ -191,6 +192,7 @@ HostName
 ComponentName
 ComponentLocation
 Cstring
+MPCstring
 StringValue
 LogFileName
 
@@ -203,21 +205,22 @@ ExecuteItem
 %destructor { BN_free($$); }
 IntegerValue
 Number
+MPNumber
 
+%left '&' /* to avoid shift/reduce conflicts */
 %left '+' '-'
 %left '*' '/'
 %left UnarySign
 
-%expect 2
+%expect 1
 
 /*
-Source of conflicts (2 S/R):
+Source of conflicts (1 S/R):
 
-1.) 2 conflicts in two distinct states
-When seeing a '*' token after an integer or float value in section
-[MODULE_PARAMETERS] parser cannot decide whether the token is a multiplication
-operator (shift) or it refers to all modules in the next module parameter
-(reduce).
+1.) 1 conflict
+When seeing a '*' token after a module parameter expression the parser cannot
+decide whether the token is a multiplication operator (shift) or it refers to
+all modules in the next module parameter (reduce).
 
 The built-in Bison behavior always chooses the shift over the reduce
 (the * is interpreted as multiplication).
@@ -266,15 +269,15 @@ ParameterName:
 
 ParameterNameSegment:
   ParameterNameSegment '.' Identifier { Free($3); }
-| ParameterNameSegment '[' Number ']' { BN_free($3); }
+| ParameterNameSegment IndexItemIndex
 | Identifier                          { Free($1); }
 
 
 ParameterValue:
-  SimpleParameterValue
-| SimpleParameterValue LengthMatch
-| SimpleParameterValue IfpresentKeyword
-| SimpleParameterValue LengthMatch IfpresentKeyword
+  ParameterExpression
+| ParameterExpression LengthMatch
+| ParameterExpression IfpresentKeyword
+| ParameterExpression LengthMatch IfpresentKeyword
 ;
 
 LengthMatch:
@@ -284,21 +287,37 @@ LengthMatch:
 ;
 
 LengthBound:
-  IntegerValue { BN_free($1); }
+  ParameterExpression
+;
+
+ParameterExpression:
+  SimpleParameterValue
+| ParameterReference
+| '(' ParameterExpression ')'
+| '+' ParameterExpression %prec UnarySign
+| '-' ParameterExpression %prec UnarySign
+| ParameterExpression '+' ParameterExpression
+| ParameterExpression '-' ParameterExpression
+| ParameterExpression '*' ParameterExpression
+| ParameterExpression '/' ParameterExpression
+| ParameterExpression '&' ParameterExpression
+;
+
+ParameterReference:
+  ParameterNameSegment
 ;
 
 SimpleParameterValue:
-	IntegerValue { BN_free($1); }
-| FloatValue
+	MPNumber { BN_free($1); }
+| MPFloat
 | BooleanValue
 | ObjIdValue
 | VerdictValue
 | BitstringValue
 | HexstringValue
 | OctetstringValue
-| Cstring { Free($1); }
+| MPCstring { Free($1); }
 | UniversalCharstringValue
-| EnumeratedValue
 | OmitKeyword
 | NULLKeyword
 | nullKeyword
@@ -307,7 +326,7 @@ SimpleParameterValue:
 | IntegerRange
 | FloatRange
 | StringRange
-| PatternKeyword PatternChunkList
+| PatternKeyword PatternChunk
 | BstringMatch
 | HstringMatch
 | OstringMatch
@@ -316,26 +335,21 @@ SimpleParameterValue:
 | SystemKeyword
 ;
 
-PatternChunkList:
-  PatternChunk
-| PatternChunkList '&' PatternChunk
-;
-
 PatternChunk:
-  Cstring { Free($1); }
+  MPCstring { Free($1); }
 | Quadruple
 ;
 
 IntegerRange:
-  '(' '-' InfinityKeyword DotDot IntegerValue ')' { BN_free($5); }
-| '(' IntegerValue DotDot IntegerValue ')' { BN_free($2); BN_free($4); }
-| '(' IntegerValue DotDot InfinityKeyword ')' { BN_free($2); }
+  '(' '-' InfinityKeyword DotDot MPNumber ')' { BN_free($5); }
+| '(' MPNumber DotDot MPNumber ')' { BN_free($2); BN_free($4); }
+| '(' MPNumber DotDot InfinityKeyword ')' { BN_free($2); }
 ;
 
 FloatRange:
-  '(' '-' InfinityKeyword DotDot FloatValue ')'
-| '(' FloatValue DotDot FloatValue ')'
-| '(' FloatValue DotDot InfinityKeyword ')'
+  '(' '-' InfinityKeyword DotDot MPFloat ')'
+| '(' MPFloat DotDot MPFloat ')'
+| '(' MPFloat DotDot InfinityKeyword ')'
 ;
 
 StringRange:
@@ -426,111 +440,53 @@ ObjIdComponent:
 ;
 
 NumberForm:
-	Number { BN_free($1); }
+	MPNumber { BN_free($1); }
 ;
 
 NameAndNumberForm:
-	Identifier '(' Number ')' { Free($1); BN_free($3); }
+	Identifier '(' MPNumber ')' { Free($1); BN_free($3); }
 ;
 
 BitstringValue:
 	Bstring
-	| BitstringValue ConcatOp Bstring
 ;
 
 HexstringValue:
 	Hstring
-	| HexstringValue ConcatOp Hstring
 ;
 
 OctetstringValue:
 	Ostring
-	| OctetstringValue ConcatOp Ostring
 ;
 
 UniversalCharstringValue:
-	Cstring seqUniversalCharstringFragment { Free($1); }
-	| Quadruple
-	| Quadruple seqUniversalCharstringFragment
-;
-
-seqUniversalCharstringFragment:
-	ConcatOp UniversalCharstringFragment
-	| seqUniversalCharstringFragment ConcatOp UniversalCharstringFragment
+	Quadruple
 ;
 
 UniversalCharstringFragment:
-	Cstring { Free($1); }
+	MPCstring { Free($1); }
 	| Quadruple
 ;
 
 Quadruple:
-	CharKeyword '(' IntegerValue ',' IntegerValue ',' IntegerValue ','
-	IntegerValue ')'
-{
-  char *int_val_str_1 = BN_bn2dec($3);
-  char *int_val_str_2 = BN_bn2dec($5);
-  char *int_val_str_3 = BN_bn2dec($7);
-  char *int_val_str_4 = BN_bn2dec($9);
-  BIGNUM *BN_0 = BN_new();
-  BN_set_word(BN_0, 0);
-  BIGNUM *BN_127 = BN_new();
-  BN_set_word(BN_127, 127);
-  BIGNUM *BN_255 = BN_new();
-  BN_set_word(BN_255, 255);
-	if (BN_cmp($3, BN_0) < 0 || BN_cmp($3, BN_127) > 0)
-	  config_read_error("An integer value within range 0 .. 127 was expected "
-	                    "as first number of quadruple (group) instead of "
-	                    "%s.", int_val_str_1);
-	if (BN_cmp($5, BN_0) < 0 || BN_cmp($5, BN_255) > 0)
-	  config_read_error("An integer value within range 0 .. 255 was expected "
-	                    "as second number of quadruple (plane) instead of %s.",
-	                    int_val_str_2);
-	if (BN_cmp($7, BN_0) < 0 || BN_cmp($7, BN_255) > 0)
-	  config_read_error("An integer value within range 0 .. 255 was expected "
-	                    "as third number of quadruple (row) instead of %s.",
-	                    int_val_str_3);
-	if (BN_cmp($9, BN_0) < 0 || BN_cmp($9, BN_255) > 0)
-	  config_read_error("An integer value within range 0 .. 255 was expected "
-	                    "as fourth number of quadruple (cell) instead of %d.",
-	                    int_val_str_4);
-  BN_free(BN_0);
-  BN_free(BN_127);
-  BN_free(BN_255);
-  BN_free($3);
-  BN_free($5);
-  BN_free($7);
-  BN_free($9);
-  OPENSSL_free(int_val_str_1);
-  OPENSSL_free(int_val_str_2);
-  OPENSSL_free(int_val_str_3);
-  OPENSSL_free(int_val_str_4);
-}
-;
-
-ConcatOp:
-	'&'
+	CharKeyword '(' ParameterExpression ',' ParameterExpression ','
+  ParameterExpression ',' ParameterExpression ')'
 ;
 
 StringValue:
 	Cstring { $$ = $1; }
-	| StringValue ConcatOp Cstring {
+	| StringValue '&' Cstring {
 	  $$ = mputstr($1, $3);
 	  Free($3);
 	}
 ;
 
-EnumeratedValue:
-	Identifier { Free($1); }
-	| ASN1LowerIdentifier
-;
-
 CompoundValue:
   '{' '}'
 |	'{' FieldValueList '}'
 | '{' ArrayItemList '}'
 | '{' IndexItemList '}'
-| '(' ParameterValue ',' TemplateItemList ')' /* at least 2 elements to avoid shift/reduce conflicts with IntegerValue and FloatValue rules */
+| '(' ParameterValue ',' TemplateItemList ')' /* at least 2 elements to avoid shift/reduce conflicts with the ParameterExpression rule */
 | ComplementKeyword '(' TemplateItemList ')'
 | SupersetKeyword '(' TemplateItemList ')'
 | SubsetKeyword '(' TemplateItemList ')'
@@ -580,7 +536,7 @@ IndexItem:
 ;
 
 IndexItemIndex:
-	'[' IntegerValue ']' { BN_free($2); }
+	'[' ParameterExpression ']'
 ;
 
 /******************* [LOGGING] section *******************/
diff --git a/mctr2/editline/Makefile b/mctr2/editline/Makefile
index e379e884a..67ae8507d 100644
--- a/mctr2/editline/Makefile
+++ b/mctr2/editline/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/mctr2/mctr/MainController.cc b/mctr2/mctr/MainController.cc
index e5d0ca05d..cfb9919ef 100644
--- a/mctr2/mctr/MainController.cc
+++ b/mctr2/mctr/MainController.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Janos Zoltan Szabo
 // mail:                  tmpjsz@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 //----------------------------------------------------------------------------
 
diff --git a/mctr2/mctr/MainController.h b/mctr2/mctr/MainController.h
index e32a5de3d..ead55f518 100644
--- a/mctr2/mctr/MainController.h
+++ b/mctr2/mctr/MainController.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Janos Zoltan Szabo
 // mail:                  tmpjsz@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 #ifndef MCTR_MAINCONTROLLER_H
 #define MCTR_MAINCONTROLLER_H
diff --git a/mctr2/mctr/Makefile b/mctr2/mctr/Makefile
index 75d23ed67..3d86ba94d 100644
--- a/mctr2/mctr/Makefile
+++ b/mctr2/mctr/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/mctr2/mctr/MctrError.cc b/mctr2/mctr/MctrError.cc
index ca3f9c97e..f0b2b6cf4 100644
--- a/mctr2/mctr/MctrError.cc
+++ b/mctr2/mctr/MctrError.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/mctr2/mctr/UserInterface.cc b/mctr2/mctr/UserInterface.cc
index 55eaee2d8..88046be41 100644
--- a/mctr2/mctr/UserInterface.cc
+++ b/mctr2/mctr/UserInterface.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Vilmos Varga
 // mail:                  ethvva@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 //----------------------------------------------------------------------------
 #include "UserInterface.h"
diff --git a/mctr2/mctr/UserInterface.h b/mctr2/mctr/UserInterface.h
index c0b384196..c6b297411 100644
--- a/mctr2/mctr/UserInterface.h
+++ b/mctr2/mctr/UserInterface.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Vilmos Varga
 // mail:                  ethvva@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 #ifndef MCTR_USERINTERFACE_H
 #define MCTR_USERINTERFACE_H
diff --git a/mctr2/mctr/config_data.cc b/mctr2/mctr/config_data.cc
index 021f67a7f..ae5b29e1b 100644
--- a/mctr2/mctr/config_data.cc
+++ b/mctr2/mctr/config_data.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/mctr2/mctr/config_data.h b/mctr2/mctr/config_data.h
index 4d568e1c5..072661bd1 100644
--- a/mctr2/mctr/config_data.h
+++ b/mctr2/mctr/config_data.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/mctr2/mctr/main.cc b/mctr2/mctr/main.cc
index 16c0d0ace..e5a1845a6 100644
--- a/mctr2/mctr/main.cc
+++ b/mctr2/mctr/main.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,7 +10,7 @@
 // Author:                Vilmos Varga
 // mail:                  ethvva@eth.ericsson.se
 //
-// Copyright Ericsson Telecom AB 2000-2014
+// Copyright (c) 2000-2015 Ericsson Telecom AB
 //
 //----------------------------------------------------------------------------
 
diff --git a/mctr2/mctr/ttcn3_start b/mctr2/mctr/ttcn3_start
index 960342c60..3ddc49475 100755
--- a/mctr2/mctr/ttcn3_start
+++ b/mctr2/mctr/ttcn3_start
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/parser/Makefile b/parser/Makefile
index 8dbee09a9..5b01bd66a 100644
--- a/parser/Makefile
+++ b/parser/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/parser/parser.l b/parser/parser.l
index 0eb1fa1e0..4091d42b9 100644
--- a/parser/parser.l
+++ b/parser/parser.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/parser/parser.y b/parser/parser.y
index 1936213d0..89ca1e1a0 100644
--- a/parser/parser.y
+++ b/parser/parser.y
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -2961,7 +2961,7 @@ void parse_input()
 int main(int argc, char *argv[])
 {
 	puts("TTCN-3 parser. Complies with BNF v3.0.0\n"
-	"Copyright Ericsson Telecom AB 2000-2014");
+	"Copyright (c) 2000-2015 Ericsson Telecom AB");
 	if (argc > 1) {
 		int i;
 		for (i = 1; i < argc; i++) {
diff --git a/regression_test/ASN1/Makefile b/regression_test/ASN1/Makefile
index 01fb895e2..04688fe7f 100644
--- a/regression_test/ASN1/Makefile
+++ b/regression_test/ASN1/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test303/Makefile b/regression_test/ASN1/Test303/Makefile
index 9db4fcf13..3f46f5dac 100644
--- a/regression_test/ASN1/Test303/Makefile
+++ b/regression_test/ASN1/Test303/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test303/Test303A.asn b/regression_test/ASN1/Test303/Test303A.asn
index a61999922..9be12a30a 100644
--- a/regression_test/ASN1/Test303/Test303A.asn
+++ b/regression_test/ASN1/Test303/Test303A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test303/Test303T.ttcn b/regression_test/ASN1/Test303/Test303T.ttcn
index 62bd51209..05dc8b1ab 100644
--- a/regression_test/ASN1/Test303/Test303T.ttcn
+++ b/regression_test/ASN1/Test303/Test303T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test303/config.cfg b/regression_test/ASN1/Test303/config.cfg
index da51cbef0..9196d4c89 100644
--- a/regression_test/ASN1/Test303/config.cfg
+++ b/regression_test/ASN1/Test303/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test307/Makefile b/regression_test/ASN1/Test307/Makefile
index dc1791387..2939b2341 100644
--- a/regression_test/ASN1/Test307/Makefile
+++ b/regression_test/ASN1/Test307/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test307/Test307A.asn b/regression_test/ASN1/Test307/Test307A.asn
index d7fc1099c..2ea37467c 100644
--- a/regression_test/ASN1/Test307/Test307A.asn
+++ b/regression_test/ASN1/Test307/Test307A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test307/Test307T.ttcn b/regression_test/ASN1/Test307/Test307T.ttcn
index 2326fce8e..ac98a151a 100644
--- a/regression_test/ASN1/Test307/Test307T.ttcn
+++ b/regression_test/ASN1/Test307/Test307T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test308/Makefile b/regression_test/ASN1/Test308/Makefile
index 8c8ffa7fa..0177209ef 100644
--- a/regression_test/ASN1/Test308/Makefile
+++ b/regression_test/ASN1/Test308/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test308/Test308A.asn b/regression_test/ASN1/Test308/Test308A.asn
index 3ac3111da..e6fad5c3b 100644
--- a/regression_test/ASN1/Test308/Test308A.asn
+++ b/regression_test/ASN1/Test308/Test308A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test308/Test308T.ttcn b/regression_test/ASN1/Test308/Test308T.ttcn
index 332403bc6..2c117ee28 100644
--- a/regression_test/ASN1/Test308/Test308T.ttcn
+++ b/regression_test/ASN1/Test308/Test308T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test309/Makefile b/regression_test/ASN1/Test309/Makefile
index 742e495d2..017f3ccc9 100644
--- a/regression_test/ASN1/Test309/Makefile
+++ b/regression_test/ASN1/Test309/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test309/Test309A.asn b/regression_test/ASN1/Test309/Test309A.asn
index 7326eeb93..91127a0cd 100644
--- a/regression_test/ASN1/Test309/Test309A.asn
+++ b/regression_test/ASN1/Test309/Test309A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test309/Test309T.ttcn b/regression_test/ASN1/Test309/Test309T.ttcn
index 9c6212be1..16b31d0a0 100644
--- a/regression_test/ASN1/Test309/Test309T.ttcn
+++ b/regression_test/ASN1/Test309/Test309T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test310/Makefile b/regression_test/ASN1/Test310/Makefile
index 3f274b903..0077e225f 100644
--- a/regression_test/ASN1/Test310/Makefile
+++ b/regression_test/ASN1/Test310/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test310/Test310A.asn b/regression_test/ASN1/Test310/Test310A.asn
index ccf1b9fc3..a793a378c 100644
--- a/regression_test/ASN1/Test310/Test310A.asn
+++ b/regression_test/ASN1/Test310/Test310A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test310/Test310T.ttcn b/regression_test/ASN1/Test310/Test310T.ttcn
index d32f84e63..a16909b4e 100644
--- a/regression_test/ASN1/Test310/Test310T.ttcn
+++ b/regression_test/ASN1/Test310/Test310T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test330/Makefile b/regression_test/ASN1/Test330/Makefile
index 15c1c8301..031345bbc 100644
--- a/regression_test/ASN1/Test330/Makefile
+++ b/regression_test/ASN1/Test330/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test330/Test330A.asn b/regression_test/ASN1/Test330/Test330A.asn
index 443442912..0e79c9993 100644
--- a/regression_test/ASN1/Test330/Test330A.asn
+++ b/regression_test/ASN1/Test330/Test330A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test330/Test330T.ttcn b/regression_test/ASN1/Test330/Test330T.ttcn
index 3263ac57e..f744d5642 100644
--- a/regression_test/ASN1/Test330/Test330T.ttcn
+++ b/regression_test/ASN1/Test330/Test330T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test332/Makefile b/regression_test/ASN1/Test332/Makefile
index c07711389..486ff21ae 100644
--- a/regression_test/ASN1/Test332/Makefile
+++ b/regression_test/ASN1/Test332/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test332/Test332A.asn b/regression_test/ASN1/Test332/Test332A.asn
index 0cd6457df..8be5ef92a 100644
--- a/regression_test/ASN1/Test332/Test332A.asn
+++ b/regression_test/ASN1/Test332/Test332A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test332/Test332T.ttcn b/regression_test/ASN1/Test332/Test332T.ttcn
index 25edda685..f76f2a0c1 100644
--- a/regression_test/ASN1/Test332/Test332T.ttcn
+++ b/regression_test/ASN1/Test332/Test332T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test338/Makefile b/regression_test/ASN1/Test338/Makefile
index b744cd218..7928402ae 100644
--- a/regression_test/ASN1/Test338/Makefile
+++ b/regression_test/ASN1/Test338/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test338/Test338A.asn b/regression_test/ASN1/Test338/Test338A.asn
index fb389596f..d45fe0f5f 100644
--- a/regression_test/ASN1/Test338/Test338A.asn
+++ b/regression_test/ASN1/Test338/Test338A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test338/Test338T.ttcn b/regression_test/ASN1/Test338/Test338T.ttcn
index cc7e9b2ab..965c02087 100644
--- a/regression_test/ASN1/Test338/Test338T.ttcn
+++ b/regression_test/ASN1/Test338/Test338T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test340/Makefile b/regression_test/ASN1/Test340/Makefile
index 935d3e914..d138505fa 100644
--- a/regression_test/ASN1/Test340/Makefile
+++ b/regression_test/ASN1/Test340/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test340/Test340A.asn b/regression_test/ASN1/Test340/Test340A.asn
index c44c2c932..2d5d231ba 100644
--- a/regression_test/ASN1/Test340/Test340A.asn
+++ b/regression_test/ASN1/Test340/Test340A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test340/Test340T.ttcn b/regression_test/ASN1/Test340/Test340T.ttcn
index 497d845fd..c970643f9 100644
--- a/regression_test/ASN1/Test340/Test340T.ttcn
+++ b/regression_test/ASN1/Test340/Test340T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test342/Makefile b/regression_test/ASN1/Test342/Makefile
index b177b8ea1..12885c7e6 100644
--- a/regression_test/ASN1/Test342/Makefile
+++ b/regression_test/ASN1/Test342/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test342/Test342A.asn b/regression_test/ASN1/Test342/Test342A.asn
index 5094e72eb..237f20ae8 100644
--- a/regression_test/ASN1/Test342/Test342A.asn
+++ b/regression_test/ASN1/Test342/Test342A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test342/Test342T.ttcn b/regression_test/ASN1/Test342/Test342T.ttcn
index 3ea2b1494..3cdbae1bb 100644
--- a/regression_test/ASN1/Test342/Test342T.ttcn
+++ b/regression_test/ASN1/Test342/Test342T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test344/Makefile b/regression_test/ASN1/Test344/Makefile
index 21332782a..c2871d26b 100644
--- a/regression_test/ASN1/Test344/Makefile
+++ b/regression_test/ASN1/Test344/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test344/Test344A.asn b/regression_test/ASN1/Test344/Test344A.asn
index 1cecf78db..bc5c08fef 100644
--- a/regression_test/ASN1/Test344/Test344A.asn
+++ b/regression_test/ASN1/Test344/Test344A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test344/Test344T.ttcn b/regression_test/ASN1/Test344/Test344T.ttcn
index 34996eaf1..18766fc92 100644
--- a/regression_test/ASN1/Test344/Test344T.ttcn
+++ b/regression_test/ASN1/Test344/Test344T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test346/Makefile b/regression_test/ASN1/Test346/Makefile
index ed189207c..13885d389 100644
--- a/regression_test/ASN1/Test346/Makefile
+++ b/regression_test/ASN1/Test346/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test346/Test346A.asn b/regression_test/ASN1/Test346/Test346A.asn
index e243ab205..659c22d54 100644
--- a/regression_test/ASN1/Test346/Test346A.asn
+++ b/regression_test/ASN1/Test346/Test346A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test346/Test346T.ttcn b/regression_test/ASN1/Test346/Test346T.ttcn
index 2faa380c2..6efb81f11 100644
--- a/regression_test/ASN1/Test346/Test346T.ttcn
+++ b/regression_test/ASN1/Test346/Test346T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test348/Makefile b/regression_test/ASN1/Test348/Makefile
index d31b9f68e..a2e9d5345 100644
--- a/regression_test/ASN1/Test348/Makefile
+++ b/regression_test/ASN1/Test348/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test348/Test348A.asn b/regression_test/ASN1/Test348/Test348A.asn
index 4e344cfec..d09de815a 100644
--- a/regression_test/ASN1/Test348/Test348A.asn
+++ b/regression_test/ASN1/Test348/Test348A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test348/Test348T.ttcn b/regression_test/ASN1/Test348/Test348T.ttcn
index 3bd41f053..85840c392 100644
--- a/regression_test/ASN1/Test348/Test348T.ttcn
+++ b/regression_test/ASN1/Test348/Test348T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test350/Makefile b/regression_test/ASN1/Test350/Makefile
index bc7aaf197..fa9dd21cb 100644
--- a/regression_test/ASN1/Test350/Makefile
+++ b/regression_test/ASN1/Test350/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test350/Test350A.asn b/regression_test/ASN1/Test350/Test350A.asn
index 232a371c7..8c6be7520 100644
--- a/regression_test/ASN1/Test350/Test350A.asn
+++ b/regression_test/ASN1/Test350/Test350A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test350/Test350T.ttcn b/regression_test/ASN1/Test350/Test350T.ttcn
index 849f166cf..b4d6b934a 100644
--- a/regression_test/ASN1/Test350/Test350T.ttcn
+++ b/regression_test/ASN1/Test350/Test350T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test350/config.cfg b/regression_test/ASN1/Test350/config.cfg
index f6dd13c22..3df8932c7 100644
--- a/regression_test/ASN1/Test350/config.cfg
+++ b/regression_test/ASN1/Test350/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test352/Makefile b/regression_test/ASN1/Test352/Makefile
index f28f96142..8fb1a9939 100644
--- a/regression_test/ASN1/Test352/Makefile
+++ b/regression_test/ASN1/Test352/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test352/Test352A.asn b/regression_test/ASN1/Test352/Test352A.asn
index e7002b1c9..8ad2d4f1b 100644
--- a/regression_test/ASN1/Test352/Test352A.asn
+++ b/regression_test/ASN1/Test352/Test352A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test352/Test352T.ttcn b/regression_test/ASN1/Test352/Test352T.ttcn
index a5cee891f..a32407d2c 100644
--- a/regression_test/ASN1/Test352/Test352T.ttcn
+++ b/regression_test/ASN1/Test352/Test352T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test352/config.cfg b/regression_test/ASN1/Test352/config.cfg
index 865ee9caa..47e87e789 100644
--- a/regression_test/ASN1/Test352/config.cfg
+++ b/regression_test/ASN1/Test352/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test354/Makefile b/regression_test/ASN1/Test354/Makefile
index 0ca5e112d..638ec3ff8 100644
--- a/regression_test/ASN1/Test354/Makefile
+++ b/regression_test/ASN1/Test354/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test354/Test354A.asn b/regression_test/ASN1/Test354/Test354A.asn
index 1c03b62e2..8a68a6f1a 100644
--- a/regression_test/ASN1/Test354/Test354A.asn
+++ b/regression_test/ASN1/Test354/Test354A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test354/Test354T.ttcn b/regression_test/ASN1/Test354/Test354T.ttcn
index e2bc00ea8..8b9d18b09 100644
--- a/regression_test/ASN1/Test354/Test354T.ttcn
+++ b/regression_test/ASN1/Test354/Test354T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test354/config.cfg b/regression_test/ASN1/Test354/config.cfg
index e425731d2..506e7d22b 100644
--- a/regression_test/ASN1/Test354/config.cfg
+++ b/regression_test/ASN1/Test354/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test356/Makefile b/regression_test/ASN1/Test356/Makefile
index 8e01df39e..83bf16841 100644
--- a/regression_test/ASN1/Test356/Makefile
+++ b/regression_test/ASN1/Test356/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test356/Test356A.asn b/regression_test/ASN1/Test356/Test356A.asn
index aaf687f90..d850eedd1 100644
--- a/regression_test/ASN1/Test356/Test356A.asn
+++ b/regression_test/ASN1/Test356/Test356A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test356/Test356T.ttcn b/regression_test/ASN1/Test356/Test356T.ttcn
index 513d8858d..02fec8285 100644
--- a/regression_test/ASN1/Test356/Test356T.ttcn
+++ b/regression_test/ASN1/Test356/Test356T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test356/config.cfg b/regression_test/ASN1/Test356/config.cfg
index 708bdd4f0..9bac68f6b 100644
--- a/regression_test/ASN1/Test356/config.cfg
+++ b/regression_test/ASN1/Test356/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test358/Makefile b/regression_test/ASN1/Test358/Makefile
index 30657213c..f360feae0 100644
--- a/regression_test/ASN1/Test358/Makefile
+++ b/regression_test/ASN1/Test358/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test358/Test358A.asn b/regression_test/ASN1/Test358/Test358A.asn
index 0abd5a73b..54520ca68 100644
--- a/regression_test/ASN1/Test358/Test358A.asn
+++ b/regression_test/ASN1/Test358/Test358A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test358/Test358T.ttcn b/regression_test/ASN1/Test358/Test358T.ttcn
index 5bcee704a..39eb981e7 100644
--- a/regression_test/ASN1/Test358/Test358T.ttcn
+++ b/regression_test/ASN1/Test358/Test358T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test358/config.cfg b/regression_test/ASN1/Test358/config.cfg
index 91460bc54..fe679abe1 100644
--- a/regression_test/ASN1/Test358/config.cfg
+++ b/regression_test/ASN1/Test358/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test360/Makefile b/regression_test/ASN1/Test360/Makefile
index 64cfe6b3e..bfb5c6915 100644
--- a/regression_test/ASN1/Test360/Makefile
+++ b/regression_test/ASN1/Test360/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test360/Test360A.asn b/regression_test/ASN1/Test360/Test360A.asn
index 8c5a0ee2c..dd2c47f49 100644
--- a/regression_test/ASN1/Test360/Test360A.asn
+++ b/regression_test/ASN1/Test360/Test360A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test360/Test360T.ttcn b/regression_test/ASN1/Test360/Test360T.ttcn
index da2a3edc4..e044c5db1 100644
--- a/regression_test/ASN1/Test360/Test360T.ttcn
+++ b/regression_test/ASN1/Test360/Test360T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/Test360/config.cfg b/regression_test/ASN1/Test360/config.cfg
index 5d7cbc9c5..1a182e809 100644
--- a/regression_test/ASN1/Test360/config.cfg
+++ b/regression_test/ASN1/Test360/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test38/Makefile b/regression_test/ASN1/Test38/Makefile
index d16c388af..72979382b 100644
--- a/regression_test/ASN1/Test38/Makefile
+++ b/regression_test/ASN1/Test38/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/Test38/Test38A.asn b/regression_test/ASN1/Test38/Test38A.asn
index 31c48d22f..a4d48cf05 100644
--- a/regression_test/ASN1/Test38/Test38A.asn
+++ b/regression_test/ASN1/Test38/Test38A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/Test38/Test38B.asn b/regression_test/ASN1/Test38/Test38B.asn
index e9244f188..b39a0c686 100644
--- a/regression_test/ASN1/Test38/Test38B.asn
+++ b/regression_test/ASN1/Test38/Test38B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Makefile b/regression_test/ASN1/codeGeneration2/Makefile
index 84cecab54..74c1b4791 100644
--- a/regression_test/ASN1/codeGeneration2/Makefile
+++ b/regression_test/ASN1/codeGeneration2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/codeGeneration2/Test46.asn b/regression_test/ASN1/codeGeneration2/Test46.asn
index edab927f0..9f004d592 100644
--- a/regression_test/ASN1/codeGeneration2/Test46.asn
+++ b/regression_test/ASN1/codeGeneration2/Test46.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test48.asn b/regression_test/ASN1/codeGeneration2/Test48.asn
index d66ab6db2..75b1e7f41 100644
--- a/regression_test/ASN1/codeGeneration2/Test48.asn
+++ b/regression_test/ASN1/codeGeneration2/Test48.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test49.asn b/regression_test/ASN1/codeGeneration2/Test49.asn
index cc406e4a3..6c8d6d245 100644
--- a/regression_test/ASN1/codeGeneration2/Test49.asn
+++ b/regression_test/ASN1/codeGeneration2/Test49.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test51.asn b/regression_test/ASN1/codeGeneration2/Test51.asn
index 4678fdad7..a723f3cfd 100644
--- a/regression_test/ASN1/codeGeneration2/Test51.asn
+++ b/regression_test/ASN1/codeGeneration2/Test51.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test52.asn b/regression_test/ASN1/codeGeneration2/Test52.asn
index 41000bee9..c3dc3dfe4 100644
--- a/regression_test/ASN1/codeGeneration2/Test52.asn
+++ b/regression_test/ASN1/codeGeneration2/Test52.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test53.asn b/regression_test/ASN1/codeGeneration2/Test53.asn
index c8511706f..0236b7a8d 100644
--- a/regression_test/ASN1/codeGeneration2/Test53.asn
+++ b/regression_test/ASN1/codeGeneration2/Test53.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test54.asn b/regression_test/ASN1/codeGeneration2/Test54.asn
index c41559e5a..6a20edde4 100644
--- a/regression_test/ASN1/codeGeneration2/Test54.asn
+++ b/regression_test/ASN1/codeGeneration2/Test54.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test55.asn b/regression_test/ASN1/codeGeneration2/Test55.asn
index 514b67cd3..1e33adcd4 100644
--- a/regression_test/ASN1/codeGeneration2/Test55.asn
+++ b/regression_test/ASN1/codeGeneration2/Test55.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test56.asn b/regression_test/ASN1/codeGeneration2/Test56.asn
index 71a5d8e3e..823308621 100644
--- a/regression_test/ASN1/codeGeneration2/Test56.asn
+++ b/regression_test/ASN1/codeGeneration2/Test56.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test57.asn b/regression_test/ASN1/codeGeneration2/Test57.asn
index b3ec8eaeb..476e2c5fe 100644
--- a/regression_test/ASN1/codeGeneration2/Test57.asn
+++ b/regression_test/ASN1/codeGeneration2/Test57.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test60.asn b/regression_test/ASN1/codeGeneration2/Test60.asn
index 59fc7b95a..90bf3e0f3 100644
--- a/regression_test/ASN1/codeGeneration2/Test60.asn
+++ b/regression_test/ASN1/codeGeneration2/Test60.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test61.asn b/regression_test/ASN1/codeGeneration2/Test61.asn
index 51c674f48..27c9534f4 100644
--- a/regression_test/ASN1/codeGeneration2/Test61.asn
+++ b/regression_test/ASN1/codeGeneration2/Test61.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test62.asn b/regression_test/ASN1/codeGeneration2/Test62.asn
index 2abb5d743..d8ba8920f 100644
--- a/regression_test/ASN1/codeGeneration2/Test62.asn
+++ b/regression_test/ASN1/codeGeneration2/Test62.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test63.asn b/regression_test/ASN1/codeGeneration2/Test63.asn
index 35f9e42fc..56b93f615 100644
--- a/regression_test/ASN1/codeGeneration2/Test63.asn
+++ b/regression_test/ASN1/codeGeneration2/Test63.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test64.asn b/regression_test/ASN1/codeGeneration2/Test64.asn
index bd292d44d..a4ad18bdf 100644
--- a/regression_test/ASN1/codeGeneration2/Test64.asn
+++ b/regression_test/ASN1/codeGeneration2/Test64.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test65.asn b/regression_test/ASN1/codeGeneration2/Test65.asn
index 1d1d4b3eb..1deef2bc1 100644
--- a/regression_test/ASN1/codeGeneration2/Test65.asn
+++ b/regression_test/ASN1/codeGeneration2/Test65.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test66.asn b/regression_test/ASN1/codeGeneration2/Test66.asn
index d9ee81d7c..aa3e32f0b 100644
--- a/regression_test/ASN1/codeGeneration2/Test66.asn
+++ b/regression_test/ASN1/codeGeneration2/Test66.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test68.asn b/regression_test/ASN1/codeGeneration2/Test68.asn
index 3364b9f3f..58e01ef8b 100644
--- a/regression_test/ASN1/codeGeneration2/Test68.asn
+++ b/regression_test/ASN1/codeGeneration2/Test68.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test71.asn b/regression_test/ASN1/codeGeneration2/Test71.asn
index 7779d095a..3ae2fa318 100644
--- a/regression_test/ASN1/codeGeneration2/Test71.asn
+++ b/regression_test/ASN1/codeGeneration2/Test71.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test74.asn b/regression_test/ASN1/codeGeneration2/Test74.asn
index a2446f5c7..15d702d3b 100644
--- a/regression_test/ASN1/codeGeneration2/Test74.asn
+++ b/regression_test/ASN1/codeGeneration2/Test74.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test75.asn b/regression_test/ASN1/codeGeneration2/Test75.asn
index 8e7482d95..a2c8d8f56 100644
--- a/regression_test/ASN1/codeGeneration2/Test75.asn
+++ b/regression_test/ASN1/codeGeneration2/Test75.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test76.asn b/regression_test/ASN1/codeGeneration2/Test76.asn
index ecb563441..9b3d67997 100644
--- a/regression_test/ASN1/codeGeneration2/Test76.asn
+++ b/regression_test/ASN1/codeGeneration2/Test76.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test77.asn b/regression_test/ASN1/codeGeneration2/Test77.asn
index 21f5b8c33..260ae9661 100644
--- a/regression_test/ASN1/codeGeneration2/Test77.asn
+++ b/regression_test/ASN1/codeGeneration2/Test77.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test78.asn b/regression_test/ASN1/codeGeneration2/Test78.asn
index 15ecb00a9..4d2578f22 100644
--- a/regression_test/ASN1/codeGeneration2/Test78.asn
+++ b/regression_test/ASN1/codeGeneration2/Test78.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test80.asn b/regression_test/ASN1/codeGeneration2/Test80.asn
index 845c7d461..a2a351d0c 100644
--- a/regression_test/ASN1/codeGeneration2/Test80.asn
+++ b/regression_test/ASN1/codeGeneration2/Test80.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test81.asn b/regression_test/ASN1/codeGeneration2/Test81.asn
index cc0d65426..5cec67051 100644
--- a/regression_test/ASN1/codeGeneration2/Test81.asn
+++ b/regression_test/ASN1/codeGeneration2/Test81.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test83.asn b/regression_test/ASN1/codeGeneration2/Test83.asn
index 7b640dcf1..f4aa7fb68 100644
--- a/regression_test/ASN1/codeGeneration2/Test83.asn
+++ b/regression_test/ASN1/codeGeneration2/Test83.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test86.asn b/regression_test/ASN1/codeGeneration2/Test86.asn
index f77bb6cff..151ab05ab 100644
--- a/regression_test/ASN1/codeGeneration2/Test86.asn
+++ b/regression_test/ASN1/codeGeneration2/Test86.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/codeGeneration2/Test87.asn b/regression_test/ASN1/codeGeneration2/Test87.asn
index 7631301d5..7c61c1dd2 100644
--- a/regression_test/ASN1/codeGeneration2/Test87.asn
+++ b/regression_test/ASN1/codeGeneration2/Test87.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/enum1/Makefile b/regression_test/ASN1/enum1/Makefile
index 94b2e52b4..807a6f8d9 100644
--- a/regression_test/ASN1/enum1/Makefile
+++ b/regression_test/ASN1/enum1/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/enum1/Test23.asn b/regression_test/ASN1/enum1/Test23.asn
index 8dadba7a3..5225923f3 100644
--- a/regression_test/ASN1/enum1/Test23.asn
+++ b/regression_test/ASN1/enum1/Test23.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/enum2/Makefile b/regression_test/ASN1/enum2/Makefile
index 848645f61..66cd518c3 100644
--- a/regression_test/ASN1/enum2/Makefile
+++ b/regression_test/ASN1/enum2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/enum2/Test25.asn b/regression_test/ASN1/enum2/Test25.asn
index 47b80c556..8c7589b5b 100644
--- a/regression_test/ASN1/enum2/Test25.asn
+++ b/regression_test/ASN1/enum2/Test25.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Makefile b/regression_test/ASN1/errorMessages/Makefile
index 4b0e4e9d7..dc5b8640a 100644
--- a/regression_test/ASN1/errorMessages/Makefile
+++ b/regression_test/ASN1/errorMessages/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/errorMessages/Test11.asn b/regression_test/ASN1/errorMessages/Test11.asn
index d0df00217..cd5233193 100644
--- a/regression_test/ASN1/errorMessages/Test11.asn
+++ b/regression_test/ASN1/errorMessages/Test11.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test12.asn b/regression_test/ASN1/errorMessages/Test12.asn
index d99f9bea2..7bc5f3a70 100644
--- a/regression_test/ASN1/errorMessages/Test12.asn
+++ b/regression_test/ASN1/errorMessages/Test12.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test13.asn b/regression_test/ASN1/errorMessages/Test13.asn
index 05092a23e..a34bdbe29 100644
--- a/regression_test/ASN1/errorMessages/Test13.asn
+++ b/regression_test/ASN1/errorMessages/Test13.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test14.asn b/regression_test/ASN1/errorMessages/Test14.asn
index 7e930ca67..b5c123aa2 100644
--- a/regression_test/ASN1/errorMessages/Test14.asn
+++ b/regression_test/ASN1/errorMessages/Test14.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test15.asn b/regression_test/ASN1/errorMessages/Test15.asn
index 13b28e706..91ac23428 100644
--- a/regression_test/ASN1/errorMessages/Test15.asn
+++ b/regression_test/ASN1/errorMessages/Test15.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test16.asn b/regression_test/ASN1/errorMessages/Test16.asn
index 200bbe377..81dad3eee 100644
--- a/regression_test/ASN1/errorMessages/Test16.asn
+++ b/regression_test/ASN1/errorMessages/Test16.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test17.asn b/regression_test/ASN1/errorMessages/Test17.asn
index 57fd16ee9..bfa4346b1 100644
--- a/regression_test/ASN1/errorMessages/Test17.asn
+++ b/regression_test/ASN1/errorMessages/Test17.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test18.asn b/regression_test/ASN1/errorMessages/Test18.asn
index 4ae0723e5..ee252ff40 100644
--- a/regression_test/ASN1/errorMessages/Test18.asn
+++ b/regression_test/ASN1/errorMessages/Test18.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test19_1.asn b/regression_test/ASN1/errorMessages/Test19_1.asn
index 74a381318..3caeaeaad 100644
--- a/regression_test/ASN1/errorMessages/Test19_1.asn
+++ b/regression_test/ASN1/errorMessages/Test19_1.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test19_2.asn b/regression_test/ASN1/errorMessages/Test19_2.asn
index 8638453b1..f1f1dbcda 100644
--- a/regression_test/ASN1/errorMessages/Test19_2.asn
+++ b/regression_test/ASN1/errorMessages/Test19_2.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test20.asn b/regression_test/ASN1/errorMessages/Test20.asn
index b84c63c8c..3f566cfa7 100644
--- a/regression_test/ASN1/errorMessages/Test20.asn
+++ b/regression_test/ASN1/errorMessages/Test20.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test21.asn b/regression_test/ASN1/errorMessages/Test21.asn
index 976fc8b95..3b1925b82 100644
--- a/regression_test/ASN1/errorMessages/Test21.asn
+++ b/regression_test/ASN1/errorMessages/Test21.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test22.asn b/regression_test/ASN1/errorMessages/Test22.asn
index 31eb55b6a..6c7686eed 100644
--- a/regression_test/ASN1/errorMessages/Test22.asn
+++ b/regression_test/ASN1/errorMessages/Test22.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test24.asn b/regression_test/ASN1/errorMessages/Test24.asn
index d7ceeaf99..b641367b3 100644
--- a/regression_test/ASN1/errorMessages/Test24.asn
+++ b/regression_test/ASN1/errorMessages/Test24.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test26.asn b/regression_test/ASN1/errorMessages/Test26.asn
index 298a57bfc..efd35934b 100644
--- a/regression_test/ASN1/errorMessages/Test26.asn
+++ b/regression_test/ASN1/errorMessages/Test26.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test28.asn b/regression_test/ASN1/errorMessages/Test28.asn
index 78e44eee4..b854717bc 100644
--- a/regression_test/ASN1/errorMessages/Test28.asn
+++ b/regression_test/ASN1/errorMessages/Test28.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test32.asn b/regression_test/ASN1/errorMessages/Test32.asn
index 52da3654f..9bbc229d6 100644
--- a/regression_test/ASN1/errorMessages/Test32.asn
+++ b/regression_test/ASN1/errorMessages/Test32.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test33.asn b/regression_test/ASN1/errorMessages/Test33.asn
index ea20d6b07..7d2e2ece8 100644
--- a/regression_test/ASN1/errorMessages/Test33.asn
+++ b/regression_test/ASN1/errorMessages/Test33.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test34.asn b/regression_test/ASN1/errorMessages/Test34.asn
index 3ac4f6d9b..271eeee3c 100644
--- a/regression_test/ASN1/errorMessages/Test34.asn
+++ b/regression_test/ASN1/errorMessages/Test34.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test39.asn b/regression_test/ASN1/errorMessages/Test39.asn
index b7c3bbcfd..737d87fe1 100644
--- a/regression_test/ASN1/errorMessages/Test39.asn
+++ b/regression_test/ASN1/errorMessages/Test39.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test40.asn b/regression_test/ASN1/errorMessages/Test40.asn
index 0c4a7ac2a..e824b2caa 100644
--- a/regression_test/ASN1/errorMessages/Test40.asn
+++ b/regression_test/ASN1/errorMessages/Test40.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test41.asn b/regression_test/ASN1/errorMessages/Test41.asn
index c1cc36008..4e8686696 100644
--- a/regression_test/ASN1/errorMessages/Test41.asn
+++ b/regression_test/ASN1/errorMessages/Test41.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test42.asn b/regression_test/ASN1/errorMessages/Test42.asn
index 661c904c9..2a0cca26b 100644
--- a/regression_test/ASN1/errorMessages/Test42.asn
+++ b/regression_test/ASN1/errorMessages/Test42.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test43.asn b/regression_test/ASN1/errorMessages/Test43.asn
index a928ebee8..92079fb43 100644
--- a/regression_test/ASN1/errorMessages/Test43.asn
+++ b/regression_test/ASN1/errorMessages/Test43.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test44.asn b/regression_test/ASN1/errorMessages/Test44.asn
index 91a076dcf..ee556a51f 100644
--- a/regression_test/ASN1/errorMessages/Test44.asn
+++ b/regression_test/ASN1/errorMessages/Test44.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test45.asn b/regression_test/ASN1/errorMessages/Test45.asn
index aec56d4cc..587ce22fc 100644
--- a/regression_test/ASN1/errorMessages/Test45.asn
+++ b/regression_test/ASN1/errorMessages/Test45.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test47.asn b/regression_test/ASN1/errorMessages/Test47.asn
index 090ef509f..468764de8 100644
--- a/regression_test/ASN1/errorMessages/Test47.asn
+++ b/regression_test/ASN1/errorMessages/Test47.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test50.asn b/regression_test/ASN1/errorMessages/Test50.asn
index 6d45fda6d..389148399 100644
--- a/regression_test/ASN1/errorMessages/Test50.asn
+++ b/regression_test/ASN1/errorMessages/Test50.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test67.asn b/regression_test/ASN1/errorMessages/Test67.asn
index a7f4b74ed..e2beaa9f2 100644
--- a/regression_test/ASN1/errorMessages/Test67.asn
+++ b/regression_test/ASN1/errorMessages/Test67.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test69.asn b/regression_test/ASN1/errorMessages/Test69.asn
index 8d9a3dc61..b13d68dc6 100644
--- a/regression_test/ASN1/errorMessages/Test69.asn
+++ b/regression_test/ASN1/errorMessages/Test69.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test70.asn b/regression_test/ASN1/errorMessages/Test70.asn
index 1fb7c694f..77d7276f3 100644
--- a/regression_test/ASN1/errorMessages/Test70.asn
+++ b/regression_test/ASN1/errorMessages/Test70.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test72.asn b/regression_test/ASN1/errorMessages/Test72.asn
index d092d1ec2..cf9448be6 100644
--- a/regression_test/ASN1/errorMessages/Test72.asn
+++ b/regression_test/ASN1/errorMessages/Test72.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test73.asn b/regression_test/ASN1/errorMessages/Test73.asn
index 848d6f628..5624dc9f0 100644
--- a/regression_test/ASN1/errorMessages/Test73.asn
+++ b/regression_test/ASN1/errorMessages/Test73.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test79.asn b/regression_test/ASN1/errorMessages/Test79.asn
index b51a1eb75..01da91bf5 100644
--- a/regression_test/ASN1/errorMessages/Test79.asn
+++ b/regression_test/ASN1/errorMessages/Test79.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test82.asn b/regression_test/ASN1/errorMessages/Test82.asn
index 8941244ed..2c6496c85 100644
--- a/regression_test/ASN1/errorMessages/Test82.asn
+++ b/regression_test/ASN1/errorMessages/Test82.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test84.asn b/regression_test/ASN1/errorMessages/Test84.asn
index 396d43af9..b754d509e 100644
--- a/regression_test/ASN1/errorMessages/Test84.asn
+++ b/regression_test/ASN1/errorMessages/Test84.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages/Test85.asn b/regression_test/ASN1/errorMessages/Test85.asn
index f65b2c613..db604c58c 100644
--- a/regression_test/ASN1/errorMessages/Test85.asn
+++ b/regression_test/ASN1/errorMessages/Test85.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/errorMessages2/Makefile b/regression_test/ASN1/errorMessages2/Makefile
index 665fa795d..ce2723727 100644
--- a/regression_test/ASN1/errorMessages2/Makefile
+++ b/regression_test/ASN1/errorMessages2/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/errorMessages2/Test10.asn b/regression_test/ASN1/errorMessages2/Test10.asn
index ba6587de4..5944ba3ab 100644
--- a/regression_test/ASN1/errorMessages2/Test10.asn
+++ b/regression_test/ASN1/errorMessages2/Test10.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/hyphen/Makefile b/regression_test/ASN1/hyphen/Makefile
index ecb5ae810..ea3328251 100644
--- a/regression_test/ASN1/hyphen/Makefile
+++ b/regression_test/ASN1/hyphen/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/hyphen/Test284.asn b/regression_test/ASN1/hyphen/Test284.asn
index 61b76a539..9c609bf63 100644
--- a/regression_test/ASN1/hyphen/Test284.asn
+++ b/regression_test/ASN1/hyphen/Test284.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/keyword/Makefile b/regression_test/ASN1/keyword/Makefile
index eba96b57b..4fdfe0f66 100644
--- a/regression_test/ASN1/keyword/Makefile
+++ b/regression_test/ASN1/keyword/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/keyword/Test283.asn b/regression_test/ASN1/keyword/Test283.asn
index fae76f819..18e342d82 100644
--- a/regression_test/ASN1/keyword/Test283.asn
+++ b/regression_test/ASN1/keyword/Test283.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/keyword/Test283T.ttcn b/regression_test/ASN1/keyword/Test283T.ttcn
index 25d44bcbc..77f93bc6a 100644
--- a/regression_test/ASN1/keyword/Test283T.ttcn
+++ b/regression_test/ASN1/keyword/Test283T.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ASN1/parse/Makefile b/regression_test/ASN1/parse/Makefile
index 65a99a2ac..536439d24 100644
--- a/regression_test/ASN1/parse/Makefile
+++ b/regression_test/ASN1/parse/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/parse/Test1.asn b/regression_test/ASN1/parse/Test1.asn
index 74462db3c..e17bc5d89 100644
--- a/regression_test/ASN1/parse/Test1.asn
+++ b/regression_test/ASN1/parse/Test1.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test1_known_errors.asn b/regression_test/ASN1/parse/Test1_known_errors.asn
index 54a6f763d..c591b4d07 100644
--- a/regression_test/ASN1/parse/Test1_known_errors.asn
+++ b/regression_test/ASN1/parse/Test1_known_errors.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test2.asn b/regression_test/ASN1/parse/Test2.asn
index 120cf258e..23a5d05ba 100644
--- a/regression_test/ASN1/parse/Test2.asn
+++ b/regression_test/ASN1/parse/Test2.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test2_known_errors.asn b/regression_test/ASN1/parse/Test2_known_errors.asn
index fbc170464..74a594388 100644
--- a/regression_test/ASN1/parse/Test2_known_errors.asn
+++ b/regression_test/ASN1/parse/Test2_known_errors.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test3.asn b/regression_test/ASN1/parse/Test3.asn
index 4d19a894f..9daab6688 100644
--- a/regression_test/ASN1/parse/Test3.asn
+++ b/regression_test/ASN1/parse/Test3.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test3_known_errors.asn b/regression_test/ASN1/parse/Test3_known_errors.asn
index 263d9981d..a972630bc 100644
--- a/regression_test/ASN1/parse/Test3_known_errors.asn
+++ b/regression_test/ASN1/parse/Test3_known_errors.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test4.asn b/regression_test/ASN1/parse/Test4.asn
index 2090ffc49..d20f2f46f 100644
--- a/regression_test/ASN1/parse/Test4.asn
+++ b/regression_test/ASN1/parse/Test4.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/parse/Test4_known_errors.asn b/regression_test/ASN1/parse/Test4_known_errors.asn
index 11b7bd8b7..29fb30c1e 100644
--- a/regression_test/ASN1/parse/Test4_known_errors.asn
+++ b/regression_test/ASN1/parse/Test4_known_errors.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Makefile b/regression_test/ASN1/transformations/Makefile
index 42f65bf8a..23e668bdc 100644
--- a/regression_test/ASN1/transformations/Makefile
+++ b/regression_test/ASN1/transformations/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ASN1/transformations/Test289A.asn b/regression_test/ASN1/transformations/Test289A.asn
index 95017a2f2..1ff704f82 100644
--- a/regression_test/ASN1/transformations/Test289A.asn
+++ b/regression_test/ASN1/transformations/Test289A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test289B.asn b/regression_test/ASN1/transformations/Test289B.asn
index 5f2937c90..458e1df49 100644
--- a/regression_test/ASN1/transformations/Test289B.asn
+++ b/regression_test/ASN1/transformations/Test289B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test5A.asn b/regression_test/ASN1/transformations/Test5A.asn
index 79f42cded..996979015 100644
--- a/regression_test/ASN1/transformations/Test5A.asn
+++ b/regression_test/ASN1/transformations/Test5A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test5B.asn b/regression_test/ASN1/transformations/Test5B.asn
index 2c60aaea8..2f438ee2c 100644
--- a/regression_test/ASN1/transformations/Test5B.asn
+++ b/regression_test/ASN1/transformations/Test5B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test6A.asn b/regression_test/ASN1/transformations/Test6A.asn
index d9561621b..b25711d2a 100644
--- a/regression_test/ASN1/transformations/Test6A.asn
+++ b/regression_test/ASN1/transformations/Test6A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test6B.asn b/regression_test/ASN1/transformations/Test6B.asn
index 240cbcaf3..7b307b425 100644
--- a/regression_test/ASN1/transformations/Test6B.asn
+++ b/regression_test/ASN1/transformations/Test6B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test7A.asn b/regression_test/ASN1/transformations/Test7A.asn
index 3d48627d7..0f49a9a48 100644
--- a/regression_test/ASN1/transformations/Test7A.asn
+++ b/regression_test/ASN1/transformations/Test7A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test7B.asn b/regression_test/ASN1/transformations/Test7B.asn
index 300b2b6ad..e21915e28 100644
--- a/regression_test/ASN1/transformations/Test7B.asn
+++ b/regression_test/ASN1/transformations/Test7B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test8A.asn b/regression_test/ASN1/transformations/Test8A.asn
index 3c917a3f9..ee6297efd 100644
--- a/regression_test/ASN1/transformations/Test8A.asn
+++ b/regression_test/ASN1/transformations/Test8A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test8B.asn b/regression_test/ASN1/transformations/Test8B.asn
index 543a07e99..6d93bb8da 100644
--- a/regression_test/ASN1/transformations/Test8B.asn
+++ b/regression_test/ASN1/transformations/Test8B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test9A.asn b/regression_test/ASN1/transformations/Test9A.asn
index ebfa712f2..a05684933 100644
--- a/regression_test/ASN1/transformations/Test9A.asn
+++ b/regression_test/ASN1/transformations/Test9A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/ASN1/transformations/Test9B.asn b/regression_test/ASN1/transformations/Test9B.asn
index c143c6df7..9bda568ea 100644
--- a/regression_test/ASN1/transformations/Test9B.asn
+++ b/regression_test/ASN1/transformations/Test9B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/BER/Makefile b/regression_test/BER/Makefile
index d2ec0e1a1..7bc52f301 100644
--- a/regression_test/BER/Makefile
+++ b/regression_test/BER/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/BER/MyPort1.cc b/regression_test/BER/MyPort1.cc
index e5cb733ca..c81806624 100644
--- a/regression_test/BER/MyPort1.cc
+++ b/regression_test/BER/MyPort1.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER/MyPort1.hh b/regression_test/BER/MyPort1.hh
index 64184fef4..2f007e12f 100644
--- a/regression_test/BER/MyPort1.hh
+++ b/regression_test/BER/MyPort1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER/MyPort2.cc b/regression_test/BER/MyPort2.cc
index b04734f9c..a066a8bdc 100644
--- a/regression_test/BER/MyPort2.cc
+++ b/regression_test/BER/MyPort2.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER/MyPort2.hh b/regression_test/BER/MyPort2.hh
index c07f8e450..d02f8a226 100644
--- a/regression_test/BER/MyPort2.hh
+++ b/regression_test/BER/MyPort2.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER/Regr.cfg b/regression_test/BER/Regr.cfg
index 3a47a27e1..a024c7d52 100644
--- a/regression_test/BER/Regr.cfg
+++ b/regression_test/BER/Regr.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/BER/Regr.ttcn b/regression_test/BER/Regr.ttcn
index b5949d82c..107f9ad0e 100644
--- a/regression_test/BER/Regr.ttcn
+++ b/regression_test/BER/Regr.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -1053,12 +1053,10 @@ module Regr
   function check_enc_dec(integer int, octetstring expected) {
     var octetstring encoded_pdu := enc_ber_int(int);
     if (encoded_pdu == expected) {setverdict(pass);}
-    else {setverdict(fail, "Encoding failed");}
-    log(encoded_pdu);
+    else {setverdict(fail, "Encoding failed, encoded_pdu is ", log2str(encoded_pdu));}
     var integer decoded :=  dec_ber_int(encoded_pdu);
-    log(decoded);
     if (int == decoded) { setverdict(pass); }
-    else {setverdict(fail, "decoding failed");}
+    else {setverdict(fail, "decoding failed, decoded is ", decoded);}
   } with {
     extension "transparent"
   }
diff --git a/regression_test/BER/Regr1.asn b/regression_test/BER/Regr1.asn
index e18e8764a..191d640ca 100644
--- a/regression_test/BER/Regr1.asn
+++ b/regression_test/BER/Regr1.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/BER/Regr2.asn b/regression_test/BER/Regr2.asn
index e87e3f5ba..4e15aff66 100644
--- a/regression_test/BER/Regr2.asn
+++ b/regression_test/BER/Regr2.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/BER_x682/Makefile b/regression_test/BER_x682/Makefile
index 7689c0182..e119d65e6 100644
--- a/regression_test/BER_x682/Makefile
+++ b/regression_test/BER_x682/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/BER_x682/MyPort1.cc b/regression_test/BER_x682/MyPort1.cc
index c5b412886..1302a3772 100644
--- a/regression_test/BER_x682/MyPort1.cc
+++ b/regression_test/BER_x682/MyPort1.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682/MyPort1.hh b/regression_test/BER_x682/MyPort1.hh
index fc21062d0..21350cf07 100644
--- a/regression_test/BER_x682/MyPort1.hh
+++ b/regression_test/BER_x682/MyPort1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682/MyPort2.cc b/regression_test/BER_x682/MyPort2.cc
index 519d54257..262a9b29e 100644
--- a/regression_test/BER_x682/MyPort2.cc
+++ b/regression_test/BER_x682/MyPort2.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682/MyPort2.hh b/regression_test/BER_x682/MyPort2.hh
index 626b45f24..21dbadcb0 100644
--- a/regression_test/BER_x682/MyPort2.hh
+++ b/regression_test/BER_x682/MyPort2.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682/X.cfg b/regression_test/BER_x682/X.cfg
index c82fbe08b..3199c0fd7 100644
--- a/regression_test/BER_x682/X.cfg
+++ b/regression_test/BER_x682/X.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/BER_x682/X.ttcn b/regression_test/BER_x682/X.ttcn
index 04a042302..9df39ecf5 100644
--- a/regression_test/BER_x682/X.ttcn
+++ b/regression_test/BER_x682/X.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/BER_x682/X682.asn b/regression_test/BER_x682/X682.asn
index e59d2af04..5525b645f 100644
--- a/regression_test/BER_x682/X682.asn
+++ b/regression_test/BER_x682/X682.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/BER_x682_wa/Makefile b/regression_test/BER_x682_wa/Makefile
index dd0852ae7..6bc310a07 100644
--- a/regression_test/BER_x682_wa/Makefile
+++ b/regression_test/BER_x682_wa/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/BER_x682_wa/MyPort1.cc b/regression_test/BER_x682_wa/MyPort1.cc
index 6a71e6059..d48edc4ec 100644
--- a/regression_test/BER_x682_wa/MyPort1.cc
+++ b/regression_test/BER_x682_wa/MyPort1.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682_wa/MyPort1.hh b/regression_test/BER_x682_wa/MyPort1.hh
index 80e0788e0..54a302b4f 100644
--- a/regression_test/BER_x682_wa/MyPort1.hh
+++ b/regression_test/BER_x682_wa/MyPort1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682_wa/MyPort2.cc b/regression_test/BER_x682_wa/MyPort2.cc
index d05ac9971..190c4e179 100644
--- a/regression_test/BER_x682_wa/MyPort2.cc
+++ b/regression_test/BER_x682_wa/MyPort2.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682_wa/MyPort2.hh b/regression_test/BER_x682_wa/MyPort2.hh
index ac8ed1e9a..717334235 100644
--- a/regression_test/BER_x682_wa/MyPort2.hh
+++ b/regression_test/BER_x682_wa/MyPort2.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/BER_x682_wa/X.cfg b/regression_test/BER_x682_wa/X.cfg
index f322aec1b..39d0e7259 100644
--- a/regression_test/BER_x682_wa/X.cfg
+++ b/regression_test/BER_x682_wa/X.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/BER_x682_wa/X.ttcn b/regression_test/BER_x682_wa/X.ttcn
index 008bb51c8..a913c0711 100644
--- a/regression_test/BER_x682_wa/X.ttcn
+++ b/regression_test/BER_x682_wa/X.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/BER_x682_wa/x682.asn b/regression_test/BER_x682_wa/x682.asn
index 234ea98f5..440f8f3e5 100644
--- a/regression_test/BER_x682_wa/x682.asn
+++ b/regression_test/BER_x682_wa/x682.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/CRTR00015758/Makefile b/regression_test/CRTR00015758/Makefile
index dd28702bc..769db8fdd 100644
--- a/regression_test/CRTR00015758/Makefile
+++ b/regression_test/CRTR00015758/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/CRTR00015758/config.cfg b/regression_test/CRTR00015758/config.cfg
index 310b5d674..df79fce62 100644
--- a/regression_test/CRTR00015758/config.cfg
+++ b/regression_test/CRTR00015758/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/CRTR00015758/no.ttcn b/regression_test/CRTR00015758/no.ttcn
index c23e17221..c38b2e330 100644
--- a/regression_test/CRTR00015758/no.ttcn
+++ b/regression_test/CRTR00015758/no.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/CRTR00015758/run.cfg b/regression_test/CRTR00015758/run.cfg
index c41311a75..9f8fe7e88 100644
--- a/regression_test/CRTR00015758/run.cfg
+++ b/regression_test/CRTR00015758/run.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/CRTR00015758/trouble.cfg b/regression_test/CRTR00015758/trouble.cfg
index 2e99e00b5..cb5ab8242 100644
--- a/regression_test/CRTR00015758/trouble.cfg
+++ b/regression_test/CRTR00015758/trouble.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ERC/Makefile b/regression_test/ERC/Makefile
index 0517b0b35..9626b0209 100644
--- a/regression_test/ERC/Makefile
+++ b/regression_test/ERC/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ERC/base.cfg b/regression_test/ERC/base.cfg
index d6f4cec7f..95daaf97a 100644
--- a/regression_test/ERC/base.cfg
+++ b/regression_test/ERC/base.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ERC/config.cfg b/regression_test/ERC/config.cfg
index c2b2f55f5..41e2aeb5d 100644
--- a/regression_test/ERC/config.cfg
+++ b/regression_test/ERC/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ERC/erc.ttcn b/regression_test/ERC/erc.ttcn
index 0185183c3..97863cfc6 100644
--- a/regression_test/ERC/erc.ttcn
+++ b/regression_test/ERC/erc.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -61,7 +61,6 @@ type component empty_comp{};
 
 testcase test_own_config() runs on empty_comp
 {
-  log(m_env_test);
   if(m_float1 == 1.0){setverdict(pass);}
   else{setverdict(fail);}
   if(m_boolean1 == true){setverdict(pass);}
diff --git a/regression_test/ERC/included1.cfg b/regression_test/ERC/included1.cfg
index b72fe6066..217de890f 100644
--- a/regression_test/ERC/included1.cfg
+++ b/regression_test/ERC/included1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ERC/included2.cfg b/regression_test/ERC/included2.cfg
index 372f706d6..1654b7182 100644
--- a/regression_test/ERC/included2.cfg
+++ b/regression_test/ERC/included2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ERC/subdir/subdir_config.cfg b/regression_test/ERC/subdir/subdir_config.cfg
index c31b2ec4b..cc51bec90 100644
--- a/regression_test/ERC/subdir/subdir_config.cfg
+++ b/regression_test/ERC/subdir/subdir_config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/HQ16404/HQ16404.ttcn b/regression_test/HQ16404/HQ16404.ttcn
index 61d22a87f..ca2e5f17b 100644
--- a/regression_test/HQ16404/HQ16404.ttcn
+++ b/regression_test/HQ16404/HQ16404.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/HQ16404/Makefile b/regression_test/HQ16404/Makefile
index b49e9d5cb..fc09ac43d 100644
--- a/regression_test/HQ16404/Makefile
+++ b/regression_test/HQ16404/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/HQ16404/config.cfg b/regression_test/HQ16404/config.cfg
index 3a48e2e34..fa17414b3 100644
--- a/regression_test/HQ16404/config.cfg
+++ b/regression_test/HQ16404/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/Makefile b/regression_test/Makefile
index 4b85e6ded..01361d583 100644
--- a/regression_test/Makefile
+++ b/regression_test/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -21,7 +21,7 @@ nonMandatoryPar logFiles logger_control namedActualParameters \
 assignmentNotation omitdef anytype RAW implicitMsgEncoding pattern_quadruples \
 macros visibility hexstrOper ucharstrOper objidOper CRTR00015758 slider \
 XML ipv6 implicitOmit testcase_defparam transparent HQ16404 cfgFile \
-all_from lazyEval tryCatch text2ttcn json junitlogger ttcn2json profiler
+all_from lazyEval tryCatch text2ttcn json junitlogger ttcn2json profiler templateOmit
 
 ifdef DYN
 DIRS += loggerplugin
diff --git a/regression_test/Makefile.regression b/regression_test/Makefile.regression
index 2bf941c70..2b58c9440 100644
--- a/regression_test/Makefile.regression
+++ b/regression_test/Makefile.regression
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -142,6 +142,7 @@ LCOV_DIR := /mnt/TTCN/Tools/lcov-1.7/usr
 #LCOV=1
 
 ifdef LCOV
+  CPPFLAGS += -fprofile-arcs -ftest-coverage -g
   CXXFLAGS += -fprofile-arcs -ftest-coverage -g
   LDFLAGS += -fprofile-arcs -ftest-coverage -g -lgcov
 endif
diff --git a/regression_test/RAW/Examples/DTAP_RAW_Samples.ttcn b/regression_test/RAW/Examples/DTAP_RAW_Samples.ttcn
index 7692739d2..91b4223a9 100644
--- a/regression_test/RAW/Examples/DTAP_RAW_Samples.ttcn
+++ b/regression_test/RAW/Examples/DTAP_RAW_Samples.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/Examples/DTAP_typedefs.ttcn b/regression_test/RAW/Examples/DTAP_typedefs.ttcn
index e9b9b1e31..f38a9d126 100644
--- a/regression_test/RAW/Examples/DTAP_typedefs.ttcn
+++ b/regression_test/RAW/Examples/DTAP_typedefs.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/Examples/Makefile b/regression_test/RAW/Examples/Makefile
index 2e0565231..34b19e916 100644
--- a/regression_test/RAW/Examples/Makefile
+++ b/regression_test/RAW/Examples/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/Examples/RAW_Test.ttcn b/regression_test/RAW/Examples/RAW_Test.ttcn
index 4033690a7..5d66a83df 100644
--- a/regression_test/RAW/Examples/RAW_Test.ttcn
+++ b/regression_test/RAW/Examples/RAW_Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/Examples/RAWtest.cfg b/regression_test/RAW/Examples/RAWtest.cfg
index c1996488a..f2c642688 100644
--- a/regression_test/RAW/Examples/RAWtest.cfg
+++ b/regression_test/RAW/Examples/RAWtest.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/Examples/SCCP_RAW_Samples.ttcn b/regression_test/RAW/Examples/SCCP_RAW_Samples.ttcn
index f37cadd96..db431ad22 100644
--- a/regression_test/RAW/Examples/SCCP_RAW_Samples.ttcn
+++ b/regression_test/RAW/Examples/SCCP_RAW_Samples.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/Examples/SCCP_typedefs.ttcn b/regression_test/RAW/Examples/SCCP_typedefs.ttcn
index e36fc6461..123f88bae 100644
--- a/regression_test/RAW/Examples/SCCP_typedefs.ttcn
+++ b/regression_test/RAW/Examples/SCCP_typedefs.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/Examples/general_typedefs.ttcn b/regression_test/RAW/Examples/general_typedefs.ttcn
index 02c4bbe76..5586592bb 100644
--- a/regression_test/RAW/Examples/general_typedefs.ttcn
+++ b/regression_test/RAW/Examples/general_typedefs.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HN25015/General_Types.ttcn b/regression_test/RAW/HN25015/General_Types.ttcn
index 2d37b0f9f..ccb5876bd 100644
--- a/regression_test/RAW/HN25015/General_Types.ttcn
+++ b/regression_test/RAW/HN25015/General_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HN25015/HN25015.ttcn b/regression_test/RAW/HN25015/HN25015.ttcn
index 4bceac492..a02ce6db3 100644
--- a/regression_test/RAW/HN25015/HN25015.ttcn
+++ b/regression_test/RAW/HN25015/HN25015.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HN25015/Makefile b/regression_test/RAW/HN25015/Makefile
index 3bfc5f630..e365699be 100644
--- a/regression_test/RAW/HN25015/Makefile
+++ b/regression_test/RAW/HN25015/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/HN25015/SGsAP_Types.ttcn b/regression_test/RAW/HN25015/SGsAP_Types.ttcn
index 2eecbc66a..fa7788eaf 100644
--- a/regression_test/RAW/HN25015/SGsAP_Types.ttcn
+++ b/regression_test/RAW/HN25015/SGsAP_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HN25015/config.cfg b/regression_test/RAW/HN25015/config.cfg
index d5f2925de..88e90a96a 100644
--- a/regression_test/RAW/HN25015/config.cfg
+++ b/regression_test/RAW/HN25015/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/HQ26535/GTPv2_Types.ttcn b/regression_test/RAW/HQ26535/GTPv2_Types.ttcn
index fa940c124..21f9711de 100644
--- a/regression_test/RAW/HQ26535/GTPv2_Types.ttcn
+++ b/regression_test/RAW/HQ26535/GTPv2_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HQ26535/General_Types.ttcn b/regression_test/RAW/HQ26535/General_Types.ttcn
index a8e7e4665..f61b7b0a7 100644
--- a/regression_test/RAW/HQ26535/General_Types.ttcn
+++ b/regression_test/RAW/HQ26535/General_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HQ26535/Makefile b/regression_test/RAW/HQ26535/Makefile
index a97503229..e6c5e56b2 100644
--- a/regression_test/RAW/HQ26535/Makefile
+++ b/regression_test/RAW/HQ26535/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/HQ26535/gtpctest.ttcn b/regression_test/RAW/HQ26535/gtpctest.ttcn
index 1069d1db0..93ecf3194 100644
--- a/regression_test/RAW/HQ26535/gtpctest.ttcn
+++ b/regression_test/RAW/HQ26535/gtpctest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HQ49956/Makefile b/regression_test/RAW/HQ49956/Makefile
index 56bcbc44f..442a5a598 100644
--- a/regression_test/RAW/HQ49956/Makefile
+++ b/regression_test/RAW/HQ49956/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/HQ49956/Module.ttcn b/regression_test/RAW/HQ49956/Module.ttcn
index 7eda0ce1c..b7e1b1b45 100644
--- a/regression_test/RAW/HQ49956/Module.ttcn
+++ b/regression_test/RAW/HQ49956/Module.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HQ49956/Test.ttcn b/regression_test/RAW/HQ49956/Test.ttcn
index 1b48fdfbc..a9e369b9e 100644
--- a/regression_test/RAW/HQ49956/Test.ttcn
+++ b/regression_test/RAW/HQ49956/Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HS16977/HS16977_Constants.ttcn b/regression_test/RAW/HS16977/HS16977_Constants.ttcn
index 482966d46..76cf4a213 100644
--- a/regression_test/RAW/HS16977/HS16977_Constants.ttcn
+++ b/regression_test/RAW/HS16977/HS16977_Constants.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HS16977/HS16977_Test.ttcn b/regression_test/RAW/HS16977/HS16977_Test.ttcn
index 3b2fe60a6..15c9faa5f 100644
--- a/regression_test/RAW/HS16977/HS16977_Test.ttcn
+++ b/regression_test/RAW/HS16977/HS16977_Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HS16977/HS16977_Types.ttcn b/regression_test/RAW/HS16977/HS16977_Types.ttcn
index b5d73288a..97a6ca92f 100644
--- a/regression_test/RAW/HS16977/HS16977_Types.ttcn
+++ b/regression_test/RAW/HS16977/HS16977_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/RAW/HS16977/Makefile b/regression_test/RAW/HS16977/Makefile
index 224a13db0..7251b7f3b 100644
--- a/regression_test/RAW/HS16977/Makefile
+++ b/regression_test/RAW/HS16977/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/HS16977/config.cfg b/regression_test/RAW/HS16977/config.cfg
index 4b4692c7f..d308ae640 100644
--- a/regression_test/RAW/HS16977/config.cfg
+++ b/regression_test/RAW/HS16977/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/RAW/IntX/IntX.ttcn b/regression_test/RAW/IntX/IntX.ttcn
new file mode 100644
index 000000000..4286683d8
--- /dev/null
+++ b/regression_test/RAW/IntX/IntX.ttcn
@@ -0,0 +1,372 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+// Tests for encoding and decoding integers as the ETSI Common Library type "IntX"
+// (defined in ETSI TS 103 097)
+module IntX {
+
+/************* Type definitions *************/
+type integer IntX_unsigned with { variant "IntX, COMP(nosign)"; }
+
+type integer IntX_signed with { variant "IntX, COMP(signbit)"; }
+
+type integer IntX_compl with { variant "IntX, COMP(2scompl)"; }
+
+type record of IntX_signed IntXList with { variant ""; }
+
+type record RecIntX {
+  integer i,
+  integer ix,
+  bitstring bs
+}
+with {
+  variant "FIELDORDER(msb)";
+  variant(i) "FIELDLENGTH(16), COMP(2scompl), BITORDER(msb)";
+  variant(i) "BYTEORDER(first), BITORDERINFIELD(msb)";
+  variant(ix) "IntX, COMP(2scompl)";
+  variant(bs) "FIELDLENGTH(8)";
+}
+
+type record RecIntXPartial {
+  integer i,
+  integer ix,
+  bitstring bs
+}
+with {
+  variant "FIELDORDER(msb)";
+  variant(i) "FIELDLENGTH(12), BITORDER(msb)";
+  variant(i) "BYTEORDER(first), BITORDERINFIELD(msb)";
+  variant(ix) "IntX";
+  variant(bs) "FIELDLENGTH(8)";
+}
+
+type record RecIntXPadded {
+  integer i,
+  integer ix,
+  bitstring bs,
+  integer ix2
+}
+with {
+  variant "FIELDORDER(msb), PADDING(6), PADDALL";
+  variant(i) "FIELDLENGTH(16), PADDING(5), BITORDER(msb)";
+  variant(i) "BYTEORDER(first), BITORDERINFIELD(msb)";
+  variant(ix) "IntX, PREPADDING(6)";
+  variant(bs) "FIELDLENGTH(8)";
+  variant(ix2) "IntX";
+}
+
+type component CT {}
+
+/************* Coding functions *************/
+external function f_enc_intx_u(in IntX_unsigned x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_u(in octetstring x) return IntX_unsigned
+  with { extension "prototype(convert) decode(RAW)" }
+  
+external function f_enc_intx_s(in IntX_signed x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_s(in octetstring x) return IntX_signed
+  with { extension "prototype(convert) decode(RAW)" }
+  
+external function f_enc_intx_c(in IntX_compl x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_c(in octetstring x) return IntX_compl
+  with { extension "prototype(convert) decode(RAW)" }
+  
+external function f_enc_intx_list(in IntXList x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_list(in octetstring x) return IntXList
+  with { extension "prototype(convert) decode(RAW)" }
+  
+external function f_enc_intx_rec(in RecIntX x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_rec(in octetstring x) return RecIntX
+  with { extension "prototype(convert) decode(RAW)" }
+  
+external function f_enc_intx_rec_part(in RecIntXPartial x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_rec_part(in octetstring x) return RecIntXPartial
+  with { extension "prototype(convert) decode(RAW)" }
+  
+external function f_enc_intx_rec_padd(in RecIntXPadded x) return octetstring
+  with { extension "prototype(convert) encode(RAW)" }
+  
+external function f_dec_intx_rec_padd(in octetstring x) return RecIntXPadded
+  with { extension "prototype(convert) decode(RAW)" }
+
+/************* Test cases *************/
+testcase tc_intx_unsigned() runs on CT
+{
+  // one octet
+  var IntX_unsigned val := 10;
+  var octetstring enc_val_exp := '0A'O;
+  var octetstring enc_val := f_enc_intx_u(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var IntX_unsigned dec_val := f_dec_intx_u(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // two octets
+  val := 2184;
+  enc_val_exp := '8888'O;
+  enc_val := f_enc_intx_u(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_u(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // ten octets
+  val := 2554246324530855315;
+  enc_val_exp := 'FF002372817FCA823D93'O;
+  enc_val := f_enc_intx_u(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_u(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // twelve octets
+  val := 7165932342958243219318534;
+  enc_val_exp := 'FFC5ED71F8802FC9D0112706'O;
+  enc_val := f_enc_intx_u(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_u(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  setverdict(pass);
+}
+
+testcase tc_intx_signed() runs on CT
+{
+  // one octet
+  var IntX_signed val := -10;
+  var octetstring enc_val_exp := '4A'O;
+  var octetstring enc_val := f_enc_intx_s(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var IntX_signed dec_val := f_dec_intx_s(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // two octets
+  val := -2184;
+  enc_val_exp := 'A888'O;
+  enc_val := f_enc_intx_s(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_s(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // ten octets
+  val := -2554246324530855315;
+  enc_val_exp := 'FF402372817FCA823D93'O;
+  enc_val := f_enc_intx_s(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_s(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // twelve octets
+  val := -7165932342958243219318534;
+  enc_val_exp := 'FFD5ED71F8802FC9D0112706'O;
+  enc_val := f_enc_intx_s(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_s(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  setverdict(pass);
+}
+
+testcase tc_intx_2scompl() runs on CT
+{
+  // one octet
+  var IntX_compl val := -10;
+  var octetstring enc_val_exp := '76'O;
+  var octetstring enc_val := f_enc_intx_c(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var IntX_compl dec_val := f_dec_intx_c(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // two octets
+  val := -2184;
+  enc_val_exp := 'B778'O;
+  enc_val := f_enc_intx_c(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_c(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // ten octets
+  val := -2554246324530855315;
+  enc_val_exp := 'FF7FDC8D7E80357DC26D'O;
+  enc_val := f_enc_intx_c(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_c(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  // twelve octets
+  val := -7165932342958243219318534;
+  enc_val_exp := 'FFDA128E077FD0362FEED8FA'O;
+  enc_val := f_enc_intx_c(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  dec_val := f_dec_intx_c(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  
+  setverdict(pass);
+}
+
+testcase tc_intx_record_of() runs on CT
+{
+  // record of IntX
+  var IntXList val := { 10, -2184, -2554246324530855315, 7165932342958243219318534 };
+  var octetstring enc_val_exp := '0AA888FF402372817FCA823D93FFC5ED71F8802FC9D0112706'O;
+  var octetstring enc_val := f_enc_intx_list(val);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var IntXList dec_val := f_dec_intx_list(enc_val_exp);
+  if (dec_val != val) {
+    setverdict(fail, "Expected: ", val, ", got: ", dec_val);
+  }
+  setverdict(pass);
+}
+
+testcase tc_intx_record() runs on CT
+{
+  // record with IntX starting at an octet boundary
+  var RecIntX val1 := { -10376, -10376, '11001100'B };
+  var octetstring enc_val_exp := 'D778DFD778CC'O;
+  var octetstring enc_val := f_enc_intx_rec(val1);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var RecIntX dec_val1 := f_dec_intx_rec(enc_val_exp);
+  if (dec_val1 != val1) {
+    setverdict(fail, "Expected: ", val1, ", got: ", dec_val1);
+  }
+  
+  // record with IntX starting in a partial octet
+  // (the previous field is encoded in 12 bits)
+  var RecIntXPartial val2 := { 716, 716, '10101010'B };
+  enc_val_exp := '2CC82CCAA0'O;
+  enc_val := f_enc_intx_rec_part(val2);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var RecIntXPartial dec_val2 := f_dec_intx_rec_part(enc_val_exp);
+  if (dec_val2 != val2) {
+    setverdict(fail, "Expected: ", val2, ", got: ", dec_val2);
+  }
+  
+  // record with two IntX fields and padding
+  // (the first IntX starts after 24 bits, the second one after 54 bits)
+  var RecIntXPadded val3 := { 716, 716, '10101010'B, 716 };
+  enc_val_exp := '02CC0082CC2A820B30'O;
+  enc_val := f_enc_intx_rec_padd(val3);
+  if (enc_val != enc_val_exp) {
+    setverdict(fail, "Expected: ", enc_val_exp, ", got: ", enc_val);
+  }
+  var RecIntXPadded dec_val3 := f_dec_intx_rec_padd(enc_val_exp);
+  if (dec_val3 != val3) {
+    setverdict(fail, "Expected: ", val3, ", got: ", dec_val3);
+  }
+  
+  setverdict(pass);
+}
+
+testcase tc_intx_decode_error() runs on CT
+{
+  // negative tests for decoding
+  // test 1: the last 2 octets from one of the signed IntX tests was removed
+  var octetstring bad_enc_val := 'FF402372817FCA82'O;
+  var template charstring msg_template := pattern "*While RAW-decoding type *: There are not enough bits in the buffer to decode the value of IntX type * \(needed: 64, found: 48\).";
+  @try {
+    var IntX_signed ret_val := f_dec_intx_s(bad_enc_val);
+    setverdict(fail, "Expected dynamic test case error when decoding ", bad_enc_val,
+      ", got decoded value: ", ret_val);
+  }
+  @catch (msg) {
+    if (not match(msg, msg_template)) {
+      setverdict(fail, "Expected error: ", msg_template, ", got: ", msg);
+    }
+  }
+  
+  // test 2: same value, but only the first octet is present (even the length data is incomplete)
+  bad_enc_val := 'FF'O;
+  msg_template := pattern "*While RAW-decoding type *: There are not enough bits in the buffer to decode the length of IntX type * \(needed: 16, found: 8\).";
+  @try {
+    var IntX_signed ret_val := f_dec_intx_s(bad_enc_val);
+    setverdict(fail, "Expected dynamic test case error when decoding ", bad_enc_val,
+      ", got decoded value: ", ret_val);
+  }
+  @catch (msg) {
+    if (not match(msg, msg_template)) {
+      setverdict(fail, "Expected error: ", msg_template, ", got: ", msg);
+    }
+  }
+  setverdict(pass);
+}
+
+control {
+  execute(tc_intx_unsigned());
+  execute(tc_intx_signed());
+  execute(tc_intx_2scompl());
+  execute(tc_intx_record_of());
+  execute(tc_intx_record());
+  execute(tc_intx_decode_error());
+}
+ 
+}
+with {
+  encode "RAW"
+}
diff --git a/regression_test/RAW/IntX/Makefile b/regression_test/RAW/IntX/Makefile
new file mode 100644
index 000000000..245e483ab
--- /dev/null
+++ b/regression_test/RAW/IntX/Makefile
@@ -0,0 +1,135 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ../..
+include   ../../Makefile.regression
+
+# WARNING! This Makefile can be used with GNU make only.
+# Other versions of make may report syntax errors in it.
+
+#
+# Do NOT touch this line...
+#
+.PHONY: all archive check clean dep objects
+
+.SUFFIXES: .d
+
+# Flags for the C++ preprocessor (and makedepend as well):
+#CPPFLAGS +=
+
+# Flags for dependency generation
+CXXDEPFLAGS = -MM
+
+# Flags for the C++ compiler:
+#CXXFLAGS +=
+
+# Flags for the linker:
+#LDFLAGS +=
+
+# Flags for the TTCN-3 and ASN.1 compiler:
+#COMPILER_FLAGS +=
+
+# Execution mode: (either ttcn3 or ttcn3-parallel)
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
+
+#
+# You may change these variables. Add your files if necessary...
+#
+
+# TTCN-3 modules of this project:
+TTCN3_MODULES = IntX.ttcn
+
+# ASN.1 modules of this project:
+ASN1_MODULES =
+
+# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
+# this project:
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+
+# C/C++ Source & header files of Test Ports, external functions and
+# other modules:
+USER_SOURCES =
+USER_HEADERS = $(USER_SOURCES:.cc=.hh)
+
+# Object files of this project that are needed for the executable test suite:
+OBJECTS = $(GENERATED_OBJECTS) $(USER_OBJECTS)
+
+GENERATED_OBJECTS = $(GENERATED_SOURCES:.cc=.o)
+
+USER_OBJECTS = $(USER_SOURCES:.cc=.o)
+
+DEPFILES = $(USER_OBJECTS:.o=.d)  $(GENERATED_OBJECTS:.o=.d)
+
+# Other files of the project (Makefile, configuration files, etc.)
+# that will be added to the archived source files:
+OTHER_FILES = Makefile
+
+# The name of the executable test suite:
+TARGET = IntX$(EXESUFFIX)
+
+
+#
+# Rules for building the executable...
+#
+
+all: $(TARGET) ;
+
+objects: $(OBJECTS) compile;
+
+$(TARGET): $(OBJECTS)
+	if $(CXX) $(LDFLAGS) -o $@ $^ \
+	-L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \
+	-L$(OPENSSL_DIR)/lib -lcrypto \
+	-L$(XMLDIR)/lib $($(PLATFORM)_LIBS); \
+	then : ; else $(TTCN3_DIR)/bin/titanver $(OBJECTS); exit 1; fi
+
+.cc.o .c.o:
+	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
+
+.cc.d .c.d:
+	@echo Creating dependency file for '$<'; set -e; \
+	$(CXX) $(CXXDEPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $< \
+	| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
+	[ -s $@ ] || rm -f $@
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile
+	@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+compile: $(TTCN3_MODULES) $(ASN1_MODULES)
+	$(TTCN3_COMPILER) $(COMPILER_FLAGS) $^ - $?
+	touch $@
+
+clean distclean:
+	-$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) compile $(DEPFILES) \
+	tags *.log
+
+dep: $(GENERATED_SOURCES) $(USER_SOURCES) ;
+
+ifeq ($(findstring n,$(MAKEFLAGS)),)
+ifeq ($(filter clean distclean check compile archive diag,$(MAKECMDGOALS)),)
+-include $(DEPFILES)
+endif
+endif
+
+diag:
+	$(TTCN3_DIR)/bin/compiler -v 2>&1
+	$(TTCN3_DIR)/bin/mctr_cli -v 2>&1
+	$(CXX) -v 2>&1
+	@echo TTCN3_DIR=$(TTCN3_DIR)
+	@echo OPENSSL_DIR=$(OPENSSL_DIR)
+	@echo XMLDIR=$(XMLDIR)
+	@echo PLATFORM=$(PLATFORM)
+
+#
+# Add your rules here if necessary...
+#
+
+run: $(TARGET)
+	./$^
+
diff --git a/regression_test/RAW/IntX/config.cfg b/regression_test/RAW/IntX/config.cfg
new file mode 100644
index 000000000..204d0c1f2
--- /dev/null
+++ b/regression_test/RAW/IntX/config.cfg
@@ -0,0 +1,14 @@
+###############################################################################
+# 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
+###############################################################################
+[LOGGING]
+LogFile := "IntX.log"
+FileMask := LOG_ALL
+ConsoleMask := TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS
+
+[EXECUTE]
+IntX.control
diff --git a/regression_test/RAW/Makefile b/regression_test/RAW/Makefile
index c92a311c1..77c5e8f52 100644
--- a/regression_test/RAW/Makefile
+++ b/regression_test/RAW/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/EXER-whitepaper/AnyAttributes.ttcnpp b/regression_test/XML/EXER-whitepaper/AnyAttributes.ttcnpp
index 70c687925..92f19e83b 100644
--- a/regression_test/XML/EXER-whitepaper/AnyAttributes.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/AnyAttributes.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/AnyElement.ttcnpp b/regression_test/XML/EXER-whitepaper/AnyElement.ttcnpp
index 6039ee9e9..981f07eae 100644
--- a/regression_test/XML/EXER-whitepaper/AnyElement.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/AnyElement.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/AnyElementOptional.ttcnpp b/regression_test/XML/EXER-whitepaper/AnyElementOptional.ttcnpp
index ed899cff5..339847721 100644
--- a/regression_test/XML/EXER-whitepaper/AnyElementOptional.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/AnyElementOptional.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/AnyElementOptional2.ttcnpp b/regression_test/XML/EXER-whitepaper/AnyElementOptional2.ttcnpp
index 5401b9df4..fc41c1dde 100644
--- a/regression_test/XML/EXER-whitepaper/AnyElementOptional2.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/AnyElementOptional2.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Attribute.ttcnpp b/regression_test/XML/EXER-whitepaper/Attribute.ttcnpp
index 80a8d9b66..b0e952bc8 100644
--- a/regression_test/XML/EXER-whitepaper/Attribute.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Attribute.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -39,7 +39,7 @@ DECLARE_EXER_ENCODERS(ProductA, prodA);
 // Decoder function which treats ET_INVAL_MSG as a warning.
 // Everything else is still a dynamic testcase error.
 external function exer_dec_prodA_expect_inval(in octetstring o, out ProductA pa) return integer
-with { extension "prototype(backtrack) decode(XER:XER_EXTENDED) errorbehavior(INVAL_MSG:WARNING)" }
+with { extension "prototype(backtrack) decode(XER:XER_EXTENDED) errorbehavior(INVAL_MSG:WARNING,INCOMPL_MSG:WARNING)" }
 
 
 const ProductA shoes := {
diff --git a/regression_test/XML/EXER-whitepaper/DefaultForEmpty.ttcnpp b/regression_test/XML/EXER-whitepaper/DefaultForEmpty.ttcnpp
index 0da6e46b2..bbd9bff99 100644
--- a/regression_test/XML/EXER-whitepaper/DefaultForEmpty.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/DefaultForEmpty.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/EmbedValues.ttcnpp b/regression_test/XML/EXER-whitepaper/EmbedValues.ttcnpp
index 47007d004..321c82472 100644
--- a/regression_test/XML/EXER-whitepaper/EmbedValues.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/EmbedValues.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/List.ttcnpp b/regression_test/XML/EXER-whitepaper/List.ttcnpp
index 6119f97c4..a80da239e 100644
--- a/regression_test/XML/EXER-whitepaper/List.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/List.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Makefile b/regression_test/XML/EXER-whitepaper/Makefile
index 80c18a7bd..55900f61a 100644
--- a/regression_test/XML/EXER-whitepaper/Makefile
+++ b/regression_test/XML/EXER-whitepaper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/EXER-whitepaper/Name.ttcnpp b/regression_test/XML/EXER-whitepaper/Name.ttcnpp
index 09b928110..829f4a819 100644
--- a/regression_test/XML/EXER-whitepaper/Name.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Name.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Namespaces.ttcnpp b/regression_test/XML/EXER-whitepaper/Namespaces.ttcnpp
index a52fd082e..665ce9ca6 100644
--- a/regression_test/XML/EXER-whitepaper/Namespaces.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Namespaces.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/NamespacesDup.ttcnpp b/regression_test/XML/EXER-whitepaper/NamespacesDup.ttcnpp
index 4e449c71e..1bd5d85bb 100644
--- a/regression_test/XML/EXER-whitepaper/NamespacesDup.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/NamespacesDup.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Order.ttcnpp b/regression_test/XML/EXER-whitepaper/Order.ttcnpp
index dacbdc7a7..e8ec6c4f4 100644
--- a/regression_test/XML/EXER-whitepaper/Order.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Order.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Qname.ttcnpp b/regression_test/XML/EXER-whitepaper/Qname.ttcnpp
index fa3dc0512..2586529e1 100644
--- a/regression_test/XML/EXER-whitepaper/Qname.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Qname.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Text.ttcnpp b/regression_test/XML/EXER-whitepaper/Text.ttcnpp
index 2e272505a..df12a9c0b 100644
--- a/regression_test/XML/EXER-whitepaper/Text.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Text.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Untagged.ttcnpp b/regression_test/XML/EXER-whitepaper/Untagged.ttcnpp
index 180734dfa..281a34498 100644
--- a/regression_test/XML/EXER-whitepaper/Untagged.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Untagged.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Untagged1.ttcnpp b/regression_test/XML/EXER-whitepaper/Untagged1.ttcnpp
index 4df497aac..1f9545460 100644
--- a/regression_test/XML/EXER-whitepaper/Untagged1.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Untagged1.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp b/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp
index 781d9299c..e857b51ce 100644
--- a/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseNil.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/UseNilSimple.ttcnpp b/regression_test/XML/EXER-whitepaper/UseNilSimple.ttcnpp
index cbf030310..3d0a05c7c 100644
--- a/regression_test/XML/EXER-whitepaper/UseNilSimple.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseNilSimple.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/UseNumber.ttcnpp b/regression_test/XML/EXER-whitepaper/UseNumber.ttcnpp
index 4e335893e..1cbf01d8a 100644
--- a/regression_test/XML/EXER-whitepaper/UseNumber.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseNumber.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/UseOrder.ttcnpp b/regression_test/XML/EXER-whitepaper/UseOrder.ttcnpp
index 3b3b56146..af514e9e3 100644
--- a/regression_test/XML/EXER-whitepaper/UseOrder.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseOrder.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/UseType.ttcnpp b/regression_test/XML/EXER-whitepaper/UseType.ttcnpp
index b1be45e13..d7e8ec390 100644
--- a/regression_test/XML/EXER-whitepaper/UseType.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseType.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/UseUnion.ttcnpp b/regression_test/XML/EXER-whitepaper/UseUnion.ttcnpp
index 97dcbc921..fd43ae81e 100644
--- a/regression_test/XML/EXER-whitepaper/UseUnion.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/UseUnion.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/Whitespace.ttcnpp b/regression_test/XML/EXER-whitepaper/Whitespace.ttcnpp
index 0413c3595..611a11694 100644
--- a/regression_test/XML/EXER-whitepaper/Whitespace.ttcnpp
+++ b/regression_test/XML/EXER-whitepaper/Whitespace.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/EXER-whitepaper/config.cfg b/regression_test/XML/EXER-whitepaper/config.cfg
index 6b229b78f..2f2541045 100644
--- a/regression_test/XML/EXER-whitepaper/config.cfg
+++ b/regression_test/XML/EXER-whitepaper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HM60295/Importer.xsd b/regression_test/XML/HM60295/Importer.xsd
index 403b705d2..56d7b110f 100644
--- a/regression_test/XML/HM60295/Importer.xsd
+++ b/regression_test/XML/HM60295/Importer.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HM60295/Makefile b/regression_test/XML/HM60295/Makefile
index dad3560c7..005dc9d53 100644
--- a/regression_test/XML/HM60295/Makefile
+++ b/regression_test/XML/HM60295/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HM60295/Schema1.xsd b/regression_test/XML/HM60295/Schema1.xsd
index 09b2f38a8..609423ff5 100644
--- a/regression_test/XML/HM60295/Schema1.xsd
+++ b/regression_test/XML/HM60295/Schema1.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HM60295/Schema2.xsd b/regression_test/XML/HM60295/Schema2.xsd
index 6e6744a46..3844daa91 100644
--- a/regression_test/XML/HM60295/Schema2.xsd
+++ b/regression_test/XML/HM60295/Schema2.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HM60295/config.cfg b/regression_test/XML/HM60295/config.cfg
index ef472421b..7d46f65a7 100644
--- a/regression_test/XML/HM60295/config.cfg
+++ b/regression_test/XML/HM60295/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HM60295/tester.ttcn b/regression_test/XML/HM60295/tester.ttcn
index 97d0a3a08..efdd20434 100644
--- a/regression_test/XML/HM60295/tester.ttcn
+++ b/regression_test/XML/HM60295/tester.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HN15589/A.xsd b/regression_test/XML/HN15589/A.xsd
index ba9d9497a..f24a048b7 100644
--- a/regression_test/XML/HN15589/A.xsd
+++ b/regression_test/XML/HN15589/A.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HN15589/B.xsd b/regression_test/XML/HN15589/B.xsd
index ef1157406..bb62b9d23 100644
--- a/regression_test/XML/HN15589/B.xsd
+++ b/regression_test/XML/HN15589/B.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HN15589/HN15589.ttcnpp b/regression_test/XML/HN15589/HN15589.ttcnpp
index 77029b21f..6bde22deb 100644
--- a/regression_test/XML/HN15589/HN15589.ttcnpp
+++ b/regression_test/XML/HN15589/HN15589.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HN15589/Makefile b/regression_test/XML/HN15589/Makefile
index fb23eeb55..161fc8304 100644
--- a/regression_test/XML/HN15589/Makefile
+++ b/regression_test/XML/HN15589/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HN15589/config.cfg b/regression_test/XML/HN15589/config.cfg
index 73821c01f..fcab18e78 100644
--- a/regression_test/XML/HN15589/config.cfg
+++ b/regression_test/XML/HN15589/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HN15589/flipflop-check.xsd b/regression_test/XML/HN15589/flipflop-check.xsd
index 569e2a2b5..280f41d7b 100644
--- a/regression_test/XML/HN15589/flipflop-check.xsd
+++ b/regression_test/XML/HN15589/flipflop-check.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HN15589/log2xml.pl b/regression_test/XML/HN15589/log2xml.pl
index afa504f8b..56de99458 100644
--- a/regression_test/XML/HN15589/log2xml.pl
+++ b/regression_test/XML/HN15589/log2xml.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -wln
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HN15589/xsd/XTDL.xsd b/regression_test/XML/HN15589/xsd/XTDL.xsd
index a978255e3..48472a7e8 100644
--- a/regression_test/XML/HN15589/xsd/XTDL.xsd
+++ b/regression_test/XML/HN15589/xsd/XTDL.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HN15589/xsd/XTDP-Message.xsd b/regression_test/XML/HN15589/xsd/XTDP-Message.xsd
index 84fe47586..d5a41efcd 100644
--- a/regression_test/XML/HN15589/xsd/XTDP-Message.xsd
+++ b/regression_test/XML/HN15589/xsd/XTDP-Message.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/HN15589/xtdl.ttcn b/regression_test/XML/HN15589/xtdl.ttcn
index b4b8cdcad..d06a375d2 100644
--- a/regression_test/XML/HN15589/xtdl.ttcn
+++ b/regression_test/XML/HN15589/xtdl.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HN15589/xtdp.cfg b/regression_test/XML/HN15589/xtdp.cfg
index f28f85d9d..490c56ed0 100644
--- a/regression_test/XML/HN15589/xtdp.cfg
+++ b/regression_test/XML/HN15589/xtdp.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HN15589/xtdp.ttcn b/regression_test/XML/HN15589/xtdp.ttcn
index 8fb4935f7..443097e2a 100644
--- a/regression_test/XML/HN15589/xtdp.ttcn
+++ b/regression_test/XML/HN15589/xtdp.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HQ30408/HQ30408.ttcn b/regression_test/XML/HQ30408/HQ30408.ttcn
index ac0c233db..79fc98fec 100644
--- a/regression_test/XML/HQ30408/HQ30408.ttcn
+++ b/regression_test/XML/HQ30408/HQ30408.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HQ30408/Makefile b/regression_test/XML/HQ30408/Makefile
index 5ba25c479..d807cfbdc 100644
--- a/regression_test/XML/HQ30408/Makefile
+++ b/regression_test/XML/HQ30408/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HR49727/HR49727.ttcn b/regression_test/XML/HR49727/HR49727.ttcn
index 5fad79ef5..a5501dfd5 100644
--- a/regression_test/XML/HR49727/HR49727.ttcn
+++ b/regression_test/XML/HR49727/HR49727.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HR49727/Makefile b/regression_test/XML/HR49727/Makefile
index 7438714d4..5d97d37fd 100644
--- a/regression_test/XML/HR49727/Makefile
+++ b/regression_test/XML/HR49727/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn b/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn
index e680ab0eb..bac9ef501 100644
--- a/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/HR49727/UsefulTtcn3Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HR49727/XSD.ttcn b/regression_test/XML/HR49727/XSD.ttcn
index 8ee4fc267..d35abb763 100644
--- a/regression_test/XML/HR49727/XSD.ttcn
+++ b/regression_test/XML/HR49727/XSD.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HR49727/config.cfg b/regression_test/XML/HR49727/config.cfg
index e7cb17161..63e7713f7 100644
--- a/regression_test/XML/HR49727/config.cfg
+++ b/regression_test/XML/HR49727/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub.ttcn b/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub.ttcn
index 132b06a98..0a6c84bec 100644
--- a/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub.ttcn
+++ b/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub_event.ttcn b/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub_event.ttcn
index ac93b7b73..089625b38 100644
--- a/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub_event.ttcn
+++ b/regression_test/XML/HR49727/http_jabber_org_protocol_pubsub_event.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HR49727/jabber_x_data.ttcn b/regression_test/XML/HR49727/jabber_x_data.ttcn
index b1a63b18d..b9bd34dda 100644
--- a/regression_test/XML/HR49727/jabber_x_data.ttcn
+++ b/regression_test/XML/HR49727/jabber_x_data.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/HU13380/HU13380.ttcn b/regression_test/XML/HU13380/HU13380.ttcn
new file mode 100644
index 000000000..7d5c98aed
--- /dev/null
+++ b/regression_test/XML/HU13380/HU13380.ttcn
@@ -0,0 +1,64 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+// Original TR:
+// Omitted optional fields of union type (with the "untagged" coding instruction)
+// are not handled by the XER decoder.
+// The XER decoder reports a decoding error, if the decoded element does not match
+// any of the union's alternatives. It does not consider the possibility, that the
+// union might be an (omitted) optional field of a record or set, and decoded
+// element might be meant for another field.
+module HU13380 {
+
+type component CT {}
+
+type record Rec {
+  integer int1,
+  union {
+    charstring abc,
+    charstring def
+  } uni optional,
+  integer int2
+}
+with {
+  variant(uni) "untagged";
+}
+
+external function f_enc(in Rec x) return octetstring
+  with { extension "prototype(convert) encode(XER:XER_EXTENDED)" }
+
+external function f_dec(in octetstring x) return Rec
+  with { extension "prototype(convert) decode(XER:XER_EXTENDED)" }
+  
+const Rec c_value := { 3, omit, -3 };
+const octetstring c_value_enc := char2oct(
+  "<Rec>\n" &
+  "\t<int1>3</int1>\n" &
+  "\t<int2>-3</int2>\n" &
+  "</Rec>\n\n");
+  
+testcase tc_HU13380() runs on CT {
+  var octetstring v_enc := f_enc(c_value);
+  if (v_enc != c_value_enc) {
+    setverdict(fail, "Expected: ", c_value_enc, ", got: ", v_enc);
+  }
+  var Rec v_dec := f_dec(c_value_enc);
+  if (v_dec != c_value) {
+    setverdict(fail, "Expected: ", c_value, ", got: ", v_dec);
+  }
+  setverdict(pass);
+}
+
+control {
+  execute(tc_HU13380());
+}
+
+}
+with {
+  encode "XML";
+}
diff --git a/regression_test/XML/HU13380/Makefile b/regression_test/XML/HU13380/Makefile
new file mode 100644
index 000000000..faadd49a1
--- /dev/null
+++ b/regression_test/XML/HU13380/Makefile
@@ -0,0 +1,138 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR = ../..
+include  ../../Makefile.regression
+
+# WARNING! This Makefile can be used with GNU make only.
+# Other versions of make may report syntax errors in it.
+
+#
+# Do NOT touch this line...
+#
+.PHONY: all archive check clean dep objects
+
+.SUFFIXES: .d
+
+#
+# Set these variables...
+#
+
+# Flags for the C++ preprocessor (and makedepend as well):
+#CPPFLAGS +=
+
+# Flags for dependency generation
+CXXDEPFLAGS = -MM
+
+# Flags for the C++ compiler:
+#CXXFLAGS +=
+
+# Flags for the linker:
+#LDFLAGS +=
+
+# Flags for the TTCN-3 and ASN.1 compiler:
+#COMPILER_FLAGS +=  
+
+# Execution mode: (either ttcn3 or ttcn3-parallel)
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
+
+#
+# You may change these variables. Add your files if necessary...
+#
+
+# TTCN-3 modules of this project:
+TTCN3_MODULES = HU13380.ttcn
+
+# ASN.1 modules of this project:
+ASN1_MODULES =
+
+# C++ source & header files generated from the TTCN-3 & ASN.1 modules of
+# this project:
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+
+# C/C++ Source & header files of Test Ports, external functions and
+# other modules:
+USER_SOURCES =
+USER_HEADERS = $(USER_SOURCES:.cc=.hh)
+
+# Object files of this project that are needed for the executable test suite:
+OBJECTS = $(GENERATED_OBJECTS) $(USER_OBJECTS)
+
+GENERATED_OBJECTS = $(GENERATED_SOURCES:.cc=.o)
+
+USER_OBJECTS = $(USER_SOURCES:.cc=.o)
+
+DEPFILES = $(USER_OBJECTS:.o=.d)  $(GENERATED_OBJECTS:.o=.d)
+
+# Other files of the project (Makefile, configuration files, etc.)
+# that will be added to the archived source files:
+OTHER_FILES = Makefile
+
+# The name of the executable test suite:
+TARGET = HU13380
+
+#
+# Rules for building the executable...
+#
+
+all: $(TARGET) ;
+
+objects: $(OBJECTS) compile;
+
+$(TARGET): $(OBJECTS)
+	if $(CXX) $(LDFLAGS) -o $@ $^ \
+	-L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \
+	-L$(OPENSSL_DIR)/lib -lcrypto \
+	-L$(XMLDIR)/lib $($(PLATFORM)_LIBS); \
+	then : ; else $(TTCN3_DIR)/bin/titanver $(OBJECTS); exit 1; fi
+
+.cc.o .c.o:
+	$(CXX) -c $(CPPFLAGS) $(CXXFLAGS) -o $@ $<
+
+.cc.d .c.d:
+	@echo Creating dependency file for '$<'; set -e; \
+	$(CXX) $(CXXDEPFLAGS) $(CPPFLAGS) $(CXXFLAGS) $< \
+	| sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@; \
+	[ -s $@ ] || rm -f $@
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile
+	@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+compile: $(TTCN3_MODULES) $(ASN1_MODULES)
+	$(TTCN3_COMPILER) $(COMPILER_FLAGS) $^ - $?
+	touch $@
+
+clean distclean:
+	-$(RM) $(TARGET) $(LIBRARY) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) compile $(DEPFILES) \
+	tags *.log
+
+dep: $(GENERATED_SOURCES) $(USER_SOURCES) ;
+
+ifeq ($(findstring n,$(MAKEFLAGS)),)
+ifeq ($(filter clean distclean check compile archive diag,$(MAKECMDGOALS)),)
+-include $(DEPFILES)
+endif
+endif
+
+diag:
+	$(TTCN3_DIR)/bin/compiler -v 2>&1
+	$(TTCN3_DIR)/bin/mctr_cli -v 2>&1
+	$(CXX) -v 2>&1
+	@echo TTCN3_DIR=$(TTCN3_DIR)
+	@echo OPENSSL_DIR=$(OPENSSL_DIR)
+	@echo XMLDIR=$(XMLDIR)
+	@echo PLATFORM=$(PLATFORM)
+
+#
+# Add your rules here if necessary...
+#
+
+run: $(TARGET)
+	./$^ config.cfg
+
diff --git a/regression_test/XML/HU13380/config.cfg b/regression_test/XML/HU13380/config.cfg
new file mode 100644
index 000000000..798fe0b49
--- /dev/null
+++ b/regression_test/XML/HU13380/config.cfg
@@ -0,0 +1,12 @@
+###############################################################################
+# 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
+###############################################################################
+[LOGGING]
+LogEventTypes := Detailed
+
+[EXECUTE]
+HU13380
diff --git a/regression_test/XML/Makefile b/regression_test/XML/Makefile
index 6d9a50d4b..dfdba8189 100644
--- a/regression_test/XML/Makefile
+++ b/regression_test/XML/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -18,7 +18,7 @@ SHADOWED := XER* TTCNandXML* EXER-whitepaper* XMLqualif*
 endif
 
 XDIRS := $(wildcard $(SHADOWED)) xsdConverter \
-HM60295 HN15589 HQ30408 HR49727 $(RT2_ONLY) \
+HM60295 HN15589 HQ30408 HR49727 HU13380 $(RT2_ONLY) \
 XmlWorkflow tpdValidTest
 
 # List of fake targets:
diff --git a/regression_test/XML/NegativeTest/Makefile b/regression_test/XML/NegativeTest/Makefile
index ad7c8150e..51f799871 100644
--- a/regression_test/XML/NegativeTest/Makefile
+++ b/regression_test/XML/NegativeTest/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/NegativeTest/ReadXml.ttcn b/regression_test/XML/NegativeTest/ReadXml.ttcn
index 8e4d48be2..a8c0b01e9 100644
--- a/regression_test/XML/NegativeTest/ReadXml.ttcn
+++ b/regression_test/XML/NegativeTest/ReadXml.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/ReadXmlImpl.cc b/regression_test/XML/NegativeTest/ReadXmlImpl.cc
index e6ae4513e..b19092085 100644
--- a/regression_test/XML/NegativeTest/ReadXmlImpl.cc
+++ b/regression_test/XML/NegativeTest/ReadXmlImpl.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/XML/NegativeTest/exer_rec.ttcn b/regression_test/XML/NegativeTest/exer_rec.ttcn
index b2ab1d3da..f6ecc3166 100644
--- a/regression_test/XML/NegativeTest/exer_rec.ttcn
+++ b/regression_test/XML/NegativeTest/exer_rec.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/exer_rec_of.ttcn b/regression_test/XML/NegativeTest/exer_rec_of.ttcn
index 7a286ec1c..3f616416e 100644
--- a/regression_test/XML/NegativeTest/exer_rec_of.ttcn
+++ b/regression_test/XML/NegativeTest/exer_rec_of.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/exer_uni.ttcn b/regression_test/XML/NegativeTest/exer_uni.ttcn
index a5a9b0504..2a4b49c66 100644
--- a/regression_test/XML/NegativeTest/exer_uni.ttcn
+++ b/regression_test/XML/NegativeTest/exer_uni.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/indent.pl b/regression_test/XML/NegativeTest/indent.pl
index 4baef465c..bd3de3324 100755
--- a/regression_test/XML/NegativeTest/indent.pl
+++ b/regression_test/XML/NegativeTest/indent.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -wpli.orig
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/NegativeTest/rec.ttcn b/regression_test/XML/NegativeTest/rec.ttcn
index 4ddd52168..5e2f1a67b 100644
--- a/regression_test/XML/NegativeTest/rec.ttcn
+++ b/regression_test/XML/NegativeTest/rec.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/rec_of.ttcn b/regression_test/XML/NegativeTest/rec_of.ttcn
index 880fa5ef3..894ed1ba6 100644
--- a/regression_test/XML/NegativeTest/rec_of.ttcn
+++ b/regression_test/XML/NegativeTest/rec_of.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/run.cfg b/regression_test/XML/NegativeTest/run.cfg
index 5ab03a003..6a2bc0ecd 100644
--- a/regression_test/XML/NegativeTest/run.cfg
+++ b/regression_test/XML/NegativeTest/run.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/NegativeTest/runner.ttcn b/regression_test/XML/NegativeTest/runner.ttcn
index 3ae40b67b..76c0c1dd3 100644
--- a/regression_test/XML/NegativeTest/runner.ttcn
+++ b/regression_test/XML/NegativeTest/runner.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/NegativeTest/uni.ttcn b/regression_test/XML/NegativeTest/uni.ttcn
index ba3c428da..d987429fb 100644
--- a/regression_test/XML/NegativeTest/uni.ttcn
+++ b/regression_test/XML/NegativeTest/uni.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB1.ttcn b/regression_test/XML/TTCNandXML/AnnexB1.ttcn
index 93f50457d..8363cfb0a 100644
--- a/regression_test/XML/TTCNandXML/AnnexB1.ttcn
+++ b/regression_test/XML/TTCNandXML/AnnexB1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB1Template.ttcnpp b/regression_test/XML/TTCNandXML/AnnexB1Template.ttcnpp
index ec9b90864..3c426209a 100644
--- a/regression_test/XML/TTCNandXML/AnnexB1Template.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AnnexB1Template.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB2.ttcn b/regression_test/XML/TTCNandXML/AnnexB2.ttcn
index f877007c4..dcea8327b 100644
--- a/regression_test/XML/TTCNandXML/AnnexB2.ttcn
+++ b/regression_test/XML/TTCNandXML/AnnexB2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB2Template.ttcnpp b/regression_test/XML/TTCNandXML/AnnexB2Template.ttcnpp
index dfef33305..8b030e01f 100644
--- a/regression_test/XML/TTCNandXML/AnnexB2Template.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AnnexB2Template.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB3.ttcn b/regression_test/XML/TTCNandXML/AnnexB3.ttcn
index 3dd31d6a7..3ed93b37e 100644
--- a/regression_test/XML/TTCNandXML/AnnexB3.ttcn
+++ b/regression_test/XML/TTCNandXML/AnnexB3.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB3Template.ttcnpp b/regression_test/XML/TTCNandXML/AnnexB3Template.ttcnpp
index 3a3370523..750265952 100644
--- a/regression_test/XML/TTCNandXML/AnnexB3Template.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AnnexB3Template.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB4.ttcn b/regression_test/XML/TTCNandXML/AnnexB4.ttcn
index 5496ae2e6..303f157d6 100644
--- a/regression_test/XML/TTCNandXML/AnnexB4.ttcn
+++ b/regression_test/XML/TTCNandXML/AnnexB4.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnnexB4Template.ttcnpp b/regression_test/XML/TTCNandXML/AnnexB4Template.ttcnpp
index dd1e37662..6c053f3ef 100644
--- a/regression_test/XML/TTCNandXML/AnnexB4Template.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AnnexB4Template.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AnyStuff.ttcnpp b/regression_test/XML/TTCNandXML/AnyStuff.ttcnpp
index 153dd1a61..259a7c0c9 100644
--- a/regression_test/XML/TTCNandXML/AnyStuff.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AnyStuff.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AttribPath.ttcn b/regression_test/XML/TTCNandXML/AttribPath.ttcn
index b81a9999a..c027ab189 100644
--- a/regression_test/XML/TTCNandXML/AttribPath.ttcn
+++ b/regression_test/XML/TTCNandXML/AttribPath.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AttribPathTest.ttcnpp b/regression_test/XML/TTCNandXML/AttribPathTest.ttcnpp
index 6cc0d80e5..d0457425b 100644
--- a/regression_test/XML/TTCNandXML/AttribPathTest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AttribPathTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/AttributesTest.ttcnpp b/regression_test/XML/TTCNandXML/AttributesTest.ttcnpp
index 943360d08..46f6e8ae5 100644
--- a/regression_test/XML/TTCNandXML/AttributesTest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/AttributesTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/Base64Test.ttcnpp b/regression_test/XML/TTCNandXML/Base64Test.ttcnpp
index d37f3abc7..2341da98e 100644
--- a/regression_test/XML/TTCNandXML/Base64Test.ttcnpp
+++ b/regression_test/XML/TTCNandXML/Base64Test.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/DFEAttribTest.ttcnpp b/regression_test/XML/TTCNandXML/DFEAttribTest.ttcnpp
index e9e750679..060d51aa3 100644
--- a/regression_test/XML/TTCNandXML/DFEAttribTest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/DFEAttribTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/DFETest.ttcnpp b/regression_test/XML/TTCNandXML/DFETest.ttcnpp
index e116ec5fb..2b4678d46 100644
--- a/regression_test/XML/TTCNandXML/DFETest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/DFETest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/E0.ttcn b/regression_test/XML/TTCNandXML/E0.ttcn
index 59a708c52..3b7a6ef65 100644
--- a/regression_test/XML/TTCNandXML/E0.ttcn
+++ b/regression_test/XML/TTCNandXML/E0.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/EmbedValues.ttcnpp b/regression_test/XML/TTCNandXML/EmbedValues.ttcnpp
index f5edaa633..8a7bd5dce 100644
--- a/regression_test/XML/TTCNandXML/EmbedValues.ttcnpp
+++ b/regression_test/XML/TTCNandXML/EmbedValues.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/EnumTest.ttcnpp b/regression_test/XML/TTCNandXML/EnumTest.ttcnpp
index e4ad73ee8..9b36aa7b1 100644
--- a/regression_test/XML/TTCNandXML/EnumTest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/EnumTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/Flatten.cc b/regression_test/XML/TTCNandXML/Flatten.cc
index 8081b7689..fae9808aa 100644
--- a/regression_test/XML/TTCNandXML/Flatten.cc
+++ b/regression_test/XML/TTCNandXML/Flatten.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/XML/TTCNandXML/Flattener.ttcn b/regression_test/XML/TTCNandXML/Flattener.ttcn
index dc811cd91..f1a1d46c4 100644
--- a/regression_test/XML/TTCNandXML/Flattener.ttcn
+++ b/regression_test/XML/TTCNandXML/Flattener.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/Makefile b/regression_test/XML/TTCNandXML/Makefile
index 8fff1eb67..8e803874c 100644
--- a/regression_test/XML/TTCNandXML/Makefile
+++ b/regression_test/XML/TTCNandXML/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/TTCNandXML/Marx.ttcnpp b/regression_test/XML/TTCNandXML/Marx.ttcnpp
index 2b6d82439..5c49410d1 100644
--- a/regression_test/XML/TTCNandXML/Marx.ttcnpp
+++ b/regression_test/XML/TTCNandXML/Marx.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/NamespaceDef.ttcn b/regression_test/XML/TTCNandXML/NamespaceDef.ttcn
index 9e92711ed..de2d71eef 100644
--- a/regression_test/XML/TTCNandXML/NamespaceDef.ttcn
+++ b/regression_test/XML/TTCNandXML/NamespaceDef.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/NamespaceTest.ttcnpp b/regression_test/XML/TTCNandXML/NamespaceTest.ttcnpp
index 00fd5d59e..664c32161 100644
--- a/regression_test/XML/TTCNandXML/NamespaceTest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/NamespaceTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/Regressions.ttcnpp b/regression_test/XML/TTCNandXML/Regressions.ttcnpp
index 215cf2839..2ddca34f0 100644
--- a/regression_test/XML/TTCNandXML/Regressions.ttcnpp
+++ b/regression_test/XML/TTCNandXML/Regressions.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/UTF8.ttcn b/regression_test/XML/TTCNandXML/UTF8.ttcn
index 5430e5f72..197310424 100644
--- a/regression_test/XML/TTCNandXML/UTF8.ttcn
+++ b/regression_test/XML/TTCNandXML/UTF8.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/WhitespaceTest.ttcnpp b/regression_test/XML/TTCNandXML/WhitespaceTest.ttcnpp
index 9bdea10ae..a138095ae 100644
--- a/regression_test/XML/TTCNandXML/WhitespaceTest.ttcnpp
+++ b/regression_test/XML/TTCNandXML/WhitespaceTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/X693amd1.ttcn b/regression_test/XML/TTCNandXML/X693amd1.ttcn
index b727f6833..0e87ca36b 100644
--- a/regression_test/XML/TTCNandXML/X693amd1.ttcn
+++ b/regression_test/XML/TTCNandXML/X693amd1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/X693amd1Test.ttcnpp b/regression_test/XML/TTCNandXML/X693amd1Test.ttcnpp
index 4b2e124ec..7ff5320ec 100644
--- a/regression_test/XML/TTCNandXML/X693amd1Test.ttcnpp
+++ b/regression_test/XML/TTCNandXML/X693amd1Test.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/XSDAttributes.ttcn b/regression_test/XML/TTCNandXML/XSDAttributes.ttcn
index caf8c3017..754c204c1 100644
--- a/regression_test/XML/TTCNandXML/XSDAttributes.ttcn
+++ b/regression_test/XML/TTCNandXML/XSDAttributes.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/TTCNandXML/config.cfg b/regression_test/XML/TTCNandXML/config.cfg
index a3ab0c0d5..7b5fb4ef7 100644
--- a/regression_test/XML/TTCNandXML/config.cfg
+++ b/regression_test/XML/TTCNandXML/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XER/AsnValues.asn b/regression_test/XML/XER/AsnValues.asn
index a5154c064..1453838f0 100644
--- a/regression_test/XML/XER/AsnValues.asn
+++ b/regression_test/XML/XER/AsnValues.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/Asntypes.asn b/regression_test/XML/XER/Asntypes.asn
index f8d6f3f36..8a2751575 100644
--- a/regression_test/XML/XER/Asntypes.asn
+++ b/regression_test/XML/XER/Asntypes.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/EmptyUnion.asn b/regression_test/XML/XER/EmptyUnion.asn
index 6f34e3e7c..7382865ae 100644
--- a/regression_test/XML/XER/EmptyUnion.asn
+++ b/regression_test/XML/XER/EmptyUnion.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/Flatten.cc b/regression_test/XML/XER/Flatten.cc
index 80f6b8660..78c0971db 100644
--- a/regression_test/XML/XER/Flatten.cc
+++ b/regression_test/XML/XER/Flatten.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/XML/XER/Makefile b/regression_test/XML/XER/Makefile
index 4e5a89639..a14f0cffc 100644
--- a/regression_test/XML/XER/Makefile
+++ b/regression_test/XML/XER/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XER/ObjectClass.asn b/regression_test/XML/XER/ObjectClass.asn
index 870b4ac06..3df0a16f6 100644
--- a/regression_test/XML/XER/ObjectClass.asn
+++ b/regression_test/XML/XER/ObjectClass.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/ObjectClassWithSyntax.asn b/regression_test/XML/XER/ObjectClassWithSyntax.asn
index 472d5d59a..c0fe24db1 100644
--- a/regression_test/XML/XER/ObjectClassWithSyntax.asn
+++ b/regression_test/XML/XER/ObjectClassWithSyntax.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/SetValues.asn b/regression_test/XML/XER/SetValues.asn
index ef84549aa..c1401c0d5 100644
--- a/regression_test/XML/XER/SetValues.asn
+++ b/regression_test/XML/XER/SetValues.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/Sets.asn b/regression_test/XML/XER/Sets.asn
index c533ae9c0..9c8ff4c09 100644
--- a/regression_test/XML/XER/Sets.asn
+++ b/regression_test/XML/XER/Sets.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/XML/XER/Txerasntypes.ttcnpp b/regression_test/XML/XER/Txerasntypes.ttcnpp
index 4ef5500b1..d6f7d2313 100644
--- a/regression_test/XML/XER/Txerasntypes.ttcnpp
+++ b/regression_test/XML/XER/Txerasntypes.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerbinstr.ttcnpp b/regression_test/XML/XER/Txerbinstr.ttcnpp
index 5b7e5a737..9300992d9 100644
--- a/regression_test/XML/XER/Txerbinstr.ttcnpp
+++ b/regression_test/XML/XER/Txerbinstr.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerboolean.ttcnpp b/regression_test/XML/XER/Txerboolean.ttcnpp
index e74ed5100..d7191b2e0 100644
--- a/regression_test/XML/XER/Txerboolean.ttcnpp
+++ b/regression_test/XML/XER/Txerboolean.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerenum.ttcnpp b/regression_test/XML/XER/Txerenum.ttcnpp
index f2e861b17..5be221366 100644
--- a/regression_test/XML/XER/Txerenum.ttcnpp
+++ b/regression_test/XML/XER/Txerenum.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerfloat.ttcnpp b/regression_test/XML/XER/Txerfloat.ttcnpp
index 5ad14bf83..2b2f8844c 100644
--- a/regression_test/XML/XER/Txerfloat.ttcnpp
+++ b/regression_test/XML/XER/Txerfloat.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerint.ttcnpp b/regression_test/XML/XER/Txerint.ttcnpp
index 529c1a8db..e385eaedc 100644
--- a/regression_test/XML/XER/Txerint.ttcnpp
+++ b/regression_test/XML/XER/Txerint.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txernested.ttcnpp b/regression_test/XML/XER/Txernested.ttcnpp
index 914fdbcf7..db9546a68 100644
--- a/regression_test/XML/XER/Txernested.ttcnpp
+++ b/regression_test/XML/XER/Txernested.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerobjclass.ttcnpp b/regression_test/XML/XER/Txerobjclass.ttcnpp
index af6299d55..56c74bcde 100644
--- a/regression_test/XML/XER/Txerobjclass.ttcnpp
+++ b/regression_test/XML/XER/Txerobjclass.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txersets.ttcnpp b/regression_test/XML/XER/Txersets.ttcnpp
index ef35824db..029854956 100644
--- a/regression_test/XML/XER/Txersets.ttcnpp
+++ b/regression_test/XML/XER/Txersets.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/Txerstring.ttcnpp b/regression_test/XML/XER/Txerstring.ttcnpp
index 680f7fe76..7a029b678 100644
--- a/regression_test/XML/XER/Txerstring.ttcnpp
+++ b/regression_test/XML/XER/Txerstring.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XER/checkit.pl b/regression_test/XML/XER/checkit.pl
index 893350c80..0a07dbc7f 100755
--- a/regression_test/XML/XER/checkit.pl
+++ b/regression_test/XML/XER/checkit.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XER/config.cfg b/regression_test/XML/XER/config.cfg
index b3829c831..ab96069b4 100644
--- a/regression_test/XML/XER/config.cfg
+++ b/regression_test/XML/XER/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XER/junk.ttcn3 b/regression_test/XML/XER/junk.ttcn3
index 7d05ebaa7..b0f0f71b7 100644
--- a/regression_test/XML/XER/junk.ttcn3
+++ b/regression_test/XML/XER/junk.ttcn3
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/XML/XMLqualif/Makefile b/regression_test/XML/XMLqualif/Makefile
index 731954826..15e463167 100644
--- a/regression_test/XML/XMLqualif/Makefile
+++ b/regression_test/XML/XMLqualif/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XMLqualif/POtest.ttcnpp b/regression_test/XML/XMLqualif/POtest.ttcnpp
index 3e2cc3390..6cd66e1d1 100644
--- a/regression_test/XML/XMLqualif/POtest.ttcnpp
+++ b/regression_test/XML/XMLqualif/POtest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XMLqualif/config.cfg b/regression_test/XML/XMLqualif/config.cfg
index 7c3ce375f..deca5f34e 100644
--- a/regression_test/XML/XMLqualif/config.cfg
+++ b/regression_test/XML/XMLqualif/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XMLqualif/globall.xsd b/regression_test/XML/XMLqualif/globall.xsd
index c67dcfec9..121cb0792 100644
--- a/regression_test/XML/XMLqualif/globall.xsd
+++ b/regression_test/XML/XMLqualif/globall.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_qual.xsd b/regression_test/XML/XMLqualif/po_qual.xsd
index e7773912b..f1331194f 100644
--- a/regression_test/XML/XMLqualif/po_qual.xsd
+++ b/regression_test/XML/XMLqualif/po_qual.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_qual_atr.xsd b/regression_test/XML/XMLqualif/po_qual_atr.xsd
index 4c263a39b..1a3f240aa 100644
--- a/regression_test/XML/XMLqualif/po_qual_atr.xsd
+++ b/regression_test/XML/XMLqualif/po_qual_atr.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_qual_both.xsd b/regression_test/XML/XMLqualif/po_qual_both.xsd
index 37b9b497b..b5b865e11 100644
--- a/regression_test/XML/XMLqualif/po_qual_both.xsd
+++ b/regression_test/XML/XMLqualif/po_qual_both.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_qual_default.xml b/regression_test/XML/XMLqualif/po_qual_default.xml
index 6156a89bc..c01aa4bb6 100644
--- a/regression_test/XML/XMLqualif/po_qual_default.xml
+++ b/regression_test/XML/XMLqualif/po_qual_default.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_qual_explicit.xml b/regression_test/XML/XMLqualif/po_qual_explicit.xml
index c400a5e69..13f8528bd 100644
--- a/regression_test/XML/XMLqualif/po_qual_explicit.xml
+++ b/regression_test/XML/XMLqualif/po_qual_explicit.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_unqual.xml b/regression_test/XML/XMLqualif/po_unqual.xml
index 4db4f20bd..55c17c1ce 100644
--- a/regression_test/XML/XMLqualif/po_unqual.xml
+++ b/regression_test/XML/XMLqualif/po_unqual.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XMLqualif/po_unqual.xsd b/regression_test/XML/XMLqualif/po_unqual.xsd
index fe9baed3f..b74a03284 100644
--- a/regression_test/XML/XMLqualif/po_unqual.xsd
+++ b/regression_test/XML/XMLqualif/po_unqual.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/Makefile b/regression_test/XML/XmlWorkflow/Makefile
index e2693368c..f5b851827 100644
--- a/regression_test/XML/XmlWorkflow/Makefile
+++ b/regression_test/XML/XmlWorkflow/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPE.cfg b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPE.cfg
index c86ba02af..3a33e6117 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPE.cfg
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPE.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPEasp_Templates.ttcn b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPEasp_Templates.ttcn
index 988bd4824..ead0f96cc 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPEasp_Templates.ttcn
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PIPEasp_Templates.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.prj b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.prj
index 9281cfea6..2957d7841 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.prj
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.prj
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.ttcn b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.ttcn
index 1e7ebc2c1..0d7c2b444 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.ttcn
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/PipeTest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellNotice.sh b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellNotice.sh
index 204944ad5..a8792e32e 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellNotice.sh
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellNotice.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionString.sh b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionString.sh
index b4c6a0cde..ba6b2d34e 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionString.sh
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionString.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionYesNo.sh b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionYesNo.sh
index 56b21f514..3758adf90 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionYesNo.sh
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/demo/ShellQuestionYesNo.sh
@@ -1,6 +1,6 @@
 #!/bin/sh
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.cc b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.cc
index 2b57a1698..ea6fbf86c 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.cc
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.cc
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000-2014 Ericsson Telecom AB
+* 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.hh b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.hh
index df7624021..47c44bb20 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.hh
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PT.hh
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000-2014 Ericsson Telecom AB
+* 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PortType.ttcn b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PortType.ttcn
index 1d43b6fa8..afaf5b9a1 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PortType.ttcn
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_PortType.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_Types.ttcn b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_Types.ttcn
index da8ea94df..b63bccda1 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/src/PIPEasp_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/Makefile b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/Makefile
index 3dc25690b..d5c00ef64 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/Makefile
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.cc b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.cc
index 93e93f6be..108e07bae 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.cc
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.hh b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.hh
index bc2d6f413..fea511d81 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.hh
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PortType.ttcn b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PortType.ttcn
index 1d43b6fa8..afaf5b9a1 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PortType.ttcn
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_PortType.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_Types.ttcn b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_Types.ttcn
index da8ea94df..b63bccda1 100644
--- a/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/PIPEasp_CNL113334/test/PIPEasp_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/IsTypes.xsd b/regression_test/XML/XmlWorkflow/Tgc/IsTypes.xsd
index fa9db7b43..ca3a9f157 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/IsTypes.xsd
+++ b/regression_test/XML/XmlWorkflow/Tgc/IsTypes.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/Tgc.ttcn b/regression_test/XML/XmlWorkflow/Tgc/Tgc.ttcn
index 6536fe26b..1aa80bb2c 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/Tgc.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/Tgc.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/Tgc.xsd b/regression_test/XML/XmlWorkflow/Tgc/Tgc.xsd
index 37f824851..788f9cb29 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/Tgc.xsd
+++ b/regression_test/XML/XmlWorkflow/Tgc/Tgc.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn b/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn
index e680ab0eb..bac9ef501 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/UsefulTtcn3Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/XMLSchema.xsd b/regression_test/XML/XmlWorkflow/Tgc/XMLSchema.xsd
index 6962c415b..42f578336 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/XMLSchema.xsd
+++ b/regression_test/XML/XmlWorkflow/Tgc/XMLSchema.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn b/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn
index 8ee4fc267..d35abb763 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/XSD.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/confd.xsd b/regression_test/XML/XmlWorkflow/Tgc/confd.xsd
index 228ef1bde..ba9621f8c 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/confd.xsd
+++ b/regression_test/XML/XmlWorkflow/Tgc/confd.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/tail_f_com_ns_confd_1_0.ttcn b/regression_test/XML/XmlWorkflow/Tgc/tail_f_com_ns_confd_1_0.ttcn
index 6e972e448..51e27e19b 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/tail_f_com_ns_confd_1_0.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/tail_f_com_ns_confd_1_0.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_IsTypes_R4L06_R4AF11.ttcn b/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_IsTypes_R4L06_R4AF11.ttcn
index e22d93d8c..52fb6a9a8 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_IsTypes_R4L06_R4AF11.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_IsTypes_R4L06_R4AF11.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_Tgc_R6A48_R6H01.ttcn b/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_Tgc_R6A48_R6H01.ttcn
index 0cab59a6b..e1ebd13fb 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_Tgc_R6A48_R6H01.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/www_ericsson_com_is_isco_Tgc_R6A48_R6H01.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/www_w3_org_XML_1998_namespace.ttcn b/regression_test/XML/XmlWorkflow/Tgc/www_w3_org_XML_1998_namespace.ttcn
index 5e350fa33..5c199bc92 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/www_w3_org_XML_1998_namespace.ttcn
+++ b/regression_test/XML/XmlWorkflow/Tgc/www_w3_org_XML_1998_namespace.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/Tgc/xml.xsd b/regression_test/XML/XmlWorkflow/Tgc/xml.xsd
index 303cc6e87..3f57f0870 100644
--- a/regression_test/XML/XmlWorkflow/Tgc/xml.xsd
+++ b/regression_test/XML/XmlWorkflow/Tgc/xml.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/MyTypes_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/MyTypes_e.ttcn
new file mode 100644
index 000000000..0e2691ebd
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/MyTypes_e.ttcn
@@ -0,0 +1,72 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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:          MyTypes_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Oct 12 10:09:06 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- module_typename_conversion_1.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "MyTypes_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module MyTypes {
+
+
+import from XSD all;
+
+
+type XSD.String MyTypes_2
+with {
+variant "name as 'MyTypes__'";
+variant "attribute";
+};
+
+
+type XSD.String MyTypes_1
+with {
+variant "name as 'MyTypes_'";
+variant "element";
+};
+
+
+type record MyTypes_3
+{
+	XSD.String myTypes
+}
+with {
+variant "name as 'MyTypes'";
+variant "element";
+variant (myTypes) "name as capitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'MyTypes'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/NoTargetNamespace.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/NoTargetNamespace.ttcn
new file mode 100644
index 000000000..d4cb2c755
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/NoTargetNamespace.ttcn
@@ -0,0 +1,58 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2015
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R3A                       
+*
+* 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:          NoTargetNamespace.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 28 13:59:18 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attrib_order_c.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "NoTargetNamespace" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module NoTargetNamespace {
+
+
+import from XSD all;
+
+
+type XSD.String AttrNoTargetNamespace
+with {
+variant "attribute";
+};
+
+
+type XSD.String AttrNoTargetNamespace2
+with {
+variant "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/XmlTest_imsike_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/XmlTest_imsike_e.ttcn
index a5bb5a7d6..f6d07f76f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/XmlTest_imsike_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/XmlTest_imsike_e.ttcn
@@ -128,7 +128,7 @@ variant (content.bornPlace_list[-]) "useNil";
 }
 with {
 encode "XML";
-variant "namespace as 'urn:XmlTest.imsike' prefix 'ns'";
+variant "namespace as 'urn:XmlTest.imsike' prefix 'ns50'";
 variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
 variant "elementFormQualified";
 }
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/attribute_in_extension_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/attribute_in_extension_e.ttcn
new file mode 100644
index 000000000..1d7189964
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/attribute_in_extension_e.ttcn
@@ -0,0 +1,72 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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:          attribute_in_extension_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri May 29 12:56:49 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attribute_in_extension.xsd
+//			/* xml version = "1.0" */
+//			/* targetnamespace = "attribute_in_extension_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module attribute_in_extension {
+
+
+import from XSD all;
+
+
+type record BaseType
+{
+	XSD.Integer base_variable
+}
+with {
+variant (base_variable) "name as 'Base-variable'";
+};
+
+
+type record Extending_type
+{
+	record {
+		XSD.Integer extension_ optional,
+		XSD.Integer base_variable
+	} ext
+}
+with {
+variant "name as 'Extending-type'";
+variant (ext.extension_) "name as 'extension'";
+variant (ext.extension_) "attribute";
+variant (ext.base_variable) "name as 'Base-variable'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'attribute_in_extension' prefix 'ns45'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+variant "elementFormQualified";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_complex_restriction_with_use_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_complex_restriction_with_use_e.ttcn
new file mode 100644
index 000000000..d290022db
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_complex_restriction_with_use_e.ttcn
@@ -0,0 +1,117 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          http_www_example_org_complex_restriction_with_use_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Tue Jun  2 06:12:37 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- complex_restriction_with_use.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "http://www.example.org/complex-restriction-with-use/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module http_www_example_org_complex_restriction_with_use {
+
+
+import from XSD all;
+
+
+/* The base type is: */
+
+
+type record PurchaseOrderType
+{
+	XSD.Date finishDate optional,
+	XSD.Date orderDate optional,
+	XSD.Date shipDate optional,
+	XSD.String shipTo,
+	XSD.String billTo optional,
+	XSD.String items
+}
+with {
+variant (finishDate) "attribute";
+variant (orderDate) "attribute";
+variant (shipDate) "attribute";
+};
+
+
+/* The restricting type is: */
+
+
+type record RestrictedPurchaseOrderType
+{
+	XSD.Date finishDate optional,
+	XSD.Date shipDate,
+	XSD.String shipTo,
+	XSD.String billTo,
+	XSD.String items
+}
+with {
+variant (finishDate) "attribute";
+variant (shipDate) "attribute";
+};
+
+
+type Testsuite_1 Testsuite
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record Testsuite_1
+{
+	XSD.Decimal time optional,
+	record {
+	} properties
+}
+with {
+variant "name as 'testsuite'";
+variant (time) "attribute";
+};
+
+
+type record Testsuites
+{
+	record {
+		XSD.Decimal time,
+		record {
+		} properties
+	} testsuite
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (testsuite.time) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://www.example.org/complex-restriction-with-use'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv2_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv2_e.ttcn
new file mode 100644
index 000000000..092e2ce29
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv2_e.ttcn
@@ -0,0 +1,47 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          http_www_example_org_name_conv2_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fr Jun 12 11:11:11 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- name_conv_non_alphanumeric.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "http://www.example.org/name_conv2;;;;;;/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module http_www_example_org_name_conv2 {
+
+
+import from XSD all;
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://www.example.org/name_conv2;;;;;;'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv3_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv3_e.ttcn
new file mode 100644
index 000000000..db65f0357
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_name_conv3_e.ttcn
@@ -0,0 +1,47 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          http_www_example_org_name_conv3_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fr Jun 11 11:23:15 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- name_conv_remove_seq_of_low_line.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "http://////////www.example.org/name_conv3////e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module http_www_example_org_name_conv3 {
+
+
+import from XSD all;
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://////////www.example.org/name_conv3///'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_nillable_in_nillable_extension_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_nillable_in_nillable_extension_e.ttcn
new file mode 100644
index 000000000..b1f8603ff
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_nillable_in_nillable_extension_e.ttcn
@@ -0,0 +1,92 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          http_www_example_org_nillable_in_nillable_extension_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Jun  4 16:22:29 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- nillable_in_nillable_extension.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "http://www.example.org/nillable/in/nillable/extension/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module http_www_example_org_nillable_in_nillable_extension {
+
+
+import from XSD all;
+
+
+type record SeqNillable
+{
+	XSD.Integer number optional,
+	record length(0 .. 32) of record {
+		XSD.Integer content optional
+	} nillableNumber_list
+}
+with {
+variant (number) "name as capitalized";
+variant (nillableNumber_list) "untagged";
+variant (nillableNumber_list[-]) "name as 'NillableNumber'";
+variant (nillableNumber_list[-]) "useNil";
+};
+
+
+type record NillableInRecord
+{
+	XSD.Boolean allow_do_not,
+	record {
+		XSD.Integer phoneNumber optional,
+		record {
+			XSD.Integer number optional,
+			record length(0 .. 32) of record {
+				XSD.Integer content optional
+			} nillableNumber_list
+		} content optional
+	} seqNillableExtended optional
+}
+with {
+variant "element";
+variant (allow_do_not) "name as 'allow-do-not'";
+//variant (allow_do_not) "text 'true' as '1'";
+//variant (allow_do_not) "text 'false' as '0'";
+variant (seqNillableExtended) "name as capitalized";
+variant (seqNillableExtended) "useNil";
+variant (seqNillableExtended.phoneNumber) "name as capitalized";
+variant (seqNillableExtended.phoneNumber) "attribute";
+variant (seqNillableExtended.content.number) "name as capitalized";
+variant (seqNillableExtended.content.nillableNumber_list) "untagged";
+variant (seqNillableExtended.content.nillableNumber_list[-]) "name as 'NillableNumber'";
+variant (seqNillableExtended.content.nillableNumber_list[-]) "useNil";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://www.example.org/nillable/in/nillable/extension' prefix 'ns12'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+variant "elementFormQualified";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_seq_embeds_seq_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_seq_embeds_seq_e.ttcn
new file mode 100644
index 000000000..922b7d335
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_seq_embeds_seq_e.ttcn
@@ -0,0 +1,80 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          http_www_example_org_seq_embeds_seq_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri May 29 12:38:08 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- sequence_embeds_sequence.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "http://www.example.org/seq-embeds-seq/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module http_www_example_org_seq_embeds_seq {
+
+
+import from XSD all;
+
+
+type record E34b
+{
+	union {
+		record {
+			XSD.String foo,
+			XSD.String bar,
+			XSD.String ding,
+			XSD.String foo_1,
+			XSD.String bar_1
+		} sequence,
+		XSD.String ding
+	} choice
+}
+with {
+variant "name as uncapitalized";
+variant (choice) "untagged";
+variant (choice.sequence) "untagged";
+variant (choice.sequence.foo_1) "name as 'foo'";
+variant (choice.sequence.bar_1) "name as 'bar'";
+};
+
+
+type record E40a
+{
+	XSD.String foo,
+	XSD.String bar,
+	XSD.String ding
+}
+with {
+variant "name as uncapitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://www.example.org/seq-embeds-seq'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_ttcn_wildcards_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_ttcn_wildcards_e.ttcn
index 67942d565..e59f45c83 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_ttcn_wildcards_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_ttcn_wildcards_e.ttcn
@@ -195,6 +195,18 @@ variant (sequence_list[-]) "untagged";
 };
 
 
+type record MyType
+{
+	record of XSD.String attr optional,
+	XSD.String base
+}
+with {
+variant "element";
+variant (attr) "anyAttributes from 'http://www.example.org/ttcn/wildcards'";
+variant (base) "untagged";
+};
+
+
 }
 with {
 encode "XML";
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_wildcards_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_wildcards_e.ttcn
new file mode 100644
index 000000000..cfd317106
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/http_www_example_org_wildcards_e.ttcn
@@ -0,0 +1,118 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          http_www_example_org_wildcards_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Jun  1 11:35:23 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- anyattribute_optional.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "http://www.example.org/wildcards/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module http_www_example_org_wildcards {
+
+
+import from XSD all;
+
+
+type E45 AnyAttrAnyNamespace
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type E45b AnyAttrThisNamespace
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record E45
+{
+	XSD.Date aa optional,
+	XSD.String attr optional,
+	XSD.Date bb optional,
+	record of XSD.String attr_1 optional
+}
+with {
+variant "name as uncapitalized";
+variant (aa) "attribute";
+variant (attr) "attribute";
+variant (bb) "attribute";
+variant (attr_1) "anyAttributes";
+variant (attr_1) "name as 'attr'";
+};
+
+
+type record E45a
+{
+	record of XSD.String attr optional
+}
+with {
+variant "name as uncapitalized";
+variant (attr) "anyAttributes except unqualified, 'http://www.example.org/wildcards'";
+};
+
+
+type record E45b
+{
+	record of XSD.String attr optional
+}
+with {
+variant "name as uncapitalized";
+variant (attr) "anyAttributes from 'http://www.example.org/wildcards'";
+};
+
+
+type record E45c
+{
+	record of XSD.String attr optional
+}
+with {
+variant "name as uncapitalized";
+variant (attr) "anyAttributes from unqualified,'http://www.example.org/attribute'";
+};
+
+
+type record E45d
+{
+	record of XSD.String attr optional
+}
+with {
+variant "name as uncapitalized";
+variant (attr) "anyAttributes from 'http://www.example.org/wildcards',unqualified,'http://www.example.org/attribute'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'http://www.example.org/wildcards' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_1_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_1_e.ttcn
new file mode 100644
index 000000000..2e00420f0
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_1_e.ttcn
@@ -0,0 +1,53 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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:          imported_module_1.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct  8 11:17:39 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- imported_module__e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "imported_module_1_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module imported_module_1 {
+
+
+import from XSD all;
+
+
+type XSD.Integer MyType
+with {
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'imported_module_'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_e.ttcn
new file mode 100644
index 000000000..a9518704a
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/imported_module_e.ttcn
@@ -0,0 +1,53 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          imported_module_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct  8 11:17:39 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- imported_module.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "imported_module_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module imported_module {
+
+
+import from XSD all;
+
+
+type XSD.String MyType
+with {
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'imported_module' prefix 'ns1'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/module_typename_conversion_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/module_typename_conversion_e.ttcn
new file mode 100644
index 000000000..de6cecfcb
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/module_typename_conversion_e.ttcn
@@ -0,0 +1,75 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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:          module_typename_conversion_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Oct 12 10:09:06 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- module_typename_conversion.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "module_typename_conversion_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module module_typename_conversion {
+
+
+import from XSD all;
+
+
+import from MyTypes all;
+
+
+type XSD.String MyTypes_2
+with {
+variant "name as 'MyTypes__'";
+variant "attribute";
+};
+
+
+type XSD.String MyTypes_1
+with {
+variant "name as 'MyTypes_'";
+variant "element";
+};
+
+
+type record MyTypes_3
+{
+	XSD.String myTypes
+}
+with {
+variant "name as 'MyTypes'";
+variant "element";
+variant (myTypes) "name as capitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'module_typename_conversion'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/name_conversion_extension_attrib_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/name_conversion_extension_attrib_e.ttcn
new file mode 100644
index 000000000..355ebc612
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/name_conversion_extension_attrib_e.ttcn
@@ -0,0 +1,81 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          name_conversion_extension_attrib_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri May 29 12:00:20 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- name_conversion_extension_attrib.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "name_conversion_extension_attrib/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module name_conversion_extension_attrib {
+
+
+import from XSD all;
+
+
+type record Ol_name_type
+{
+	XSD.Integer allow_true_action
+}
+with {
+variant "name as 'Ol-name-type'";
+variant "element";
+variant (allow_true_action) "name as 'allow-true-action'";
+};
+
+
+type record Ol_actions_type
+{
+	XSD.Integer do_not_disturb,
+	record {
+		Ol_name_type announcement_name,
+		record {
+			XSD.Integer allow_true_action
+		} content optional
+	} play_segmented_announcement
+}
+with {
+variant "name as 'Ol-actions-type'";
+variant "element";
+variant (do_not_disturb) "name as 'do-not-disturb'";
+variant (play_segmented_announcement) "name as 'play-segmented-announcement'";
+variant (play_segmented_announcement) "useNil";
+variant (play_segmented_announcement.announcement_name) "name as 'announcement-name'";
+variant (play_segmented_announcement.announcement_name) "attribute";
+variant (play_segmented_announcement.content.allow_true_action) "name as 'allow-true-action'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'name_conversion_extension_attrib'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+variant "elementFormQualified";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/nillable_annotations_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/nillable_annotations_e.ttcn
new file mode 100644
index 000000000..8e9752f2b
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/nillable_annotations_e.ttcn
@@ -0,0 +1,75 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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:          nillable_annotations_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri May 29 12:15:19 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- nillable_annotations.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "nillable_annotations/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module nillable_annotations {
+
+
+import from XSD all;
+
+
+/* SomeComment */
+
+
+type record Abbreviated_dialing
+{
+	record {
+		record {
+			/* SomeComment */
+			XSD.Integer content optional
+		} abbreviated_dialing_operator_configuration optional,
+		record {
+			/* SomeComment */
+			XSD.Integer content optional
+		} abbreviated_dialing_user_configuration optional
+	} content optional
+}
+with {
+variant "name as 'abbreviated-dialing'";
+variant "useNil";
+variant "element";
+variant (content.abbreviated_dialing_operator_configuration) "name as 'abbreviated-dialing-operator-configuration'";
+variant (content.abbreviated_dialing_operator_configuration) "useNil";
+variant (content.abbreviated_dialing_user_configuration) "name as 'abbreviated-dialing-user-configuration'";
+variant (content.abbreviated_dialing_user_configuration) "useNil";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'nillable_annotations'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+variant "elementFormQualified";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/urn_ietf_params_xml_ns_conference_info_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/urn_ietf_params_xml_ns_conference_info_e.ttcn
index 25f20917c..1de1f784a 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/urn_ietf_params_xml_ns_conference_info_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/urn_ietf_params_xml_ns_conference_info_e.ttcn
@@ -57,7 +57,7 @@ type record Conference_type
 	XSD.UnsignedInt attr optional,
 	XSD.AnyURI entity,
 	State_type state optional,
-	record of XSD.String attr_1,
+	record of XSD.String attr_1 optional,
 	Conference_description_type conference_description optional,
 	Host_type host_info optional,
 	Conference_state_type conference_state optional,
@@ -72,8 +72,8 @@ variant (attr) "attribute";
 variant (entity) "attribute";
 variant (state) "defaultForEmpty as 'full'";
 variant (state) "attribute";
-variant (attr_1) "name as 'attr'";
 variant (attr_1) "anyAttributes except unqualified, 'urn:ietf:params:xml:ns:conference-info'";
+variant (attr_1) "name as 'attr'";
 variant (conference_description) "name as 'conference-description'";
 variant (host_info) "name as 'host-info'";
 variant (conference_state) "name as 'conference-state'";
@@ -103,7 +103,7 @@ variant "name as 'state-type'";
 
 type record Conference_description_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	XSD.String subject optional,
 	XSD.String free_text optional,
@@ -133,7 +133,7 @@ variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:c
 
 type record Host_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	XSD.AnyURI web_page optional,
 	Uris_type uris optional,
@@ -154,7 +154,7 @@ variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:c
 
 type record Conference_state_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.UnsignedInt user_count optional,
 	XSD.Boolean active optional,
 	XSD.Boolean locked optional,
@@ -164,6 +164,10 @@ with {
 variant "name as 'conference-state-type'";
 variant (attr) "anyAttributes except unqualified, 'urn:ietf:params:xml:ns:conference-info'";
 variant (user_count) "name as 'user-count'";
+//variant (active) "text 'true' as '1'";
+//variant (active) "text 'false' as '0'";
+//variant (locked) "text 'true' as '1'";
+//variant (locked) "text 'false' as '0'";
 variant (elem_list) "untagged";
 variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:conference-info'";
 };
@@ -174,7 +178,7 @@ variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:c
 
 type record Conference_media_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	record length(1 .. infinity) of Conference_medium_type entry_list
 }
 with {
@@ -191,7 +195,7 @@ variant (entry_list[-]) "name as 'entry'";
 type record Conference_medium_type
 {
 	XSD.String label_,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	XSD.String type_,
 	Media_status_type status optional,
@@ -215,7 +219,7 @@ variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:c
 type record Uris_type
 {
 	State_type state optional,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	record length(1 .. infinity) of Uri_type entry_list
 }
 with {
@@ -233,7 +237,7 @@ variant (entry_list[-]) "name as 'entry'";
 
 type record Uri_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.AnyURI uri,
 	XSD.String display_text optional,
 	XSD.String purpose optional,
@@ -265,7 +269,7 @@ variant "list";
 type record Users_type
 {
 	State_type state optional,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	record of User_type user_list,
 	record of XSD.String elem_list
 }
@@ -288,7 +292,7 @@ type record User_type
 {
 	XSD.AnyURI entity optional,
 	State_type state optional,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	Uris_type associated_aors optional,
 	User_roles_type roles optional,
@@ -318,7 +322,7 @@ variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:c
 
 type record User_roles_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	record length(1 .. infinity) of XSD.String entry_list
 }
 with {
@@ -346,7 +350,7 @@ type record Endpoint_type
 {
 	XSD.String entity optional,
 	State_type state optional,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	Execution_type referred optional,
 	Endpoint_status_type status optional,
@@ -438,7 +442,7 @@ variant "name as 'disconnection-type'";
 
 type record Execution_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.DateTime when optional,
 	XSD.String reason optional,
 	XSD.AnyURI by optional
@@ -454,7 +458,7 @@ variant (attr) "anyAttributes except unqualified, 'urn:ietf:params:xml:ns:confer
 
 type record Call_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	union {
 		Sip_dialog_id_type sip,
 		record of XSD.String elem_list
@@ -474,7 +478,7 @@ variant (choice.elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:x
 
 type record Sip_dialog_id_type
 {
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	XSD.String call_id,
 	XSD.String from_tag,
@@ -499,7 +503,7 @@ variant (elem_list[-]) "anyElement except unqualified, 'urn:ietf:params:xml:ns:c
 type record Media_type
 {
 	XSD.String id,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	XSD.String display_text optional,
 	XSD.String type_ optional,
 	XSD.String label_ optional,
@@ -541,7 +545,7 @@ variant "name as 'media-status-type'";
 type record Sidebars_by_val_type
 {
 	State_type state optional,
-	record of XSD.String attr,
+	record of XSD.String attr optional,
 	record of Conference_type entry_list
 }
 with {
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_c_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_c_e.ttcn
index 975cd5053..9ccfd41fa 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_c_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_c_e.ttcn
@@ -32,14 +32,13 @@
 //------------------------------------------------------------------------------
 ////////////////////////////////////////////////////////////////////////////////
 
+
 module www_XmlTest_org_annotation_c_e {
 
 
 import from XSD all;
 
 
-
-
 type XSD.PositiveInteger MyInteger1
 with {
 variant "element";
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_t_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_t_e.ttcn
index b3015030c..dd0b42517 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_t_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_annotation_t_e.ttcn
@@ -21,7 +21,7 @@
 //	Generated from file(s):
 //	- XmlTest_annotation.xsd
 //			/* xml version = "1.0" encoding = "UTF-8" */
-//			/* targetnamespace = "www.XmlTest.org/annotation" */
+//			/* targetnamespace = "www.XmlTest.org/annotation/e" */
 ////////////////////////////////////////////////////////////////////////////////
 //     Modification header(s):
 //-----------------------------------------------------------------------------
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_boolean_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_boolean_e.ttcn
index e11add514..b532fe813 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_boolean_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_boolean_e.ttcn
@@ -49,9 +49,17 @@ import from XSD all;
 
 
 type XSD.Boolean Result;
+//with {
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+//};
 
 
 type XSD.Boolean Result1;
+//with {
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+//};
 
 
 }
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_all_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_all_e.ttcn
index 97dc03fb4..c92140f55 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_all_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_all_e.ttcn
@@ -71,13 +71,29 @@ variant (chemistry) "name as capitalized";
 
 type record MySubjects2
 {
+	record of enumerated {
+		english,
+		math,
+		physics,
+		chemistry,
+		history
+	} order,
 	XSD.GYear year optional,
-	Subject subject
+	XSD.String english,
+	XSD.String math,
+	XSD.String physics,
+	XSD.String chemistry,
+	XSD.String history
 }
 with {
+variant "useOrder";
 variant (year) "name as capitalized";
 variant (year) "attribute";
-variant (subject) "name as capitalized";
+variant (english) "name as capitalized";
+variant (math) "name as capitalized";
+variant (physics) "name as capitalized";
+variant (chemistry) "name as capitalized";
+variant (history) "name as capitalized";
 };
 
 
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_include2_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_include2_e.ttcn
index 4fc592532..546ca189f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_include2_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_complex_include2_e.ttcn
@@ -88,7 +88,7 @@ variant (part_list[-].base) "untagged";
 }
 with {
 encode "XML";
-variant "namespace as 'www.XmlTest.org/complex_include2' prefix 'r'";
+variant "namespace as 'www.XmlTest.org/complex_include2' prefix 'r2'";
 variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
 variant "elementFormQualified";
 }
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_element_recordOfElements_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_element_recordOfElements_e.ttcn
index e4a33cbf2..41f0cf0b4 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_element_recordOfElements_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_element_recordOfElements_e.ttcn
@@ -19,7 +19,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////
 //	Generated from file(s):
-//	- XmlTest_element_recordOfElements.xsd
+//	- XmlTest_element_recordOfElements_e.xsd
 //			/* xml version = "1.0" */
 //			/* targetnamespace = "www.XmlTest.org/element_recordOfElements" */
 ////////////////////////////////////////////////////////////////////////////////
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_list_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_list_e.ttcn
index 8e96abb3d..9524b1397 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_list_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_list_e.ttcn
@@ -178,6 +178,8 @@ variant "list";
 type record of XSD.Boolean BooleanList
 with {
 variant "list";
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
 };
 
 
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_string_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_string_e.ttcn
index e04cf6ef3..424592602 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_string_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_string_e.ttcn
@@ -97,7 +97,7 @@ variant "name as 'Longer-string'";
 };
 
 
-type Longer_string Longer_stringChild length(5)
+type XSD.String Longer_stringChild length(5)
 with {
 variant "name as 'Longer-stringChild'";
 };
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_union_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_union_e.ttcn
index 0030f4d09..8ab1aef43 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_union_e.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_XmlTest_org_union_e.ttcn
@@ -55,6 +55,8 @@ with {
 variant "useUnion";
 variant (float_) "name as 'float'";
 variant (boolean_) "name as 'boolean'";
+//variant (boolean_) "text 'true' as '1'";
+//variant (boolean_) "text 'false' as '0'";
 };
 
 
@@ -66,6 +68,8 @@ type union MyUnion2
 with {
 variant "useUnion";
 variant (boolean_) "name as 'boolean'";
+//variant (boolean_) "text 'true' as '1'";
+//variant (boolean_) "text 'false' as '0'";
 };
 
 
@@ -81,11 +85,17 @@ type union MyUnion3
 with {
 variant "useUnion";
 variant (boolean_) "name as 'boolean'";
+//variant (boolean_) "text 'true' as '1'";
+//variant (boolean_) "text 'false' as '0'";
 variant (float_) "name as 'float'";
 };
 
 
 type XSD.Boolean Result;
+//with {
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+//};
 
 
 type MyUnion1 MyUnion4
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_all_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_all_e.ttcn
new file mode 100644
index 000000000..05f58b1bc
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_all_e.ttcn
@@ -0,0 +1,175 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_all_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Oct 12 12:27:05 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- all.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/all/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_all {
+
+
+import from XSD all;
+
+
+type XSD.Token AttrGlobal
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+/* All, mandatory */
+
+
+type record E29a
+{
+	record of enumerated {
+		foo,
+		bar,
+		ding
+	} order,
+	XSD.Integer foo,
+	XSD.Float bar,
+	XSD.String ding
+}
+with {
+variant "name as uncapitalized";
+variant "useOrder";
+};
+
+
+type record E29aAndAttributes
+{
+	record of enumerated {
+		foo,
+		bar,
+		ding
+	} order,
+	AttrGlobal attrGlobal optional,
+	XSD.Token attrInGroup1 optional,
+	XSD.Token attrInGroup2 optional,
+	XSD.Integer attrLocal optional,
+	XSD.Integer foo,
+	XSD.Float bar,
+	XSD.String ding
+}
+with {
+variant "name as uncapitalized";
+variant "useOrder";
+variant (attrGlobal) "attribute";
+variant (attrInGroup1) "attribute";
+variant (attrInGroup2) "attribute";
+variant (attrLocal) "attribute";
+};
+
+
+/* All, optional */
+
+
+type record E29bAndAttributes
+{
+	record of enumerated {
+		foo,
+		bar,
+		ding
+	} order,
+	AttrGlobal attrGlobal optional,
+	XSD.Token attrInGroup1 optional,
+	XSD.Token attrInGroup2 optional,
+	XSD.Integer attrLocal optional,
+	XSD.Integer foo optional,
+	XSD.Float bar optional,
+	XSD.String ding optional
+}
+with {
+variant "name as uncapitalized";
+variant "useOrder";
+variant (attrGlobal) "attribute";
+variant (attrInGroup1) "attribute";
+variant (attrInGroup2) "attribute";
+variant (attrLocal) "attribute";
+};
+
+
+/* All, some elements are optional */
+
+
+type record E29cAndAttributes
+{
+	record of enumerated {
+		foo,
+		bar,
+		ding
+	} order,
+	AttrGlobal attrGlobal optional,
+	XSD.Token attrInGroup1 optional,
+	XSD.Token attrInGroup2 optional,
+	XSD.Integer attrLocal optional,
+	XSD.Integer foo,
+	XSD.Float bar optional,
+	XSD.String ding
+}
+with {
+variant "name as uncapitalized";
+variant "useOrder";
+variant (attrGlobal) "attribute";
+variant (attrInGroup1) "attribute";
+variant (attrInGroup2) "attribute";
+variant (attrLocal) "attribute";
+};
+
+
+type record E29cAndAttributesReferenceOptional
+{
+	record of enumerated {
+		foo,
+		bar,
+		ding
+	} order,
+	XSD.String attr optional,
+	XSD.Integer foo optional,
+	XSD.Float bar optional,
+	XSD.String ding optional
+}
+with {
+variant "name as uncapitalized";
+variant "useOrder";
+variant "element";
+variant (attr) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/all' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattr_in_complex_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattr_in_complex_e.ttcn
new file mode 100644
index 000000000..6de7ecf85
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattr_in_complex_e.ttcn
@@ -0,0 +1,63 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2014
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_anyattr_in_complex_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 28 13:30:35 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- anyattr_in_compex_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/anyattr/in/complex/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_anyattr_in_complex {
+
+
+import from XSD all;
+
+
+type record DependentLocalityType
+{
+	record of record {
+		record of XSD.String attr optional
+	} dependentLocalityName_list,
+	record {
+	} dependentLocalityNumber optional
+}
+with {
+variant (dependentLocalityName_list) "untagged";
+variant (dependentLocalityName_list[-]) "name as 'DependentLocalityName'";
+variant (dependentLocalityName_list[-].attr) "anyAttributes except unqualified, 'www.example.org/anyattr/in/complex'";
+variant (dependentLocalityNumber) "name as capitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/anyattr/in/complex' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattrib_single_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattrib_single_e.ttcn
new file mode 100644
index 000000000..a6287c127
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_anyattrib_single_e.ttcn
@@ -0,0 +1,132 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R31                       
+*
+* 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_anyattrib_single_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri Aug 28 10:17:20 2013
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- anyattrib_single.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/anyattrib/single" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_anyattrib_single_e {
+
+
+import from XSD all;
+
+
+type record E25seq
+{
+	XSD.Token attrInGroup1 optional,
+	XSD.Token attrInGroup2 optional,
+	record of XSD.String attr optional,
+	XSD.String titleElemBase,
+	XSD.String forenameElemBase,
+	XSD.String surnameElemBase
+}
+with {
+variant "name as uncapitalized";
+variant (attrInGroup1) "attribute";
+variant (attrInGroup2) "attribute";
+variant (attr) "anyAttributes from 'http://www.w3.org/1999/xhtml','www.example.org/anyattrib/single','www.example.org/anyattrib/single'";
+};
+
+
+type record E45c
+{
+	record of XSD.String attr optional
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (attr) "anyAttributes from unqualified,'http://www.example.org/attribute'";
+};
+
+
+type record E45d
+{
+	record of XSD.String attr optional
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (attr) "anyAttributes from 'www.example.org/anyattrib/single',unqualified,'http://www.example.org/attribute'";
+};
+
+
+type record ExtBase
+{
+	record of XSD.String attr optional,
+	XSD.String field
+}
+with {
+variant (attr) "anyAttributes from 'www.example.org/anyattrib/single'";
+};
+
+
+type record MyType
+{
+	XSD.String ding optional,
+	record of XSD.String attr optional,
+	XSD.String field
+}
+with {
+variant "element";
+variant (ding) "attribute";
+variant (attr) "anyAttributes from 'www.example.org/anyattrib/single'";
+};
+
+
+type record ExtBase2
+{
+	record of XSD.String attr optional,
+	XSD.String field
+}
+with {
+variant (attr) "anyAttributes except unqualified, 'www.example.org/anyattrib/single'";
+};
+
+
+type record MyType2
+{
+	XSD.String ding optional,
+	record of XSD.String attr optional,
+	XSD.String field
+}
+with {
+variant "element";
+variant (ding) "attribute";
+variant (attr) "anyAttributes from 'www.example.org/anyattrib/single',unqualified, 'www.example.org/anyattrib/single'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/anyattrib/single' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attr_ext_rest_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attr_ext_rest_e.ttcn
new file mode 100644
index 000000000..52008eca6
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attr_ext_rest_e.ttcn
@@ -0,0 +1,220 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 110 200/0 R3A                       
+*
+* 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_attr_ext_rest.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri Aug 26 09:42:11 2011
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attrib_restriction_extension_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/attr/ext/rest" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_attr_ext_rest_e {
+
+
+import from XSD all;
+
+
+type record E25seq
+{
+	XSD.Integer genderAttrBase optional,
+	XSD.String titleElemBase,
+	XSD.String forenameElemBase,
+	XSD.String surnameElemBase
+}
+with {
+variant "name as uncapitalized";
+variant (genderAttrBase) "attribute";
+};
+
+
+type record E25seqa
+{
+	XSD.Integer gender optional,
+	XSD.Integer genderAttrBase optional,
+	XSD.String titleElemBase,
+	XSD.String forenameElemBase,
+	XSD.String surnameElemBase
+}
+with {
+variant "name as uncapitalized";
+variant (gender) "attribute";
+variant (genderAttrBase) "attribute";
+};
+
+
+type record E25seqb
+{
+	XSD.Integer gender optional,
+	XSD.Integer genderAttrBase optional,
+	XSD.String titleElemBase,
+	XSD.String forenameElemBase,
+	XSD.String surnameElemBase,
+	XSD.Integer ageElemExt
+}
+with {
+variant "name as uncapitalized";
+variant (gender) "attribute";
+variant (genderAttrBase) "attribute";
+};
+
+
+type record E25seqc
+{
+	XSD.Integer gender optional,
+	XSD.Integer ageElemExt
+}
+with {
+variant "name as uncapitalized";
+variant (gender) "attribute";
+};
+
+
+type record E25seqd
+{
+	XSD.Integer gender optional,
+	XSD.Integer genderAttrBase,
+	XSD.Integer ageElemExt
+}
+with {
+variant "name as uncapitalized";
+variant (gender) "attribute";
+variant (genderAttrBase) "attribute";
+};
+
+
+type XSD.String Comment
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record PurchaseOrderType
+{
+	XSD.Date orderDate optional,
+	XSD.Date shipDate optional,
+	XSD.String shipTo,
+	XSD.String billTo,
+	Comment comment optional
+}
+with {
+variant (orderDate) "attribute";
+variant (shipDate) "attribute";
+};
+
+
+/* The restricting type is: */
+
+
+type record RestrictedPurchaseOrderType
+{
+	XSD.Date shipDate,
+	XSD.String shipTo,
+	Comment comment
+}
+with {
+variant (shipDate) "attribute";
+};
+
+
+type record E23
+{
+	XSD.Integer bar optional,
+	XSD.Integer base optional,
+	XSD.Float foo optional,
+	XSD.String base_1
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (base) "attribute";
+variant (foo) "attribute";
+variant (base_1) "name as 'base'";
+variant (base_1) "untagged";
+};
+
+
+type record E24
+{
+	XSD.Integer bar optional,
+	XSD.Integer base optional,
+	XSD.Float foo optional,
+	XSD.Integer goo optional,
+	XSD.String base_1
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (base) "attribute";
+variant (foo) "attribute";
+variant (goo) "attribute";
+variant (base_1) "name as 'base'";
+variant (base_1) "untagged";
+};
+
+
+type record E25
+{
+	XSD.Integer bar optional,
+	XSD.Integer goo,
+	XSD.String base length(4)
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (goo) "attribute";
+variant (base) "untagged";
+};
+
+
+type record E26
+{
+	XSD.Integer bar optional,
+	XSD.Float foo,
+	XSD.Integer goo,
+	XSD.String base length(4)
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (goo) "attribute";
+variant (base) "untagged";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/attr/ext/rest' prefix 'nss'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_enum_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_enum_e.ttcn
new file mode 100644
index 000000000..96f71e997
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_enum_e.ttcn
@@ -0,0 +1,59 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2014
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_attrib_enum_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 28 13:49:38 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attrib_enum_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/attrib/enum/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_attrib_enum {
+
+
+import from XSD all;
+
+
+type record AttribEnum
+{
+	enumerated {
+	first,
+	second
+	} attr optional
+}
+with {
+variant (attr) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/attrib/enum' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_a_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_a_e.ttcn
new file mode 100644
index 000000000..0bd3ad2ff
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_a_e.ttcn
@@ -0,0 +1,115 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/7 R3b                       
+*
+* 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_attrib_order_a_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri Aug 28 12:53:34 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attrib_order_a.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/attrib/order/a" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_attrib_order_a_e {
+
+
+import from XSD all;
+
+
+import from www_example_org_attrib_order_b all;
+
+
+import from NoTargetNamespace all;
+
+
+type XSD.String Local1 ("fixed")
+with {
+variant "name as uncapitalized";
+variant "defaultForEmpty as 'fixed'";
+variant "attribute";
+};
+
+
+type XSD.String Local2
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+type record E17A
+{
+	AttrNoTargetNamespace attrNoTargetNamespace optional,
+	AttrNoTargetNamespace2 attrNoTargetNamespace2 optional,
+	Lang lang optional,
+	Local1 local1 optional,
+	Local2 local2 optional,
+	Attr1 attr1 optional,
+	XSD.Float barInAgroup optional,
+	XSD.Float fooInAgroup optional
+}
+with {
+variant "name as uncapitalized";
+variant (attrNoTargetNamespace) "name as capitalized";
+variant (attrNoTargetNamespace) "attribute";
+variant (attrNoTargetNamespace2) "name as capitalized";
+variant (attrNoTargetNamespace2) "attribute";
+variant (lang) "attribute";
+variant (local1) "attribute";
+variant (local2) "attribute";
+variant (attr1) "name as capitalized";
+variant (attr1) "namespace as 'www.example.org/attrib/order/b' prefix 'A'";
+variant (attr1) "attribute";
+variant (barInAgroup) "namespace as 'www.example.org/attrib/order/b' prefix 'A'";
+variant (barInAgroup) "attribute";
+variant (fooInAgroup) "namespace as 'www.example.org/attrib/order/b' prefix 'A'";
+variant (fooInAgroup) "attribute";
+};
+
+
+type union Lang
+{
+	XSD.Language language_,
+	enumerated {
+		x
+	} alt_
+}
+with {
+variant "name as uncapitalized";
+variant "useUnion";
+variant "attribute";
+variant (language_) "name as 'language'";
+variant (alt_) "name as ''";
+variant (alt_) "text 'x' as ''";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/attrib/order/a' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_b_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_b_e.ttcn
new file mode 100644
index 000000000..478671b81
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attrib_order_b_e.ttcn
@@ -0,0 +1,53 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2014
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_attrib_order_b.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 28 12:57:20 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attrib_order_b_e.xsd
+//			/* xml version = "1.0" */
+//			/* targetnamespace = "www.example.org/attrib/order/b/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_attrib_order_b {
+
+
+import from XSD all;
+
+
+type XSD.String Attr1
+with {
+variant "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/attrib/order/b' prefix 'A'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attribgroup_ingroup_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attribgroup_ingroup_e.ttcn
new file mode 100644
index 000000000..cf43d72ac
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_attribgroup_ingroup_e.ttcn
@@ -0,0 +1,68 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2014
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_attribgroup_ingroup_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 28 13:37:14 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attribgroup_ingroup_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/attribgroup/ingroup/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_attribgroup_ingroup {
+
+
+import from XSD all;
+
+
+type record AttrGroupinGroup
+{
+	RemoteSchema remoteSchema optional,
+	XSD.String type_ ("simple") optional
+}
+with {
+variant (remoteSchema) "attribute";
+variant (type_) "form as qualified";
+variant (type_) "name as 'type'";
+variant (type_) "defaultForEmpty as 'simple'";
+variant (type_) "attribute";
+};
+
+
+type XSD.AnyURI RemoteSchema
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/attribgroup/ingroup' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_boolean_variant_commented_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_boolean_variant_commented_e.ttcn
new file mode 100644
index 000000000..5a10da229
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_boolean_variant_commented_e.ttcn
@@ -0,0 +1,131 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2011
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_boolean_variant_commented_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Tue Jul  7 11:01:43 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- boolean_variant_commented.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/boolean/variant/commented/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_boolean_variant_commented {
+
+
+import from XSD all;
+
+
+type XSD.Boolean CelsiusBodyTemp
+with {
+variant "name as uncapitalized";
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+};
+
+
+type XSD.Boolean BooleanElement
+with {
+variant "name as uncapitalized";
+variant "element";
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+};
+
+
+type XSD.Boolean BooleanSimple;
+//with {
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+//};
+
+
+type union Union_with_boolean
+{
+	XSD.String alt_,
+	XSD.Boolean alt_1,
+	XSD.Integer alt_2
+}
+with {
+variant "name as uncapitalized";
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+//variant (alt_1) "text 'true' as '1'";
+//variant (alt_1) "text 'false' as '0'";
+variant (alt_2) "name as ''";
+};
+
+
+type record Seq_with_boolean
+{
+	XSD.Boolean stupid optional,
+	XSD.String titleElemBase,
+	XSD.String forenameElemBase,
+	XSD.Boolean smart
+}
+with {
+variant "name as uncapitalized";
+variant (stupid) "attribute";
+//variant (stupid) "text 'true' as '1'";
+//variant (stupid) "text 'false' as '0'";
+//variant (smart) "text 'true' as '1'";
+//variant (smart) "text 'false' as '0'";
+};
+
+
+type record E15b
+{
+	record of XSD.Boolean foo_list,
+	XSD.Float bar
+}
+with {
+variant "name as uncapitalized";
+variant (foo_list) "untagged";
+variant (foo_list[-]) "name as 'foo'";
+//variant (foo_list[-]) "text 'true' as '1'";
+//variant (foo_list[-]) "text 'false' as '0'";
+};
+
+
+type record E15b_2
+{
+	XSD.Boolean foo,
+	XSD.Float bar
+};
+//with {
+//variant (foo) "text 'true' as '1'";
+//variant (foo) "text 'false' as '0'";
+//};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/boolean/variant/commented'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_comment_placement_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_comment_placement_e.ttcn
new file mode 100644
index 000000000..ba8b83766
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_comment_placement_e.ttcn
@@ -0,0 +1,95 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_comment_placement_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  6 13:44:05 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- comment_placement.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/comment/placement/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_comment_placement {
+
+
+import from XSD all;
+
+
+/* SomeCommentyyy */
+type union E21unnamed
+{
+	/* SomeCommentyyy */
+	XSD.String alt_,
+	/* SomeCommentss */
+	XSD.Float alt_1,
+	XSD.Integer alt_2
+}
+with {
+variant "name as uncapitalized";
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+variant (alt_2) "name as ''";
+};
+
+
+/* SomeCommentss */
+type record E39
+{
+	union {
+		/* SomeCommentss */
+		XSD.String foo,
+		/* SomeCommentss */
+		XSD.String bar
+	} choice,
+	/* SomeCommentss */
+	XSD.String ding
+}
+with {
+variant "name as uncapitalized";
+variant (choice) "untagged";
+};
+
+
+/* SomeComment */
+/* SomeComment2 */
+
+
+/* SomeComment */
+type XSD.Integer Int
+with {
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/comment/placement'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_complex_nillable_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_complex_nillable_e.ttcn
new file mode 100644
index 000000000..23f6f94eb
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_complex_nillable_e.ttcn
@@ -0,0 +1,146 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_complex_nillable.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  1 13:47:14 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- complex_nillable.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/complex/nillable/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_complex_nillable_e {
+
+
+import from XSD all;
+
+
+/* media is a multiple value parameter */
+type record Conditions_type
+{
+	record {
+		record {
+			/* no nilling at the level of identity - use nilling on fcd-caller-identity to remove */
+			union {
+				XSD.String anonymous,
+				XSD.String identity
+			} choice
+		} content optional
+	} caller_identity optional,
+	record of record {
+		XSD.String content optional
+	} media_list,
+	record of record {
+		XSD.String content optional
+	} status_list,
+	record {
+		XSD.String content optional
+	} identity optional,
+	record of record {
+		XSD.String content optional
+	} request_list
+}
+with {
+variant "name as 'conditions-type'";
+variant (caller_identity) "name as 'caller-identity'";
+variant (caller_identity) "useNil";
+variant (caller_identity.content.choice) "untagged";
+variant (media_list) "untagged";
+variant (media_list[-]) "name as 'media'";
+variant (media_list[-]) "useNil";
+variant (status_list) "untagged";
+variant (status_list[-]) "name as 'status'";
+variant (status_list[-]) "useNil";
+variant (identity) "useNil";
+variant (request_list) "untagged";
+variant (request_list[-]) "name as 'request'";
+variant (request_list[-]) "useNil";
+};
+
+
+type record Anything_nil
+{
+	record {
+	} content optional
+}
+with {
+variant "name as 'anything-nil'";
+variant "useNil";
+variant "element";
+};
+
+
+type record Anything_nil2
+{
+	XSD.AnyType content optional
+}
+with {
+variant "name as 'anything-nil2'";
+variant "useNil";
+variant "element";
+};
+
+
+type record Common
+{
+	record length(0 .. 5) of record {
+		XSD.Integer bar optional,
+		XSD.String foo length(7) optional,
+		XSD.Integer goo optional,
+		record of XSD.String attr optional,
+		record {
+			record {
+				XSD.String content optional
+			} forename,
+			record {
+				XSD.String content optional
+			} surname,
+			XSD.String livingAddress
+		} content optional
+	} integration_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (integration_list) "untagged";
+variant (integration_list[-]) "name as 'integration'";
+variant (integration_list[-]) "useNil";
+variant (integration_list[-].bar) "attribute";
+variant (integration_list[-].foo) "attribute";
+variant (integration_list[-].goo) "attribute";
+variant (integration_list[-].attr) "anyAttributes from 'www.example.org/complex/nillable'";
+variant (integration_list[-].content.forename) "useNil";
+variant (integration_list[-].content.surname) "useNil";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/complex/nillable'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_decimal_fractiondigits_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_decimal_fractiondigits_e.ttcn
new file mode 100644
index 000000000..6e69091db
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_decimal_fractiondigits_e.ttcn
@@ -0,0 +1,69 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_decimal_fractiondigits_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Jul  3 10:21:10 2011
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- decimal_fractiondigits.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/decimal/fractiondigits/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_decimal_fractiondigits {
+
+
+import from XSD all;
+
+
+type XSD.Decimal CelsiusBodyTemp (-9999.0 .. 9999.0)
+with {
+variant "name as uncapitalized";
+};
+
+
+type union Union_with_fraction
+{
+	XSD.Decimal alt_ (-9999.0 .. 9999.0),
+	XSD.Float alt_1,
+	XSD.Integer alt_2
+}
+with {
+variant "name as uncapitalized";
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+variant (alt_2) "name as ''";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/decimal/fractiondigits'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_dont_generate_element_substitution_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_dont_generate_element_substitution_e.ttcn
new file mode 100644
index 000000000..aa818f4f1
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_dont_generate_element_substitution_e.ttcn
@@ -0,0 +1,98 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_dont_generate_element_substitution_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Oct 19 09:38:13 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- dont_generate_element_substitution_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/dont/generate/element/substitution/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_dont_generate_element_substitution {
+
+
+import from XSD all;
+
+
+type XSD.String Head
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record ComplexEnum
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (base) "untagged";
+};
+
+
+type record Member2
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String unitOfAge optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (unitOfAge) "attribute";
+variant (base) "untagged";
+};
+
+
+type record Ize
+{
+	record of Head head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/dont/generate/element/substitution' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enum_field_names_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enum_field_names_e.ttcn
new file mode 100644
index 000000000..ae46f3797
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enum_field_names_e.ttcn
@@ -0,0 +1,61 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_enum_field_names_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Tue Jun 16 10:26:12 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- enum_field_names.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/enum/field/names/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_enum_field_names {
+
+
+import from XSD all;
+
+
+type enumerated State
+{
+	off,
+	off_1,
+	on_
+}
+with {
+variant "text 'off' as capitalized";
+variant "text 'off_1' as 'off'";
+variant "text 'on_' as 'on'";
+variant "name as uncapitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/enum/field/names'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_remove_dup_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_remove_dup_e.ttcn
new file mode 100644
index 000000000..849806af6
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_remove_dup_e.ttcn
@@ -0,0 +1,123 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_enumeration_remove_dup_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Sep 10 10:11:22 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- enumeration_remove_dup.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/enumeration/remove/dup" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_enumeration_remove_dup_e {
+
+
+import from XSD all;
+
+
+type enumerated State
+{
+	i,
+	off,
+	onn,
+	x0,
+	x1,
+	x2,
+	x3,
+	x7
+}
+with {
+variant "text 'x0' as '0'";
+variant "text 'x1' as '1'";
+variant "text 'x2' as '2'";
+variant "text 'x3' as '3'";
+variant "text 'x7' as '7'";
+variant "name as uncapitalized";
+};
+
+
+type enumerated State2
+{
+	int0(0),
+	int1(1),
+	int2(2),
+	int3(3),
+	int7(7)
+}
+with {
+variant "useNumber";
+variant "name as uncapitalized";
+};
+
+
+type enumerated State3
+{
+	int7(7)
+}
+with {
+variant "useNumber";
+variant "name as uncapitalized";
+};
+
+
+type enumerated State4
+{
+	int7(7)
+}
+with {
+variant "useNumber";
+variant "name as uncapitalized";
+};
+
+
+type record State5
+{
+	enumerated {
+		unknown,
+		controlpart,
+		testcase_,
+		altstep_,
+		function_,
+		external_function,
+		template_
+	} ent_type
+}
+with {
+variant "name as uncapitalized";
+variant (ent_type) "text 'altstep_' as 'altstep'";
+variant (ent_type) "text 'function_' as 'function'";
+variant (ent_type) "text 'template_' as 'template'";
+variant (ent_type) "text 'testcase_' as 'testcase'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/enumeration/remove/dup'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_restriction_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_restriction_e.ttcn
new file mode 100644
index 000000000..5a9352094
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_enumeration_restriction_e.ttcn
@@ -0,0 +1,157 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_enumeration_restriction_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Jun 29 12:26:00 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- enumeration_restriction.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/enumeration/restriction/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_enumeration_restriction {
+
+
+import from XSD all;
+
+
+type union E21unnamed
+{
+	XSD.Integer alt_,
+	XSD.Float alt_1,
+	XSD.String alt_2
+}
+with {
+variant "name as uncapitalized";
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+variant (alt_2) "name as ''";
+};
+
+
+type E21unnamed E22 (
+	{alt_1:=20.400000},
+	{alt_2:="small"},
+	{alt_:=50}
+)
+with {
+variant "name as uncapitalized";
+};
+
+
+type union String_int
+{
+	XSD.String alt_,
+	XSD.Integer alt_1
+}
+with {
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+};
+
+
+type String_int Everything_is_string (
+	{alt_:="20.4"},
+	{alt_:="50"},
+	{alt_:="small"}
+);
+
+
+type union Mixed_Types
+{
+	XSD.GDay alt_,
+	XSD.GYear alt_1,
+	XSD.GMonth alt_2,
+	XSD.Float alt_3,
+	XSD.Date alt_4,
+	XSD.Time alt_5,
+	XSD.DateTime alt_6,
+	XSD.GMonthDay alt_7,
+	XSD.Duration alt_8,
+	XSD.GYearMonth alt_9,
+	XSD.String alt_10
+}
+with {
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+variant (alt_2) "name as ''";
+variant (alt_3) "name as ''";
+variant (alt_4) "name as ''";
+variant (alt_5) "name as ''";
+variant (alt_6) "name as ''";
+variant (alt_7) "name as ''";
+variant (alt_8) "name as ''";
+variant (alt_9) "name as ''";
+variant (alt_10) "name as ''";
+};
+
+
+type Mixed_Types Mixed_Enum (
+	{alt_10:="small"},
+	{alt_10:="somestring"},
+	{alt_1:="0085"},
+	{alt_2:="--05"},
+	{alt_3:=20.400000},
+	{alt_3:=3.140000},
+	{alt_4:="2014-01-01"},
+	{alt_5:="05:05:00"},
+	{alt_6:="2013-11-23T17:45:56"},
+	{alt_7:="--01-03"},
+	{alt_8:="P5Y2M10DT15H"},
+	{alt_9:="1999-08"},
+	{alt_:="---30"}
+);
+
+
+type union Only_int
+{
+	XSD.Integer alt_
+}
+with {
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+};
+
+
+type Only_int Ints (
+	{alt_:=14}
+);
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/enumeration/restriction' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn
new file mode 100644
index 000000000..b42e50ff8
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn
@@ -0,0 +1,161 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R1A                       
+*
+* 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_fixed_value_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Sep  7 12:19:26 2011
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- a.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/fixed/value" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_fixed_value {
+
+
+import from XSD all;
+
+
+type XSD.String StringType ("a")
+with {
+variant "defaultForEmpty as 'a'";
+variant "element";
+};
+
+
+type XSD.Integer IntegerType (7)
+with {
+variant "defaultForEmpty as '7'";
+variant "element";
+};
+
+
+type XSD.Float FloatType (7.0)
+with {
+variant "defaultForEmpty as '7.0'";
+variant "element";
+};
+
+
+type XSD.Double DoubleType (7.0)
+with {
+variant "defaultForEmpty as '7.0'";
+variant "element";
+};
+
+
+type XSD.Boolean BooleanType (true)
+with {
+variant "defaultForEmpty as 'true'";
+variant "element";
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+};
+
+
+type XSD.Boolean BooleanType2 (false)
+with {
+variant "defaultForEmpty as '0'";
+variant "element";
+//variant "text 'true' as '1'";
+//variant "text 'false' as '0'";
+};
+
+
+type XSD.Date DateType ("2011-11-11")
+with {
+variant "defaultForEmpty as '2011-11-11'";
+variant "element";
+};
+
+
+type XSD.Time TimeType ("11:11:11")
+with {
+variant "defaultForEmpty as '11:11:11'";
+variant "element";
+};
+
+
+type XSD.DateTime DateTimeType ("2002-05-30T09:00:00")
+with {
+variant "defaultForEmpty as '2002-05-30T09:00:00'";
+variant "element";
+};
+
+
+type XSD.GDay DayType ("---13")
+with {
+variant "defaultForEmpty as '---13'";
+variant "element";
+};
+
+
+type XSD.GMonth MonthType ("--11")
+with {
+variant "defaultForEmpty as '--11'";
+variant "element";
+};
+
+
+type XSD.GMonthDay MonthDayType ("--11-30")
+with {
+variant "defaultForEmpty as '--11-30'";
+variant "element";
+};
+
+
+type XSD.GYear YearType ("1999")
+with {
+variant "defaultForEmpty as '1999'";
+variant "element";
+};
+
+
+type XSD.GYearMonth YearMonthType ("1999-11")
+with {
+variant "defaultForEmpty as '1999-11'";
+variant "element";
+};
+
+
+type XSD.HexBinary HexType
+with {
+variant "element";
+};
+
+
+type XSD.Base64Binary Base64Type
+with {
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/fixed/value'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_generate_element_substitution_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_generate_element_substitution_e.ttcn
new file mode 100644
index 000000000..7903decab
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_generate_element_substitution_e.ttcn
@@ -0,0 +1,102 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_generate_element_substitution_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Oct 19 09:34:07 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- generate_element_substitution_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/generate/element/substitution/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_generate_element_substitution {
+
+
+import from XSD all;
+
+
+type record ComplexEnum
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (base) "untagged";
+};
+
+
+type record Member2
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String unitOfAge optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (unitOfAge) "attribute";
+variant (base) "untagged";
+};
+
+
+type record Ize
+{
+	record of Head_group head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+type union Head_group
+{
+	XSD.String head,
+	Member2 member2
+}
+with {
+variant "untagged";
+//variant (member2) "block";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/generate/element/substitution' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_id_attrib_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_id_attrib_e.ttcn
new file mode 100644
index 000000000..85b24ca27
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_id_attrib_e.ttcn
@@ -0,0 +1,50 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_id_attrib_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fri Jul  1 10:13:03 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- id_attrib.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/id_attrib/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_id_attrib {
+
+
+import from XSD all;
+
+
+type XSD.Float TypeName;
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/id_attrib'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_import_prefix_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_import_prefix_e.ttcn
new file mode 100644
index 000000000..f7d2cb7e0
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_import_prefix_e.ttcn
@@ -0,0 +1,81 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_import_prefix_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Jul  2 12:23:27 2001
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- import_prefix_name.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/import/prefix/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_import_prefix {
+
+
+import from XSD all;
+
+
+import from www_example_org_imported all;
+
+
+type www_example_org_imported.Foobar Foobar
+with {
+variant "element";
+};
+
+
+type www_example_org_imported.Ding Ding
+with {
+variant "attribute";
+};
+
+
+type record Valami_1
+{
+	Ding ding optional,
+	Foobar foobar
+}
+with {
+variant "name as 'valami'";
+variant (ding) "name as capitalized";
+variant (ding) "attribute";
+variant (foobar) "name as capitalized";
+};
+
+
+type Valami_1 Valami
+with {
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/import/prefix' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported2_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported2_e.ttcn
new file mode 100644
index 000000000..5d41f8cc1
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported2_e.ttcn
@@ -0,0 +1,69 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_imported2_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Tue Sep 15 11:21:37 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- imported2.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/imported2_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_imported2 {
+
+
+import from XSD all;
+
+
+type XSD.Integer Foobar
+with {
+variant "name as uncapitalized";
+};
+
+
+type XSD.Integer Ding
+with {
+variant "name as uncapitalized";
+};
+
+
+type record Bar
+{
+	XSD.String something optional
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/imported2'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported_e.ttcn
new file mode 100644
index 000000000..a56b2f5f2
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_imported_e.ttcn
@@ -0,0 +1,59 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R3A                       
+*
+* 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_imported.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Jul  1 12:23:29 2000
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- imported_prefix_name.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/imported" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_imported {
+
+
+import from XSD all;
+
+
+type XSD.Integer Foobar
+with {
+variant "name as uncapitalized";
+};
+
+
+type XSD.Integer Ding
+with {
+variant "name as uncapitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/imported'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_list_simpletype_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_list_simpletype_e.ttcn
new file mode 100644
index 000000000..331666bb5
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_list_simpletype_e.ttcn
@@ -0,0 +1,117 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_list_simpletype_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 21 12:34:20 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- list_simpletype.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/list/simpletype/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_list_simpletype {
+
+
+import from XSD all;
+
+
+type record of enumerated
+{
+	orange,
+	red
+} SimpleListEnumeration
+with {
+variant ([-]) "text 'orange' as capitalized";
+variant ([-]) "text 'red' as capitalized";
+variant "list";
+variant "element";
+};
+
+
+type record of union
+{
+	XSD.Boolean alt_,
+	XSD.Float alt_1
+} SimpleListUnion
+with {
+variant "list";
+variant "element";
+variant ([-]) "useUnion";
+variant ([-].alt_) "name as ''";
+//variant ([-].alt_) "text 'true' as '1'";
+//variant ([-].alt_) "text 'false' as '0'";
+variant ([-].alt_1) "name as ''";
+};
+
+
+type record of enumerated
+{
+	int_5(-5),
+	int0(0),
+	int5(5),
+	int10(10)
+} SimpleListEnumerationNumber
+with {
+variant ([-]) "useNumber";
+variant "list";
+variant "element";
+};
+
+
+type record ComplexListUnionEnumeration
+{
+	record of enumerated {
+		red,
+		orange
+	} listEnumeration,
+	record of union {
+		XSD.Boolean alt_,
+		XSD.Float alt_1
+	} listUnion
+}
+with {
+variant "element";
+variant (listEnumeration) "name as capitalized";
+variant (listEnumeration) "list";
+variant (listEnumeration[-]) "text 'orange' as capitalized";
+variant (listEnumeration[-]) "text 'red' as capitalized";
+variant (listUnion) "name as capitalized";
+variant (listUnion[-]) "useUnion";
+variant (listUnion) "list";
+variant (listUnion[-].alt_) "name as ''";
+//variant (listUnion[-].alt_) "text 'true' as '1'";
+//variant (listUnion[-].alt_) "text 'false' as '0'";
+variant (listUnion[-].alt_1) "name as ''";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/list/simpletype' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_long_extension_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_long_extension_e.ttcn
new file mode 100644
index 000000000..22c27242d
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_long_extension_e.ttcn
@@ -0,0 +1,149 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_long_extension_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Sep 11 10:05:17 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- long_extension.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/long/extension_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_long_extension {
+
+
+import from XSD all;
+
+
+type record Top
+{
+	XSD.String subAttrib,
+	XSD.String xsdstring,
+	XSD.String label_,
+	XSD.String author,
+	record of record {
+		XSD.String name,
+		XSD.String label_,
+		record of XSD.String parameter_list
+	} action_list,
+	record of record {
+		XSD.Name name,
+		XSD.String item optional,
+		XSD.String description
+	} event_list,
+	record of XSD.String subelem_list
+}
+with {
+variant "element";
+variant (subAttrib) "name as capitalized";
+variant (subAttrib) "attribute";
+variant (xsdstring) "name as 'xsd:string'";
+variant (xsdstring) "attribute";
+variant (label_) "name as 'label'";
+variant (action_list) "untagged";
+variant (action_list[-]) "name as 'action'";
+variant (action_list[-].name) "attribute";
+variant (action_list[-].label_) "name as 'label'";
+variant (action_list[-].parameter_list) "untagged";
+variant (action_list[-].parameter_list[-]) "name as 'parameter'";
+variant (event_list) "untagged";
+variant (event_list[-]) "name as 'event'";
+variant (event_list[-].name) "attribute";
+variant (subelem_list) "untagged";
+variant (subelem_list[-]) "name as 'Subelem'";
+};
+
+
+type record TopBase1
+{
+	XSD.String xsdstring,
+	XSD.String label_,
+	XSD.String author,
+	record of record {
+		XSD.String name,
+		XSD.String label_,
+		record of XSD.String parameter_list
+	} action_list,
+	record of record {
+		XSD.Name name,
+		XSD.String item optional,
+		XSD.String description
+	} event_list
+}
+with {
+variant (xsdstring) "name as 'xsd:string'";
+variant (xsdstring) "attribute";
+variant (label_) "name as 'label'";
+variant (action_list) "untagged";
+variant (action_list[-]) "name as 'action'";
+variant (action_list[-].name) "attribute";
+variant (action_list[-].label_) "name as 'label'";
+variant (action_list[-].parameter_list) "untagged";
+variant (action_list[-].parameter_list[-]) "name as 'parameter'";
+variant (event_list) "untagged";
+variant (event_list[-]) "name as 'event'";
+variant (event_list[-].name) "attribute";
+};
+
+
+type record NamedBaseElement
+{
+	XSD.String name,
+	XSD.String label_
+}
+with {
+variant "name as uncapitalized";
+variant (name) "attribute";
+variant (label_) "name as 'label'";
+};
+
+
+type record BaseElement
+{
+	XSD.String label_
+}
+with {
+variant "name as uncapitalized";
+variant (label_) "name as 'label'";
+};
+
+
+type record Response
+{
+	XSD.String item optional
+}
+with {
+variant "name as uncapitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/long/extension' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_name_conv_http_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_name_conv_http_e.ttcn
new file mode 100644
index 000000000..e6bf57780
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_name_conv_http_e.ttcn
@@ -0,0 +1,47 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_name_conv_http_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Fr Jun 11 11:11:11 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- name_conv_with_z.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/name_conv/http:///e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_name_conv_http {
+
+
+import from XSD all;
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/name_conv/http://'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_namespaceas_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_namespaceas_e.ttcn
new file mode 100644
index 000000000..020d90c33
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_namespaceas_e.ttcn
@@ -0,0 +1,92 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_namespaceas.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Tue Sep 15 11:21:37 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- namespaceas.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/namespaceas_e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_namespaceas_e {
+
+
+import from XSD all;
+
+
+import from www_example_org_imported2 all;
+
+
+type Foobar SomeType
+with {
+variant "element";
+};
+
+
+type record Type
+{
+	Foobar something optional,
+	Foobar foobar
+}
+with {
+variant "element";
+variant (foobar) "namespace as 'www.example.org/imported2' prefix 'other'";
+};
+
+
+type record OtherType
+{
+	XSD.Integer billingAccountNumber,
+	record {
+		Foobar base
+	} something,
+	record {
+		Bar base
+	} something2,
+	record {
+		XSD.String something optional
+	} something3,
+	record {
+		XSD.String something
+	} something4
+}
+with {
+variant (billingAccountNumber) "namespace as 'www.example.org/imported2' prefix 'other'";
+variant (something.base) "namespace as 'www.example.org/imported2' prefix 'other'";
+variant (something.base) "untagged";
+variant (something2.base) "namespace as 'www.example.org/imported2' prefix 'other'";
+variant (something2.base) "untagged";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/namespaceas' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_nillable_fixed_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_nillable_fixed_e.ttcn
new file mode 100644
index 000000000..e4f8c8094
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_nillable_fixed_e.ttcn
@@ -0,0 +1,102 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_nillable_fixed_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Sep 10 10:18:35 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- nillable_fixed.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/nillable/fixed" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_nillable_fixed_e {
+
+
+import from XSD all;
+
+
+type record RemarkNillable
+{
+	XSD.String content optional
+}
+with {
+variant "name as uncapitalized";
+variant "useNil";
+variant "element";
+};
+
+
+type record E16c
+{
+	XSD.Integer foo,
+	record {
+		XSD.String content optional
+	} bar
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "useNil";
+};
+
+
+type record SeqNillable
+{
+	XSD.Integer bar optional,
+	XSD.Integer foo (1) optional,
+	record {
+		record {
+			XSD.String content optional
+		} forename,
+		record {
+			XSD.String content optional
+		} surname optional,
+		record of record {
+			XSD.String content optional
+		} livingAddress_list
+	} content optional
+}
+with {
+variant "useNil";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "defaultForEmpty as '1'";
+variant (foo) "attribute";
+variant (content.forename) "useNil";
+variant (content.surname) "useNil";
+variant (content.livingAddress_list) "untagged";
+variant (content.livingAddress_list[-]) "name as 'livingAddress'";
+variant (content.livingAddress_list[-]) "useNil";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/nillable/fixed'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_no_ns_connector_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_no_ns_connector_e.ttcn
new file mode 100644
index 000000000..dd99f621e
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_no_ns_connector_e.ttcn
@@ -0,0 +1,68 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2014
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_no_ns_connector_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 28 13:24:23 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- no_ns_connector_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/no/ns/connector/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_no_ns_connector {
+
+
+import from XSD all;
+
+
+type Java_attribute_1 Java_attribute
+with {
+variant "name as 'java-attribute'";
+variant "element";
+};
+
+
+type record Java_attribute_1
+{
+	XSD.String java_attribute optional,
+	XSD.String xml_accessor_type optional
+}
+with {
+variant "name as 'java-attribute'";
+variant (java_attribute) "name as 'java-attribute'";
+variant (java_attribute) "attribute";
+variant (xml_accessor_type) "name as 'xml-accessor-type'";
+variant (xml_accessor_type) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/no/ns/connector'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_not_a_number_minex_inf_maxex_inf_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_not_a_number_minex_inf_maxex_inf_e.ttcn
new file mode 100644
index 000000000..e81d8adcf
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_not_a_number_minex_inf_maxex_inf_e.ttcn
@@ -0,0 +1,73 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_not_a_number_minex_inf_maxex_inf_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Tue Jul  6 13:41:30 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- not_a_number_minex_inf_maxex_-inf.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/not_a_number/minex_inf/maxex_-inf/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_not_a_number_minex_inf_maxex_inf {
+
+
+import from XSD all;
+
+
+type XSD.Float E9e ( not_a_number )
+with {
+variant "name as uncapitalized";
+};
+
+
+type XSD.Float E9e_2 ( not_a_number )
+with {
+variant "name as uncapitalized";
+};
+
+
+type union Union_maxeclusive_NaN
+{
+	XSD.String alt_,
+	XSD.Integer alt_1
+}
+with {
+variant "name as uncapitalized";
+variant "useUnion";
+variant "element";
+variant (alt_) "name as ''";
+variant (alt_1) "name as ''";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/not_a_number/minex_inf/maxex_-inf'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_qualified_element_attrib_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_qualified_element_attrib_e.ttcn
new file mode 100644
index 000000000..d07778add
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_qualified_element_attrib_e.ttcn
@@ -0,0 +1,78 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_qualified_element_attrib_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Aug 10 13:22:23 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- qualified_element_attrib.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/qualified/element/attrib/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_qualified_element_attrib {
+
+
+import from XSD all;
+
+
+type record Elements
+{
+	XSD.String elem1,
+	XSD.String elem2,
+	XSD.String elem3
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (elem3) "form as unqualified";
+};
+
+
+type record Attributes
+{
+	XSD.String attrib1 optional,
+	XSD.String attrib2 optional,
+	XSD.String attrib3 optional
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (attrib1) "attribute";
+variant (attrib2) "attribute";
+variant (attrib3) "form as unqualified";
+variant (attrib3) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/qualified/element/attrib' prefix 'ns22'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+variant "attributeFormQualified";
+variant "elementFormQualified";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_regex_square_brackets_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_regex_square_brackets_e.ttcn
new file mode 100644
index 000000000..1f6941eae
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_regex_square_brackets_e.ttcn
@@ -0,0 +1,65 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2015
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R3A                       
+*
+* 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_regex_square_brackets.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Jun 17 13:42:09 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- regex_square_brackets.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/regex/square/brackets" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_regex_square_brackets {
+
+
+import from XSD all;
+
+
+type XSD.String Pattern1 (pattern "}[\(@\)\{1,5\}\{\}|\\.\[\]]#(3,)")
+with {
+variant "name as uncapitalized";
+};
+
+
+type XSD.String Pattern2 (pattern "\{[?.a-zA-Z\(@\)\{1,3\},\[\]/\^\{\}]#(0,1)")
+with {
+variant "name as uncapitalized";
+};
+
+
+type XSD.String Pattern3 (pattern "(sip:(^[a-zA-Z0-9+\-_]*(!?*!)#(0,1)[\(@\)\{1\}a-zA-Z0-9.\-_])#(1,71))|tel:\+([\-.\(\)0-9]*(!?*!)#(0,1))#(4,71)")
+with {
+variant "name as uncapitalized";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/regex/square/brackets'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_self_recursion_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_self_recursion_e.ttcn
new file mode 100644
index 000000000..67156d298
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_self_recursion_e.ttcn
@@ -0,0 +1,66 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R1A                       
+*
+* 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_self_recursion_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Sep  6 11:11:31 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- complex_self_recursion.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/self/recursion" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_self_recursion_e {
+
+
+import from XSD all;
+
+
+type record X
+{
+	XSD.String attr2 optional,
+	XSD.String x,
+	record {
+		XSD.String attr1 optional,
+		XSD.String attr2 optional,
+		XSD.String x,
+		X.y y optional,
+		XSD.String z
+	} y optional
+}
+with {
+variant (attr2) "attribute";
+variant (y.attr1) "attribute";
+variant (y.attr2) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/self/recursion' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_enumeration_restriction_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_enumeration_restriction_e.ttcn
new file mode 100644
index 000000000..b8bcb3d43
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_enumeration_restriction_e.ttcn
@@ -0,0 +1,77 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_seq_enumeration_restriction_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  6 13:54:10 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- enumeration_restriction2.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/seq/enumeration/restriction/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_seq_enumeration_restriction {
+
+
+import from XSD all;
+
+
+type record MatchingProblemType
+{
+	/* Must be "any port"! */
+	enumerated {
+		receive_,
+		trigger_,
+		getcall_,
+		getreply_,
+		catch_,
+		check_
+	} operation
+}
+with {
+variant (operation) "text 'catch_' as 'catch'";
+variant (operation) "text 'check_' as 'check'";
+variant (operation) "text 'getcall_' as 'getcall'";
+variant (operation) "text 'getreply_' as 'getreply'";
+variant (operation) "text 'receive_' as 'receive'";
+variant (operation) "text 'trigger_' as 'trigger'";
+};
+
+
+type record MatchingProblemTypeRestricted
+{
+	enumerated {
+		red
+	} operation
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/seq/enumeration/restriction' prefix 'ns2'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_group_reference_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_group_reference_e.ttcn
new file mode 100644
index 000000000..b233a711b
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_seq_group_reference_e.ttcn
@@ -0,0 +1,81 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_seq_group_reference_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  6 13:56:12 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- seq_group_reference.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/seq/group/reference/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_seq_group_reference {
+
+
+import from XSD all;
+
+
+type record E15f
+{
+	XSD.String foobarGroup,
+	XSD.String foo,
+	XSD.String bar
+}
+with {
+variant "name as uncapitalized";
+};
+
+
+type record E15fa
+{
+	record of XSD.String foobarGroup_list,
+	record length(5 .. 10) of FoobarGroup foobarGroup_list_1
+}
+with {
+variant "name as uncapitalized";
+variant (foobarGroup_list) "untagged";
+variant (foobarGroup_list[-]) "name as 'foobarGroup'";
+variant (foobarGroup_list_1) "untagged";
+};
+
+
+type record FoobarGroup
+{
+	XSD.String foo,
+	XSD.String bar
+}
+with {
+variant "untagged";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/seq/group/reference' prefix 'ns9'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_base_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_base_e.ttcn
new file mode 100644
index 000000000..ba3a5b76d
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_base_e.ttcn
@@ -0,0 +1,58 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_simpletype_base_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct 29 13:33:40 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- simpletype_base_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/simpletype/base/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_simpletype_base {
+
+
+import from XSD all;
+
+
+type record SimpleTypebase
+{
+	enumerated {
+		unknown
+	} base
+}
+with {
+variant (base) "untagged";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/simpletype/base' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_ref_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_ref_e.ttcn
new file mode 100644
index 000000000..ba5af2ae7
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_ref_e.ttcn
@@ -0,0 +1,86 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_simpletype_ref_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Sep 10 13:13:32 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- simpletype_ref.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/simpletype/ref" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_simpletype_ref_e {
+
+
+import from XSD all;
+
+
+type record SomeType
+{
+	XSD.String something
+}
+with {
+variant "element";
+};
+
+
+type record Type
+{
+	XSD.String something optional
+}
+with {
+variant "element";
+};
+
+
+type record OtherType
+{
+	SomeType billingAccountNumber,
+	XSD.Long installmentPlanId (-99999 .. 99999),
+	XSD.String info length(0 .. 30) optional
+};
+
+
+type record of XSD.String Start_list
+with {
+variant "name as uncapitalized";
+variant "list";
+};
+
+
+type Start_list List_ref length(4);
+
+
+type XSD.String Info;
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/simpletype/ref' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_restrict_comp_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_restrict_comp_e.ttcn
new file mode 100644
index 000000000..5972c3f35
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_simpletype_restrict_comp_e.ttcn
@@ -0,0 +1,70 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_simpletype_restrict_comp_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  6 13:59:08 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- simpletype_restrict_comp.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/simpletype/restrict/comp/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_simpletype_restrict_comp {
+
+
+import from XSD all;
+
+
+/* Home Location Register Id */
+type XSD.String HlrIdInfo length(10 .. infinity);
+
+
+type record Restricted
+{
+	/* HLR Id */
+	XSD.String hlrId length(10 .. 30) optional
+};
+
+
+/* Static IP Address */
+type IpV6AddressInfo IpV6Address
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* IP V6 Address */
+type XSD.String IpV6AddressInfo (pattern "[0-9A-Fa-f]#(1,4)(:[0-9A-Fa-f]#(0,4))#(7)");
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/simpletype/restrict/comp' prefix 'ns10'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_1_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_1_e.ttcn
new file mode 100644
index 000000000..550b52498
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_1_e.ttcn
@@ -0,0 +1,134 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_abstract_block_1_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 14 16:26:23 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_abstract_block_1_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/abstract/block/1/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup_abstract_block_1 {
+
+
+import from XSD all;
+
+
+/* THE HEAD ELEMENT */
+
+
+/* SUBSTITUTION ELEMENT OF THE SAME TYPE AS THE HEAD */
+
+
+type XSD.String Member1
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* SUBSTITUTION ELEMENT OF A TYPE RESTRICTING THE TYPE OF THE HEAD */
+
+
+type enumerated StringEnum
+{
+	else_,
+	something
+}
+with {
+variant "text 'else_' as 'else'";
+variant "name as uncapitalized";
+};
+
+
+type StringEnum Member2
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* SUBSTITUTION ELEMENT OF A TYPE EXTENDING THE TYPE OF THE HEAD */
+
+
+type record ComplexEnum
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (base) "untagged";
+};
+
+
+type ComplexEnum Member3
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* TOP LEVEL ELEMENT TO DEMONSTRATE SUBSTITUTION */
+
+
+type record Ize
+{
+	record of Head_group head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+type union Head_group
+{
+	XSD.String head,
+	Member1 member1,
+	Member2 member2,
+	Member3 member3
+}
+with {
+variant "untagged";
+//variant (head) "abstract";
+//variant (member2) "block";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup/abstract/block/1' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_2_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_2_e.ttcn
new file mode 100644
index 000000000..f1bc2b894
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_2_e.ttcn
@@ -0,0 +1,134 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_abstract_block_2_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 14 16:59:26 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_abstract_block_2_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/abstract/block/2/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup_abstract_block_2 {
+
+
+import from XSD all;
+
+
+/* THE HEAD ELEMENT */
+
+
+/* SUBSTITUTION ELEMENT OF THE SAME TYPE AS THE HEAD */
+
+
+type XSD.String Member1
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* SUBSTITUTION ELEMENT OF A TYPE RESTRICTING THE TYPE OF THE HEAD */
+
+
+type enumerated StringEnum
+{
+	else_,
+	something
+}
+with {
+variant "text 'else_' as 'else'";
+variant "name as uncapitalized";
+};
+
+
+type StringEnum Member2
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* SUBSTITUTION ELEMENT OF A TYPE EXTENDING THE TYPE OF THE HEAD */
+
+
+type record ComplexEnum
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (base) "untagged";
+};
+
+
+type ComplexEnum Member3
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* TOP LEVEL ELEMENT TO DEMONSTRATE SUBSTITUTION */
+
+
+type record Ize
+{
+	record of Head_group head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+type union Head_group
+{
+	XSD.String head,
+	Member1 member1,
+	Member2 member2,
+	Member3 member3
+}
+with {
+variant "untagged";
+//variant (head) "abstract";
+//variant (member3) "block";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup/abstract/block/2' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_complex_without_element_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_complex_without_element_e.ttcn
new file mode 100644
index 000000000..cd2a80540
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_complex_without_element_e.ttcn
@@ -0,0 +1,127 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_complex_without_element_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct 15 11:01:18 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_complex_without_element_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/complex/without/element/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup_complex_without_element {
+
+
+import from XSD all;
+
+
+type XSD.String Head_group
+with {
+variant "element";
+};
+
+
+type XSD.String Member
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type enumerated StringEnum
+{
+	else_,
+	something
+}
+with {
+variant "text 'else_' as 'else'";
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type E26seq Member2
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record E26seq
+{
+	XSD.String headAttrib optional,
+	XSD.String unitOfAge optional,
+	XSD.String something,
+	XSD.Integer ageElemExt
+}
+with {
+variant "name as uncapitalized";
+variant (headAttrib) "attribute";
+variant (unitOfAge) "attribute";
+variant (something) "name as capitalized";
+};
+
+
+type record Ize
+{
+	record of Head_group_1 head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+type union Head_group_1
+{
+	record {
+		XSD.String headAttrib optional,
+		XSD.String something
+	} head,
+	Member member,
+	Member2 member2,
+	StringEnum stringEnum
+}
+with {
+variant "untagged";
+//variant (head) "abstract";
+variant (head.headAttrib) "attribute";
+variant (head.something) "name as capitalized";
+//variant (member) "block";
+//variant (member2) "block";
+//variant (stringEnum) "block";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup/complex/without/element' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_e.ttcn
new file mode 100644
index 000000000..d5d02bde7
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_e.ttcn
@@ -0,0 +1,132 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Wed Oct 14 16:10:14 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup {
+
+
+import from XSD all;
+
+
+/* THE HEAD ELEMENT */
+
+
+/* SUBSTITUTION ELEMENT OF THE SAME TYPE AS THE HEAD */
+
+
+type XSD.String Member1
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* SUBSTITUTION ELEMENT OF A TYPE RESTRICTING THE TYPE OF THE HEAD */
+
+
+type enumerated StringEnum
+{
+	else_,
+	something
+}
+with {
+variant "text 'else_' as 'else'";
+variant "name as uncapitalized";
+};
+
+
+type StringEnum Member2
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* SUBSTITUTION ELEMENT OF A TYPE EXTENDING THE TYPE OF THE HEAD */
+
+
+type record ComplexEnum
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (base) "untagged";
+};
+
+
+type ComplexEnum Member3
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+/* TOP LEVEL ELEMENT TO DEMONSTRATE SUBSTITUTION */
+
+
+type record Ize
+{
+	record of Head_group head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+type union Head_group
+{
+	XSD.String head,
+	Member1 member1,
+	Member2 member2,
+	Member3 member3
+}
+with {
+variant "untagged";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_long_extension_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_long_extension_e.ttcn
new file mode 100644
index 000000000..eabb9184e
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_long_extension_e.ttcn
@@ -0,0 +1,152 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_long_extension_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct 15 13:37:32 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_long_extension_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/long/extension/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup_long_extension {
+
+
+import from XSD all;
+
+
+type XSD.String Member
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type enumerated StringEnum
+{
+	else_,
+	something
+}
+with {
+variant "text 'else_' as 'else'";
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record ComplexEnum
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (base) "untagged";
+};
+
+
+type E27seq Member3
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record E27seq
+{
+	XSD.String extAttrib optional,
+	Member2 base
+}
+with {
+variant "name as uncapitalized";
+variant (extAttrib) "attribute";
+variant (base) "untagged";
+};
+
+
+type E26seq Member2
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record E26seq
+{
+	XSD.Integer bar optional,
+	XSD.Float foo optional,
+	XSD.String unitOfAge optional,
+	XSD.String base
+}
+with {
+variant "name as uncapitalized";
+variant (bar) "attribute";
+variant (foo) "attribute";
+variant (unitOfAge) "attribute";
+variant (base) "untagged";
+};
+
+
+type record Ize
+{
+	record of Head_group head_list
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (head_list) "untagged";
+variant (head_list[-]) "name as 'head'";
+};
+
+
+type union Head_group
+{
+	XSD.String head,
+	ComplexEnum complexEnum,
+	Member member,
+	Member2 member2,
+	Member3 member3,
+	StringEnum stringEnum
+}
+with {
+variant "untagged";
+//variant (complexEnum) "block";
+//variant (member2) "block";
+//variant (member3) "block";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup/long/extension' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_main_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_main_e.ttcn
new file mode 100644
index 000000000..ad5eb2106
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_main_e.ttcn
@@ -0,0 +1,78 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_main_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct 29 10:58:19 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_main_e.xsd
+//			/* xml version = "1.0" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/main/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup_main {
+
+
+import from XSD all;
+
+
+import from www_example_org_substitutiongroup_ref all;
+
+
+type Subsgroup_group Refgroup
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record ComplexGroup
+{
+	Subsgroup_group subsgroup
+}
+with {
+variant "name as uncapitalized";
+};
+
+
+type union Subsgroup_group
+{
+	XSD.String subsgroup,
+	Replace replace_
+}
+with {
+variant "untagged";
+//variant (subsgroup) "abstract";
+variant (replace_) "name as 'replace'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup/main' prefix 'A'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_ref_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_ref_e.ttcn
new file mode 100644
index 000000000..67a1587d3
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_substitutiongroup_ref_e.ttcn
@@ -0,0 +1,57 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R2A                       
+*
+* 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_substitutiongroup_ref_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Oct 29 10:58:19 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- substitutiongroup_ref_e.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/substitutiongroup/ref/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_substitutiongroup_ref {
+
+
+import from XSD all;
+
+
+import from www_example_org_substitutiongroup_main all;
+
+
+type XSD.String Replace
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/substitutiongroup/ref' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_attributegroup_nillable_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_attributegroup_nillable_e.ttcn
new file mode 100644
index 000000000..ca344ceff
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_attributegroup_nillable_e.ttcn
@@ -0,0 +1,94 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_type_attributegroup_nillable_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  6 13:38:06 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- attributegroup_nillable.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/type/attributegroup/nillable/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_type_attributegroup_nillable {
+
+
+import from XSD all;
+
+
+type record Remark
+{
+	XSD.String content optional
+}
+with {
+variant "name as uncapitalized";
+variant "useNil";
+variant "element";
+};
+
+
+type record SeqNillable
+{
+	XSD.Integer bar optional,
+	XSD.String birthDateAttrGroup optional,
+	XSD.String birthPlaceAttrGroup optional,
+	XSD.Integer foo optional,
+	record of XSD.String attr optional,
+	record {
+		record {
+			XSD.String content optional
+		} forename,
+		record {
+			XSD.String content optional
+		} surname optional,
+		record of record {
+			XSD.String content optional
+		} livingAddress_list,
+		Remark remark
+	} content optional
+}
+with {
+variant "useNil";
+variant "element";
+variant (bar) "attribute";
+variant (birthDateAttrGroup) "attribute";
+variant (birthPlaceAttrGroup) "attribute";
+variant (foo) "attribute";
+variant (attr) "anyAttributes from 'www.example.org/type/attributegroup/nillable'";
+variant (content.forename) "useNil";
+variant (content.surname) "useNil";
+variant (content.livingAddress_list) "untagged";
+variant (content.livingAddress_list[-]) "name as 'livingAddress'";
+variant (content.livingAddress_list[-]) "useNil";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/type/attributegroup/nillable' prefix 'ns7'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_conversion_follow_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_conversion_follow_e.ttcn
new file mode 100644
index 000000000..099a091aa
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_type_conversion_follow_e.ttcn
@@ -0,0 +1,99 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R3A                       
+*
+* 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_type_conversion_follow_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  1 14:28:44 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- type_conversion_follow.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/type/conversion/follow/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_type_conversion_follow_e {
+
+
+import from XSD all;
+
+
+type record E45
+{
+	XSD.String birthDateAttrGroup optional,
+	E45_1 birthPlaceAttrGroup optional,
+	E45_1 sd optional,
+	E45_1 foo,
+	XSD.String bar
+}
+with {
+variant "name as uncapitalized";
+variant (birthDateAttrGroup) "attribute";
+variant (birthPlaceAttrGroup) "attribute";
+variant (sd) "attribute";
+};
+
+
+type record E45_1
+{
+	XSD.String attr optional
+}
+with {
+variant "name as 'e45_'";
+variant (attr) "attribute";
+};
+
+
+type record Ss_1
+{
+	E45_1 sss
+}
+with {
+variant "untagged";
+};
+
+
+type E45_1 Ss
+with {
+variant "name as uncapitalized";
+variant "element";
+};
+
+
+type record FoobarGroup
+{
+	E45_1 foo,
+	XSD.String bar
+}
+with {
+variant "untagged";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/type/conversion/follow' prefix 'ns11'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unnamed_union_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unnamed_union_e.ttcn
new file mode 100644
index 000000000..45d8a8dff
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unnamed_union_e.ttcn
@@ -0,0 +1,69 @@
+/*******************************************************************************
+* Copyright Ericsson Telecom AB 2015
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/5 R3A                       
+*
+* 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_unnamed_union.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Thu Aug  6 13:51:04 2015
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- element_in_all_mixed.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/unnamed/union" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_unnamed_union {
+
+
+import from XSD all;
+
+
+type record MyComplexElem_13
+{
+	record of XSD.String embed_values,
+	record of enumerated {
+		a,
+		b
+	} order,
+	XSD.String foo optional,
+	XSD.String a,
+	XSD.Boolean b
+}
+with {
+variant "name as 'MyComplexElem-13'";
+variant "useOrder";
+variant "embedValues";
+variant "element";
+variant (foo) "attribute";
+//variant (b) "text 'true' as '1'";
+//variant (b) "text 'false' as '0'";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/unnamed/union'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unqualified_element_attrib_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unqualified_element_attrib_e.ttcn
new file mode 100644
index 000000000..ce36efcf4
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_unqualified_element_attrib_e.ttcn
@@ -0,0 +1,76 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_unqualified_element_attrib_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Aug 10 13:23:26 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- unqualified_element_attrib.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/unqualified/element/attrib/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_unqualified_element_attrib {
+
+
+import from XSD all;
+
+
+type record Elements
+{
+	XSD.String elem1,
+	XSD.String elem2,
+	XSD.String elem3
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (elem2) "form as qualified";
+};
+
+
+type record Attributes
+{
+	XSD.String attrib1 optional,
+	XSD.String attrib2 optional,
+	XSD.String attrib3 optional
+}
+with {
+variant "name as uncapitalized";
+variant "element";
+variant (attrib1) "attribute";
+variant (attrib2) "form as qualified";
+variant (attrib2) "attribute";
+variant (attrib3) "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/unqualified/element/attrib' prefix 'ns23'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_xml_in_annotation_e.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_xml_in_annotation_e.ttcn
new file mode 100644
index 000000000..e74613dab
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/XmlTest_expectedTtcns/www_example_org_xml_in_annotation_e.ttcn
@@ -0,0 +1,63 @@
+/*******************************************************************************
+* Copyright (c) 2000-2015 Ericsson Telecom AB
+*
+* XSD to TTCN-3 Translator version: CRL 113 200/4 R3A                       
+*
+* 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_xml_in_annotation_e.ttcn
+//  Description:
+//  References:
+//  Rev:
+//  Prodnr:
+//  Updated:       Mon Oct  5 09:31:24 2014
+//  Contact:       http://ttcn.ericsson.se
+//
+////////////////////////////////////////////////////////////////////////////////
+//	Generated from file(s):
+//	- xml_in_annotation.xsd
+//			/* xml version = "1.0" encoding = "UTF-8" */
+//			/* targetnamespace = "www.example.org/xml/in/annotation/e" */
+////////////////////////////////////////////////////////////////////////////////
+//     Modification header(s):
+//-----------------------------------------------------------------------------
+//  Modified by:
+//  Modification date:
+//  Description:
+//  Modification contact:
+//------------------------------------------------------------------------------
+////////////////////////////////////////////////////////////////////////////////
+
+
+module www_example_org_xml_in_annotation_e {
+
+
+import from XSD all;
+
+
+/* comment */
+type XSD.String Tcname
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+/* some comment */
+type XSD.String Tcname2
+with {
+variant "name as uncapitalized";
+variant "attribute";
+};
+
+
+}
+with {
+encode "XML";
+variant "namespace as 'www.example.org/xml/in/annotation' prefix 'this'";
+variant "controlNamespace 'http://www.w3.org/2001/XMLSchema-instance' prefix 'xsi'";
+}
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Bulk.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Bulk.xsd
index 59e381b42..bc2683904 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Bulk.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Bulk.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="ISO-8859-1"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/GenericCai3gType.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/GenericCai3gType.xsd
index 633755257..6e92ce394 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/GenericCai3gType.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/GenericCai3gType.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Provisioning.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Provisioning.xsd
index 737b5918b..581369ec5 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Provisioning.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CAI3G/Provisioning.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CCAPI/CCAPI.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CCAPI/CCAPI.xsd
index 6f2e9bfcc..8c47a5fff 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CCAPI/CCAPI.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/CCAPI/CCAPI.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/avg.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/avg.xsd
index 05f5c2bfd..395ae0267 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/avg.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/avg.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/cai3g1.2_provisioning.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/cai3g1.2_provisioning.xsd
index b3af4b597..f101ffb60 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/cai3g1.2_provisioning.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/cai3g1.2_provisioning.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/eps.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/eps.xsd
index 1de6b29ff..6e0ea2406 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/eps.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/eps.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/hssla_types.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/hssla_types.xsd
index 7d226b3cb..108e7a68b 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/hssla_types.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/HSS/hssla_types.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/JMdict/jmdict-good.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/JMdict/jmdict-good.xsd
index 06998fe85..e86e0beec 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/JMdict/jmdict-good.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/JMdict/jmdict-good.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite.xsd
index 98a13ff70..23a0c7cf0 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite_HK84933.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite_HK84933.xsd
index 9682f0a1c..e0bf34b38 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite_HK84933.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IntegratedSite_HK84933.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IsTypes.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IsTypes.xsd
index 4f1370d50..ab84a6840 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IsTypes.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/IsTypes.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/MainSwitch.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/MainSwitch.xsd
index 20f0c2ac4..4c818f5b8 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/MainSwitch.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/MainSwitch.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Mgw_R9B27.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Mgw_R9B27.xsd
index f529a630e..f3684a89f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Mgw_R9B27.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Mgw_R9B27.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Misc.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Misc.xsd
index b0a42904a..f4305497e 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Misc.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/Misc.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/XMLSchema.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/XMLSchema.xsd
index 8748b545b..2997cfadb 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/XMLSchema.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/XMLSchema.xsd
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/confd.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/confd.xsd
index 2a8e87bcc..1431983b3 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/confd.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/confd.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/xml.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/xml.xsd
index 726d649ae..82a530b31 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/xml.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/MGW/xml.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PAP/PAP.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PAP/PAP.xsd
index 6939b4157..0445671b0 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PAP/PAP.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PAP/PAP.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/pidf.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/pidf.xsd
index 8a28b5e46..0f5f3fb90 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/pidf.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/pidf.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/rlmi.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/rlmi.xsd
index 8e6aaa2cd..d5a23a457 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/rlmi.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/rlmi.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/testschema.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/testschema.xsd
index 00a8c88b2..ba8f5c0cd 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/testschema.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/testschema.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/xml_PIDF.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/xml_PIDF.xsd
index bdf985148..3020bc672 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/xml_PIDF.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/PIDF/xml_PIDF.xsd
@@ -1,6 +1,6 @@
 <?xml version='1.0'?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_common_types_2_0.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_common_types_2_0.xsd
index a9057c038..25314ad81 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_common_types_2_0.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_common_types_2_0.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_amount_charging_interface_2_0.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_amount_charging_interface_2_0.xsd
index 336d79532..c56fa91b3 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_amount_charging_interface_2_0.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_amount_charging_interface_2_0.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_amount_charging_interface_2_0.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_amount_charging_interface_2_0.xsd
index 45f0d1750..8a7bd8311 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_amount_charging_interface_2_0.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_amount_charging_interface_2_0.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_volume_charging_interface_2_0.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_volume_charging_interface_2_0.xsd
index 1a60055ab..ca958ccd4 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_volume_charging_interface_2_0.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_reserve_volume_charging_interface_2_0.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_types_2_0.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_types_2_0.xsd
index ae7493e50..89c6d4d5d 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_types_2_0.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_types_2_0.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_volume_charging_interface_2_0.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_volume_charging_interface_2_0.xsd
index fbf4fc7f2..e52d31d2d 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_volume_charging_interface_2_0.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ParlayX/parlayx_payment_volume_charging_interface_2_0.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLP/RLP_SVC.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLP/RLP_SVC.xsd
index 8612f8836..1df6afb76 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLP/RLP_SVC.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLP/RLP_SVC.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/RLXML_small.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/RLXML_small.xsd
index f010107b5..d63bf2323 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/RLXML_small.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/RLXML_small.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/rlxml.xml b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/rlxml.xml
index b3f10b625..0c905fe0f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/rlxml.xml
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/RLXML/rlxml.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/SIP/SIP.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/SIP/SIP.xsd
index d0e5440f2..75208af6d 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/SIP/SIP.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/SIP/SIP.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ShData/ShDataType.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ShData/ShDataType.xsd
index 340ed6344..d3f1021aa 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ShData/ShDataType.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/ShData/ShDataType.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/XML_RPC/XML_RPC.xsd b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/XML_RPC/XML_RPC.xsd
index 82ff8438d..b73f7bfb1 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/XML_RPC/XML_RPC.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_protocolXSDs/XML_RPC/XML_RPC.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/ETSI_CR5852_union.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/ETSI_CR5852_union.xsd
index 22580d81d..eb4cc996f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/ETSI_CR5852_union.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/ETSI_CR5852_union.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn
index e680ab0eb..bac9ef501 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/UsefulTtcn3Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn
index d340dfef6..8b29b0e6f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XSD.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation.xsd
index 271837239..4814373d9 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation1.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation1.xsd
index 5c591b3b6..a678ad8d7 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation1.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation1.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation2.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation2.xsd
index ae00dd67f..301b638c2 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation2.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_annotation2.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean.xsd
index c61dd0927..ae2c2261f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean_withTypeAndBase.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean_withTypeAndBase.xsd
index f5f88899a..574f61b0d 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean_withTypeAndBase.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_boolean_withTypeAndBase.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex1.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex1.xsd
index b2d8ee517..383f8f329 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex1.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex1.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex2.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex2.xsd
index b37a6becd..ee5b6136b 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex2.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex2.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_all.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_all.xsd
index 0104a0d68..617532615 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_all.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_all.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_any.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_any.xsd
index b36eff03a..63f87d145 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_any.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_any.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_choice.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_choice.xsd
index 411d796a7..d016b1ad2 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_choice.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_choice.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_extension.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_extension.xsd
index 917665c47..3055450cd 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_extension.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_extension.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_A.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_A.xsd
index 3dc17add8..d0a91ce83 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_A.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_A.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_AB.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_AB.xsd
index 3cd9c73d9..1f4c4c3ca 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_AB.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_AB.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_B.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_B.xsd
index 923101abb..a62810548 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_B.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_B.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_neg1.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_neg1.xsd
index a5afae49b..940ab36d8 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_neg1.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_neg1.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_pos.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_pos.xsd
index a5d219c9c..cd1f7847b 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_pos.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_pos.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_withSchemaLocation.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_withSchemaLocation.xsd
index bf30f015e..da5a4a2f2 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_withSchemaLocation.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_import_withSchemaLocation.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include.xsd
index 08d4ed17c..3433acbad 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include1.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include1.xsd
index 73eebbf48..64f2d2dc4 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include1.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include1.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include2.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include2.xsd
index 0b9473c86..593d10f38 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include2.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_include2.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -7,7 +7,7 @@
  http://www.eclipse.org/legal/epl-v10.html
  -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-            xmlns:r="www.XmlTest.org/complex_include2"
+            xmlns:r2="www.XmlTest.org/complex_include2"
             targetNamespace="www.XmlTest.org/complex_include2"
             elementFormDefault="qualified">
   <annotation>
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_minOccursMaxOccurs.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_minOccursMaxOccurs.xsd
index 2e093f0f4..18ba62ede 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_minOccursMaxOccurs.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_minOccursMaxOccurs.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_mixed.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_mixed.xsd
index ad42ce580..a0b1c3df2 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_mixed.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_mixed.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction.xsd
index e933080d5..106d28e95 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg1.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg1.xsd
index 761f88503..98f11af36 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg1.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg1.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg2.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg2.xsd
index 6313d0d15..1f4702f76 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg2.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_restriction_neg2.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_simpleContent.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_simpleContent.xsd
index 17d5d2aa7..396427723 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_simpleContent.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_simpleContent.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_unique.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_unique.xsd
index 0005c3c75..86b90ccae 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_unique.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_complex_unique.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -7,7 +7,7 @@
  http://www.eclipse.org/legal/epl-v10.html
  -->
 <schema xmlns="http://www.w3.org/2001/XMLSchema"
-            xmlns:r="www.XmlTest.org/complex_unique"
+            xmlns:r3="www.XmlTest.org/complex_unique"
             targetNamespace="www.XmlTest.org/complex_unique" 
             elementFormDefault="qualified">
   <annotation>
@@ -24,26 +24,26 @@
   <element name="purchaseReport">
     <complexType>
       <sequence>
-        <element name="regions" type="r:RegionsType"/>
+        <element name="regions" type="r3:RegionsType"/>
           
-        <element name="parts" type="r:PartsType"/>
+        <element name="parts" type="r3:PartsType"/>
       </sequence>
       <attribute name="period"       type="duration"/>
       <attribute name="periodEnding" type="date"/>
     </complexType>
 
     <unique name="dummy1">
-      <selector xpath="r:regions/r:zip"/>
+      <selector xpath="r3:regions/r3:zip"/>
       <field xpath="@code"/>
     </unique>
 
     <key name="pNumKey">
-      <selector xpath="r:parts/r:part"/>
+      <selector xpath="r3:parts/r3:part"/>
       <field xpath="@number"/>
     </key>
 
-    <keyref name="dummy2" refer="r:pNumKey">
-      <selector xpath="r:regions/r:zip/r:part"/>
+    <keyref name="dummy2" refer="r3:pNumKey">
+      <selector xpath="r3:regions/r3:zip/r3:part"/>
       <field xpath="@number"/>
     </keyref>
 
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal.xsd
index dbd57c829..f65712627 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withEnum.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withEnum.xsd
index 8a0e9e6a3..63efe83f1 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withEnum.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withEnum.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withLength.xsd
index 89d5e6da7..496051155 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxExclusive.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxExclusive.xsd
index 7cdbeb95b..306a6223a 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxExclusive.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxExclusive.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxInclusive.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxInclusive.xsd
index 9fe1511b8..9a6ca867e 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxInclusive.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_decimal_withMinMaxInclusive.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_abstract.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_abstract.xsd
index 3fb065be6..71cf2d3da 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_abstract.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_abstract.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_anyType.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_anyType.xsd
index a695a8844..749ef6f37 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_anyType.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_anyType.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_nameInheritance.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_nameInheritance.xsd
index ca3747dd2..c14d00ecc 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_nameInheritance.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_nameInheritance.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements.xsd
index 582f1a60b..0983babe9 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements3.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements3.xsd
index a3bec1b9a..074d3a5ab 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements3.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements3.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements4.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements4.xsd
index d78000a3e..5f5e84bd5 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements4.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements4.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements5.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements5.xsd
index 2b33d1c95..317aac116 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements5.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_element_recordOfElements5.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_imsike.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_imsike.xsd
index 157109ea2..49a6f3872 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_imsike.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_imsike.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -8,7 +8,7 @@
  -->
 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xmlns:ns="urn:XmlTest.imsike" 
+xmlns:ns50="urn:XmlTest.imsike" 
 targetNamespace="urn:XmlTest.imsike" elementFormDefault="qualified" attributeFormDefault="unqualified">
 
     <xs:element name="individualTrigger" nillable="true">
@@ -50,7 +50,7 @@ targetNamespace="urn:XmlTest.imsike" elementFormDefault="qualified" attributeFor
 	     <xs:element name="forename" type="xs:string" nillable="true"/>
 	     <xs:element name="surname" type="xs:string" minOccurs="0" nillable="true"/>
 	     <xs:element name="bornPlace" type="xs:string" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
-             <xs:element ref="ns:remarkNillable"/>
+             <xs:element ref="ns50:remarkNillable"/>
 	  </xs:sequence>
 	  <xs:attribute name="triggerDescriptionA" type="xs:string" use="required"/>
        </xs:complexType>
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer.xsd
index 55ecb816b..9a63d5550 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_empty1.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_empty1.xsd
index 33f05ef75..531513b83 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_empty1.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_empty1.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withEnum.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withEnum.xsd
index 6f17bbd4c..8dedb0cad 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withEnum.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withEnum.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withLength.xsd
index 6d0870873..f37d8fa7c 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxExcl.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxExcl.xsd
index 3bea97cdb..dbb2f6ac7 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxExcl.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxExcl.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxIncl.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxIncl.xsd
index be9acdb7a..01e4d2095 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxIncl.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMaxIncl.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinExcl.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinExcl.xsd
index a69b3e1fc..2fd2a3cfc 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinExcl.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinExcl.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinIncl.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinIncl.xsd
index 65ea1b9e9..e3f0b2d5d 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinIncl.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_integer_withMinIncl.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list.xsd
index ad6932da3..56bddfdad 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list_integer.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list_integer.xsd
index b2e29e22d..dea9ebfc7 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list_integer.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_list_integer.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_simple_enum.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_simple_enum.xsd
index b3c6936c7..a87c198e0 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_simple_enum.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_simple_enum.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string.xsd
index 6417e7a10..fd50557d1 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyLength.xsd
index 872d97e64..19703742b 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMax.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMax.xsd
index 04d3130ee..3553e8e16 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMax.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMax.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMin.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMin.xsd
index a1b4872e7..3dcbd820d 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMin.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEmptyMin.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEnum.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEnum.xsd
index 0511e8f6e..8754f309b 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEnum.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withEnum.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFaultyMinMax.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFaultyMinMax.xsd
index fcc94268f..c840deb74 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFaultyMinMax.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFaultyMinMax.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFixedLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFixedLength.xsd
index 746b8b070..fef2c92c8 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFixedLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFixedLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFloatLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFloatLength.xsd
index 80781d13e..ba157fa20 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFloatLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withFloatLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withMinLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withMinLength.xsd
index 30768fe43..a79e143a2 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withMinLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withMinLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeLength.xsd
index 442a9daf1..728e05f72 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMax.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMax.xsd
index 39bd6e134..35780ee1c 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMax.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMax.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMin.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMin.xsd
index 66b921ec8..bd1c893de 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMin.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withNegativeMin.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withOverDefinition.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withOverDefinition.xsd
index 74f4cec75..8d589d6e4 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withOverDefinition.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withOverDefinition.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosLength.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosLength.xsd
index 27d406360..604ecb401 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosLength.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosLength.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosMax.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosMax.xsd
index eafa1ecc1..bbf095d07 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosMax.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withPosMax.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withTypeAndBase.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withTypeAndBase.xsd
index abca00531..93ee54ccc 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withTypeAndBase.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withTypeAndBase.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withWhitespace.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withWhitespace.xsd
index 46803b5a9..a4aece9eb 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withWhitespace.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_string_withWhitespace.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time.xsd
index 88a122c98..a64fa7e33 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time_withEnum.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time_withEnum.xsd
index 9e8eda95f..703766f18 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time_withEnum.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_time_withEnum.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union.xsd
index a07a60724..5f26572aa 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union2.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union2.xsd
index f3ce9d08d..e1b7d13dd 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union2.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_union2.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_version.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_version.xsd
index 2456122e7..8a705f06f 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_version.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/XmlTest_version.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.1" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/empty.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/empty.xsd
index 6d049f20e..87eba2c71 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/empty.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/empty.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/noTargetNamespace.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/noTargetNamespace.xsd
index 77db3ad81..b79045a0c 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/noTargetNamespace.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/noTargetNamespace.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/XmlTest_xsds/po.xsd b/regression_test/XML/XmlWorkflow/XmlTest_xsds/po.xsd
index 6d3fdd9dc..0095a65f2 100644
--- a/regression_test/XML/XmlWorkflow/XmlTest_xsds/po.xsd
+++ b/regression_test/XML/XmlWorkflow/XmlTest_xsds/po.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/bin/prj2mk.pl b/regression_test/XML/XmlWorkflow/bin/prj2mk.pl
index 1157779bb..a02428c79 100644
--- a/regression_test/XML/XmlWorkflow/bin/prj2mk.pl
+++ b/regression_test/XML/XmlWorkflow/bin/prj2mk.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/bin2/prj2mk.pl b/regression_test/XML/XmlWorkflow/bin2/prj2mk.pl
index 1157779bb..a02428c79 100755
--- a/regression_test/XML/XmlWorkflow/bin2/prj2mk.pl
+++ b/regression_test/XML/XmlWorkflow/bin2/prj2mk.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -w
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn b/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn
index e680ab0eb..bac9ef501 100644
--- a/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/UsefulTtcn3Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/XSD.ttcn b/regression_test/XML/XmlWorkflow/src/XSD.ttcn
index 8ee4fc267..d35abb763 100644
--- a/regression_test/XML/XmlWorkflow/src/XSD.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/XSD.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/XmlTest.cfg b/regression_test/XML/XmlWorkflow/src/XmlTest.cfg
index 0fb563725..5a77f73a4 100644
--- a/regression_test/XML/XmlWorkflow/src/XmlTest.cfg
+++ b/regression_test/XML/XmlWorkflow/src/XmlTest.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/src/XmlTest_protocolXsds.cfg b/regression_test/XML/XmlWorkflow/src/XmlTest_protocolXsds.cfg
index 65010546e..04c8b875f 100644
--- a/regression_test/XML/XmlWorkflow/src/XmlTest_protocolXsds.cfg
+++ b/regression_test/XML/XmlWorkflow/src/XmlTest_protocolXsds.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest.prj b/regression_test/XML/XmlWorkflow/src/xmlTest.prj
index 33e62fe53..a28fc99b7 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest.prj
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest.prj
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -74,11 +74,73 @@
                 <File path="../xsd/restricting_complex_types.xsd" />
                 <File path="../xsd/schema.xsd" />
                 <File path="../xsd/union.xsd" />
+                <File path="../xsd/name_conversion_extension_attrib.xsd" />
+                <File path="../xsd/nillable_annotations.xsd" />
+                <File path="../xsd/sequence_embeds_sequence.xsd" />
+                <File path="../xsd/attribute_in_extension.xsd" />
+		<File path="../xsd/anyattribute_optional.xsd" />
+		<File path="../xsd/complex_restriction_with_use.xsd" />
+		<File path="../xsd/name_conv_with_z.xsd" />
+		<File path="../xsd/name_conv_non_alphanumeric.xsd" />
+		<File path="../xsd/name_conv_remove_seq_of_low_line.xsd" />
+		<File path="../xsd/enum_field_names.xsd" />
+		<File path="../xsd/enumeration_restriction.xsd" />
+		<File path="../xsd/import_prefix_name.xsd" />
+		<File path="../xsd/imported_prefix_name.xsd" />
+		<File path="../xsd/not_a_number_minex_inf_maxex_-inf.xsd" />
+		<File path="../xsd/id_attrib.xsd" />
+		<File path="../xsd/decimal_fractiondigits.xsd" />
+		<File path="../xsd/boolean_variant_commented.xsd" />
+		<File path="../xsd/attributegroup_nillable.xsd" />
+		<File path="../xsd/comment_placement.xsd" />
+		<File path="../xsd/complex_nillable.xsd" />
+		<File path="../xsd/element_in_all_minmax.xsd" />
+		<File path="../xsd/enumeration_restriction2.xsd" />
+		<File path="../xsd/seq_group_reference.xsd" />
+		<File path="../xsd/simpletype_restrict_comp.xsd" />
+		<File path="../xsd/type_conversion_follow.xsd" />
+                <File path="../xsd/nillable_in_nillable_extension.xsd" />
+                <File path="../xsd/qualified_element_attrib.xsd" />
+                <File path="../xsd/unqualified_element_attrib.xsd" />
+                <File path="../xsd/attrib_restriction_extension.xsd" />
+                <File path="../xsd/anyattrib_single.xsd" />
+                <File path="../xsd/attrib_order_a.xsd" />
+                <File path="../xsd/attrib_order_b.xsd" />
+                <File path="../xsd/attrib_order_c.xsd" />
+                <File path="../xsd/fixed_value.xsd" />
+                <File path="../xsd/complex_self_recursion.xsd" />
+                <File path="../xsd/enumeration_remove_dup.xsd" />
+                <File path="../xsd/nillable_fixed.xsd" />
+                <File path="../xsd/simpletype_ref.xsd" />
+                <File path="../xsd/namespaceas.xsd" />
+                <File path="../xsd/imported2.xsd" />
+                <File path="../xsd/long_extension.xsd" />
+                <File path="../xsd/xml_in_annotation.xsd" />
+                <File path="../xsd/imported_module.xsd" />
+                <File path="../xsd/imported_module_.xsd" />
+                <File path="../xsd/module_typename_conversion.xsd" />
+                <File path="../xsd/module_typename_conversion_1.xsd" />
+                <File path="../xsd/substitutiongroup.xsd" />
+                <File path="../xsd/substitutiongroup_abstract_block_1.xsd" />
+                <File path="../xsd/substitutiongroup_abstract_block_2.xsd" />
+                <File path="../xsd/substitutiongroup_complex_without_element.xsd" />
+                <File path="../xsd/substitutiongroup_long_extension.xsd" />
+                <File path="../xsd/generate_element_substitution.xsd" />
+                <File path="../xsd/dont_generate_element_substitution.xsd" />
+                <File path="../xsd/substitutiongroup_neg.xsd" />
+                <File path="../xsd/list_simpletype.xsd" />
+                <File path="../xsd/no_ns_connector.xsd" />
+                <File path="../xsd/anyattr_in_complex.xsd" />
+                <File path="../xsd/attribgroup_ingroup.xsd" />
+                <File path="../xsd/attrib_enum.xsd" />
+                <File path="../xsd/substitutiongroup_main.xsd" />
+                <File path="../xsd/substitutiongroup_ref.xsd" />
+		<File path="../xsd/simpletype_base.xsd" />
             </File_Group>
             <File_Group name="XmlTest_xsds" >
                 <File path="../XmlTest_xsds/XmlTest_boolean.xsd" />
                 <File path="../XmlTest_xsds/XmlTest_boolean_withTypeAndBase.xsd" />
-                <File path="../XmlTest_xsds/XmlTest_decimal.xsd" />
+                <File path="../XmlTest_xsds/XmlTest_decimal.xsd" /> 
                 <File path="../XmlTest_xsds/XmlTest_decimal_withMinMaxExclusive.xsd" />
                 <File path="../XmlTest_xsds/XmlTest_decimal_withMinMaxInclusive.xsd" />
                 <File path="../XmlTest_xsds/XmlTest_string.xsd" />
@@ -219,6 +281,68 @@
                 <File path="../XmlTest_expectedTtcns/www_XmlTest_org_annotation_c_e.ttcn" />
                 <File path="../XmlTest_expectedTtcns/www_XmlTest_org_annotation_e_e.ttcn" />
                 <File path="../XmlTest_expectedTtcns/www_XmlTest_org_annotation_t_e.ttcn" />
+                <File path="../XmlTest_expectedTtcns/name_conversion_extension_attrib_e.ttcn" />
+                <File path="../XmlTest_expectedTtcns/nillable_annotations_e.ttcn" />
+                <File path="../XmlTest_expectedTtcns/http_www_example_org_seq_embeds_seq_e.ttcn" />
+                <File path="../XmlTest_expectedTtcns/attribute_in_extension_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/http_www_example_org_wildcards_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/http_www_example_org_complex_restriction_with_use_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_name_conv_http_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/http_www_example_org_name_conv2_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/http_www_example_org_name_conv3_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_enum_field_names_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_enumeration_restriction_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_import_prefix_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_imported_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_not_a_number_minex_inf_maxex_inf_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_id_attrib_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_decimal_fractiondigits_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_boolean_variant_commented_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_type_attributegroup_nillable_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_comment_placement_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_complex_nillable_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_unnamed_union_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_seq_enumeration_restriction_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_seq_group_reference_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_simpletype_restrict_comp_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_type_conversion_follow_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/http_www_example_org_nillable_in_nillable_extension_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_qualified_element_attrib_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_unqualified_element_attrib_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_attr_ext_rest_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_anyattrib_single_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_attrib_order_a_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_attrib_order_b_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/NoTargetNamespace.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_fixed_value_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_self_recursion_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_enumeration_remove_dup_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_nillable_fixed_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_simpletype_ref_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_namespaceas_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_imported2_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_long_extension_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_xml_in_annotation_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/imported_module_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/imported_module_1_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/MyTypes_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/module_typename_conversion_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_all_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_1_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_abstract_block_2_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_complex_without_element_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_long_extension_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_generate_element_substitution_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_dont_generate_element_substitution_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_list_simpletype_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_no_ns_connector_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_anyattr_in_complex_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_attribgroup_ingroup_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_attrib_enum_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_ref_e.ttcn" />
+		<File path="../XmlTest_expectedTtcns/www_example_org_substitutiongroup_main_e.ttcn" />
+	        <File path="../XmlTest_expectedTtcns/www_example_org_simpletype_base_e.ttcn" />
             </File_Group>
             <File_Group name="XmlTest_src" >
                 <File path="xmlTest_Shell.ttcn" />
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex.ttcn
index 95baf14f8..661a173fc 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex1.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex1.ttcn
index 7ea23d323..978b3d9ca 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex1.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex2.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex2.ttcn
index 49c711e3a..e6fd53899 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex2.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_complex2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_element.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_element.ttcn
index ff0a7468e..9a79cafef 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_element.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_element.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -604,9 +604,9 @@ function f_encDecTest_IndividualTrigger1() {
   },vl_decodedPdu;
   //  var octetstring vl_expectedEncodedPdu:=char2oct("<ns:individualTrigger xmlns:ns='urn:XmlTest.imsike' triggerDescriptionA='myTriggerDescriptionAttr'>\n\t<triggerDescription>TriggerDescription</triggerDescription>\n</ns:individualTrigger>\n\n");
   var octetstring vl_expectedEncodedPdu:=char2oct(
-    "<ns:individualTrigger xmlns:ns='urn:XmlTest.imsike' triggerDescriptionA='myTriggerDescriptionAttr'>\n\t" &
-    "<ns:triggerDescription>TriggerDescription</ns:triggerDescription>\n" &
-    "</ns:individualTrigger>\n\n");
+    "<ns50:individualTrigger xmlns:ns50='urn:XmlTest.imsike' triggerDescriptionA='myTriggerDescriptionAttr'>\n\t" &
+    "<ns50:triggerDescription>TriggerDescription</ns50:triggerDescription>\n" &
+    "</ns50:individualTrigger>\n\n");
   var octetstring vl_stream:=''O;
   f_enc_IndividualTrigger(vl_pdu,vl_stream);
 
@@ -658,7 +658,7 @@ function f_encDecTest_IndividualTrigger2() {
     content:=omit
   },vl_decodedPdu;
   var octetstring vl_expectedEncodedPdu:=char2oct(
-    "<ns:individualTrigger xmlns:ns='urn:XmlTest.imsike' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' triggerDescriptionA='myTriggerDescriptionAttr' xsi:nil='true'/>\n\n");
+    "<ns50:individualTrigger xmlns:ns50='urn:XmlTest.imsike' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' triggerDescriptionA='myTriggerDescriptionAttr' xsi:nil='true'/>\n\n");
   var octetstring vl_stream:=''O;
   f_enc_IndividualTrigger(vl_pdu,vl_stream);
 
@@ -714,11 +714,11 @@ function f_encDecTest_Isp1() {
   },
   vl_decodedPdu;
   var octetstring vl_expectedEncodedPdu:=char2oct(
-    "<ns:isp xmlns:ns='urn:XmlTest.imsike'>\n\t"&
-    "<ns:individualTrigger triggerDescriptionA='myTriggerDescriptionAttr'>\n\t\t" &
-    "<ns:triggerDescription>MyTriggerDescription</ns:triggerDescription>\n\t"&
-    "</ns:individualTrigger>\n"&
-    "</ns:isp>\n\n");
+    "<ns50:isp xmlns:ns50='urn:XmlTest.imsike'>\n\t"&
+    "<ns50:individualTrigger triggerDescriptionA='myTriggerDescriptionAttr'>\n\t\t" &
+    "<ns50:triggerDescription>MyTriggerDescription</ns50:triggerDescription>\n\t"&
+    "</ns50:individualTrigger>\n"&
+    "</ns50:isp>\n\n");
 
   var octetstring vl_stream:=''O;
   f_enc_Isp(vl_pdu,vl_stream);
@@ -776,9 +776,9 @@ function f_encDecTest_Isp2() {
   },
   vl_decodedPdu;
   var octetstring vl_expectedEncodedPdu:=char2oct(
-    "<ns:isp xmlns:ns='urn:XmlTest.imsike' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\n\t"&
-    "<ns:individualTrigger triggerDescriptionA='myTriggerDescriptionAttr' xsi:nil='true'/>\n"&
-    "</ns:isp>\n\n");
+    "<ns50:isp xmlns:ns50='urn:XmlTest.imsike' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>\n\t"&
+    "<ns50:individualTrigger triggerDescriptionA='myTriggerDescriptionAttr' xsi:nil='true'/>\n"&
+    "</ns50:isp>\n\n");
   var octetstring vl_stream:=''O;
   f_enc_Isp(vl_pdu,vl_stream);
 
@@ -831,9 +831,9 @@ function f_encDecTest_RemarkNillable1() {
   },
   vl_decodedPdu;
   var octetstring vl_expectedEncodedPdu:=char2oct(
-    "<ns:remarkNillable xmlns:ns='urn:XmlTest.imsike'>"&
+    "<ns50:remarkNillable xmlns:ns50='urn:XmlTest.imsike'>"&
     "MyRemarkNillable" &
-    "</ns:remarkNillable>\n\n");
+    "</ns50:remarkNillable>\n\n");
   var octetstring vl_stream:=''O;
   f_enc_RemarkNillable(vl_pdu,vl_stream);
 
@@ -885,7 +885,7 @@ function f_encDecTest_RemarkNillable2() {
   },
   vl_decodedPdu;
   var octetstring vl_expectedEncodedPdu:=char2oct(
-    "<ns:remarkNillable xmlns:ns='urn:XmlTest.imsike' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/>\n\n");
+    "<ns50:remarkNillable xmlns:ns50='urn:XmlTest.imsike' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:nil='true'/>\n\n");
   var octetstring vl_stream:=''O;
   f_enc_RemarkNillable(vl_pdu,vl_stream);
 
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_list.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_list.ttcn
index f8c1c77ef..1e319cc0e 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_list.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_list.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_string.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_string.ttcn
index 8537a31c1..8079094b4 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_string.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Functions_string.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Shell.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Shell.ttcn
index 6faabfc38..36e269a18 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Shell.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Shell.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -108,6 +108,7 @@ const integer c_shell_error_noSuchFileOrDirectory:=512;
 // Script counts the strings "\n" thus N different lines mean N-1 numOfDiff
 //Possible values: 19,21,23,25 but 21 and 25 should be eliminated!
 
+const integer c_numOfDiff_header := 11;
 const integer c_numOfDiff_headerAndModuleName := 19;
 const integer c_numOfDiff_headerModNameAndNamespace := 23;
 const integer c_numOfDiff_headerModNameAndImport := 23;
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn
index 32cc56575..c968830c1 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -158,7 +158,7 @@ testcase tc_xsd2ttcn_versionTest() runs on xmlTest_CT
 //simple records
 testcase tc_firstTrial() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn elements.xsd","",c_shell_successWithWarning)
+  f_shellCommandWithVerdict("xsd2ttcn elements.xsd","",c_shell_successWithoutWarningAndError)
 }
 
 // see http://www.w3.org/TR/xmlschema-0/ 2.1 The Purchase Order Schema
@@ -179,7 +179,7 @@ testcase tc_empty() runs on xmlTest_CT
 
 testcase tc_annotation() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError);
+  f_shellCommandWithVerdict("xsd2ttcn XmlTest_annotation.xsd","",c_shell_successWithWarning);
   if(getverdict==pass) {
       f_compareFiles(
       "www_XmlTest_org_annotation_e.ttcn","www_XmlTest_org_annotation.ttcn", c_numOfDiff_headerModNameAndNamespace);
@@ -196,6 +196,15 @@ testcase tc_annotation2() runs on xmlTest_CT
   f_shellCommandWithVerdict("xsd2ttcn XmlTest_annotation2.xsd","",c_shell_error);
 }
 
+testcase tc_xml_in_annotation() runs on xmlTest_CT
+{
+  f_shellCommandWithVerdict("xsd2ttcn xml_in_annotation.xsd","",c_shell_successWithoutWarningAndError);
+  if(getverdict==pass) {
+      f_compareFiles(
+      "www_example_org_xml_in_annotation_e.ttcn","www_example_org_xml_in_annotation.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+}
+
 //Incorrect version: 1.1
 testcase tc_version() runs on xmlTest_CT
 {
@@ -223,7 +232,7 @@ testcase tc_version() runs on xmlTest_CT
 //TODO:Not ready yet
 testcase tc_options_c() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn -c XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -c XmlTest_annotation.xsd","",c_shell_successWithWarning );
   if(getverdict==pass) {
     f_compareFiles("www_XmlTest_org_annotation_c_e.ttcn","www_XmlTest_org_annotation.ttcn", c_numOfDiff_headerModNameAndNamespace);
   }
@@ -232,7 +241,7 @@ testcase tc_options_c() runs on xmlTest_CT
 //         -e:             disable the generation of encoding instructions in TTCN-3 modules
 testcase tc_options_e() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn -e XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -e XmlTest_annotation.xsd","",c_shell_successWithWarning );
   if(getverdict==pass) {
     f_compareFiles("www_XmlTest_org_annotation_e_e.ttcn","www_XmlTest_org_annotation.ttcn", c_numOfDiff_headerModNameAndNamespace);
   }
@@ -241,12 +250,27 @@ testcase tc_options_e() runs on xmlTest_CT
 //         -f file:        the XSD files are taken from file instead of the command line
 testcase tc_options_f() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn -f XmlTest_files1.txt","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -f XmlTest_files1.txt","",c_shell_successWithWarning );
   if(getverdict==pass) {
     f_compareFiles("www_XmlTest_org_annotation_e.ttcn","www_XmlTest_org_annotation.ttcn", c_numOfDiff_headerModNameAndNamespace);
   }
 }
 
+testcase tc_options_g() runs on xmlTest_CT
+{
+  f_shellCommandWithVerdict("xsd2ttcn -g dont_generate_element_substitution.xsd","",c_shell_successWithoutWarningAndError );
+  if(getverdict==pass) {
+    f_compareFiles("www_example_org_dont_generate_element_substitution_e.ttcn",
+                   "www_example_org_dont_generate_element_substitution.ttcn", c_numOfDiff_headerModNameAndNamespace);
+  }
+
+  f_shellCommandWithVerdict("xsd2ttcn generate_element_substitution.xsd","",c_shell_successWithoutWarningAndError );
+  if(getverdict==pass) {
+    f_compareFiles("www_example_org_generate_element_substitution_e.ttcn",
+                   "www_example_org_generate_element_substitution.ttcn", c_numOfDiff_headerModNameAndNamespace);
+  }
+}
+
 //TODO: more filename in  XmlTest_files2.txt
 // testcase tc_options_f() runs on xmlTest_CT
 // {
@@ -263,7 +287,7 @@ testcase tc_options_p() runs on xmlTest_CT
   f_shellCommandWithVerdict("mv XSD.ttcn  tmp_XSD.ttcn","",c_shell_successWithoutWarningAndError );
   f_shellCommandWithVerdict("mv UsefulTtcn3Types.ttcn tmp_UsefulTtcn3Types.ttcn","",c_shell_successWithoutWarningAndError );
 
-  f_shellCommandWithVerdict("xsd2ttcn -p XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -p XmlTest_annotation.xsd","",c_shell_successWithWarning );
   if(getverdict==pass) {
     f_shellCommandWithVerdict("ls www_XmlTest_org_annotation.ttcn", "",c_shell_successWithoutWarningAndError);
     f_shellCommandWithVerdict("ls  XSD.ttcn", "",c_shell_error_noSuchFileOrDirectory );
@@ -300,7 +324,7 @@ testcase tc_options_s() runs on xmlTest_CT
 //         -t:             disable the generation of timing information in TTCN-3 modules
 testcase tc_options_t() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn -t  XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -t  XmlTest_annotation.xsd","",c_shell_successWithWarning );
   if(getverdict==pass) {
     f_compareFiles("www_XmlTest_org_annotation_t_e.ttcn","www_XmlTest_org_annotation.ttcn", c_numOfDiff_headerModNameAndNamespace);
   }
@@ -317,7 +341,7 @@ testcase tc_options_v() runs on xmlTest_CT
 //         -q:             quiet - disable the issue of status messages
 testcase tc_options_V() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn -q XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -q XmlTest_annotation.xsd","",c_shell_successWithWarning);
 }
 
 //TODO:Not ready yet
@@ -331,7 +355,7 @@ testcase tc_options_w() runs on xmlTest_CT
 //         -x:             disable schema validation but generate TTCN-3 modules
 testcase tc_options_x() runs on xmlTest_CT
 {
-  f_shellCommandWithVerdict("xsd2ttcn -x XmlTest_annotation.xsd","",c_shell_successWithoutWarningAndError );
+  f_shellCommandWithVerdict("xsd2ttcn -x XmlTest_annotation.xsd","",c_shell_successWithWarning);
 }
 
 testcase tc_options_wrong() runs on xmlTest_CT
@@ -364,12 +388,21 @@ group Testcases_basedOnTtcnStandard9 {
   testcase tc_XmlTest_all() runs on xmlTest_CT
   {
     f_shellCommandWithVerdict("xsd2ttcn all.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+	"www_example_org_all_e.ttcn","www_example_org_all.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_element_in_all_neg() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn element_in_all_minmax.xsd","",c_shell_error);
   }
 
   //Passed
   testcase tc_XmlTest_any_anyAttribute() runs on xmlTest_CT
   {
-    f_shellCommandWithVerdict("xsd2ttcn any_anyAttribute.xsd","",c_shell_successWithoutWarningAndError);
+    f_shellCommandWithVerdict("xsd2ttcn any_anyAttribute.xsd","",c_shell_successWithWarning);
   }
 
   //HQ73011
@@ -384,6 +417,34 @@ group Testcases_basedOnTtcnStandard9 {
     }
   }
 
+  testcase tc_anyattribute_optional() runs on xmlTest_CT
+  {
+  f_shellCommandWithVerdict("xsd2ttcn anyattribute_optional.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "http_www_example_org_wildcards_e.ttcn","http_www_example_org_wildcards.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_anyattribute_single() runs on xmlTest_CT
+  {
+  f_shellCommandWithVerdict("xsd2ttcn anyattrib_single.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_anyattrib_single_e.ttcn","www_example_org_anyattrib_single.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_anyattribute_in_complex() runs on xmlTest_CT
+  {
+  f_shellCommandWithVerdict("xsd2ttcn anyattr_in_complex.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_anyattr_in_complex_e.ttcn","www_example_org_anyattr_in_complex.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+  }
+
+
   //Passed
   testcase tc_XmlTest_attributeGroup() runs on xmlTest_CT
   {
@@ -396,6 +457,98 @@ group Testcases_basedOnTtcnStandard9 {
     f_shellCommandWithVerdict("xsd2ttcn attribute_use_noTNS.xsd","",c_shell_error);
   }
 
+  testcase tc_id_attribute() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn id_attrib.xsd","",c_shell_successWithWarning);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_id_attrib_e.ttcn", "www_example_org_id_attrib.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_attribute_order() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn attrib_order_a.xsd attrib_order_b.xsd attrib_order_c.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_attrib_order_a_e.ttcn", "www_example_org_attrib_order_a.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_attrib_order_b_e.ttcn", "www_example_org_attrib_order_b.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_name_conv_non_alphanumeric() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn name_conv_non_alphanumeric.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "http_www_example_org_name_conv2_e.ttcn",
+        "http_www_example_org_name_conv2.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_module_name_convert_with_diff_namespace() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn imported_module.xsd imported_module_.xsd","",c_shell_successWithoutWarningAndError);
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "imported_module_e.ttcn","imported_module.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "imported_module_1_e.ttcn","imported_module_1.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_module_typename_conversion() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn module_typename_conversion.xsd module_typename_conversion_1.xsd","",c_shell_successWithoutWarningAndError);
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "module_typename_conversion_e.ttcn","module_typename_conversion.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "MyTypes_e.ttcn","MyTypes.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_name_conv_remove_seq_of_low_line() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn name_conv_remove_seq_of_low_line.xsd","",
+                              c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "http_www_example_org_name_conv3_e.ttcn",
+        "http_www_example_org_name_conv3.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_name_conv_with_z() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn -z name_conv_with_z.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_name_conv_http_e.ttcn",
+        "www_example_org_name_conv_http.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+  testcase tc_comment_placement() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn comment_placement.xsd","",c_shell_successWithoutWarningAndError);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_comment_placement_e.ttcn",
+        "www_example_org_comment_placement.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
 }//group
 
 //************************************
@@ -486,7 +639,17 @@ group StringTest {
   //Passed
   testcase tc_string_withFixedLength() runs on xmlTest_CT
   {
-    f_shellCommandWithVerdict("xsd2ttcn XmlTest_string_withFixedLength.xsd","",c_shell_error)
+    f_shellCommandWithVerdict("xsd2ttcn XmlTest_string_withFixedLength.xsd","",c_shell_error);
+  }
+
+  testcase tc_fixed_value() runs on xmlTest_CT
+  {
+    f_shellCommandWithVerdict("xsd2ttcn fixed_value.xsd","",c_shell_successWithWarning);
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_fixed_value.ttcn",
+        "www_example_org_fixed_value_e.ttcn", c_numOfDiff_headerAndModuleName);
+    }
   }
 
   //Passed
@@ -557,6 +720,15 @@ group StringTest {
   {
     f_shellCommandWithVerdict("xsd2ttcn  XmlTest_string_withTypeAndBase.xsd","",c_shell_error)
   }
+
+  //testcase tc_string_pattern_square_brackets() runs on xmlTest_CT
+  //{
+  //  f_shellCommandWithVerdict("xsd2ttcn regex_square_brackets.xsd","",c_shell_successWithoutWarningAndError);
+  //  if(getverdict==pass) {
+  //    f_compareFiles(
+  //      "www_example_org_regex_square_brackets_e.ttcn","www_example_org_regex_square_brackets.ttcn", c_numOfDiff_headerAndModuleName);
+  //  }
+  //}
 }//StringTest
 
 //******************************
@@ -572,6 +744,15 @@ group BooleanTest {
         "www_XmlTest_org_boolean_e.ttcn","www_XmlTest_org_boolean.ttcn", c_numOfDiff_headerAndModuleName);
     }
   }
+
+  testcase tc_boolean_variant_commented() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn  boolean_variant_commented.xsd","",c_shell_successWithoutWarningAndError)
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_boolean_variant_commented_e.ttcn",
+        "www_example_org_boolean_variant_commented.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
 }//BooleanTest
 
 
@@ -633,6 +814,16 @@ group DecimalTest {
         "www_XmlTest_org_decimal_withEnum.ttcn", c_numOfDiff_headerAndModuleName);
     }
   }
+
+  testcase tc_decimal_fractiondigits() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn  decimal_fractiondigits.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_decimal_fractiondigits_e.ttcn",
+        "www_example_org_decimal_fractiondigits.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
 }//DecimalTest
 
 //******************************
@@ -717,6 +908,17 @@ group IntegerTest {
 
 }//IntegerTest
 
+
+  testcase tc_float_not_a_number() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn  not_a_number_minex_inf_maxex_-inf.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_not_a_number_minex_inf_maxex_inf_e.ttcn",
+        "www_example_org_not_a_number_minex_inf_maxex_inf.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
   //
   testcase tc_simpleType_enum() runs on xmlTest_CT {
 
@@ -729,6 +931,51 @@ group IntegerTest {
 
   }//tc_
 
+  testcase tc_simpleType_restrict_comp() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  simpletype_restrict_comp.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_simpletype_restrict_comp_e.ttcn","www_example_org_simpletype_restrict_comp.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+  }//tc_
+
+  testcase tc_simpleType_ref() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  simpletype_ref.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_simpletype_ref_e.ttcn","www_example_org_simpletype_ref.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+  }//tc_
+
+  testcase tc_simpleType_base() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  simpletype_base.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_simpletype_base_e.ttcn","www_example_org_simpletype_base.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+  }//tc_
+
+  //
+  testcase tc_enum_field_names() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  enum_field_names.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_enum_field_names_e.ttcn","www_example_org_enum_field_names.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+  }//tc_
+
 
 //******************************
 //    TimeTest
@@ -785,6 +1032,17 @@ group ListTest {
     }
 
   }//tc_
+
+  testcase tc_list_simpletype() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  list_simpletype.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_list_simpletype_e.ttcn","www_example_org_list_simpletype.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+
+  }//tc_
 }//ListTest
 
 group UnionTest {
@@ -809,6 +1067,39 @@ group UnionTest {
     }
   }
 
+ testcase tc_enumeration_union_restriction() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  enumeration_restriction.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_enumeration_restriction_e.ttcn",
+        "www_example_org_enumeration_restriction.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+ testcase tc_enumeration_union_restriction2() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  enumeration_restriction2.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_seq_enumeration_restriction_e.ttcn",
+        "www_example_org_seq_enumeration_restriction.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
+ testcase tc_enumeration_remove_dup() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  enumeration_remove_dup.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_enumeration_remove_dup_e.ttcn",
+        "www_example_org_enumeration_remove_dup.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }
+
 }//UnionTest
 
 
@@ -853,6 +1144,18 @@ group ComplexType {
      }
   }//tc_
 
+  testcase tc_complex_namespaceas() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn namespaceas.xsd imported2.xsd","",c_shell_successWithoutWarningAndError)
+
+     if(getverdict==pass) {
+       f_compareFiles(
+        "www_example_org_namespaceas_e.ttcn","www_example_org_namespaceas.ttcn", c_numOfDiff_headerAndModuleName);
+       f_compareFiles(
+        "www_example_org_imported2_e.ttcn","www_example_org_imported2.ttcn", c_numOfDiff_headerAndModuleName);
+     }
+  }//tc_
+
   testcase tc_complex_mixed_conv() runs on xmlTest_CT {
 
     f_shellCommandWithVerdict("xsd2ttcn  XmlTest_complex_mixed.xsd","",c_shell_successWithoutWarningAndError)
@@ -863,15 +1166,35 @@ group ComplexType {
      }
   }//tc_
 
+  testcase tc_complex_group_reference() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  seq_group_reference.xsd","",c_shell_successWithoutWarningAndError)
+
+     if(getverdict==pass) {
+       f_compareFiles(
+        "www_example_org_seq_group_reference_e.ttcn","www_example_org_seq_group_reference.ttcn", c_numOfDiff_headerAndModuleName);
+     }
+  }//tc_
+
   //TR:HL29258
   testcase tc_complex_mixed_encDec() runs on xmlTest_CT {
      f_encDecTest_ComplexTypeWithMixed();
   }//tc_
 
+ testcase tc_complex_seq_embeds_seq() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn  sequence_embeds_sequence.xsd","",c_shell_successWithoutWarningAndError)
+
+     if(getverdict==pass) {
+       f_compareFiles(
+        "http_www_example_org_seq_embeds_seq_e.ttcn","http_www_example_org_seq_embeds_seq.ttcn", c_numOfDiff_headerModNameAndNamespace);
+       f_encDecTest_InternationalPrice();
+     }
+  }//tc_
 
   testcase tc_complex_choice_converter() runs on xmlTest_CT {
 
-    f_shellCommandWithVerdict("xsd2ttcn  XmlTest_complex_choice.xsd","",c_shell_successWithoutWarningAndError)
+    f_shellCommandWithVerdict("xsd2ttcn  XmlTest_complex_choice.xsd","",c_shell_successWithWarning)
 
      if(getverdict==pass) {
        f_compareFiles(
@@ -960,16 +1283,13 @@ group ComplexType {
   //positive testcase for group "all". The type has no optional field (element).The input is correct
   testcase tc_complex_all_noOptional_pos_encDec() runs on xmlTest_CT {
     var  MySubjects2 vl_pdu:= {
+      order:={math,english,chemistry, physics,history},
       year:="2009",
-      subject:= {
-        order:={math,english,chemistry, physics,history},
-
-        english:="Advanced Group 1",
-        math:="Beginners 1",
-        physics:="Mechanics 1",
-        chemistry:="CH2",
-        history:="H1"
-      }
+      english:="Advanced Group 1",
+      math:="Beginners 1",
+      physics:="Mechanics 1",
+      chemistry:="CH2",
+      history:="H1"
     }
     var charstring vl_expectedEncodedPdu:=
       "<MySubjects2 Year='2009'>\n\t<Math>Beginners 1</Math>\n\t<English>Advanced Group 1</English>\n\t<Chemistry>CH2</Chemistry>\n\t<Physics>Mechanics 1</Physics>\n\t<History>H1</History>\n</MySubjects2>\n\n";
@@ -981,26 +1301,22 @@ group ComplexType {
   //Passed, TR: HL32978
   testcase tc_complex_all_noOptional_neg1_encDec() runs on xmlTest_CT {
     var  MySubjects2 vl_pdu:= {
+      order:={math,english,chemistry, physics,history},
       year:="2009",
-      subject:= {
-        order:={math,english,chemistry, physics,history},
-        english:="Advanced Group 1",
-        math:="Beginners 1",
-        physics:="Mechanics 1",
-        chemistry:="CH2"
-        //history:="H1"
-      }
+      english:="Advanced Group 1",
+      math:="Beginners 1",
+      physics:="Mechanics 1",
+      chemistry:="CH2"
+      //history:="H1"
     }
     var  MySubjects2 vl_expectedDecodedPdu:= {
+      order:={math,english,chemistry, physics,history},
       year:="2009",
-      subject:= {
-        order:={math,english,chemistry, physics,history},
-        english:="Advanced Group 1",
-        math:="Beginners 1",
-        physics:="Mechanics 1",
-        chemistry:="CH2",
-        history:=""
-      }
+      english:="Advanced Group 1",
+      math:="Beginners 1",
+      physics:="Mechanics 1",
+      chemistry:="CH2",
+      history:=""
     }
     var charstring vl_expectedEncodedPdu:="<MySubjects2 Year='2009'>\n\t<Math>Beginners 1</Math>\n\t<English>Advanced Group 1</English>\n\t<Chemistry>CH2</Chemistry>\n\t<Physics>Mechanics 1</Physics>\n\t<History/>\n</MySubjects2>\n\n"
       f_encDecTest_ComplexTypeWithAll_MySubject2(vl_pdu,vl_expectedEncodedPdu,vl_expectedDecodedPdu,0);
@@ -1013,26 +1329,22 @@ group ComplexType {
   //Passed, TR: HL32978
   testcase tc_complex_all_noOptional_neg2_encDec() runs on xmlTest_CT {
     var  MySubjects2 vl_pdu:= {
+      order:={math,english,chemistry, physics},
       year:="2009",
-      subject:= {
-        order:={math,english,chemistry, physics},
-        english:="Advanced Group 1",
-        math:="Beginners 1",
-        physics:="Mechanics 1",
-        chemistry:="CH2"
-        //history:="H1"
-      }
+      english:="Advanced Group 1",
+      math:="Beginners 1",
+      physics:="Mechanics 1",
+      chemistry:="CH2"
+      //history:="H1"
     }
     var  MySubjects2 vl_expectedDecodedPdu:= {
+      order:={math,english,chemistry, physics},
       year:="2009",
-      subject:= {
-        order:={math,english,chemistry, physics},
-        english:="Advanced Group 1",
-        math:="Beginners 1",
-        physics:="Mechanics 1",
-        chemistry:="CH2",
-        history:=""
-      }
+      english:="Advanced Group 1",
+      math:="Beginners 1",
+      physics:="Mechanics 1",
+      chemistry:="CH2",
+      history:=""
     }
     var charstring vl_expectedEncodedPdu:="<MySubjects2 Year='2009'/>\n\n"; //expecting error report!!!
       //"<MySubjects2 Year='2009'>\n\t<Math>Beginners 1</Math>\n\t<English>Advanced Group 1</English>\n\t<Chemistry>CH2</Chemistry>\n\t<Physics>Mechanics 1</Physics>\n</MySubjects2>\n\n"
@@ -1045,15 +1357,13 @@ group ComplexType {
   //Passed,  TR: HL32978
   testcase tc_complex_all_noOptional_neg3_encDec() runs on xmlTest_CT {
     var  MySubjects2 vl_pdu:= {
+      order:={math,english,chemistry,math,math},
       year:="2009",
-      subject:= {
-        order:={math,english,chemistry,math,math},
-        english:="Advanced Group 1",
-        math:="Beginners 1",
-        physics:="Mechanics 1",
-        chemistry:="CH2"
-        //history:="H1"
-      }
+      english:="Advanced Group 1",
+      math:="Beginners 1",
+      physics:="Mechanics 1",
+      chemistry:="CH2"
+      //history:="H1"
     }
     var charstring vl_expectedEncodedPdu:="<MySubjects2 Year='2009'/>\n\n"; //expecting error report!!!
       //"<MySubjects2 Year='2009'>\n\t<Math>Beginners 1</Math>\n\t<English>Advanced Group 1</English>\n\t<Chemistry>CH2</Chemistry>\n\t<Physics>Mechanics 1</Physics>\n</MySubjects2>\n\n"
@@ -1070,15 +1380,13 @@ group ComplexType {
   //Passed,  TR: HL32978
   testcase tc_complex_all_noOptional_empty_encDec() runs on xmlTest_CT {
     var  MySubjects2 vl_pdu:= {
-      year:="2009",
-      subject:= {
-        order:={ }
-        //english:="Advanced Group 1",
-        //math:="Beginners 1",
-        //physics:="Mechanics 1",
-        //chemistry:="CH2"
-        //history:="H1"
-      }
+      order:={ },
+      year:="2009"
+      //english:="Advanced Group 1",
+      //math:="Beginners 1",
+      //physics:="Mechanics 1",
+      //chemistry:="CH2"
+      //history:="H1"
     }
     var charstring vl_expectedEncodedPdu:="<MySubjects2 Year='2009'/>\n\n"; //expecting error report!!!
       f_encDecTest_ComplexTypeWithAll_MySubject2(vl_pdu,vl_expectedEncodedPdu,vl_pdu,1);
@@ -1108,6 +1416,69 @@ group ComplexType {
     }
   }//tc_
 
+  testcase tc_complex_extension_name_attrib_convert() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn name_conversion_extension_attrib.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "name_conversion_extension_attrib_e.ttcn","name_conversion_extension_attrib.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_complex_long_extension() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn long_extension.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_long_extension_e.ttcn","www_example_org_long_extension.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_complex_self_recursion() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn complex_self_recursion.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_self_recursion_e.ttcn","www_example_org_self_recursion.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_type_name_conversion_follow() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn type_conversion_follow.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_type_conversion_follow_e.ttcn","www_example_org_type_conversion_follow.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_complex_extension_with_attrib() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn attribute_in_extension.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "attribute_in_extension_e.ttcn","attribute_in_extension.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_extension_restriction_with_attrib() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn attrib_restriction_extension.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_attr_ext_rest_e.ttcn","www_example_org_attr_ext_rest.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_attrib_enum() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn attrib_enum.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_attrib_enum_e.ttcn","www_example_org_attrib_enum.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+  }//tc_
+
   testcase tc_complex_extension_encDec() runs on xmlTest_CT
   {
     var MySubjects3Extension vl_pdu:={
@@ -1133,6 +1504,47 @@ group ComplexType {
     }
   }//tc_
 
+ testcase tc_complex_restriction_with_use() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn complex_restriction_with_use.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "http_www_example_org_complex_restriction_with_use_e.ttcn",
+         "http_www_example_org_complex_restriction_with_use.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+ testcase tc_complex_nillable() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn complex_nillable.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_complex_nillable_e.ttcn",
+         "www_example_org_complex_nillable.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+ //Fixed or defaultforempty attribute is not allowed on nillable elements according to TITAN
+ testcase tc_nillable_fixed() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn nillable_fixed.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_nillable_fixed_e.ttcn",
+         "www_example_org_nillable_fixed.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+ testcase tc_no_ns_connector() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn no_ns_connector.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_no_ns_connector_e.ttcn",
+         "www_example_org_no_ns_connector.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+  }//tc_
+
   testcase tc_complex_restriction_encDec() runs on xmlTest_CT
   {
     var MySubjects4Restriction vl_pdu:={
@@ -1303,7 +1715,7 @@ group ComplexType {
   //  tc_complex_any_pos_converter
   //=========================================================================
   testcase tc_complex_any_pos_converter() runs on xmlTest_CT {
-    f_shellCommandWithVerdict("xsd2ttcn XmlTest_complex_any.xsd","",c_shell_successWithoutWarningAndError);
+    f_shellCommandWithVerdict("xsd2ttcn XmlTest_complex_any.xsd","",c_shell_successWithWarning);
 
     if(getverdict==pass) {
       f_compareFiles(
@@ -1311,6 +1723,15 @@ group ComplexType {
     }
   }//tc_
 
+  testcase tc_imported_type_prefix() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn import_prefix_name.xsd imported_prefix_name.xsd","",c_shell_successWithoutWarningAndError);
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_import_prefix_e.ttcn","www_example_org_import_prefix.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
 
   //=========================================================================
   //  tc_complex_any_pos1_encDec
@@ -1381,6 +1802,26 @@ group Elements{
      }
   }//tc_
 
+  testcase tc_element_attrib_qualified() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn qualified_element_attrib.xsd","",c_shell_successWithoutWarningAndError)
+
+     if(getverdict==pass) {
+       f_compareFiles(
+        "www_example_org_qualified_element_attrib_e.ttcn","www_example_org_qualified_element_attrib.ttcn", c_numOfDiff_headerAndModuleName);
+     }
+  }//tc_
+
+  testcase tc_element_attrib_unqualified() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn unqualified_element_attrib.xsd","",c_shell_successWithoutWarningAndError)
+
+     if(getverdict==pass) {
+       f_compareFiles(
+        "www_example_org_unqualified_element_attrib_e.ttcn","www_example_org_unqualified_element_attrib.ttcn", c_numOfDiff_headerAndModuleName);
+     }
+  }//tc_
+
   //Passed TR: Hl29679
   testcase tc_element_anyType_empty_encDec() runs on xmlTest_CT {
     var Anything1 vl_pdu:= { attr:={},elem_list:={}};
@@ -1557,6 +1998,91 @@ group Elements{
   }//tc_
 
 
+  testcase tc_substitutiongroup() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup.xsd","",c_shell_successWithoutWarningAndError)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_e.ttcn","www_example_org_substitutiongroup.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+  }//tc_
+
+  testcase tc_substitutiongroup_abstract_block_rest() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup_abstract_block_1.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_abstract_block_1_e.ttcn",
+        "www_example_org_substitutiongroup_abstract_block_1.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+  }//tc_
+
+  testcase tc_substitutiongroup_abstract_block_ext() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup_abstract_block_2.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_abstract_block_2_e.ttcn",
+        "www_example_org_substitutiongroup_abstract_block_2.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+  }//tc_
+
+  testcase tc_substitutiongroup_complex_without_element() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup_complex_without_element.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_complex_without_element_e.ttcn",
+        "www_example_org_substitutiongroup_complex_without_element.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+  }//tc_
+
+  testcase tc_substitutiongroup_long_extension() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup_complex_without_element.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_complex_without_element_e.ttcn",
+        "www_example_org_substitutiongroup_complex_without_element.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+  }//tc_
+
+  testcase tc_substitutiongroup_neg() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup_neg.xsd","",c_shell_error)
+
+  }//tc_
+
+  testcase tc_substitutiongroup_diff_module() runs on xmlTest_CT {
+
+    f_shellCommandWithVerdict("xsd2ttcn substitutiongroup_main.xsd substitutiongroup_ref.xsd","",c_shell_successWithWarning)
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_ref_e.ttcn",
+        "www_example_org_substitutiongroup_ref.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_substitutiongroup_main_e.ttcn",
+        "www_example_org_substitutiongroup_main.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+
+  }//tc_
+
+
+
   //========================================================
   // tc_element_nameInheritance_conv
   // Checks if name of named (aliased) type is not inherited
@@ -1583,7 +2109,7 @@ group Elements{
     f_encDecTest_Tgc();
   }//tc_
 
-  //"Abstract" and "substitutionGroup" are not supported. Therefore converter sends WARNINGs
+  //"Abstract" are not supported. Therefore converter sends WARNINGs
   testcase tc_element_abstract_conv() runs on xmlTest_CT {
     f_shellCommandWithVerdict("xsd2ttcn XmlTest_element_abstract.xsd","",c_shell_successWithWarning);
   }//tc_
@@ -1597,6 +2123,45 @@ group Elements{
     }
   }//tc_
 
+  testcase tc_element_nillable_with_annotations() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn nillable_annotations.xsd","",c_shell_successWithoutWarningAndError );
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "nillable_annotations_e.ttcn","nillable_annotations.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_element_nillable_in_nillable_extension() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn nillable_in_nillable_extension.xsd","",c_shell_successWithoutWarningAndError );
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "http_www_example_org_nillable_in_nillable_extension_e.ttcn",
+        "http_www_example_org_nillable_in_nillable_extension.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_element_attributegroup_nillable() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn attributegroup_nillable.xsd","",c_shell_successWithoutWarningAndError );
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_type_attributegroup_nillable_e.ttcn",
+        "www_example_org_type_attributegroup_nillable.ttcn", c_numOfDiff_headerAndModuleName);
+    }
+  }//tc_
+
+  testcase tc_element_attributegroup_ingroup() runs on xmlTest_CT {
+    f_shellCommandWithVerdict("xsd2ttcn attribgroup_ingroup.xsd","",c_shell_successWithoutWarningAndError );
+
+    if(getverdict==pass) {
+      f_compareFiles(
+        "www_example_org_attribgroup_ingroup_e.ttcn",
+        "www_example_org_attribgroup_ingroup.ttcn", c_numOfDiff_headerModNameAndNamespace);
+    }
+  }//tc_
+
   //IndividualTrigger, nile="false"
   testcase tc_element_nillable_IndividualTrigger_nilFalse_encDec() runs on xmlTest_CT {
     f_encDecTest_IndividualTrigger1();
@@ -1645,11 +2210,13 @@ control {
   execute(tc_annotation());
   execute(tc_annotation1());
   execute(tc_annotation2());
+  execute(tc_xml_in_annotation());
   //option tests:
   execute(tc_version());
   execute(tc_options_c());
   execute(tc_options_e());
   execute(tc_options_f());
+  execute(tc_options_g());
   execute(tc_options_p());
   execute(tc_options_s());
   execute(tc_options_t());
@@ -1663,10 +2230,22 @@ control {
 
   //===ttcn standard===
   execute(tc_XmlTest_all());//Passed
+  execute(tc_element_in_all_neg());
   execute(tc_XmlTest_any_anyAttribute());//Passed
   execute(tc_XmlTest_HQ73011());//Passed
+  execute(tc_anyattribute_optional());
+  execute(tc_anyattribute_single());
+  execute(tc_anyattribute_in_complex());
   execute(tc_XmlTest_attributeGroup());//Passed
   execute(tc_XmlTest_attribute_use_noTNS());//Passed
+  execute(tc_id_attribute());
+  execute(tc_attribute_order());
+  execute(tc_name_conv_non_alphanumeric());
+  execute(tc_module_name_convert_with_diff_namespace());
+  execute(tc_module_typename_conversion());
+  execute(tc_name_conv_remove_seq_of_low_line());
+  execute(tc_name_conv_with_z());
+  execute(tc_comment_placement());
 
   //===W3C standard===
 
@@ -1678,6 +2257,7 @@ control {
   execute(tc_string_withEmptyLength()); //TR: HL20441, Solved
   execute(tc_string_withNegativeLength());//Passed
   execute(tc_string_withFixedLength());  //Passed
+  execute(tc_fixed_value());
   execute(tc_string_withFloatLength()); //passed ???
   execute(tc_string_withPosMinLength()); //Passed, TR: HL21690
   execute(tc_string_withEmptyMin());//Passed
@@ -1688,14 +2268,18 @@ control {
   execute(tc_string_withFaultyMinMaxLength());//Passed, TR: TODO
   execute(tc_string_withOverDefinition()); //TR: HL25948, Solved
   execute(tc_string_withTypeAndBase());//Passed
+  //TODO: put this test back later
+  //execute(tc_string_pattern_square_brackets());
   //===Boolean===
   execute(tc_boolean());//Passed
+  execute(tc_boolean_variant_commented());
   //===Decimal===
   execute(tc_decimal());//Passed
   //execute(tc_decimal_withLength()); length not supported
   execute(tc_decimal_withMinMaxInclusive());//TR: HL20715
   execute(tc_decimal_withMinMaxExclusive());//Passed TR: HL21166 -solved
   execute(tc_decimal_withEnum());           //Passed,TR HL21196 -solved
+  execute(tc_decimal_fractiondigits());
   //===Integer===
   execute(tc_integer());//Passed
   execute(tc_integer_empty1());//Passed
@@ -1711,19 +2295,31 @@ control {
   execute(tc_list_conv()); //Passed
   execute(tc_list_encDec());//Passed
   execute(tc_integerList());//Passed
+  execute(tc_list_simpletype());//Passed
+  //===Float===
+  execute(tc_float_not_a_number());
 
   //===simpleType enum====
   execute(tc_simpleType_enum());//Passed
+  execute(tc_simpleType_restrict_comp());
+  execute(tc_simpleType_ref());
+  execute(tc_simpleType_base());
+  execute(tc_enum_field_names());
   //===union===
   execute(tc_union());//TR:HL23577
   execute(tc_union_optional());//CR_TR18883
+  execute(tc_enumeration_union_restriction());
+  execute(tc_enumeration_union_restriction2());
+  execute(tc_enumeration_remove_dup());
   //===complex===
   execute(tc_complex1()); //Passed
   execute(tc_complex2());//TR: HL24977
   execute(tc_complex_simpleContent());
+  execute(tc_complex_namespaceas());
   execute(tc_complex_mixed_conv()); //Passed
+  execute(tc_complex_group_reference());
   execute(tc_complex_mixed_encDec()); //TR:HL29258 - Rejected. Reason: Not supported feature, TODO:Write CR!!
-
+  execute(tc_complex_seq_embeds_seq());
   execute(tc_complex_choice_converter());//Passed
   execute(tc_complex_choice_encDec());//Passed
 
@@ -1740,12 +2336,22 @@ control {
   execute(tc_complex_minOccursMaxOccurs());  //Passed, TR (ethgry): HL10386
   execute(tc_complex_extension_converter()); //TR HL32505
   execute(tc_complex_extension_encDec());    //Passed
+  execute(tc_complex_extension_name_attrib_convert());
+  execute(tc_complex_long_extension());
+  execute(tc_type_name_conversion_follow());
+  execute(tc_complex_extension_with_attrib());
+  execute(tc_extension_restriction_with_attrib());
+  execute(tc_attrib_enum());
+  execute(tc_complex_self_recursion());
   execute(tc_complex_restriction_converter()); //Failed, TR HL32896
+  execute(tc_complex_restriction_with_use());
+  execute(tc_complex_nillable());
+  execute(tc_nillable_fixed());
+  execute(tc_no_ns_connector());
 
 
 
-
-//  execute(tc_complex_restriction_encDec());
+  //execute(tc_complex_restriction_encDec()); Dynamic test case error:Attempt to XER-encode an unbound record of
 
 
 
@@ -1759,15 +2365,18 @@ control {
   execute(tc_complex_import_pos2_converter());
   execute(tc_complex_import_neg1_converter());
   execute(tc_complex_import_withSL_converter());//SchemaLocation
-  //execute(tc_complex_import_withSL_encDec());
+  execute(tc_complex_import_withSL_encDec());
   execute(tc_complex_import_nameCollision_converter());
   execute(tc_complex_import_nameCollision2_converter());
   execute(tc_complex_any_pos_converter());
+  execute(tc_imported_type_prefix());
   execute(tc_complex_any_pos1_encDec()); //Failed, TR: HL37887
   execute(tc_complex_any_pos2_encDec());
   execute(tc_complex_any_pos3_encDec());//failed, TR:
   //===element===
   execute(tc_element_anyType_converter());//Passed
+  execute(tc_element_attrib_qualified());
+  execute(tc_element_attrib_unqualified());
   execute(tc_element_anyType_empty_encDec());//Passed TR: HL29679
   execute(tc_element_anyType_attrOnly_encDec());//Passed
   execute(tc_element_anyType_2attrOnly_encDec());//Passed
@@ -1784,11 +2393,27 @@ control {
   execute(tc_element_recOfElements_anonymousType_conv());
   execute(tc_element_recOfElements_anonymousType_encDec());
 
+
+  //===substitutiongroup===
+  execute(tc_substitutiongroup());
+  execute(tc_substitutiongroup_abstract_block_rest());
+  execute(tc_substitutiongroup_abstract_block_ext());
+  execute(tc_substitutiongroup_complex_without_element());
+  execute(tc_substitutiongroup_long_extension());
+  execute(tc_substitutiongroup_neg());
+  execute(tc_substitutiongroup_diff_module());
+
+
+
   execute(tc_element_nameInheritance_conv());
   execute(tc_element_nameInheritance_encDec());//TR HL49978
   execute(tc_element_Tgc_encDec());//TR HL49978
   execute(tc_element_abstract_conv()); //Not supported features
   execute(tc_element_nillable_converter());
+  execute(tc_element_nillable_with_annotations());
+  execute(tc_element_nillable_in_nillable_extension());
+  execute(tc_element_attributegroup_nillable());
+  execute(tc_element_attributegroup_ingroup());
   execute(tc_element_nillable_IndividualTrigger_nilFalse_encDec());
   execute(tc_element_nillable_IndividualTrigger_nilTrue_encDec());
   execute(tc_element_nillable_Isp_nilFalse_encDec());
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_encDec.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_encDec.ttcn
index a51935f17..b1b0a802e 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_encDec.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_encDec.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsd_Testcases.ttcn b/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsd_Testcases.ttcn
index 57118230d..6a692997e 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsd_Testcases.ttcn
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsd_Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsds.prj b/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsds.prj
index de587aa2d..bf506e274 100644
--- a/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsds.prj
+++ b/regression_test/XML/XmlWorkflow/src/xmlTest_protocolXsds.prj
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/HQ73011.xsd b/regression_test/XML/XmlWorkflow/xsd/HQ73011.xsd
index a5f22be67..b819f01cb 100644
--- a/regression_test/XML/XmlWorkflow/xsd/HQ73011.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/HQ73011.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/PDUexample.xsd b/regression_test/XML/XmlWorkflow/xsd/PDUexample.xsd
index f775bff52..1589fc843 100644
--- a/regression_test/XML/XmlWorkflow/xsd/PDUexample.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/PDUexample.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/all.xsd b/regression_test/XML/XmlWorkflow/xsd/all.xsd
index 0d017b20c..1d8a47046 100644
--- a/regression_test/XML/XmlWorkflow/xsd/all.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/all.xsd
@@ -1,69 +1,77 @@
 <?xml version="1.0" encoding="UTF-8"?> 
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
  -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
-xmlns:ns="www.example.org"
-targetNamespace="www.example.org">
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:this="www.example.org/all"
+targetNamespace="www.example.org/all">
 
-<attribute name="attrGlobal" type="token"/>
+<xsd:attribute name="attrGlobal" type="token"/>
 
-<attributeGroup name="attrGroup">
-	<attribute name="attrInGroup2" type="token"/>
-	<attribute name="attrInGroup1" type="token"/>
-</attributeGroup>
+<xsd:attributeGroup name="attrGroup">
+	<xsd:attribute name="attrInGroup2" type="token"/>
+	<xsd:attribute name="attrInGroup1" type="token"/>
+</xsd:attributeGroup>
 
 
-<annotation><documentation xml:lang="EN">All, mandatory</documentation></annotation>
+<xsd:annotation><xsd:documentation xml:lang="EN">All, mandatory</xsd:documentation></xsd:annotation>
 
-<complexType name="e29a"> 
-	<all>
-		<element name="foo" type="integer"/>
-		<element name="bar" type="float"/>
-		<element name="ding" type="string"/>
-	</all>
-</complexType>
+<xsd:complexType name="e29a"> 
+	<xsd:all>
+		<xsd:element name="foo" type="integer"/>
+		<xsd:element name="bar" type="float"/>
+		<xsd:element name="ding" type="string"/>
+	</xsd:all>
+</xsd:complexType>
 
-<complexType name="e29aAndAttributes"> 
-	<all>
-		<element name="foo" type="integer"/>
-		<element name="bar" type="float"/>
-		<element name="ding" type="string"/>
-	</all>
-	<attribute name="attrLocal" type="integer"/>
-	<attribute ref="ns:attrGlobal"/>
-	<attributeGroup ref="ns:attrGroup"/>
-</complexType>
+<xsd:complexType name="e29aAndAttributes"> 
+	<xsd:all>
+		<xsd:element name="foo" type="integer"/>
+		<xsd:element name="bar" type="float"/>
+		<xsd:element name="ding" type="string"/>
+	</xsd:all>
+	<xsd:attribute name="attrLocal" type="integer"/>
+	<xsd:attribute ref="this:attrGlobal"/>
+	<xsd:attributeGroup ref="this:attrGroup"/>
+</xsd:complexType>
 
-<annotation><documentation xml:lang="EN">All, optional</documentation></annotation>
+<xsd:annotation><xsd:documentation xml:lang="EN">All, optional</xsd:documentation></xsd:annotation>
 
-<complexType name="e29bAndAttributes"> 
-	<all minOccurs="0">
-		<element name="foo" type="integer"/>
-		<element name="bar" type="float"/>
-		<element name="ding" type="string"/>
-	</all>
-	<attribute name="attrLocal" type="integer"/>
-	<attribute ref="ns:attrGlobal"/>
-	<attributeGroup ref="ns:attrGroup"/>
-</complexType>
+<xsd:complexType name="e29bAndAttributes"> 
+	<xsd:all minOccurs="0">
+		<xsd:element name="foo" type="integer"/>
+		<xsd:element name="bar" type="float"/>
+		<xsd:element name="ding" type="string"/>
+	</xsd:all>
+	<xsd:attribute name="attrLocal" type="integer"/>
+	<xsd:attribute ref="this:attrGlobal"/>
+	<xsd:attributeGroup ref="this:attrGroup"/>
+</xsd:complexType>
 
-<annotation><documentation xml:lang="EN">All, some elements are optional</documentation></annotation>
+<xsd:annotation><xsd:documentation xml:lang="EN">All, some elements are optional</xsd:documentation></xsd:annotation>
 
-<complexType name="e29cAndAttributes"> 
-	<all>
-		<element name="foo" type="integer"/>
-		<element name="bar" type="float" minOccurs="0"/>
-		<element name="ding" type="string"/>
-	</all>
-	<attribute name="attrLocal" type="integer"/>
-	<attribute ref="ns:attrGlobal"/>
-	<attributeGroup ref="ns:attrGroup"/>
-</complexType>
+<xsd:complexType name="e29cAndAttributes"> 
+	<xsd:all>
+		<xsd:element name="foo" type="integer"/>
+		<xsd:element name="bar" type="float" minOccurs="0"/>
+		<xsd:element name="ding" type="string"/>
+	</xsd:all>
+	<xsd:attribute name="attrLocal" type="integer"/>
+	<xsd:attribute ref="this:attrGlobal"/>
+	<xsd:attributeGroup ref="this:attrGroup"/>
+</xsd:complexType>
 
-</schema>
+<xsd:element name="e29cAndAttributesReferenceOptional">
+	<xsd:complexType>
+		<xsd:group ref="this:e29a" minOccurs="0"/>
+		<xsd:attribute name="attr" type="string" />
+	</xsd:complexType>
+</xsd:element>  
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/any_anyAttribute.xsd b/regression_test/XML/XmlWorkflow/xsd/any_anyAttribute.xsd
index a3e4c84f5..ee395b8c8 100644
--- a/regression_test/XML/XmlWorkflow/xsd/any_anyAttribute.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/any_anyAttribute.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
@@ -97,4 +97,15 @@ targetNamespace="http://www.example.org/ttcn/wildcards">
 </complexType>
 
 
-</schema>
\ No newline at end of file
+<element name="MyType">
+	<complexType>
+		<simpleContent>
+			<extension base="string">
+				<anyAttribute namespace="##targetNamespace"/>
+			</extension>
+		</simpleContent>
+	</complexType>
+</element>
+
+
+</schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/anyattr_in_complex.xsd b/regression_test/XML/XmlWorkflow/xsd/anyattr_in_complex.xsd
new file mode 100644
index 000000000..27e7eca2c
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/anyattr_in_complex.xsd
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    xmlns:this="www.example.org/anyattr/in/complex"
+    targetNamespace="www.example.org/anyattr/in/complex">
+
+<xsd:complexType name="DependentLocalityType">
+	<xsd:sequence>
+		<xsd:element name="DependentLocalityName" minOccurs="0" maxOccurs="unbounded">
+			<xsd:complexType>
+				<xsd:anyAttribute namespace="##other"/>
+			</xsd:complexType>
+		</xsd:element>
+		<xsd:element name="DependentLocalityNumber" minOccurs="0">
+			<xsd:complexType>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/anyattrib_single.xsd b/regression_test/XML/XmlWorkflow/xsd/anyattrib_single.xsd
new file mode 100644
index 000000000..3c70c4bb9
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/anyattrib_single.xsd
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/anyattrib/single"
+ targetNamespace="www.example.org/anyattrib/single"> 
+
+
+<xsd:attributeGroup name="attrGroup">
+	<xsd:attribute name="attrInGroup2" type="token"/>
+	<xsd:attribute name="attrInGroup1" type="token"/>
+	<xsd:anyAttribute namespace="##targetNamespace"/> 
+</xsd:attributeGroup> 
+
+<xsd:complexType name="e25seq">
+	<xsd:sequence>
+		<xsd:element name="titleElemBase" type="xsd:string"/>
+		<xsd:element name="forenameElemBase" type="xsd:string"/>
+		<xsd:element name="surnameElemBase" type="xsd:string"/>
+	</xsd:sequence>
+	<xsd:attributeGroup ref="this:attrGroup"/>
+	<xsd:anyAttribute namespace="http://www.w3.org/1999/xhtml ##targetNamespace"/> 
+</xsd:complexType>
+
+<xsd:element name="e45c">
+	<xsd:complexType>
+		<xsd:anyAttribute namespace="##local http://www.example.org/attribute"/>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="e45d">
+	<xsd:complexType>
+		<xsd:complexContent>
+			<xsd:extension base="this:e45c">
+				<xsd:anyAttribute namespace="##targetNamespace"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+ </xsd:element>
+
+
+<xsd:complexType name="ExtBase">
+	<xsd:sequence>
+		<element name="field" type="string"/>
+	</xsd:sequence>
+	<xsd:anyAttribute namespace="##targetNamespace"/>
+</xsd:complexType>
+
+<xsd:element name="MyType">
+	<xsd:complexType>
+		<xsd:complexContent>
+			<xsd:extension base="this:ExtBase">
+				<xsd:attribute name="ding" type="string"/>
+				<xsd:anyAttribute namespace="##any"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:complexType name="ExtBase2">
+	<xsd:sequence>
+		<xsd:element name="field" type="string"/>
+	</xsd:sequence>
+	<xsd:anyAttribute namespace="##other"/>
+</xsd:complexType>
+
+<xsd:element name="MyType2">
+	<xsd:complexType>
+		<xsd:complexContent>
+			<xsd:extension base="this:ExtBase2">
+				<xsd:attribute name="ding" type="string"/>
+				<xsd:anyAttribute namespace="##targetNamespace"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/anyattribute_optional.xsd b/regression_test/XML/XmlWorkflow/xsd/anyattribute_optional.xsd
new file mode 100644
index 000000000..e186ef084
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/anyattribute_optional.xsd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:this="http://www.example.org/wildcards" targetNamespace="http://www.example.org/wildcards"> 
+<xs:element name="anyAttrAnyNamespace" type="this:e45"/>
+<xs:element name="anyAttrThisNamespace" type="this:e45b"/>
+
+<xs:complexType name="e45"> 
+	<xs:attribute name="attr" type="xs:string"/> 
+	<xs:attribute name="bb" type="xs:date"/> 
+	<xs:attribute name="aa" type="xs:date"/> 
+	<xs:anyAttribute namespace="##any"/> 
+</xs:complexType> 
+
+<xs:complexType name="e45a"> 
+	<xs:anyAttribute namespace="##other"/> 
+</xs:complexType> 
+
+<xs:complexType name="e45b"> 
+	<xs:anyAttribute namespace="##targetNamespace"/> 
+</xs:complexType>
+ 
+<xs:complexType name="e45c"> 
+	<xs:anyAttribute namespace="##local http://www.example.org/attribute"/> 
+</xs:complexType> 
+
+<xs:complexType name="e45d"> 
+	<xs:complexContent> 
+		<xs:extension base="this:e45c"> 
+			<xs:anyAttribute namespace="##targetNamespace"/> 
+		</xs:extension> 
+	</xs:complexContent> 
+</xs:complexType>
+ 
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/attrib_enum.xsd b/regression_test/XML/XmlWorkflow/xsd/attrib_enum.xsd
new file mode 100644
index 000000000..996292049
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attrib_enum.xsd
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    xmlns:this="www.example.org/attrib/enum"
+    targetNamespace="www.example.org/attrib/enum">
+
+<xsd:complexType name="AttribEnum">
+	<xsd:attribute name="attr">
+		<xsd:simpleType>
+			<xsd:restriction base="xsd:string">
+				<xsd:enumeration value="first"/>
+				<xsd:enumeration value="second"/>
+			</xsd:restriction>
+		</xsd:simpleType>
+	</xsd:attribute>
+</xsd:complexType>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/attrib_order_a.xsd b/regression_test/XML/XmlWorkflow/xsd/attrib_order_a.xsd
new file mode 100644
index 000000000..5be49499b
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attrib_order_a.xsd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/attrib/order/a"
+ xmlns:A="www.example.org/attrib/order/b"
+ xmlns:B="NoTargetNamespace"
+ targetNamespace="www.example.org/attrib/order/a"> 
+
+<xsd:import namespace="www.example.org/attrib/order/b"/>
+
+<xsd:import namespace="NoTargetNamespace"/>
+
+
+<xsd:attribute name="local1" type="xsd:string" fixed="fixed"/>
+<xsd:attribute name="local2" type="xsd:string"/>
+
+<xsd:complexType name="e17A">
+	<xsd:attributeGroup ref="A:Agroup" />
+	<xsd:attribute ref="this:local2"/>
+	<xsd:attribute ref="A:Attr1" />
+	<xsd:attribute ref="B:AttrNoTargetNamespace"/>
+	<xsd:attribute ref="this:local1" />
+	<xsd:attribute ref="B:AttrNoTargetNamespace2"/>
+	<xsd:attribute ref="this:lang"/>
+</xsd:complexType> 
+
+<xsd:attribute name="lang">
+	<xsd:simpleType>
+		<xsd:union memberTypes="xsd:language">
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:enumeration value=""/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:union>
+	</xsd:simpleType>
+</xsd:attribute>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/attrib_order_b.xsd b/regression_test/XML/XmlWorkflow/xsd/attrib_order_b.xsd
new file mode 100644
index 000000000..40814285e
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attrib_order_b.xsd
@@ -0,0 +1,20 @@
+<!--
+ 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
+ -->
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            xmlns:A="www.example.org/attrib/order/b"
+            targetNamespace="www.example.org/attrib/order/b">
+
+<xsd:attribute name="Attr1" type="xsd:string"/>
+
+<xsd:attributeGroup name="Agroup">
+	<xsd:attribute name="fooInAgroup" type="xsd:float" />
+	<xsd:attribute name="barInAgroup" type="xsd:float" />
+</xsd:attributeGroup> 
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/attrib_order_c.xsd b/regression_test/XML/XmlWorkflow/xsd/attrib_order_c.xsd
new file mode 100644
index 000000000..5bd123a76
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attrib_order_c.xsd
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:B="NoTargetNamespace">
+
+<xsd:attribute name="AttrNoTargetNamespace" type="string"/>
+<xsd:attribute name="AttrNoTargetNamespace2" type="string"/>
+
+</xsd:schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/attrib_restriction_extension.xsd b/regression_test/XML/XmlWorkflow/xsd/attrib_restriction_extension.xsd
new file mode 100644
index 000000000..c31d37797
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attrib_restriction_extension.xsd
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:nss="www.example.org/attr/ext/rest"
+ targetNamespace="www.example.org/attr/ext/rest"> 
+
+
+<xsd:complexType name="e25seq">
+	<xsd:sequence>
+		<xsd:element name="titleElemBase" type="xsd:string"/>
+		<xsd:element name="forenameElemBase" type="xsd:string"/>
+		<xsd:element name="surnameElemBase" type="xsd:string"/>
+	</xsd:sequence>
+	<xsd:attribute name="genderAttrBase" type="xsd:integer"/>
+</xsd:complexType>
+
+<xsd:complexType name="e25seqa">
+	<xsd:complexContent>
+		<xsd:extension base="nss:e25seq">
+			<xsd:sequence>
+			</xsd:sequence>
+			<xsd:attribute name="gender" type="xsd:integer"/>
+			<xsd:attribute name="genderAttrBase" type="xsd:integer"/>
+		</xsd:extension>
+	</xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="e25seqb">
+	<xsd:complexContent>
+		<xsd:extension base="nss:e25seqa">
+			<xsd:sequence>
+				<xsd:element name="ageElemExt" type="xsd:integer"/>
+			</xsd:sequence>
+		</xsd:extension>
+	</xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="e25seqc">
+	<xsd:complexContent>
+		<xsd:restriction base="nss:e25seqb">
+			<xsd:sequence>
+				<xsd:element name="ageElemExt" type="xsd:integer"/>
+			</xsd:sequence>
+			<xsd:attribute name="genderAttrBase" type="xsd:integer" use="prohibited"/>
+			<xsd:attribute name="boo" type="xsd:integer"/>
+		</xsd:restriction>
+	</xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="e25seqd">
+	<xsd:complexContent>
+		<xsd:restriction base="nss:e25seqc">
+			<xsd:sequence>
+				<xsd:element name="ageElemExt" type="xsd:integer"/>
+			</xsd:sequence>
+			<xsd:attribute name="genderAttrBase" type="xsd:integer" use="required"/>
+		</xsd:restriction>
+	</xsd:complexContent>
+</xsd:complexType>
+
+<xsd:element name="comment" type="xsd:string"/> 
+	<xsd:complexType name="PurchaseOrderType">
+		<xsd:sequence>
+			<xsd:element name="shipTo" type="xsd:string"/>
+			<xsd:element name="billTo" type="xsd:string"/>
+			<xsd:element ref="nss:comment" minOccurs="0"/>
+		</xsd:sequence>
+		<xsd:attribute name="shipDate" type="xsd:date"/>
+		<xsd:attribute name="orderDate" type="xsd:date"/>
+</xsd:complexType>
+
+<!-- The restricting type is: -->
+<xsd:complexType name="RestrictedPurchaseOrderType">
+	<xsd:complexContent>
+		<xsd:restriction base="nss:PurchaseOrderType">
+			<xsd:sequence>
+				<xsd:element name="shipTo" type="xsd:string"/>
+				<xsd:element ref="nss:comment" minOccurs="1"/>
+			</xsd:sequence>
+			<xsd:attribute name="shipDate" type="xsd:date" use="required" />
+			<xsd:attribute name="boo" type="xsd:date"/>
+			<xsd:attribute name="orderDate" type="xsd:date" use="prohibited" />
+		</xsd:restriction>
+	</xsd:complexContent>
+</xsd:complexType> 
+
+<xsd:element name="e23">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="string">
+				<xsd:attribute name="foo" type="xsd:float"/>
+				<xsd:attribute name="bar" type="xsd:integer"/>
+				<xsd:attribute name="base" type="xsd:integer"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element> 
+
+
+<xsd:element name="e24">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="nss:e23">
+				<xsd:attribute name="foo" type="xsd:float"/>
+				<xsd:attribute name="goo" type="xsd:integer"/>
+				<xsd:attribute name="base" type="xsd:integer" use="required"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element> 
+
+
+<xsd:element name="e25">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:restriction base="nss:e24">
+				<xsd:length value="4"/> 
+				<xsd:attribute name="foo" type="xsd:float" use="prohibited"/>
+				<xsd:attribute name="goo" type="xsd:integer" use="required"/>
+				<xsd:attribute name="boo" type="xsd:integer"/>
+				<xsd:attribute name="base" type="xsd:integer" use="prohibited"/>
+			</xsd:restriction>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element> 
+
+<xsd:element name="e26">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="nss:e25">
+				<xsd:attribute name="foo" type="xsd:float" use="required"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element> 
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/attribgroup_ingroup.xsd b/regression_test/XML/XmlWorkflow/xsd/attribgroup_ingroup.xsd
new file mode 100644
index 000000000..6ccede2df
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attribgroup_ingroup.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    xmlns:this="www.example.org/attribgroup/ingroup"
+    targetNamespace="www.example.org/attribgroup/ingroup">
+
+<xsd:complexType name="AttrGroupinGroup">
+	<xsd:attributeGroup ref="this:AttributeGroup"/>
+</xsd:complexType>
+
+<xsd:attribute name="remoteSchema" type="anyURI">
+</xsd:attribute>
+
+<xsd:attributeGroup name="AttributeGroup">
+	<xsd:attributeGroup ref="this:simpleLink"/>
+	<xsd:attribute ref="this:remoteSchema" use="optional"/>
+</xsd:attributeGroup>
+
+<xsd:attributeGroup name="simpleLink">
+	<xsd:attribute name="type" type="string" fixed="simple" form="qualified"/>
+</xsd:attributeGroup>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/attributeGroup.xsd b/regression_test/XML/XmlWorkflow/xsd/attributeGroup.xsd
index 4dbb47264..8626f05d4 100644
--- a/regression_test/XML/XmlWorkflow/xsd/attributeGroup.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/attributeGroup.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/attribute_in_extension.xsd b/regression_test/XML/XmlWorkflow/xsd/attribute_in_extension.xsd
new file mode 100644
index 000000000..de0baf90b
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attribute_in_extension.xsd
@@ -0,0 +1,26 @@
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns:ns45="attribute_in_extension" 
+targetNamespace="attribute_in_extension" elementFormDefault="qualified" attributeFormDefault="unqualified">	
+<xs:complexType name="BaseType">
+	<xs:sequence>
+		<xs:element name="Base-variable" type="integer" nillable="false">
+		</xs:element>
+	</xs:sequence>
+</xs:complexType>
+<xs:complexType name="Extending-type">
+	<xs:sequence>
+		<xs:element name="ext" nillable="false">
+			<xs:complexType>
+				<xs:complexContent>
+					<xs:extension base="ns45:BaseType">
+        					<xs:attribute name="extension" type="integer">
+						</xs:attribute>
+					</xs:extension>
+				</xs:complexContent>
+			</xs:complexType>
+		</xs:element>
+	</xs:sequence>
+</xs:complexType>
+</xs:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/attribute_use.xsd b/regression_test/XML/XmlWorkflow/xsd/attribute_use.xsd
index f9d97f844..0c71aad0a 100644
--- a/regression_test/XML/XmlWorkflow/xsd/attribute_use.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/attribute_use.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/attribute_use_noTNS.xsd b/regression_test/XML/XmlWorkflow/xsd/attribute_use_noTNS.xsd
index e935a5bb8..d3a64f864 100644
--- a/regression_test/XML/XmlWorkflow/xsd/attribute_use_noTNS.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/attribute_use_noTNS.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/attributegroup_nillable.xsd b/regression_test/XML/XmlWorkflow/xsd/attributegroup_nillable.xsd
new file mode 100644
index 000000000..f4e37c2b3
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/attributegroup_nillable.xsd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/type/attributegroup/nillable"
+ xmlns:ns7="www.example.org/type/attributegroup/nillable"> 
+
+
+<xsd:element name="remark" type="xsd:string" nillable="true"/>
+
+<xsd:element name="SeqNillable" nillable="true">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="forename" type="xsd:string" nillable="true"/>
+			<xsd:element name="surname" type="xsd:string" minOccurs="0" nillable="true"/>
+			<xsd:element name="livingAddress" type="xsd:string" minOccurs="0"
+			maxOccurs="unbounded"
+			nillable="true"/>
+			<xsd:element ref="ns7:remark"/>
+		</xsd:sequence>
+		<xsd:attribute name="foo" type="xsd:integer"/>
+		<xsd:attribute name="bar" type="xsd:integer"/>
+		<attributeGroup ref="ns7:g25attr1"/>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:attributeGroup name="g25attr1">
+	<xsd:attribute name="birthPlaceAttrGroup" type="xsd:string"/>
+	<xsd:attribute name="birthDateAttrGroup" type="xsd:string"/>
+	<xsd:anyAttribute namespace="##targetNamespace"/>
+</xsd:attributeGroup> 
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/boolean_variant_commented.xsd b/regression_test/XML/XmlWorkflow/xsd/boolean_variant_commented.xsd
new file mode 100644
index 000000000..418026bcb
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/boolean_variant_commented.xsd
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/boolean/variant/commented">
+
+<xs:simpleType name="celsiusBodyTemp">
+	<xs:restriction base="xs:boolean"/>
+</xs:simpleType>
+
+<xs:element name="booleanElement" type="xs:boolean"/>
+
+<xs:simpleType name="BooleanSimple">
+	<xs:restriction base="xs:boolean"/>
+</xs:simpleType>
+
+<xs:element name="union_with_boolean">
+	<xs:simpleType>
+		<xs:union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="xs:boolean"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:integer"/>
+			</xs:simpleType>
+		</xs:union>
+	</xs:simpleType>
+</xs:element>
+
+<xs:complexType name="seq_with_boolean">
+	<xs:sequence>
+		<xs:element name="titleElemBase" type="xs:string"/>
+		<xs:element name="forenameElemBase" type="xs:string"/>
+		<xs:element name="smart" type="xs:boolean"/>
+	</xs:sequence>
+	<xs:attribute name="stupid" type="xs:boolean"/>
+</xs:complexType>
+
+<xs:complexType name="e15b">
+	<xs:sequence>
+		<xs:element name="foo" type="xs:boolean" minOccurs="0" maxOccurs="unbounded"/>
+		<xs:element name="bar" type="xs:float"/>
+	</xs:sequence>
+</xs:complexType> 
+
+<xs:complexType name="E15b_2">
+	<xs:sequence>
+		<xs:element name="foo" type="xs:boolean"/>
+		<xs:element name="bar" type="xs:float"/>
+	</xs:sequence>
+</xs:complexType> 
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/comment_placement.xsd b/regression_test/XML/XmlWorkflow/xsd/comment_placement.xsd
new file mode 100644
index 000000000..d5791454d
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/comment_placement.xsd
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/comment/placement"> 
+
+<xsd:element name="e21unnamed">
+	<xsd:annotation>
+		<xsd:documentation>
+			SomeCommentyyy
+		</xsd:documentation>
+	</xsd:annotation>
+	<xsd:simpleType>
+		<union>
+			<xsd:simpleType>
+				<xsd:annotation>
+					<xsd:documentation>
+						SomeCommentyyy
+					</xsd:documentation>
+				</xsd:annotation>
+				<xsd:restriction base="xsd:string"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<xsd:annotation>
+					<xsd:documentation>
+						SomeCommentss
+					</xsd:documentation>
+				</xsd:annotation>
+				<restriction base="xsd:float"/>
+			</xsd:simpleType>
+			<xsd:simpleType>
+				<restriction base="xsd:integer"/>
+			</xsd:simpleType>
+		</union>
+	</xsd:simpleType>
+</xsd:element>
+
+<xsd:complexType name="e39">
+	<xsd:annotation>
+		<xsd:documentation>
+			SomeCommentss
+		</xsd:documentation>
+	</xsd:annotation>
+	<xsd:sequence>
+		<xsd:choice>
+			<xsd:element name="foo" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation>
+						SomeCommentss
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+			<xsd:element name="bar" type="xsd:string">
+				<xsd:annotation>
+					<xsd:documentation>
+						SomeCommentss
+					</xsd:documentation>
+				</xsd:annotation>
+			</xsd:element>
+		</xsd:choice>
+		<xsd:element name="ding" type="xsd:string">
+			<xsd:annotation>
+				<xsd:documentation>
+					SomeCommentss
+				</xsd:documentation>
+			</xsd:annotation>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType> 
+
+
+
+<xsd:annotation>
+	<xsd:appinfo>
+		info
+	</xsd:appinfo>
+	<xsd:documentation>
+		SomeComment
+	</xsd:documentation>
+	<xsd:documentation>
+		SomeComment2
+	</xsd:documentation>
+</xsd:annotation>
+
+<xsd:element name="Int" type="xsd:integer" nillable="false">
+	<xsd:annotation>
+		<xsd:documentation>
+			SomeComment
+		</xsd:documentation>
+	</xsd:annotation>
+</xsd:element>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/complexTypes.xsd b/regression_test/XML/XmlWorkflow/xsd/complexTypes.xsd
index 2fde44f17..d4e03432c 100644
--- a/regression_test/XML/XmlWorkflow/xsd/complexTypes.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/complexTypes.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/complex_nillable.xsd b/regression_test/XML/XmlWorkflow/xsd/complex_nillable.xsd
new file mode 100644
index 000000000..9c674f41f
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/complex_nillable.xsd
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/complex/nillable"> 
+
+
+
+  <xsd:complexType name="conditions-type">
+      <xsd:sequence>
+         <xsd:element name="caller-identity" nillable="true" minOccurs="0">
+            <xsd:complexType>
+               <xsd:choice>
+                  <xsd:element name="anonymous" type="string">
+                  </xsd:element>
+                  <!-- no nilling at the level of identity - use nilling on fcd-caller-identity to remove -->
+                  <xsd:element name="identity" type="string">
+                  </xsd:element>
+               </xsd:choice>
+            </xsd:complexType>
+         </xsd:element>
+         <!-- media is a multiple value parameter -->
+         <xsd:element name="media" type="xsd:string" nillable="true" minOccurs="0" maxOccurs="unbounded">
+         </xsd:element>
+         <xsd:element name="status" type="xsd:string" nillable="true" minOccurs="0" maxOccurs="unbounded">
+         </xsd:element>
+		 <xsd:element name="identity" type="string" nillable="true" minOccurs="0">
+			
+		</xsd:element>
+         <xsd:element name="request" type="string" nillable="true" minOccurs="0" maxOccurs="unbounded">
+            
+         </xsd:element>
+	</xsd:sequence>
+   </xsd:complexType>
+
+<xsd:element name='anything-nil' nillable='true'/> 
+<xsd:element name='anything-nil2' type="xsd:anyType" nillable='true'/> 
+
+<xsd:element name="common">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="integration" nillable="true" minOccurs="0" maxOccurs="5">
+				<xsd:complexType>
+					<xsd:sequence>
+						<xsd:element name="forename" type="xsd:string" nillable="true"/>
+						<xsd:element name="surname" type="xsd:string" nillable="true"/>
+						<xsd:element name="livingAddress" type="xsd:string"/>
+					</xsd:sequence>
+					<xsd:attribute name="bar" type="xsd:integer"/>
+					<xsd:attribute name="foo">
+						<xsd:simpleType>
+							<xsd:restriction base="string">
+								<xsd:length value="7"/>
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:attribute>
+					<xsd:attribute name="goo" type="xsd:integer"/>
+					<xsd:anyAttribute namespace="##targetNamespace"/>
+				</xsd:complexType>
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/complex_restriction_with_use.xsd b/regression_test/XML/XmlWorkflow/xsd/complex_restriction_with_use.xsd
new file mode 100644
index 000000000..f3d426781
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/complex_restriction_with_use.xsd
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?> 
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns="http://www.example.org/complex-restriction-with-use"
+targetNamespace="http://www.example.org/complex-restriction-with-use">
+<!-- The base type is: --> 
+<xs:complexType name="PurchaseOrderType"> 
+	<xs:sequence> 
+		<xs:element name="shipTo"     type="xs:string"/> 
+		<xs:element name="billTo"     type="xs:string" minOccurs="0"/> 
+		<xs:element name="items"      type="xs:string"/> 
+	</xs:sequence> 
+	<xs:attribute name="finishDate" type="xs:date"/> 
+	<xs:attribute name="shipDate" type="xs:date"/> 
+	<xs:attribute name="orderDate" type="xs:date"/> 
+</xs:complexType> 
+
+<!-- The restricting type is: --> 
+<xs:complexType name="RestrictedPurchaseOrderType">
+	<xs:complexContent> 
+		<xs:restriction base="PurchaseOrderType"> 
+			<xs:sequence> 
+				<xs:element name="shipTo" type="xs:string"/> 
+				<xs:element name="billTo" type="xs:string" minOccurs="1"/> 
+				<xs:element name="items"  type="xs:string"/> 
+			</xs:sequence> 
+			<xs:attribute name="finishDate" type="xs:date"/> 
+			<xs:attribute name="shipDate" type="xs:date" use="required" /> 
+			<xs:attribute name="orderDate" type="xs:date" use="prohibited" /> 
+		</xs:restriction> 
+	</xs:complexContent> 
+</xs:complexType> 
+
+<xs:element name="testsuite" type="testsuite"/>
+
+<xs:complexType name="testsuite">
+	<xs:sequence>
+		<xs:element name="properties">
+			<xs:complexType>
+			</xs:complexType>
+		</xs:element>
+	
+	</xs:sequence>
+	<xs:attribute name="time" type="xs:decimal" use="optional">
+	</xs:attribute>
+</xs:complexType>
+
+
+
+<xs:element name="testsuites">
+	<xs:complexType>
+		<xs:sequence>
+			<xs:element name="testsuite" >
+				<xs:complexType>
+					<xs:complexContent>
+						<xs:restriction base="testsuite">
+							<xs:sequence>
+								<xs:element name="properties">
+									<xs:complexType>
+									</xs:complexType>
+								</xs:element>
+							</xs:sequence>
+						<xs:attribute name="time" type="xs:decimal" use="required"/>
+						</xs:restriction>
+					</xs:complexContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+</xs:element>
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/complex_self_recursion.xsd b/regression_test/XML/XmlWorkflow/xsd/complex_self_recursion.xsd
new file mode 100644
index 000000000..2f11aa5cb
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/complex_self_recursion.xsd
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/self/recursion"
+ targetNamespace="www.example.org/self/recursion">
+
+<xsd:complexType name="X">
+	<xsd:sequence>
+		<xsd:element name="x" type="xsd:string"/>
+		<xsd:element name="y" minOccurs="0">
+			<xsd:complexType>
+				<xsd:complexContent>
+					<xsd:extension base="this:X">
+						<xsd:sequence>
+							<xsd:element name="z" type="xsd:string"/>
+						</xsd:sequence>
+						<xsd:attribute name="attr1" type="xsd:string" />
+					</xsd:extension>
+				</xsd:complexContent>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:sequence>
+	<xsd:attribute name="attr2" type="xsd:string" />
+</xsd:complexType>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/decimal_fractiondigits.xsd b/regression_test/XML/XmlWorkflow/xsd/decimal_fractiondigits.xsd
new file mode 100644
index 000000000..a9acff6a1
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/decimal_fractiondigits.xsd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/decimal/fractiondigits">
+
+<xs:simpleType name="celsiusBodyTemp">
+	<xs:restriction base="decimal">
+		<totalDigits value="4"/>
+		<fractionDigits value="1"/>
+	</xs:restriction>
+</xs:simpleType>
+
+<xs:element name="union_with_fraction">
+	<xs:simpleType>
+		<union>
+			<xs:simpleType>
+				<xs:restriction base="decimal">
+					<totalDigits value="4"/>
+					<fractionDigits value="1"/>
+				</xs:restriction>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:float"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:integer"/>
+			</xs:simpleType>
+		</union>
+	</xs:simpleType>
+</xs:element> 
+
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/dont_generate_element_substitution.xsd b/regression_test/XML/XmlWorkflow/xsd/dont_generate_element_substitution.xsd
new file mode 100644
index 000000000..8c76a1f86
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/dont_generate_element_substitution.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/dont/generate/element/substitution"
+ targetNamespace="www.example.org/dont/generate/element/substitution"
+ blockDefault="extension">
+
+<xsd:element name="head" type="string" />
+
+<xsd:element name="complexEnum">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="xsd:string">
+				<xsd:attribute name="foo" type="xsd:float"/>
+				<xsd:attribute name="bar" type="xsd:integer"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="member2"  substitutionGroup="this:head">
+	<xsd:complexType >
+		<xsd:complexContent>
+			<xsd:extension base="this:complexEnum">
+				<xsd:sequence>
+				</xsd:sequence>
+				<xsd:attribute name="unitOfAge" type="xsd:string"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType> 
+</xsd:element>
+
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/element_in_all_minmax.xsd b/regression_test/XML/XmlWorkflow/xsd/element_in_all_minmax.xsd
new file mode 100644
index 000000000..af29e60f4
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/element_in_all_minmax.xsd
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/element/in/all/minmax"
+ elementFormDefault="unqualified"> 
+
+
+<xsd:element name="MyComplexElem-13">
+	<xsd:complexType mixed="true">
+		<xsd:all>
+			<xsd:element name="a" type="xsd:string" minOccurs="2" maxOccurs="3"/>
+			<xsd:element name="b" type="xsd:boolean"/>
+		</xsd:all>
+	</xsd:complexType>
+</xsd:element> 
+
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/element_in_all_mixed.xsd b/regression_test/XML/XmlWorkflow/xsd/element_in_all_mixed.xsd
new file mode 100644
index 000000000..8eb448cdf
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/element_in_all_mixed.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/unnamed/union"
+ xmlns:ns="www.example.org/seq/element/in/all/mixed"
+ elementFormDefault="unqualified"> 
+
+
+
+<xsd:element name="MyComplexElem-13">
+	<xsd:complexType mixed="true">
+		<xsd:all>
+			<xsd:element name="a" type="xsd:string"/>
+			<xsd:element name="b" type="xsd:boolean"/>
+		</xsd:all>
+		<xsd:attribute name="foo" type="xsd:string" />
+	</xsd:complexType>
+</xsd:element> 
+
+
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/elements.xsd b/regression_test/XML/XmlWorkflow/xsd/elements.xsd
index 150d439ed..684ffbb6a 100644
--- a/regression_test/XML/XmlWorkflow/xsd/elements.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/elements.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/enum_field_names.xsd b/regression_test/XML/XmlWorkflow/xsd/enum_field_names.xsd
new file mode 100644
index 000000000..2d03616c2
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/enum_field_names.xsd
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/enum/field/names">
+<simpleType name="state">
+	<restriction base="string">
+		<enumeration value="Off"/>
+		<enumeration value="off"/>
+		<enumeration value="on"/>
+	</restriction>
+</simpleType>
+</schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/enumeration_remove_dup.xsd b/regression_test/XML/XmlWorkflow/xsd/enumeration_remove_dup.xsd
new file mode 100644
index 000000000..accf73237
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/enumeration_remove_dup.xsd
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/enumeration/remove/dup">
+
+<xsd:simpleType name="state">
+	<xsd:restriction base="xsd:string">
+		<xsd:enumeration value="off"/>
+		<xsd:enumeration value="7"/>
+		<xsd:enumeration value="onn"/>
+		<xsd:enumeration value="off"/>
+		<xsd:enumeration value="1"/>
+		<xsd:enumeration value="3"/>
+		<xsd:enumeration value="2"/>
+		<xsd:enumeration value="2"/>
+		<xsd:enumeration value="0"/>
+		<xsd:enumeration value="0"/>
+		<xsd:enumeration value="onn"/>
+		<xsd:enumeration value="i"/>
+		<xsd:enumeration value="i"/>
+		<xsd:enumeration value="off"/>
+		<xsd:enumeration value="off"/>
+		<xsd:enumeration value="off"/>
+	</xsd:restriction>
+</xsd:simpleType> 
+
+<xsd:simpleType name="state2">
+	<xsd:restriction base="xsd:integer">
+		<xsd:enumeration value="7"/>
+		<xsd:enumeration value="1"/>
+		<xsd:enumeration value="3"/>
+		<xsd:enumeration value="2"/>
+		<xsd:enumeration value="2"/>
+		<xsd:enumeration value="0"/>
+		<xsd:enumeration value="0"/>
+	</xsd:restriction>
+</xsd:simpleType> 
+
+<xsd:simpleType name="state3">
+	<xsd:restriction base="xsd:integer">
+		<xsd:enumeration value="7"/>
+	</xsd:restriction>
+</xsd:simpleType> 
+
+<xsd:simpleType name="state4">
+	<xsd:restriction base="xsd:integer">
+		<xsd:enumeration value="7"/>
+		<xsd:enumeration value="7"/>
+	</xsd:restriction>
+</xsd:simpleType> 
+
+<xsd:complexType name="state5">
+	<xsd:sequence>
+		<xsd:element name="ent_type">
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:string">
+					<xsd:enumeration value="unknown" />
+					<xsd:enumeration value="controlpart" />
+					<xsd:enumeration value="controlpart" />
+					<xsd:enumeration value="testcase" />
+					<xsd:enumeration value="unknown" />
+					<xsd:enumeration value="unknown" />
+					<xsd:enumeration value="altstep" />
+					<xsd:enumeration value="function" />
+					<xsd:enumeration value="external_function" />
+					<xsd:enumeration value="external_function" />
+					<xsd:enumeration value="template" />
+					<xsd:enumeration value="external_function" />
+					<xsd:enumeration value="template" />
+					<xsd:enumeration value="external_function" />
+					<xsd:enumeration value="testcase" />
+					<xsd:enumeration value="external_function" />
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/enumeration_restriction.xsd b/regression_test/XML/XmlWorkflow/xsd/enumeration_restriction.xsd
new file mode 100644
index 000000000..ccb09e6ba
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/enumeration_restriction.xsd
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/enumeration/restriction"
+ xmlns:this="www.example.org/enumeration/restriction">
+
+<xs:element name="e21unnamed">
+	<xs:simpleType>
+		<union>
+ 			<xs:simpleType>
+				<restriction base="xs:integer"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:float"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="xs:string"/>
+			</xs:simpleType>
+		</union>
+	</xs:simpleType>
+</xs:element>
+
+<xs:simpleType name="e22"> 
+	<xs:restriction base="this:e21unnamed">
+		<xs:enumeration value="20.4"/>
+		<xs:enumeration value="50"/>
+		<xs:enumeration value="small"/>
+	</xs:restriction>
+</xs:simpleType>
+
+
+<xs:element name="String_int">
+	<xs:simpleType>
+		<union>
+			<xs:simpleType>
+				<xs:restriction base="xs:string"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:integer"/>
+			</xs:simpleType>
+		</union>
+	</xs:simpleType>
+</xs:element>
+
+<xs:simpleType name="Everything_is_string"> 
+	<xs:restriction base="this:String_int">
+		<xs:enumeration value="20.4"/>
+		<xs:enumeration value="50"/>
+		<xs:enumeration value="small"/>
+	</xs:restriction>
+</xs:simpleType>
+
+<xs:element name="Mixed_Types">
+	<xs:simpleType>
+		<union>
+			<xs:simpleType>
+				<restriction base="xs:gDay"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="xs:gYear"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:gMonth"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:float"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:date"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:time"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:dateTime"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:gMonthDay"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:duration"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<restriction base="xs:gYearMonth"/>
+			</xs:simpleType>
+			<xs:simpleType>
+				<xs:restriction base="xs:string"/>
+			</xs:simpleType>	
+		</union>
+	</xs:simpleType>
+</xs:element>
+
+<xs:simpleType name="Mixed_Enum"> 
+	<xs:restriction base="this:Mixed_Types">
+		<xs:enumeration value="somestring"/>
+		<xs:enumeration value="2014-01-01"/>
+		<xs:enumeration value="20.4"/>
+		<xs:enumeration value="05:05:00"/>
+		<xs:enumeration value="---30"/>
+		<xs:enumeration value="--05"/>
+		<xs:enumeration value="0085"/>
+		<xs:enumeration value="3.14"/>
+		<xs:enumeration value="small"/>
+                <xs:enumeration value="2013-11-23T17:45:56"/>
+		<xs:enumeration value="--01-03"/>
+		<xs:enumeration value="1999-08"/>
+		<xs:enumeration value="P5Y2M10DT15H"/>
+	</xs:restriction>
+</xs:simpleType>
+
+<xs:element name="Only_int">
+	<xs:simpleType>
+		<union>
+			<xs:simpleType>
+				<restriction base="xs:integer"/>
+			</xs:simpleType>
+		</union>
+	</xs:simpleType>
+</xs:element>
+
+<xs:simpleType name="Ints"> 
+	<xs:restriction base="this:Only_int">
+		<xs:enumeration value="14"/>
+		<xs:enumeration value="somestring"/>
+	</xs:restriction>
+</xs:simpleType>
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/enumeration_restriction2.xsd b/regression_test/XML/XmlWorkflow/xsd/enumeration_restriction2.xsd
new file mode 100644
index 000000000..7dbb68be8
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/enumeration_restriction2.xsd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/seq/enumeration/restriction"
+ xmlns:ns2="www.example.org/seq/enumeration/restriction"
+ elementFormDefault="unqualified"> 
+
+
+<xsd:complexType name="MatchingProblemType">
+	<xsd:sequence>
+		<xsd:element name="operation">
+			<xsd:simpleType>
+				<xsd:restriction base="string">
+					<xsd:enumeration value="receive" />
+					<xsd:enumeration value="trigger" />
+					<xsd:enumeration value="getcall" />
+					<xsd:enumeration value="getreply" />
+					<xsd:enumeration value="catch" />
+					<xsd:enumeration value="check" >
+					<annotation><documentation>Must be "any port"!</documentation></annotation>
+					</xsd:enumeration>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="MatchingProblemTypeRestricted">
+	<xsd:sequence>
+		<xsd:element name="operation">
+			<xsd:simpleType>
+				<xsd:restriction>
+					<xsd:simpleType>
+						<xsd:restriction base="xsd:string">
+							<xsd:enumeration value="white"/>
+							<xsd:enumeration value="black"/>
+							<xsd:enumeration value="red"/>
+						</xsd:restriction>
+					</xsd:simpleType>
+					<xsd:minLength value="2"/>
+					<xsd:maxLength value="4"/>
+				</xsd:restriction>
+			</xsd:simpleType> 
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/extending_complex_types.xsd b/regression_test/XML/XmlWorkflow/xsd/extending_complex_types.xsd
index ca0b6b6cf..2d9df2ed3 100644
--- a/regression_test/XML/XmlWorkflow/xsd/extending_complex_types.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/extending_complex_types.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd b/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd
new file mode 100644
index 000000000..a6f1a2fce
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/fixed_value.xsd
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/fixed/value">
+
+<xsd:element name="StringType" type="xsd:string" fixed="a"/>
+<xsd:element name="IntegerType" type="xsd:integer" fixed="7"/>
+<xsd:element name="FloatType" type="xsd:float" fixed="7.0"/>
+<xsd:element name="DoubleType" type="xsd:double" fixed="7.0"/>
+<xsd:element name="BooleanType" type="xsd:boolean" fixed="true"/>
+<xsd:element name="BooleanType2" type="xsd:boolean" fixed="0"/>
+<xsd:element name="DateType" type="xsd:date" fixed="2011-11-11"/>
+<xsd:element name="TimeType" type="xsd:time" fixed="11:11:11"/>
+<xsd:element name="DateTimeType" type="xsd:dateTime" fixed="2002-05-30T09:00:00"/>
+<xsd:element name="DayType" type="xsd:gDay" fixed="---13"/>
+<xsd:element name="MonthType" type="xsd:gMonth" fixed="--11"/>
+<xsd:element name="MonthDayType" type="xsd:gMonthDay" fixed="--11-30"/>
+<xsd:element name="YearType" type="xsd:gYear" fixed="1999"/>
+<xsd:element name="YearMonthType" type="xsd:gYearMonth" fixed="1999-11"/>
+
+<xsd:element name="HexType" type="xsd:hexBinary" fixed="AA"/>
+<xsd:element name="Base64Type" type="xsd:base64Binary" fixed="    QQ==   "/>
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/generate_element_substitution.xsd b/regression_test/XML/XmlWorkflow/xsd/generate_element_substitution.xsd
new file mode 100644
index 000000000..435600ecf
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/generate_element_substitution.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/generate/element/substitution"
+ targetNamespace="www.example.org/generate/element/substitution"
+ blockDefault="extension">
+
+<xsd:element name="head" type="string" />
+
+<xsd:element name="complexEnum">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="xsd:string">
+				<xsd:attribute name="foo" type="xsd:float"/>
+				<xsd:attribute name="bar" type="xsd:integer"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="member2"  substitutionGroup="this:head">
+	<xsd:complexType >
+		<xsd:complexContent>
+			<xsd:extension base="this:complexEnum">
+				<xsd:sequence>
+				</xsd:sequence>
+				<xsd:attribute name="unitOfAge" type="xsd:string"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType> 
+</xsd:element>
+
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/group_all.xsd b/regression_test/XML/XmlWorkflow/xsd/group_all.xsd
index 7c30929ca..32daca650 100644
--- a/regression_test/XML/XmlWorkflow/xsd/group_all.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/group_all.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/groups.xsd b/regression_test/XML/XmlWorkflow/xsd/groups.xsd
index 248de0a0d..292a77420 100644
--- a/regression_test/XML/XmlWorkflow/xsd/groups.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/groups.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/id_attrib.xsd b/regression_test/XML/XmlWorkflow/xsd/id_attrib.xsd
new file mode 100644
index 000000000..370043ca5
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/id_attrib.xsd
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/id_attrib">
+
+<xs:simpleType name="TypeName" id="some_id">
+	<xs:restriction base="float"/>
+</xs:simpleType> 
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/import_prefix_name.xsd b/regression_test/XML/XmlWorkflow/xsd/import_prefix_name.xsd
new file mode 100644
index 000000000..5ca8e0663
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/import_prefix_name.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/import/prefix"
+ xmlns:this="www.example.org/import/prefix"
+ xmlns:imp="www.example.org/imported">
+<xs:import namespace="www.example.org/imported" schemaLocation="imported_prefix_name.xsd"/>
+
+<xs:element name="Foobar" type="imp:foobar"/>
+
+<xs:attribute name="Ding" type="imp:ding"/>
+
+<xs:complexType name="valami">
+	<xs:sequence>
+		<xs:element name="Foobar" type="imp:foobar"/>
+	</xs:sequence>
+	<xs:attribute name="Ding" type="imp:ding"/>
+</xs:complexType>
+
+<xs:element name="Valami" type="this:valami"/>
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/imported2.xsd b/regression_test/XML/XmlWorkflow/xsd/imported2.xsd
new file mode 100644
index 000000000..5229db688
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/imported2.xsd
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+ targetNamespace="www.example.org/imported2">
+
+<xsd:simpleType name="foobar">
+	<xsd:restriction base="integer"/>
+</xsd:simpleType>
+
+<xsd:simpleType name="ding">
+	<xsd:restriction base="integer"/>
+</xsd:simpleType>
+
+<xsd:element name="bar">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="something" type="string" minOccurs="0"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/imported_module.xsd b/regression_test/XML/XmlWorkflow/xsd/imported_module.xsd
new file mode 100644
index 000000000..1e1530724
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/imported_module.xsd
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+  targetNamespace="imported_module"
+  xmlns:ns1="imported_module">
+  <element name="MyType" type="string"/>
+
+</schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/imported_module_.xsd b/regression_test/XML/XmlWorkflow/xsd/imported_module_.xsd
new file mode 100644
index 000000000..4d3fca509
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/imported_module_.xsd
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+  targetNamespace="imported_module_"
+  xmlns:ns2="imported_module">
+  <element name="MyType" type="integer"/>
+</schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/imported_prefix_name.xsd b/regression_test/XML/XmlWorkflow/xsd/imported_prefix_name.xsd
new file mode 100644
index 000000000..03df4768a
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/imported_prefix_name.xsd
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+ targetNamespace="www.example.org/imported">
+
+<xsd:simpleType name="foobar">
+	<xsd:restriction base="integer"/>
+</xsd:simpleType>
+
+<xsd:simpleType name="ding">
+	<xsd:restriction base="integer"/>
+</xsd:simpleType>
+
+<xsd:element name="bar">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="something" type="string" minOccurs="0"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+<xsd:attribute name="lang" type="xsd:language">
+		<xsd:annotation>
+			<xsd:documentation>In due course, we should install the relevant ISO 2- and 3-letter
+         codes as the enumerated possible values . . .</xsd:documentation>
+		</xsd:annotation>
+	</xsd:attribute>
+
+</xsd:schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/include1dir1a.xsd b/regression_test/XML/XmlWorkflow/xsd/include1dir1a.xsd
index ff11c8a5c..e1a38d96b 100644
--- a/regression_test/XML/XmlWorkflow/xsd/include1dir1a.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/include1dir1a.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/include1dir1b.xsd b/regression_test/XML/XmlWorkflow/xsd/include1dir1b.xsd
index 33abc97c8..f351c9897 100644
--- a/regression_test/XML/XmlWorkflow/xsd/include1dir1b.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/include1dir1b.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/include1dir2a.xsd b/regression_test/XML/XmlWorkflow/xsd/include1dir2a.xsd
index 7d727bc0c..62f22cefe 100644
--- a/regression_test/XML/XmlWorkflow/xsd/include1dir2a.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/include1dir2a.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/include1dir2b.xsd b/regression_test/XML/XmlWorkflow/xsd/include1dir2b.xsd
index 8151fb972..ae2765aea 100644
--- a/regression_test/XML/XmlWorkflow/xsd/include1dir2b.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/include1dir2b.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular1a.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular1a.xsd
index 75334d093..34c0b81e2 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular1a.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular1a.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular1b.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular1b.xsd
index 8fa9f434d..dbe3396f6 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular1b.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular1b.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular2a.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular2a.xsd
index bfd3608c5..63ebec149 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular2a.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular2a.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular2b.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular2b.xsd
index b72435c20..77776a2b8 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular2b.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular2b.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular3a.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular3a.xsd
index 87e70b27b..db251999d 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular3a.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular3a.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular3b.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular3b.xsd
index 4a2229b69..78c4ffce5 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular3b.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular3b.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular4a.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular4a.xsd
index 5014b1cb0..1c140f613 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular4a.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular4a.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/includeCircular4b.xsd b/regression_test/XML/XmlWorkflow/xsd/includeCircular4b.xsd
index e31ec0efc..10daa4943 100644
--- a/regression_test/XML/XmlWorkflow/xsd/includeCircular4b.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/includeCircular4b.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/list.xsd b/regression_test/XML/XmlWorkflow/xsd/list.xsd
index ecc739a43..c5adcff06 100644
--- a/regression_test/XML/XmlWorkflow/xsd/list.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/list.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/list_invalid.xsd b/regression_test/XML/XmlWorkflow/xsd/list_invalid.xsd
index c37773052..5289b4939 100644
--- a/regression_test/XML/XmlWorkflow/xsd/list_invalid.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/list_invalid.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/list_simpletype.xsd b/regression_test/XML/XmlWorkflow/xsd/list_simpletype.xsd
new file mode 100644
index 000000000..6cd1129b5
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/list_simpletype.xsd
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/list/simpletype"
+ targetNamespace="www.example.org/list/simpletype">
+
+<xsd:element name="SimpleListEnumeration">
+	<xsd:simpleType>
+		<xsd:list>
+			<xsd:simpleType>
+				<xsd:restriction base="string">
+					<xsd:enumeration value="Red"/>
+					<xsd:enumeration value="Orange"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:list>
+	</xsd:simpleType>
+</xsd:element>
+
+<xsd:element name="SimpleListUnion">
+	<xsd:simpleType>
+		<xsd:list>
+			<xsd:simpleType>
+				<xsd:union>
+					<xsd:simpleType>
+						<xsd:restriction base="boolean" />
+					</xsd:simpleType>
+					<xsd:simpleType>
+						<xsd:restriction base="float" />
+					</xsd:simpleType>
+				</xsd:union>
+			</xsd:simpleType>
+		</xsd:list>
+	</xsd:simpleType>
+</xsd:element>
+
+<xsd:element name="SimpleListEnumerationNumber">
+	<xsd:simpleType>
+		<xsd:list>
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:integer">
+				<xsd:enumeration value="0"/>
+				<xsd:enumeration value="5"/>
+				<xsd:enumeration value="-5"/>
+				<xsd:enumeration value="10"/>
+				</xsd:restriction>
+			</xsd:simpleType> 
+		</xsd:list>
+	</xsd:simpleType>
+</xsd:element>
+
+<xsd:element name="ComplexListUnionEnumeration">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="ListEnumeration">
+				<xsd:simpleType>
+					<xsd:list>
+						<xsd:simpleType>
+							<xsd:restriction base="string">
+								<xsd:enumeration value="Red"/>
+								<xsd:enumeration value="Orange"/>
+							</xsd:restriction>
+						</xsd:simpleType>
+					</xsd:list>
+				</xsd:simpleType>
+			</xsd:element>
+			<xsd:element name="ListUnion">
+				<xsd:simpleType>
+					<xsd:list>
+						<xsd:simpleType>
+							<xsd:union>
+								<xsd:simpleType>
+									<xsd:restriction base="boolean" />
+								</xsd:simpleType>
+								<xsd:simpleType>
+									<xsd:restriction base="float" />
+								</xsd:simpleType>
+							</xsd:union>
+						</xsd:simpleType>
+					</xsd:list>
+				</xsd:simpleType>
+			</xsd:element>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/long_extension.xsd b/regression_test/XML/XmlWorkflow/xsd/long_extension.xsd
new file mode 100644
index 000000000..fe49abe98
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/long_extension.xsd
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/long/extension"
+xmlns:xml="http://www.w3.org/XML/1675/namespace"
+ targetNamespace="www.example.org/long/extension">
+
+<xsd:element name="Top">
+	<xsd:complexType>
+		<xsd:complexContent>
+			<xsd:extension base="this:TopBase1">
+				<xsd:sequence>
+					<xsd:element name="Subelem" minOccurs="0" maxOccurs="unbounded"
+type="string"/>
+				</xsd:sequence>
+				<xsd:attribute name="SubAttrib" type="string" use="required"/>
+			</xsd:extension>
+		</xsd:complexContent>
+	</xsd:complexType>
+</xsd:element>
+
+
+<xsd:complexType name="TopBase1">
+	<xsd:complexContent>
+		<xsd:extension base="this:baseElement">
+			<xsd:sequence>
+				<xsd:element name="author" type="xsd:string"/>
+				<xsd:element name="action" minOccurs="0" maxOccurs="unbounded">
+					<xsd:complexType>
+						<xsd:complexContent>
+							<xsd:extension base="this:namedBaseElement">
+								<xsd:sequence>
+									<xsd:element name="parameter" type="string" minOccurs="0" maxOccurs="unbounded"/>
+								</xsd:sequence>
+							</xsd:extension>
+						</xsd:complexContent>
+					</xsd:complexType>
+				</xsd:element>
+				<xsd:element name="event" minOccurs="0" maxOccurs="unbounded">
+					<xsd:complexType>
+						<xsd:complexContent>
+							<xsd:extension base="this:response">
+								<xsd:sequence>
+									<xsd:element name="description" type="xsd:string"/>
+								</xsd:sequence>
+								<xsd:attribute name="name" type="xsd:Name" use="required"/>
+							</xsd:extension>
+						</xsd:complexContent>
+					</xsd:complexType>
+				</xsd:element>
+			</xsd:sequence>
+			<xsd:attribute ref="xsd:string" use="required"/>
+		</xsd:extension>
+	</xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="namedBaseElement">
+	<xsd:complexContent>
+		<xsd:extension base="this:baseElement">
+			<xsd:attribute name="name" type="string" use="required"/>
+		</xsd:extension>
+	</xsd:complexContent>
+</xsd:complexType>
+<xsd:complexType name="baseElement">
+	<xsd:sequence>
+		<xsd:element name="label" type="xsd:string"/>
+	</xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="response">
+		<xsd:sequence>
+			<xsd:element name="item" type="string" minOccurs="0"/>
+		</xsd:sequence>
+</xsd:complexType>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/minBound_maxBound.xsd b/regression_test/XML/XmlWorkflow/xsd/minBound_maxBound.xsd
index 2c0cb61a4..9c8b56e64 100644
--- a/regression_test/XML/XmlWorkflow/xsd/minBound_maxBound.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/minBound_maxBound.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/minOccurs_maxOccurs.xsd b/regression_test/XML/XmlWorkflow/xsd/minOccurs_maxOccurs.xsd
index 114008b7e..4fcd13eeb 100644
--- a/regression_test/XML/XmlWorkflow/xsd/minOccurs_maxOccurs.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/minOccurs_maxOccurs.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/module_typename_conversion.xsd b/regression_test/XML/XmlWorkflow/xsd/module_typename_conversion.xsd
new file mode 100644
index 000000000..595b9f74e
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/module_typename_conversion.xsd
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  targetNamespace="module_typename_conversion">
+  <xsd:import namespace="MyTypes" schemaLocation="module_typename_conversion_1.xsd"/>
+
+<xsd:attribute name="MyTypes__" type="string"/>
+
+<xsd:element name="MyTypes_" type="string"/>
+
+<xsd:element name="MyTypes">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="MyTypes" type="string"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/module_typename_conversion_1.xsd b/regression_test/XML/XmlWorkflow/xsd/module_typename_conversion_1.xsd
new file mode 100644
index 000000000..03fc277b0
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/module_typename_conversion_1.xsd
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  targetNamespace="MyTypes">
+
+<xsd:attribute name="MyTypes__" type="string"/>
+
+<xsd:element name="MyTypes_" type="string"/>
+
+<xsd:element name="MyTypes">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="MyTypes" type="string"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute.xsd b/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute.xsd
index 5a2d55c29..6f28821e9 100644
--- a/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?> 
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute_noNsPrefix.xsd b/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute_noNsPrefix.xsd
index d393f17ba..8cf9100e0 100644
--- a/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute_noNsPrefix.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/name_clash_element-attribute_noNsPrefix.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?> 
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/name_conv_non_alphanumeric.xsd b/regression_test/XML/XmlWorkflow/xsd/name_conv_non_alphanumeric.xsd
new file mode 100644
index 000000000..28671c9e9
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/name_conv_non_alphanumeric.xsd
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://www.example.org/name_conv2;;;;;;" >
+
+</schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/name_conv_remove_seq_of_low_line.xsd b/regression_test/XML/XmlWorkflow/xsd/name_conv_remove_seq_of_low_line.xsd
new file mode 100644
index 000000000..f354444ef
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/name_conv_remove_seq_of_low_line.xsd
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="http://////////www.example.org/name_conv3///" >
+
+</schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/name_conv_with_z.xsd b/regression_test/XML/XmlWorkflow/xsd/name_conv_with_z.xsd
new file mode 100644
index 000000000..16754266d
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/name_conv_with_z.xsd
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/name_conv/http://" >
+
+</schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/name_conversion_extension_attrib.xsd b/regression_test/XML/XmlWorkflow/xsd/name_conversion_extension_attrib.xsd
new file mode 100644
index 000000000..45dfea72d
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/name_conversion_extension_attrib.xsd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema
+   xmlns="name_conversion_extension_attrib"
+   targetNamespace="name_conversion_extension_attrib"
+   xmlns:xs="http://www.w3.org/2001/XMLSchema"
+  xmlns:ns="name_conversion_extension_attrib" 
+	 elementFormDefault="qualified"
+	 attributeFormDefault="unqualified">
+<xs:element name="Ol-name-type">
+	<xs:complexType>
+		<xs:sequence>
+			<xs:element name="allow-true-action" type="xs:integer">
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+</xs:element>
+<xs:element name="Ol-actions-type">
+	<xs:complexType>
+		<xs:sequence>
+                        <xs:element name="do-not-disturb" type="xs:integer">
+			</xs:element>
+			<xs:element name="play-segmented-announcement" nillable="true">
+					<xs:complexType>
+						<xs:complexContent>
+							<xs:extension base="ns:Ol-name-type">
+                       						<xs:attribute name="announcement-name" type="ns:Ol-name-type" use="required"/>
+							</xs:extension>
+						</xs:complexContent>
+					</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+</xs:element>
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/namespaceas.xsd b/regression_test/XML/XmlWorkflow/xsd/namespaceas.xsd
new file mode 100644
index 000000000..2887ce8d0
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/namespaceas.xsd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/namespaceas"
+ xmlns:other="www.example.org/imported2"
+ targetNamespace="www.example.org/namespaceas">
+ <xsd:import namespace="www.example.org/imported2" schemaLocation="imported2.xsd"/>
+
+<xsd:element name="SomeType" type="other:foobar"/>
+
+
+
+<xsd:element name="Type">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="something" type="other:foobar" minOccurs="0" />
+			<xsd:element ref="other:foobar"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:complexType name="OtherType">
+	<xsd:sequence>
+		<xsd:element name="billingAccountNumber">
+			<xsd:simpleType>
+				<xsd:restriction base="other:foobar"/>
+			</xsd:simpleType>
+		</xsd:element>
+		<xsd:element name="something">
+			<xsd:complexType><xsd:simpleContent>
+				<xsd:extension base="other:foobar"/>
+			</xsd:simpleContent></xsd:complexType>
+		</xsd:element>
+		<xsd:element name="something2">
+			<xsd:complexType>
+				<xsd:simpleContent>
+					<xsd:extension base="other:bar"/>
+				</xsd:simpleContent>
+			</xsd:complexType>
+		</xsd:element>
+		<xsd:element name="something3">
+			<xsd:complexType>
+				<xsd:complexContent>
+					<xsd:extension base="other:bar"/>
+				</xsd:complexContent>
+			</xsd:complexType>
+		</xsd:element>
+		<xsd:element name="something4">
+			<xsd:complexType>
+					<xsd:complexContent>
+						<xsd:restriction base="other:bar">
+							<xsd:element name="something" type="string" minOccurs="1"/>
+					</xsd:restriction>
+				</xsd:complexContent>
+			</xsd:complexType>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/nillable_annotations.xsd b/regression_test/XML/XmlWorkflow/xsd/nillable_annotations.xsd
new file mode 100644
index 000000000..fa616c4b0
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/nillable_annotations.xsd
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="nillable_annotations" elementFormDefault="qualified" attributeFormDefault="unqualified">
+	<xs:annotation>
+		<xs:documentation xml:lang="en">
+		SomeComment
+		</xs:documentation>
+	</xs:annotation>
+	<xs:element name="abbreviated-dialing" nillable="true">
+		<xs:complexType>
+			<xs:sequence>
+				<xs:element name="abbreviated-dialing-operator-configuration" type="xs:integer" nillable="true" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>
+						SomeComment
+						</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+				<xs:element name="abbreviated-dialing-user-configuration" type="xs:integer" nillable="true" minOccurs="0">
+					<xs:annotation>
+						<xs:documentation>
+						SomeComment
+						</xs:documentation>
+					</xs:annotation>
+				</xs:element>
+			</xs:sequence>
+		</xs:complexType>
+	</xs:element>
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/nillable_fixed.xsd b/regression_test/XML/XmlWorkflow/xsd/nillable_fixed.xsd
new file mode 100644
index 000000000..54da36515
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/nillable_fixed.xsd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/nillable/fixed">
+
+<xsd:element name="remarkNillable" type="xsd:string" nillable="true" fixed="fixed"/> 
+
+<xsd:element name="e16c">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="foo" type="xsd:integer"/>
+			<xsd:element name="bar" type="xsd:string" nillable="true" fixed="fixed"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="SeqNillable" nillable="true">
+	<xsd:complexType>
+		<xsd:sequence>
+		<xsd:element name="forename" type="xsd:string" nillable="true" fixed="ok"/>
+		<xsd:element name="surname" type="xsd:string" minOccurs="0" nillable="true" default="default"/>
+		<xsd:element name="livingAddress" type="xsd:string" minOccurs="0"
+		maxOccurs="unbounded" nillable="true" fixed="fixed"/>
+		</xsd:sequence>
+		<xsd:attribute name="foo" type="xsd:integer" fixed="1"/>
+		<xsd:attribute name="bar" type="xsd:integer"/>
+	</xsd:complexType>
+</xsd:element> 
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/nillable_in_nillable_extension.xsd b/regression_test/XML/XmlWorkflow/xsd/nillable_in_nillable_extension.xsd
new file mode 100644
index 000000000..955c1c31a
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/nillable_in_nillable_extension.xsd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
+xmlns:ns12="http://www.example.org/nillable/in/nillable/extension"
+targetNamespace="http://www.example.org/nillable/in/nillable/extension"
+elementFormDefault="qualified"
+attributeFormDefault="unqualified">
+
+<xs:complexType name="SeqNillable">
+	<xs:sequence>
+		<xs:element name="Number" type="xs:integer" minOccurs="0">
+		</xs:element>
+		<xs:element name="NillableNumber" type="xs:integer" minOccurs="0" maxOccurs="32" nillable="true">
+		</xs:element>
+	</xs:sequence>
+</xs:complexType>
+
+<xs:element name="NillableInRecord">
+	<xs:complexType>
+		<xs:sequence>
+			<xs:element name="allow-do-not" type="xs:boolean">
+			</xs:element>
+			<xs:element name="SeqNillableExtended" minOccurs="0" maxOccurs="1" nillable="true">
+				<xs:complexType>
+					<xs:complexContent>
+						<xs:extension base="ns12:SeqNillable">
+							<xs:attribute name="PhoneNumber" type="xs:integer">
+							</xs:attribute>
+						</xs:extension>
+					</xs:complexContent>
+				</xs:complexType>
+			</xs:element>
+		</xs:sequence>
+	</xs:complexType>
+</xs:element>
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/no_ns_connector.xsd b/regression_test/XML/XmlWorkflow/xsd/no_ns_connector.xsd
new file mode 100644
index 000000000..d834536fc
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/no_ns_connector.xsd
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    xmlns="www.example.org/no/ns/connector"
+    targetNamespace="www.example.org/no/ns/connector">
+
+<xsd:element name="java-attribute" type="java-attribute" />
+
+<xsd:complexType name="java-attribute" abstract="true">
+	<xsd:attribute name="java-attribute" type="xsd:string"/>
+	<xsd:attribute name="xml-accessor-type" type="string"/>
+</xsd:complexType>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/not_a_number_minex_inf_maxex_-inf.xsd b/regression_test/XML/XmlWorkflow/xsd/not_a_number_minex_inf_maxex_-inf.xsd
new file mode 100644
index 000000000..fbaefbdf9
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/not_a_number_minex_inf_maxex_-inf.xsd
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/not_a_number/minex_inf/maxex_-inf">
+
+<xs:simpleType name="e9e">
+	<xs:restriction base="float">
+		<xs:minInclusive value="NaN"/>
+	</xs:restriction>
+</xs:simpleType> 
+
+<xs:simpleType name="e9e_1">
+	<xs:restriction base="float">
+		<xs:minExclusive value="NaN"/>
+	</xs:restriction>
+</xs:simpleType> 
+
+<xs:simpleType name="e9e_2">
+	<xs:restriction base="float">
+		<xs:minInclusive value="1.0"/>
+		<xs:maxInclusive value="NaN"/>
+	</xs:restriction>
+</xs:simpleType> 
+
+<xs:simpleType name="e9e_3">
+	<xs:restriction base="float">
+		<xs:maxExclusive value="NaN"/>
+	</xs:restriction>
+</xs:simpleType> 
+
+<xs:simpleType name="e9e_4">
+	<xs:restriction base="float">
+		<xs:maxExclusive value="-INF"/>
+	</xs:restriction>
+</xs:simpleType> 
+
+<xs:simpleType name="e9e_5">
+	<xs:restriction base="float">
+		<xs:minExclusive value="INF"/>
+	</xs:restriction>
+</xs:simpleType> 
+
+<xs:element name="union_maxeclusive_NaN">
+	<xs:simpleType>
+	<union>
+		<xs:simpleType>
+			<xs:restriction base="xs:string"/>
+		</xs:simpleType>
+
+		<xs:simpleType>
+			<restriction base="xs:float">
+				<xs:maxExclusive value="NaN"/>
+			</restriction>
+		</xs:simpleType>
+
+		<xs:simpleType>
+			<restriction base="xs:integer"/>
+		</xs:simpleType>
+		</union>
+	</xs:simpleType>
+</xs:element>
+
+
+
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/qualified_element_attrib.xsd b/regression_test/XML/XmlWorkflow/xsd/qualified_element_attrib.xsd
new file mode 100644
index 000000000..cd58d2c5a
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/qualified_element_attrib.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns22="www.example.org/qualified/element/attrib"
+ targetNamespace="www.example.org/qualified/element/attrib"
+ elementFormDefault="qualified"
+ attributeFormDefault="qualified"> 
+
+
+<xsd:element name="elements">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="elem1" type="string"/>
+			<xsd:element name="elem2" type="string" form="qualified"/>
+			<xsd:element name="elem3" type="string" form="unqualified"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="attributes">
+	<xsd:complexType>
+		<xsd:attribute name="attrib1" type="string"/>
+		<xsd:attribute name="attrib2" type="string" form="qualified"/>
+		<xsd:attribute name="attrib3" type="string" form="unqualified"/>
+	</xsd:complexType>
+</xsd:element>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/ranges_float.xsd b/regression_test/XML/XmlWorkflow/xsd/ranges_float.xsd
index 0676056de..603b8c298 100644
--- a/regression_test/XML/XmlWorkflow/xsd/ranges_float.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/ranges_float.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd b/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd
index 4e929bb22..91f901397 100644
--- a/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/ranges_integer.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/regex_square_brackets.xsd b/regression_test/XML/XmlWorkflow/xsd/regex_square_brackets.xsd
new file mode 100644
index 000000000..532220d37
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/regex_square_brackets.xsd
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/regex/square/brackets">
+
+<xs:simpleType name="pattern1">
+	<xs:restriction base="xs:string">
+		<xs:pattern value="}[(@){1,5}{}|\\.\[\]]{3,}"/>
+	</xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="pattern2">
+	<xs:restriction base="xs:string">
+		<xs:pattern value="{[?.a-zA-Z(@){1,3},\[\]/\^{}]?"/>
+	</xs:restriction>
+</xs:simpleType>
+
+<xs:simpleType name="pattern3">
+	<xs:restriction base="xs:string">
+		<xs:pattern value="(sip:(^[a-zA-Z0-9\+\-_]*(!.*!)?[(@){1}a-zA-Z0-9\.\-_]){1,71})|tel:\+([\-.()0-9]*(!.*!)?){4,71}"/>
+	</xs:restriction>
+</xs:simpleType>
+
+</schema> 
diff --git a/regression_test/XML/XmlWorkflow/xsd/restricting_complex_types.xsd b/regression_test/XML/XmlWorkflow/xsd/restricting_complex_types.xsd
index c2b0c19b4..0e8bd4ccd 100644
--- a/regression_test/XML/XmlWorkflow/xsd/restricting_complex_types.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/restricting_complex_types.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?> 
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/schema.xsd b/regression_test/XML/XmlWorkflow/xsd/schema.xsd
index 53527a086..8ebbbb3f3 100644
--- a/regression_test/XML/XmlWorkflow/xsd/schema.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/schema.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?> 
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/seq_group_reference.xsd b/regression_test/XML/XmlWorkflow/xsd/seq_group_reference.xsd
new file mode 100644
index 000000000..509bc194f
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/seq_group_reference.xsd
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/seq/group/reference"
+ xmlns:ns9="www.example.org/seq/group/reference"
+ elementFormDefault="unqualified"> 
+
+<xsd:complexType name="e15f">
+	<xsd:sequence>
+		<xsd:element name="foobarGroup" type="xsd:string"/>
+		<xsd:group ref="ns9:foobarGroup"/>
+	</xsd:sequence>
+</xsd:complexType> 
+
+<xsd:complexType name="e15fa">
+	<xsd:sequence>
+		<xsd:element name="foobarGroup" minOccurs="0" maxOccurs="unbounded" type="xsd:string"/>
+		<xsd:group ref="ns9:foobarGroup" minOccurs="5" maxOccurs="10"/>
+	</xsd:sequence>
+</xsd:complexType> 
+
+
+<xsd:group name="foobarGroup">
+	<xsd:sequence>
+		<xsd:element name="foo" type="xsd:string"/>
+		<xsd:element name="bar" type="xsd:string"/>
+	</xsd:sequence>
+</xsd:group>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/sequence_embeds_sequence.xsd b/regression_test/XML/XmlWorkflow/xsd/sequence_embeds_sequence.xsd
new file mode 100644
index 000000000..bfbfeb295
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/sequence_embeds_sequence.xsd
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
+xmlns:xs="http://www.w3.org/2001/XMLSchema"
+targetNamespace="http://www.example.org/seq-embeds-seq">
+<xs:complexType name="e34b">
+	<xs:choice>
+		<xs:sequence>
+			<xs:sequence>
+				<xs:element name="foo" type="xs:string"/>
+				<xs:element name="bar" type="xs:string"/>
+			</xs:sequence>
+			<xs:element name="ding" type="xs:string"/>
+			<xs:element name="foo" type="xs:string"/>
+			<xs:element name="bar" type="xs:string"/>
+		</xs:sequence>
+		<xs:element name="ding" type="xs:string"/>
+	</xs:choice>
+</xs:complexType>
+<xs:complexType name="e40a">
+	<xs:sequence>
+		<xs:sequence>
+			<xs:element name="foo" type="xs:string"/>
+			<xs:element name="bar" type="xs:string"/>
+		</xs:sequence>
+		<xs:element name="ding" type="xs:string"/>
+	</xs:sequence>
+</xs:complexType>
+</xs:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/simpletype_base.xsd b/regression_test/XML/XmlWorkflow/xsd/simpletype_base.xsd
new file mode 100644
index 000000000..0ceade97a
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/simpletype_base.xsd
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    xmlns:this="www.example.org/simpletype/base"
+    targetNamespace="www.example.org/simpletype/base">
+
+<xsd:complexType name="SimpleTypebase">
+	<xsd:simpleContent>
+		<xsd:restriction base="string">
+			<xsd:enumeration value="unknown" />
+		</xsd:restriction>
+	</xsd:simpleContent>
+</xsd:complexType>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/simpletype_ref.xsd b/regression_test/XML/XmlWorkflow/xsd/simpletype_ref.xsd
new file mode 100644
index 000000000..ff05d58cb
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/simpletype_ref.xsd
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/simpletype/ref"
+ targetNamespace="www.example.org/simpletype/ref">
+
+<xsd:element name="SomeType">
+	<xsd:complexType>
+		<xsd:complexContent>
+			<xsd:restriction base="this:Type">
+				<xsd:sequence>
+					<xsd:element name="something" type="xsd:string"/>
+				</xsd:sequence>
+			</xsd:restriction>
+		</xsd:complexContent>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="Type">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="something" type="xsd:string" minOccurs="0" />
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:complexType name="OtherType">
+	<xsd:sequence>
+		<xsd:element name="billingAccountNumber">
+			<xsd:simpleType>
+				<xsd:restriction base="this:SomeType"/>
+			</xsd:simpleType>
+		</xsd:element>
+		<xsd:element name="installmentPlanId">
+			<xsd:simpleType>
+				<xsd:restriction base="xsd:long">
+					<xsd:totalDigits value="5"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:element>
+		<xsd:element minOccurs="0" name="info">
+			<xsd:simpleType>
+				<xsd:restriction base="this:Info">
+					<xsd:maxLength value="30"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:element>
+	</xsd:sequence>
+</xsd:complexType>
+
+<xsd:simpleType name="start_list">
+	<xsd:list itemType="xsd:string"/>
+</xsd:simpleType>
+
+<xsd:simpleType name='List_ref'>
+	<xsd:restriction base='this:start_list'>
+		<xsd:length value="4"/>
+	</xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name='Info'>
+	<xsd:restriction base='xsd:string'/>
+</xsd:simpleType>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/simpletype_restrict_comp.xsd b/regression_test/XML/XmlWorkflow/xsd/simpletype_restrict_comp.xsd
new file mode 100644
index 000000000..7b4e97c82
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/simpletype_restrict_comp.xsd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/simpletype/restrict/comp"
+ xmlns:ns10="www.example.org/simpletype/restrict/comp"> 
+
+
+<xsd:simpleType name='HlrIdInfo'>
+	<xsd:annotation>
+		<xsd:documentation>Home Location Register Id</xsd:documentation>
+	</xsd:annotation>
+	<xsd:restriction base='xsd:string'>
+		<xsd:minLength value="10"/>
+	</xsd:restriction>
+</xsd:simpleType>
+
+<complexType name="Restricted">
+	<sequence>
+		<xsd:element minOccurs="0" name="hlrId">
+			<xsd:annotation>
+				<xsd:documentation>HLR Id</xsd:documentation>
+			</xsd:annotation>
+			<xsd:simpleType>
+				<xsd:restriction base="ns10:HlrIdInfo">
+					  <xsd:maxLength value="30"/>
+				</xsd:restriction>
+			</xsd:simpleType>
+		</xsd:element>
+	</sequence>
+</complexType>
+
+<xsd:element name='ipV6Address'>
+	<xsd:annotation>
+		<xsd:documentation>Static IP Address</xsd:documentation>
+	</xsd:annotation>
+	<xsd:simpleType>
+		<xsd:restriction base='ns10:IpV6AddressInfo'/>
+	</xsd:simpleType>
+</xsd:element>
+
+<xsd:simpleType name='IpV6AddressInfo'>
+	<xsd:annotation>
+		<xsd:documentation>IP V6 Address</xsd:documentation>
+	</xsd:annotation>
+	<xsd:restriction base='xsd:string'>
+		<xsd:pattern value='[0-9A-Fa-f]{1,4}(:[0-9A-Fa-f]{0,4}){7}'/>
+	</xsd:restriction>
+</xsd:simpleType>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup.xsd
new file mode 100644
index 000000000..64d9fa310
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup.xsd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/substitutiongroup"
+ targetNamespace="www.example.org/substitutiongroup">
+
+<!-- THE HEAD ELEMENT -->
+<xsd:element name="head" type="xsd:string" />
+
+<!-- SUBSTITUTION ELEMENT OF THE SAME TYPE AS THE HEAD -->
+<xsd:element name="member1" type="xsd:string" substitutionGroup="this:head"/>
+
+<!-- SUBSTITUTION ELEMENT OF A TYPE RESTRICTING THE TYPE OF THE HEAD -->
+<xsd:simpleType name="stringEnum">
+	<xsd:restriction base="xsd:string">
+		<xsd:enumeration value="something"/>
+		<xsd:enumeration value="else"/> 
+	</xsd:restriction>
+</xsd:simpleType>
+
+<xsd:element name="member2" type="this:stringEnum" substitutionGroup="this:head"/>
+
+<!-- SUBSTITUTION ELEMENT OF A TYPE EXTENDING THE TYPE OF THE HEAD -->
+<xsd:complexType name="complexEnum">
+	<xsd:simpleContent>
+		<xsd:extension base="xsd:string">
+			<xsd:attribute name="foo" type="xsd:float"/>
+			<xsd:attribute name="bar" type="xsd:integer"/>
+		</xsd:extension>
+	</xsd:simpleContent>
+</xsd:complexType>
+
+<xsd:element name="member3" type="this:complexEnum" substitutionGroup="this:head"/>
+
+<!-- TOP LEVEL ELEMENT TO DEMONSTRATE SUBSTITUTION -->
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_1.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_1.xsd
new file mode 100644
index 000000000..7b89a0c2f
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_1.xsd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/substitutiongroup/abstract/block/1"
+ targetNamespace="www.example.org/substitutiongroup/abstract/block/1">
+
+<!-- THE HEAD ELEMENT -->
+<xsd:element name="head" type="xsd:string" block="restriction" abstract="true"/>
+
+<!-- SUBSTITUTION ELEMENT OF THE SAME TYPE AS THE HEAD -->
+<xsd:element name="member1" type="xsd:string" substitutionGroup="this:head"/>
+
+<!-- SUBSTITUTION ELEMENT OF A TYPE RESTRICTING THE TYPE OF THE HEAD -->
+<xsd:simpleType name="stringEnum">
+	<xsd:restriction base="xsd:string">
+		<xsd:enumeration value="something"/>
+		<xsd:enumeration value="else"/> 
+	</xsd:restriction>
+</xsd:simpleType>
+
+<xsd:element name="member2" type="this:stringEnum" substitutionGroup="this:head"/>
+
+<!-- SUBSTITUTION ELEMENT OF A TYPE EXTENDING THE TYPE OF THE HEAD -->
+<xsd:complexType name="complexEnum">
+	<xsd:simpleContent>
+		<xsd:extension base="xsd:string">
+			<xsd:attribute name="foo" type="xsd:float"/>
+			<xsd:attribute name="bar" type="xsd:integer"/>
+		</xsd:extension>
+	</xsd:simpleContent>
+</xsd:complexType>
+
+<xsd:element name="member3" type="this:complexEnum" substitutionGroup="this:head"/>
+
+<!-- TOP LEVEL ELEMENT TO DEMONSTRATE SUBSTITUTION -->
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_2.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_2.xsd
new file mode 100644
index 000000000..3e5f37930
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_abstract_block_2.xsd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/substitutiongroup/abstract/block/2"
+ targetNamespace="www.example.org/substitutiongroup/abstract/block/2">
+
+<!-- THE HEAD ELEMENT -->
+<xsd:element name="head" type="xsd:string" block="extension" abstract="true"/>
+
+<!-- SUBSTITUTION ELEMENT OF THE SAME TYPE AS THE HEAD -->
+<xsd:element name="member1" type="xsd:string" substitutionGroup="this:head"/>
+
+<!-- SUBSTITUTION ELEMENT OF A TYPE RESTRICTING THE TYPE OF THE HEAD -->
+<xsd:simpleType name="stringEnum">
+	<xsd:restriction base="xsd:string">
+		<xsd:enumeration value="something"/>
+		<xsd:enumeration value="else"/> 
+	</xsd:restriction>
+</xsd:simpleType>
+
+<xsd:element name="member2" type="this:stringEnum" substitutionGroup="this:head"/>
+
+<!-- SUBSTITUTION ELEMENT OF A TYPE EXTENDING THE TYPE OF THE HEAD -->
+<xsd:complexType name="complexEnum">
+	<xsd:simpleContent>
+		<xsd:extension base="xsd:string">
+			<xsd:attribute name="foo" type="xsd:float"/>
+			<xsd:attribute name="bar" type="xsd:integer"/>
+		</xsd:extension>
+	</xsd:simpleContent>
+</xsd:complexType>
+
+<xsd:element name="member3" type="this:complexEnum" substitutionGroup="this:head"/>
+
+<!-- TOP LEVEL ELEMENT TO DEMONSTRATE SUBSTITUTION -->
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_complex_without_element.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_complex_without_element.xsd
new file mode 100644
index 000000000..3e72e95a6
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_complex_without_element.xsd
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/substitutiongroup/complex/without/element"
+ targetNamespace="www.example.org/substitutiongroup/complex/without/element"
+ blockDefault="#all">
+
+<xsd:element name="Head_group" type="string" />
+
+<xsd:element name="member" type="string" substitutionGroup="this:head"/>
+
+<xsd:element name="stringEnum" substitutionGroup="this:head">
+	<xsd:simpleType>
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="something"/>
+			<xsd:enumeration value="else"/>
+		</xsd:restriction>
+	</xsd:simpleType> 
+</xsd:element>
+
+<xsd:element name="head"  abstract="true">
+	<xsd:complexType >
+		<xsd:sequence>
+			<xsd:element name="Something" type="string" />
+		</xsd:sequence>
+		<xsd:attribute name="headAttrib" type="xsd:string"/>
+	</xsd:complexType>
+</xsd:element>
+
+
+<xsd:element name="member2" type="this:e26seq" substitutionGroup="this:head" />
+
+<xsd:complexType name="e26seq">
+	<xsd:complexContent>
+		<xsd:extension base="this:head">
+			<xsd:sequence>
+				<xsd:element name="ageElemExt" type="xsd:integer"/>
+			</xsd:sequence>
+			<xsd:attribute name="unitOfAge" type="xsd:string"/>
+		</xsd:extension>
+	</xsd:complexContent>
+</xsd:complexType> 
+
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_long_extension.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_long_extension.xsd
new file mode 100644
index 000000000..3bd3797a5
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_long_extension.xsd
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/substitutiongroup/long/extension"
+ targetNamespace="www.example.org/substitutiongroup/long/extension"
+ blockDefault="extension">
+
+
+<xsd:element name="head" type="string" />
+
+<xsd:element name="member" type="string" substitutionGroup="this:head"/>
+
+<xsd:element name="stringEnum" substitutionGroup="this:head">
+	<xsd:simpleType>
+		<xsd:restriction base="xsd:string">
+			<xsd:enumeration value="something"/>
+			<xsd:enumeration value="else"/>
+		</xsd:restriction>
+	</xsd:simpleType> 
+</xsd:element>
+
+<xsd:element name="complexEnum" substitutionGroup="this:head">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="xsd:string">
+				<xsd:attribute name="foo" type="xsd:float"/>
+				<xsd:attribute name="bar" type="xsd:integer"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="member3" type="this:e27seq" substitutionGroup="this:head"/>
+
+<xsd:complexType name="e27seq">
+	<xsd:simpleContent>
+		<xsd:extension base="this:member2">
+			
+			<xsd:attribute name="extAttrib" type="xsd:string"/>
+		</xsd:extension>
+	</xsd:simpleContent>
+</xsd:complexType> 
+
+
+<xsd:element name="member2" type="this:e26seq" substitutionGroup="this:head"/>
+
+<xsd:complexType name="e26seq">
+	<xsd:complexContent>
+		<xsd:extension base="this:complexEnum">
+			<xsd:sequence>
+				<xsd:element name="ageElemExt" type="xsd:integer"/>
+			</xsd:sequence>
+			<xsd:attribute name="unitOfAge" type="xsd:string"/>
+		</xsd:extension>
+	</xsd:complexContent>
+</xsd:complexType> 
+
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_main.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_main.xsd
new file mode 100644
index 000000000..cf7600bde
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_main.xsd
@@ -0,0 +1,17 @@
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            xmlns:A="www.example.org/substitutiongroup/main"
+            targetNamespace="www.example.org/substitutiongroup/main">
+
+<xsd:import namespace="www.example.org/substitutiongroup/ref"/>
+
+<xsd:element name="subsgroup" type="string" abstract="true" />
+
+<xsd:element name="refgroup" type="A:subsgroup" />
+
+<xsd:complexType name="complexGroup">
+	<xsd:sequence>
+		<xsd:element ref="A:subsgroup"/>
+	</xsd:sequence>
+</xsd:complexType>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_neg.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_neg.xsd
new file mode 100644
index 000000000..03e287d6a
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_neg.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/substitutiongroup/neg"
+ targetNamespace="www.example.org/substitutiongroup/neg"
+ blockDefault="extension">
+
+<xsd:element name="head" type="string" />
+
+<xsd:element name="complexEnum" substitutionGroup="this:not_head">
+	<xsd:complexType>
+		<xsd:simpleContent>
+			<xsd:extension base="xsd:string">
+				<xsd:attribute name="foo" type="xsd:float"/>
+				<xsd:attribute name="bar" type="xsd:integer"/>
+			</xsd:extension>
+		</xsd:simpleContent>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="ize">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element ref="this:head" minOccurs="0" maxOccurs="unbounded"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_ref.xsd b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_ref.xsd
new file mode 100644
index 000000000..4a7084f1d
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/substitutiongroup_ref.xsd
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
+    xmlns:this="www.example.org/substitutiongroup/ref"
+    xmlns:A="www.example.org/substitutiongroup/main"
+    targetNamespace="www.example.org/substitutiongroup/ref">
+
+<xsd:import namespace="www.example.org/substitutiongroup/main"/>
+
+<xsd:element name="replace" type="string" substitutionGroup="A:subsgroup"/>
+
+</xsd:schema>
+
diff --git a/regression_test/XML/XmlWorkflow/xsd/type_conversion_follow.xsd b/regression_test/XML/XmlWorkflow/xsd/type_conversion_follow.xsd
new file mode 100644
index 000000000..6dfc93eee
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/type_conversion_follow.xsd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ targetNamespace="www.example.org/type/conversion/follow"
+ xmlns:ns11="www.example.org/type/conversion/follow"> 
+
+
+<xsd:complexType name="e45"> 
+	<group ref="ns11:foobarGroup"/>
+		<attribute name="sd" type="ns11:e45_"/>
+	<attributeGroup ref="ns11:g25attr1"/>
+</xsd:complexType> 
+<xsd:complexType name="e45_"> 
+	<xsd:attribute name="attr" type="xsd:string"/> 
+</xsd:complexType> 
+
+
+
+<group name="ss">
+	<sequence>
+		<element name="sss" type="ns11:e45_"/>
+	</sequence>
+</group>
+
+<element name="ss" type="ns11:e45_">
+</element>
+
+<xsd:attributeGroup name="g25attr1">
+	<xsd:attribute name="birthPlaceAttrGroup" type="ns11:e45_"/>
+	<xsd:attribute name="birthDateAttrGroup" type="xsd:string"/>
+</xsd:attributeGroup> 
+
+<xsd:group name="foobarGroup">
+	<xsd:sequence>
+		<xsd:element name="foo" type="ns11:e45_"/>
+		<xsd:element name="bar" type="xsd:string"/>
+	</xsd:sequence>
+</xsd:group>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/union.xsd b/regression_test/XML/XmlWorkflow/xsd/union.xsd
index 2653b81d5..4fda8733e 100644
--- a/regression_test/XML/XmlWorkflow/xsd/union.xsd
+++ b/regression_test/XML/XmlWorkflow/xsd/union.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/XmlWorkflow/xsd/unqualified_element_attrib.xsd b/regression_test/XML/XmlWorkflow/xsd/unqualified_element_attrib.xsd
new file mode 100644
index 000000000..d1259e69b
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/unqualified_element_attrib.xsd
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:ns23="www.example.org/unqualified/element/attrib"
+ targetNamespace="www.example.org/unqualified/element/attrib"
+ elementFormDefault="unqualified"
+ attributeFormDefault="unqualified"> 
+
+
+<xsd:element name="elements">
+	<xsd:complexType>
+		<xsd:sequence>
+			<xsd:element name="elem1" type="string"/>
+			<xsd:element name="elem2" type="string" form="qualified"/>
+			<xsd:element name="elem3" type="string" form="unqualified"/>
+		</xsd:sequence>
+	</xsd:complexType>
+</xsd:element>
+
+<xsd:element name="attributes">
+	<xsd:complexType>
+		<xsd:attribute name="attrib1" type="string"/>
+		<xsd:attribute name="attrib2" type="string" form="qualified"/>
+		<xsd:attribute name="attrib3" type="string" form="unqualified"/>
+	</xsd:complexType>
+</xsd:element>
+
+
+</xsd:schema>
diff --git a/regression_test/XML/XmlWorkflow/xsd/xml_in_annotation.xsd b/regression_test/XML/XmlWorkflow/xsd/xml_in_annotation.xsd
new file mode 100644
index 000000000..b5b87fa35
--- /dev/null
+++ b/regression_test/XML/XmlWorkflow/xsd/xml_in_annotation.xsd
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:this="www.example.org/xml/in/annotation"
+ targetNamespace="www.example.org/xml/in/annotation">
+
+<xsd:attribute name="tcname" type="xsd:string">
+	<xsd:annotation>
+		<xsd:appinfo>
+			<xsd:attribute name="dataParamName" fixed="TCName" default="TCName" />
+		</xsd:appinfo>
+		<xsd:documentation> comment </xsd:documentation>
+	</xsd:annotation>
+</xsd:attribute>
+
+<xsd:attribute name="tcname2" type="xsd:string">
+	<xsd:annotation>
+		<xsd:documentation>some comment</xsd:documentation>
+	</xsd:annotation>
+</xsd:attribute>
+
+</xsd:schema>
diff --git a/regression_test/XML/macros.ttcnin b/regression_test/XML/macros.ttcnin
index 796dcac20..961d02864 100644
--- a/regression_test/XML/macros.ttcnin
+++ b/regression_test/XML/macros.ttcnin
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/tpdValidTest/Makefile b/regression_test/XML/tpdValidTest/Makefile
index 843b77225..f439c14cf 100644
--- a/regression_test/XML/tpdValidTest/Makefile
+++ b/regression_test/XML/tpdValidTest/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/tpdValidTest/tpdTest/Abstract_Socket_CNL113384.tpd b/regression_test/XML/tpdValidTest/tpdTest/Abstract_Socket_CNL113384.tpd
new file mode 100644
index 000000000..0ac5b1a14
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/Abstract_Socket_CNL113384.tpd
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               Abstract_Socket_CNL113384.tpd
+   Description:        tpd project file
+   Rev:                R7E01
+   Prodnr:             CNL 113 384
+   Updated:            2013-01-24
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Abstract_Socket_CNL113384</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="Abstract_Socket.cc" relativeURI="src/Abstract_Socket.cc"/>
+    <FileResource projectRelativePath="Abstract_Socket.hh" relativeURI="src/Abstract_Socket.hh"/>
+    <FileResource projectRelativePath="doc/Abstract_Socket_CNL113384_FS.pdf" relativeURI="doc/Abstract_Socket_CNL113384_FS.pdf"/>
+    <FileResource projectRelativePath="doc/Abstract_Socket_CNL113384_PRI.pdf" relativeURI="doc/Abstract_Socket_CNL113384_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/Abstract_Socket_CNL113384_UG.pdf" relativeURI="doc/Abstract_Socket_CNL113384_UG.pdf"/>
+  </Files>
+  <ActiveConfiguration>SSL</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/Abstract_Socket_CNL113384</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+    <Configuration name="SSL">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin_ssl/Abstract_Socket_CNL113384</targetExecutable>
+          <preprocessorDefines>
+            <listItem>AS_USE_SSL</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin_ssl</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/AoC_v1.1.2_CNL113653.tpd b/regression_test/XML/tpdValidTest/tpdTest/AoC_v1.1.2_CNL113653.tpd
new file mode 100644
index 000000000..e32de3a27
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/AoC_v1.1.2_CNL113653.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               AoC_v1.1.2_CNL113653.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 653
+   Updated:            2012-10-26
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>AoC_v1.1.2_CNL113653</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="Tariffing_Data_Types.asn" relativeURI="src/Tariffing_Data_Types.asn"/>
+    <FileResource projectRelativePath="Tariffing_Functions.ttcn" relativeURI="src/Tariffing_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/AoC_v1.1.2_CNL113653</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BFCP_CNL113751.tpd b/regression_test/XML/tpdValidTest/tpdTest/BFCP_CNL113751.tpd
new file mode 100644
index 000000000..cb33a3c31
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BFCP_CNL113751.tpd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BFCP_CNL113751.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 751
+   Updated:            2012-10-03
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BFCP_CNL113751</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/BFCP_CNL113751_FS.pdf" relativeURI="doc/BFCP_CNL113751_FS.pdf"/>
+    <FileResource projectRelativePath="doc/BFCP_CNL113751_PRI.pdf" relativeURI="doc/BFCP_CNL113751_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BFCP_CNL113751_UG.pdf" relativeURI="doc/BFCP_CNL113751_UG.pdf"/>
+    <FileResource projectRelativePath="src/BFCP_Types.ttcn" relativeURI="src/BFCP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BFCP_CNL113751</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BICC_ANSI_CNL113397.tpd b/regression_test/XML/tpdValidTest/tpdTest/BICC_ANSI_CNL113397.tpd
new file mode 100644
index 000000000..8d0f5d82f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BICC_ANSI_CNL113397.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BICC_ANSI_CNL113397.tpd
+   Description:        tpd project file
+   Rev:                R5A01
+   Prodnr:             CNL 113 397
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BICC_ANSI_CNL113397</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/BICC_ANSI_CNL113397_FS.pdf" relativeURI="doc/BICC_ANSI_CNL113397_FS.pdf"/>
+    <FileResource projectRelativePath="doc/BICC_ANSI_CNL113397_PRI.pdf" relativeURI="doc/BICC_ANSI_CNL113397_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BICC_ANSI_CNL113397_UG.pdf" relativeURI="doc/BICC_ANSI_CNL113397_UG.pdf"/>
+    <FileResource projectRelativePath="src/BICC_ANSI_EncDec.cc" relativeURI="src/BICC_ANSI_EncDec.cc"/>
+    <FileResource projectRelativePath="src/BICC_ANSI_Types.ttcn" relativeURI="src/BICC_ANSI_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BICC_ANSI_CNL113397</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BICC_Q.1902.1_CNL113359.tpd b/regression_test/XML/tpdValidTest/tpdTest/BICC_Q.1902.1_CNL113359.tpd
new file mode 100644
index 000000000..cf6913d8b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BICC_Q.1902.1_CNL113359.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BICC_Q.1902.1_CNL113359.tpd
+   Description:        tpd project file
+   Rev:                R6A01
+   Prodnr:             CNL 113 359
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BICC_Q.1902.1_CNL113359</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/BICC_Q.1902.1_CNL113359_FS.pdf" relativeURI="doc/BICC_Q.1902.1_CNL113359_FS.pdf"/>
+    <FileResource projectRelativePath="doc/BICC_Q.1902.1_CNL113359_PRI.pdf" relativeURI="doc/BICC_Q.1902.1_CNL113359_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BICC_Q.1902.1_CNL113359_UG.pdf" relativeURI="doc/BICC_Q.1902.1_CNL113359_UG.pdf"/>
+    <FileResource projectRelativePath="src/BICC_EncDec.cc" relativeURI="src/BICC_EncDec.cc"/>
+    <FileResource projectRelativePath="src/BICC_Types.ttcn" relativeURI="src/BICC_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BICC_Q.1902.1_CNL113359</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BICC_TTC_CNL113416.tpd b/regression_test/XML/tpdValidTest/tpdTest/BICC_TTC_CNL113416.tpd
new file mode 100644
index 000000000..0f13c46f9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BICC_TTC_CNL113416.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BICC_TTC_CNL113416.tpd
+   Description:        tpd project file
+   Rev:                R6A01
+   Prodnr:             CNL 113 416
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BICC_TTC_CNL113416</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/BICC_TTC_CNL113416_FS.pdf" relativeURI="doc/BICC_TTC_CNL113416_FS.pdf"/>
+    <FileResource projectRelativePath="doc/BICC_TTC_CNL113416_PRI.pdf" relativeURI="doc/BICC_TTC_CNL113416_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BICC_TTC_CNL113416_UG.pdf" relativeURI="doc/BICC_TTC_CNL113416_UG.pdf"/>
+    <FileResource projectRelativePath="src/BICC_TTC_EncDec.cc" relativeURI="src/BICC_TTC_EncDec.cc"/>
+    <FileResource projectRelativePath="src/BICC_TTC_Types.ttcn" relativeURI="src/BICC_TTC_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BICC_TTC_CNL113416</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BSSGP_v10.6.0_CNL113750.tpd b/regression_test/XML/tpdValidTest/tpdTest/BSSGP_v10.6.0_CNL113750.tpd
new file mode 100644
index 000000000..7095cf5f8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BSSGP_v10.6.0_CNL113750.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BSSGP_v10.6.0_CNL113750.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 750
+   Updated:            2012-08-03
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BSSGP_v10.6.0_CNL113750</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/BSSGP_EncDec.cc" relativeURI="src/BSSGP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/BSSGP_Types.ttcn" relativeURI="src/BSSGP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BSSGP_v10.6.0_CNL113750</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BSSGP_v9.4.0_CNL113720.tpd b/regression_test/XML/tpdValidTest/tpdTest/BSSGP_v9.4.0_CNL113720.tpd
new file mode 100644
index 000000000..292bd2e93
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BSSGP_v9.4.0_CNL113720.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BSSGP_v9.4.0_CNL113720.tpd
+   Description:        tpd project file
+   Rev:                R1C02
+   Prodnr:             CNL 113 720
+   Updated:            2011-11-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BSSGP_v9.4.0_CNL113720</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+	<FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+	<FileResource projectRelativePath="doc/BSSGP_v9.4.0_CNL113720_FS.pdf" relativeURI="doc/BSSGP_v9.4.0_CNL113720_FS.pdf"/>
+	<FileResource projectRelativePath="doc/BSSGP_v9.4.0_CNL113720_PRI.pdf" relativeURI="doc/BSSGP_v9.4.0_CNL113720_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BSSGP_v9.4.0_CNL113720_UG.pdf" relativeURI="doc/BSSGP_v9.4.0_CNL113720_UG.pdf"/>
+    <FileResource projectRelativePath="src/BSSGP_EncDec.cc" relativeURI="src/BSSGP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/BSSGP_Types.ttcn" relativeURI="src/BSSGP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <targetExecutable>bin/BSSGP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+	  <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v11.2.0_CNL113761.tpd b/regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v11.2.0_CNL113761.tpd
new file mode 100644
index 000000000..295205e47
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v11.2.0_CNL113761.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BSSMAP_v11.2.0_CNL113761.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 761
+   Updated:            2012-11-09
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BSSMAP_v11.2.0_CNL113761</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_FS.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_FS.pdf"/>
+    <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_UG.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_UG.pdf"/>
+    <FileResource projectRelativePath="src/BSSAP_Types.ttcn" relativeURI="/src/BSSAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BSSMAP_v11.2.0_CNL113761</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v8.6.0_CNL113655.tpd b/regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v8.6.0_CNL113655.tpd
new file mode 100644
index 000000000..b3278903d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/BSSMAP_v8.6.0_CNL113655.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               BSSMAP_v8.6.0_CNL113655.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 655
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>BSSMAP_v8.6.0_CNL113655</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/BSSMAP_v8.6.0_CNL113655_FS.pdf" relativeURI="doc/BSSMAP_v8.6.0_CNL113655_FS.pdf"/>
+    <FileResource projectRelativePath="doc/BSSMAP_v8.6.0_CNL113655_PRI.pdf" relativeURI="doc/BSSMAP_v8.6.0_CNL113655_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/BSSMAP_v8.6.0_CNL113655_UG.pdf" relativeURI="doc/BSSMAP_v8.6.0_CNL113655_UG.pdf"/>
+    <FileResource projectRelativePath="src/BSSAP_Types.ttcn" relativeURI="src/BSSAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/BSSMAP_v8.6.0_CNL113655</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CAP_v2_v6.4.0_CNL113483.tpd b/regression_test/XML/tpdValidTest/tpdTest/CAP_v2_v6.4.0_CNL113483.tpd
new file mode 100644
index 000000000..340c9e42c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CAP_v2_v6.4.0_CNL113483.tpd
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CAP_v2_v6.4.0_CNL113483.tpd
+   Description:        tpd project file
+   Rev:                R5D
+   Prodnr:             CNL 113 483
+   Updated:            2013-03-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CAP_v2_v6.4.0_CNL113483</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Ericsson_INAP_CS1plus_CNL113356" projectLocationURI="../Ericsson_INAP_CS1plus_CNL113356/Ericsson_INAP_CS1plus_CNL113356.tpd"/>
+    <ReferencedProject name="MAP_v6.3.0_CNL113366" projectLocationURI="../MAP_v6.3.0_CNL113366/MAP_v6.3.0_CNL113366.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CAP_v2_v6.4.0_CNL113483_FS.pdf" relativeURI="doc/CAP_v2_v6.4.0_CNL113483_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v2_v6.4.0_CNL113483_PRI.pdf" relativeURI="doc/CAP_v2_v6.4.0_CNL113483_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v2_v6.4.0_CNL113483_UG.pdf" relativeURI="doc/CAP_v2_v6.4.0_CNL113483_UG.pdf"/>
+    <FileResource projectRelativePath="src/CAPv2_ASEs.asn" relativeURI="src/CAPv2_ASEs.asn"/>
+    <FileResource projectRelativePath="src/CAPv2_Classes.asn" relativeURI="src/CAPv2_Classes.asn"/>
+    <FileResource projectRelativePath="src/CAPv2_Codes.asn" relativeURI="src/CAPv2_Codes.asn"/>
+    <FileResource projectRelativePath="src/CAPv2_DataTypes.asn" relativeURI="src/CAPv2_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/CAPv2_EncDec.cc" relativeURI="src/CAPv2_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CAPv2_Operations.asn" relativeURI="src/CAPv2_Operations.asn"/>
+    <FileResource projectRelativePath="src/CAPv2_PDU_Defs.asn" relativeURI="src/CAPv2_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/CAPv2_Types.ttcn" relativeURI="src/CAPv2_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv2_extension_object_identifiers.asn" relativeURI="src/CAPv2_extension_object_identifiers.asn"/>
+    <FileResource projectRelativePath="src/Ericsson_CAPv2_Detailed_DataTypes.ttcn" relativeURI="src/Ericsson_CAPv2_Detailed_DataTypes.ttcn"/>
+    <FileResource projectRelativePath="src/Ericsson_CAPv2_Detailed_EncDec.cc" relativeURI="src/Ericsson_CAPv2_Detailed_EncDec.cc"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CAP_v2_v6.4.0_CNL113483</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CAP_v4.7.0_CNL113425.tpd b/regression_test/XML/tpdValidTest/tpdTest/CAP_v4.7.0_CNL113425.tpd
new file mode 100644
index 000000000..6bedf2995
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CAP_v4.7.0_CNL113425.tpd
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CAP_v4.7.0_CNL113425.tpd
+   Description:        tpd project file
+   Rev:                R7B02
+   Prodnr:             CNL 113 425
+   Updated:            2012-09-11
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CAP_v4.7.0_CNL113425</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v6.3.0_CNL113366" projectLocationURI="../MAP_v6.3.0_CNL113366/MAP_v6.3.0_CNL113366.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CAP_v4.7.0_CNL113425_FS.pdf" relativeURI="doc/CAP_v4.7.0_CNL113425_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v4.7.0_CNL113425_PRI.pdf" relativeURI="doc/CAP_v4.7.0_CNL113425_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v4.7.0_CNL113425_UG.pdf" relativeURI="doc/CAP_v4.7.0_CNL113425_UG.pdf"/>
+    <FileResource projectRelativePath="src/CAP_EncDec.cc" relativeURI="src/CAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CAP_EncDec_Functions.ttcn" relativeURI="src/CAP_EncDec_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/CAP_GPRS_ReferenceNumber.asn" relativeURI="src/CAP_GPRS_ReferenceNumber.asn"/>
+    <FileResource projectRelativePath="src/CAP_PDU_Defs.asn" relativeURI="src/CAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/CAP_Protocol.asn" relativeURI="src/CAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/CAP_SMS_ops_args.asn" relativeURI="src/CAP_SMS_ops_args.asn"/>
+    <FileResource projectRelativePath="src/CAP_U_ABORT_Data.asn" relativeURI="src/CAP_U_ABORT_Data.asn"/>
+    <FileResource projectRelativePath="src/CAP_classes.asn" relativeURI="src/CAP_classes.asn"/>
+    <FileResource projectRelativePath="src/CAP_classes2.asn" relativeURI="src/CAP_classes2.asn"/>
+    <FileResource projectRelativePath="src/CAP_datatypes.asn" relativeURI="src/CAP_datatypes.asn"/>
+    <FileResource projectRelativePath="src/CAP_errorcodes.asn" relativeURI="src/CAP_errorcodes.asn"/>
+    <FileResource projectRelativePath="src/CAP_errortypes.asn" relativeURI="src/CAP_errortypes.asn"/>
+    <FileResource projectRelativePath="src/CAP_gprsSSF_gsmSCF_ops_args.asn" relativeURI="src/CAP_gprsSSF_gsmSCF_ops_args.asn"/>
+    <FileResource projectRelativePath="src/CAP_gprsSSF_gsmSCF_pkgs_contracts_acs.asn" relativeURI="src/CAP_gprsSSF_gsmSCF_pkgs_contracts_acs.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_ops_args.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_ops_args.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs2.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs2.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_ops_args.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_ops_args.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs.asn"/>
+    <FileResource projectRelativePath="src/CAP_object_identifiers.asn" relativeURI="src/CAP_object_identifiers.asn"/>
+    <FileResource projectRelativePath="src/CAP_operationcodes.asn" relativeURI="src/CAP_operationcodes.asn"/>
+    <FileResource projectRelativePath="src/CAP_smsSSF_gsmSCF_pkgs_contracts_acs.asn" relativeURI="src/CAP_smsSSF_gsmSCF_pkgs_contracts_acs.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_Classes.asn" relativeURI="src/CAPv3_Classes.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_Detailed_DataTypes.ttcn" relativeURI="src/CAPv3_Detailed_DataTypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv3_Detailed_EncDec.cc" relativeURI="src/CAPv3_Detailed_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CAPv3_EncDec.cc" relativeURI="src/CAPv3_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CAPv3_EncDec_Functions.ttcn" relativeURI="src/CAPv3_EncDec_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv3_PDU_Defs.asn" relativeURI="src/CAPv3_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_SMS_ops_args.asn" relativeURI="src/CAPv3_SMS_ops_args.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_U_ABORT_Data.asn" relativeURI="src/CAPv3_U_ABORT_Data.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_datatypes.asn" relativeURI="src/CAPv3_datatypes.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_errorcodes.asn" relativeURI="src/CAPv3_errorcodes.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_errortypes.asn" relativeURI="src/CAPv3_errortypes.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_extension_object_identifiers.asn" relativeURI="src/CAPv3_extension_object_identifiers.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_gsmSSF_gsmSCF_ops_args.asn" relativeURI="src/CAPv3_gsmSSF_gsmSCF_ops_args.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_gsmSSF_gsmSCF_pkgs_contracts_acs.asn" relativeURI="src/CAPv3_gsmSSF_gsmSCF_pkgs_contracts_acs.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_object_identifiers.asn" relativeURI="src/CAPv3_object_identifiers.asn"/>
+    <FileResource projectRelativePath="src/CAPv3_operationcodes.asn" relativeURI="src/CAPv3_operationcodes.asn"/>
+    <FileResource projectRelativePath="src/CS1_DataTypes.asn" relativeURI="src/CS1_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/CS2_datatypes.asn" relativeURI="src/CS2_datatypes.asn"/>
+    <FileResource projectRelativePath="src/DialoguePDUs.asn" relativeURI="src/DialoguePDUs.asn"/>
+    <FileResource projectRelativePath="src/TCAPMessages.asn" relativeURI="src/TCAPMessages.asn"/>
+    <FileResource projectRelativePath="src/TC_Notation_Extensions.asn" relativeURI="src/TC_Notation_Extensions.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CAP_v4.7.0_CNL113425</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.2.0_CNL113572.tpd b/regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.2.0_CNL113572.tpd
new file mode 100644
index 000000000..39508369f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.2.0_CNL113572.tpd
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CAP_v4_v7.2.0_CNL113572.tpd
+   Description:        tpd project file
+   Rev:                R4B01
+   Prodnr:             CNL 113 572
+   Updated:            2011-11-18
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CAP_v4_v7.2.0_CNL113572</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v6.11.0_CNL113500" projectLocationURI="../MAP_v6.11.0_CNL113500/MAP_v6.11.0_CNL113500.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CAP_v4_v7.2.0_CNL113572_FS.pdf" relativeURI="doc/CAP_v4_v7.2.0_CNL113572_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v4_v7.2.0_CNL113572_PRI.pdf" relativeURI="doc/CAP_v4_v7.2.0_CNL113572_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v4_v7.2.0_CNL113572_UG.pdf" relativeURI="doc/CAP_v4_v7.2.0_CNL113572_UG.pdf"/>
+    <FileResource projectRelativePath="src/CAP_EncDec_CAPv4.cc" relativeURI="src/CAP_EncDec_CAPv4.cc"/>
+    <FileResource projectRelativePath="src/CAP_GPRS_ReferenceNumber_CAPv4.asn" relativeURI="src/CAP_GPRS_ReferenceNumber_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_PDU_Defs_CAPv4.asn" relativeURI="src/CAP_PDU_Defs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_SMS_ops_args_CAPv4.asn" relativeURI="src/CAP_SMS_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_Types_CAPv4.ttcn" relativeURI="src/CAP_Types_CAPv4.ttcn"/>
+    <FileResource projectRelativePath="src/CAP_U_ABORT_Data_CAPv4.asn" relativeURI="src/CAP_U_ABORT_Data_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_classes1_CAPv4.asn" relativeURI="src/CAP_classes1_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_classes2_CAPv4.asn" relativeURI="src/CAP_classes2_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_datatypes_CAPv4.asn" relativeURI="src/CAP_datatypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_errorcodes_CAPv4.asn" relativeURI="src/CAP_errorcodes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_errortypes_CAPv4.asn" relativeURI="src/CAP_errortypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_extension_object_identifiers_CAPv4.asn" relativeURI="src/CAP_extension_object_identifiers_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gprsSSF_gsmSCF_ops_args_CAPv4.asn" relativeURI="src/CAP_gprsSSF_gsmSCF_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gprsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_gprsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_ops_args_CAPv4.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_ops_args_CAPv4.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes_CAPv4.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_object_identifiers_CAPv4.asn" relativeURI="src/CAP_object_identifiers_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_operationcodes_CAPv4.asn" relativeURI="src/CAP_operationcodes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_smsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_smsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAPv4_CS1_DataTypes.ttcn" relativeURI="src/CAPv4_CS1_DataTypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_CS2_datatypes.ttcn" relativeURI="src/CAPv4_CS2_datatypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_DialoguePDUs.ttcn" relativeURI="src/CAPv4_DialoguePDUs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_EncDec.cc" relativeURI="src/CAPv4_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CAPv4_GPRS_ReferenceNumber.ttcn" relativeURI="src/CAPv4_GPRS_ReferenceNumber.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_PDU_Defs.ttcn" relativeURI="src/CAPv4_PDU_Defs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_SMS_ops_args.ttcn" relativeURI="src/CAPv4_SMS_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_TCAPMessages.ttcn" relativeURI="src/CAPv4_TCAPMessages.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_TC_Notation_Extensions.ttcn" relativeURI="src/CAPv4_TC_Notation_Extensions.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_Types.ttcn" relativeURI="src/CAPv4_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_U_ABORT_Data.ttcn" relativeURI="src/CAPv4_U_ABORT_Data.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_classes1.ttcn" relativeURI="src/CAPv4_classes1.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_classes2.ttcn" relativeURI="src/CAPv4_classes2.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_datatypes.ttcn" relativeURI="src/CAPv4_datatypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_errorcodes.ttcn" relativeURI="src/CAPv4_errorcodes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_errortypes.ttcn" relativeURI="src/CAPv4_errortypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_extension_object_identifiers.ttcn" relativeURI="src/CAPv4_extension_object_identifiers.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gprsSSF_gsmSCF_ops_args.ttcn" relativeURI="src/CAPv4_gprsSSF_gsmSCF_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gprsSSF_gsmSCF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_gprsSSF_gsmSCF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSCF_gsmSRF_ops_args.ttcn" relativeURI="src/CAPv4_gsmSCF_gsmSRF_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSCF_gsmSRF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_gsmSCF_gsmSRF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSSF_gsmSCF_ops_args.ttcn" relativeURI="src/CAPv4_gsmSSF_gsmSCF_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes.ttcn" relativeURI="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_object_identifiers.ttcn" relativeURI="src/CAPv4_object_identifiers.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_operationcodes.ttcn" relativeURI="src/CAPv4_operationcodes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_smsSSF_gsmSCF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_smsSSF_gsmSCF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CS1_DataTypes.asn" relativeURI="src/CS1_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/CS1_DataTypes_CAPv4.asn" relativeURI="src/CS1_DataTypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CS2_datatypes.asn" relativeURI="src/CS2_datatypes.asn"/>
+    <FileResource projectRelativePath="src/CS2_datatypes_CAPv4.asn" relativeURI="src/CS2_datatypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/DialoguePDUs.asn" relativeURI="src/DialoguePDUs.asn"/>
+    <FileResource projectRelativePath="src/DialoguePDUs_CAPv4.asn" relativeURI="src/DialoguePDUs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/TCAPMessages.asn" relativeURI="src/TCAPMessages.asn"/>
+    <FileResource projectRelativePath="src/TCAPMessages_CAPv4.asn" relativeURI="src/TCAPMessages_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/TC_Notation_Extensions.asn" relativeURI="src/TC_Notation_Extensions.asn"/>
+    <FileResource projectRelativePath="src/TC_Notation_Extensions_CAPv4.asn" relativeURI="src/TC_Notation_Extensions_CAPv4.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CAP_v4_v7.2.0_CNL113572</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.6.0_CNL113721.tpd b/regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.6.0_CNL113721.tpd
new file mode 100644
index 000000000..0487d3dd3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CAP_v4_v7.6.0_CNL113721.tpd
@@ -0,0 +1,116 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CAP_v4_v7.6.0_CNL113721.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 721
+   Updated:            2011-11-29
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CAP_v4_v7.6.0_CNL113721</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.12.0_CNL113635" projectLocationURI="../MAP_v7.12.0_CNL113635/MAP_v7.12.0_CNL113635.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CAP_v4_v7.6.0_CNL113721_FS.pdf" relativeURI="doc/CAP_v4_v7.6.0_CNL113721_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v4_v7.6.0_CNL113721_PRI.pdf" relativeURI="doc/CAP_v4_v7.6.0_CNL113721_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CAP_v4_v7.6.0_CNL113721_UG.pdf" relativeURI="doc/CAP_v4_v7.6.0_CNL113721_UG.pdf"/>
+    <FileResource projectRelativePath="src/CAP_EncDec_CAPv4.cc" relativeURI="src/CAP_EncDec_CAPv4.cc"/>
+    <FileResource projectRelativePath="src/CAP_GPRS_ReferenceNumber_CAPv4.asn" relativeURI="src/CAP_GPRS_ReferenceNumber_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_PDU_Defs_CAPv4.asn" relativeURI="src/CAP_PDU_Defs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_SMS_ops_args_CAPv4.asn" relativeURI="src/CAP_SMS_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_Types_CAPv4.ttcn" relativeURI="src/CAP_Types_CAPv4.ttcn"/>
+    <FileResource projectRelativePath="src/CAP_U_ABORT_Data_CAPv4.asn" relativeURI="src/CAP_U_ABORT_Data_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_classes1_CAPv4.asn" relativeURI="src/CAP_classes1_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_classes2_CAPv4.asn" relativeURI="src/CAP_classes2_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_datatypes_CAPv4.asn" relativeURI="src/CAP_datatypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_errorcodes_CAPv4.asn" relativeURI="src/CAP_errorcodes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_errortypes_CAPv4.asn" relativeURI="src/CAP_errortypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_extension_object_identifiers_CAPv4.asn" relativeURI="src/CAP_extension_object_identifiers_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gprsSSF_gsmSCF_ops_args_CAPv4.asn" relativeURI="src/CAP_gprsSSF_gsmSCF_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gprsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_gprsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_ops_args_CAPv4.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_gsmSCF_gsmSRF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_ops_args_CAPv4.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_ops_args_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes_CAPv4.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_gsmSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_object_identifiers_CAPv4.asn" relativeURI="src/CAP_object_identifiers_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_operationcodes_CAPv4.asn" relativeURI="src/CAP_operationcodes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAP_smsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn" relativeURI="src/CAP_smsSSF_gsmSCF_pkgs_contracts_acs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CAPv4_CS1_DataTypes.ttcn" relativeURI="src/CAPv4_CS1_DataTypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_CS2_datatypes.ttcn" relativeURI="src/CAPv4_CS2_datatypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_DialoguePDUs.ttcn" relativeURI="src/CAPv4_DialoguePDUs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_EncDec.cc" relativeURI="src/CAPv4_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CAPv4_GPRS_ReferenceNumber.ttcn" relativeURI="src/CAPv4_GPRS_ReferenceNumber.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_PDU_Defs.ttcn" relativeURI="src/CAPv4_PDU_Defs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_SMS_ops_args.ttcn" relativeURI="src/CAPv4_SMS_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_TCAPMessages.ttcn" relativeURI="src/CAPv4_TCAPMessages.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_TC_Notation_Extensions.ttcn" relativeURI="src/CAPv4_TC_Notation_Extensions.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_Types.ttcn" relativeURI="src/CAPv4_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_U_ABORT_Data.ttcn" relativeURI="src/CAPv4_U_ABORT_Data.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_classes1.ttcn" relativeURI="src/CAPv4_classes1.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_classes2.ttcn" relativeURI="src/CAPv4_classes2.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_datatypes.ttcn" relativeURI="src/CAPv4_datatypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_errorcodes.ttcn" relativeURI="src/CAPv4_errorcodes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_errortypes.ttcn" relativeURI="src/CAPv4_errortypes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_extension_object_identifiers.ttcn" relativeURI="src/CAPv4_extension_object_identifiers.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gprsSSF_gsmSCF_ops_args.ttcn" relativeURI="src/CAPv4_gprsSSF_gsmSCF_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gprsSSF_gsmSCF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_gprsSSF_gsmSCF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSCF_gsmSRF_ops_args.ttcn" relativeURI="src/CAPv4_gsmSCF_gsmSRF_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSCF_gsmSRF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_gsmSCF_gsmSRF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSSF_gsmSCF_ops_args.ttcn" relativeURI="src/CAPv4_gsmSSF_gsmSCF_ops_args.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes.ttcn" relativeURI="src/CAPv4_gsmSSF_gsmSCF_pkgs_contracts_acs_AbstractSyntaxes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_object_identifiers.ttcn" relativeURI="src/CAPv4_object_identifiers.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_operationcodes.ttcn" relativeURI="src/CAPv4_operationcodes.ttcn"/>
+    <FileResource projectRelativePath="src/CAPv4_smsSSF_gsmSCF_pkgs_contracts_acs.ttcn" relativeURI="src/CAPv4_smsSSF_gsmSCF_pkgs_contracts_acs.ttcn"/>
+    <FileResource projectRelativePath="src/CS1_DataTypes.asn" relativeURI="src/CS1_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/CS1_DataTypes_CAPv4.asn" relativeURI="src/CS1_DataTypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/CS2_datatypes.asn" relativeURI="src/CS2_datatypes.asn"/>
+    <FileResource projectRelativePath="src/CS2_datatypes_CAPv4.asn" relativeURI="src/CS2_datatypes_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/DialoguePDUs.asn" relativeURI="src/DialoguePDUs.asn"/>
+    <FileResource projectRelativePath="src/DialoguePDUs_CAPv4.asn" relativeURI="src/DialoguePDUs_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/TCAPMessages.asn" relativeURI="src/TCAPMessages.asn"/>
+    <FileResource projectRelativePath="src/TCAPMessages_CAPv4.asn" relativeURI="src/TCAPMessages_CAPv4.asn"/>
+    <FileResource projectRelativePath="src/TC_Notation_Extensions.asn" relativeURI="src/TC_Notation_Extensions.asn"/>
+    <FileResource projectRelativePath="src/TC_Notation_Extensions_CAPv4.asn" relativeURI="src/TC_Notation_Extensions_CAPv4.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CAP_v4_v7.6.0_CNL113721</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CCAPI_MINSAT_60_CNL113601.tpd b/regression_test/XML/tpdValidTest/tpdTest/CCAPI_MINSAT_60_CNL113601.tpd
new file mode 100644
index 000000000..a44ef971b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CCAPI_MINSAT_60_CNL113601.tpd
@@ -0,0 +1,439 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CCAPI_MINSAT_60_CNL113601.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 601
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CCAPI_MINSAT_60_CNL113601</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CCAPI_MINSAT_60_CNL113601_FS.pdf" relativeURI="doc/CCAPI_MINSAT_60_CNL113601_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CCAPI_MINSAT_60_CNL113601_PRI.pdf" relativeURI="doc/CCAPI_MINSAT_60_CNL113601_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CCAPI_MINSAT_60_CNL113601_UG.pdf" relativeURI="doc/CCAPI_MINSAT_60_CNL113601_UG.pdf"/>
+    <FileResource projectRelativePath="src/CCAPI.asn" relativeURI="src/CCAPI.asn"/>
+    <FileResource projectRelativePath="src/CCAPI.xsd" relativeURI="src/CCAPI.xsd"/>
+    <FileResource projectRelativePath="src/CCAPI_EncDec.cc" relativeURI="src/CCAPI_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CCAPI_Types.ttcn" relativeURI="src/CCAPI_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CCAPI_linux.c" relativeURI="src/CCAPI_linux.c"/>
+    <FileResource projectRelativePath="src/CCAPI_linux64bit.c" relativeURI="src/CCAPI_linux64bit.c"/>
+    <FileResource projectRelativePath="src/CCAPI_oss.asn" relativeURI="src/CCAPI_oss.asn"/>
+    <FileResource projectRelativePath="src/CCAPI_oss.c" relativeURI="src/CCAPI_oss.c"/>
+    <FileResource projectRelativePath="src/CCAPI_oss.h" relativeURI="src/CCAPI_oss.h"/>
+    <FileResource projectRelativePath="src/CCAPI_solarisx86.c" relativeURI="src/CCAPI_solarisx86.c"/>
+    <FileResource projectRelativePath="src/MINSAT_EncDec.cc" relativeURI="src/MINSAT_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MINSAT_Types.ttcnpp" relativeURI="src/MINSAT_Types.ttcnpp"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CCAPI_MINSAT_60_CNL113601</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>PC_A20_ON</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/CCAPI.xsd</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CCAPI_MINSAT_60_CNL113601</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>PC_A20_ON</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/CCAPI.xsd</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CCAPI_MINSAT_60_CNL113601</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>PC_A20_ON</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/CCAPI.xsd</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CCAPI_MINSAT_60_CNL113601</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>PC_A20_ON</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/CCAPI.xsd</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CCAPI_MINSAT_60_CNL113601</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>PC_A20_ON</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/CCAPI.xsd</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/CCAPI_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.12.0_CNL113757.tpd b/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.12.0_CNL113757.tpd
new file mode 100644
index 000000000..8cc4e425d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.12.0_CNL113757.tpd
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CDR_v9.12.0_CNL113757.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 757
+   Updated:            2012-09-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CDR_v9.12.0_CNL113757</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.8.0_CNL113569" projectLocationURI="../MAP_v7.8.0_CNL113569/MAP_v7.8.0_CNL113569.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CDR_v9.12.0_CNL113757_FS.pdf" relativeURI="doc/CDR_v9.12.0_CNL113757_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CDR_v9.12.0_CNL113757_PRI.pdf" relativeURI="doc/CDR_v9.12.0_CNL113757_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CDR_v9.12.0_CNL113757_UG.pdf" relativeURI="doc/CDR_v9.12.0_CNL113757_UG.pdf"/>
+    <FileResource projectRelativePath="src/CDR_EncDec.cc" relativeURI="src/CDR_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CDR_Types.ttcn" relativeURI="src/CDR_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CSChargingDataTypes.asn" relativeURI="src/CSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/GPRSChargingDataTypes.asn" relativeURI="src/GPRSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/GenericChargingDataTypes.asn" relativeURI="src/GenericChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/IMSChargingDataTypes.asn" relativeURI="src/IMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/LCSChargingDataTypes.asn" relativeURI="src/LCSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MBMSChargingDataTypes.asn" relativeURI="src/MBMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MMSChargingDataTypes.asn" relativeURI="src/MMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MMTelChargingDataTypes.asn" relativeURI="src/MMTelChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/POCChargingDataTypes.asn" relativeURI="src/POCChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/SS_DataTypes.asn" relativeURI="src/SS_DataTypes.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CDR_v9.12.0_CNL113757</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_CNL113712.tpd b/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_CNL113712.tpd
new file mode 100644
index 000000000..703c07b9f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_CNL113712.tpd
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CDR_v9.5.0_CNL113712.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 712
+   Updated:            2012-10-12
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CDR_v9.5.0_CNL113712</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.8.0_CNL113569_2" projectLocationURI="../MAP_v7.8.0_CNL113569/MAP_v7.8.0_CNL113569.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CDR_v9.5.0_CNL113712_FS.pdf" relativeURI="doc/CDR_v9.5.0_CNL113712_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CDR_v9.5.0_CNL113712_PRI.pdf" relativeURI="doc/CDR_v9.5.0_CNL113712_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CDR_v9.5.0_CNL113712_UG.pdf" relativeURI="doc/CDR_v9.5.0_CNL113712_UG.pdf"/>
+    <FileResource projectRelativePath="src/CDR_EncDec.cc" relativeURI="src/CDR_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CDR_Types.ttcn" relativeURI="src/CDR_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CSChargingDataTypes.asn" relativeURI="src/CSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/GPRSChargingDataTypes.asn" relativeURI="src/GPRSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/GenericChargingDataTypes.asn" relativeURI="src/GenericChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/IMSChargingDataTypes.asn" relativeURI="src/IMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/LCSChargingDataTypes.asn" relativeURI="src/LCSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MBMSChargingDataTypes.asn" relativeURI="src/MBMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MMSChargingDataTypes.asn" relativeURI="src/MMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MMTelChargingDataTypes.asn" relativeURI="src/MMTelChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/POCChargingDataTypes.asn" relativeURI="src/POCChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/SSDataTypes.asn" relativeURI="src/SSDataTypes.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CDR_v9.5.0_CNL113712</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_SGSN_CNL113728.tpd b/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_SGSN_CNL113728.tpd
new file mode 100644
index 000000000..aee6e5211
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CDR_v9.5.0_SGSN_CNL113728.tpd
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CDR_v9.5.0_SGSN_CNL113728.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 728
+   Updated:            2012-04-12
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CDR_v9.5.0_SGSN_CNL113728</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.8.0_CNL113569" projectLocationURI="../MAP_v7.8.0_CNL113569/MAP_v7.8.0_CNL113569.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CDR_v9.5.0_SGSN_CNL113728_FS.pdf" relativeURI="doc/CDR_v9.5.0_SGSN_CNL113728_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CDR_v9.5.0_SGSN_CNL113728_PRI.pdf" relativeURI="doc/CDR_v9.5.0_SGSN_CNL113728_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CDR_v9.5.0_SGSN_CNL113728_UG.pdf" relativeURI="doc/CDR_v9.5.0_SGSN_CNL113728_UG.pdf"/>
+    <FileResource projectRelativePath="src/CDR_EncDec.cc" relativeURI="src/CDR_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CDR_Types.ttcn" relativeURI="src/CDR_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CSChargingDataTypes.asn" relativeURI="src/CSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/GPRSChargingDataTypes.asn" relativeURI="src/GPRSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/GenericChargingDataTypes.asn" relativeURI="src/GenericChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/IMSChargingDataTypes.asn" relativeURI="src/IMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/LCSChargingDataTypes.asn" relativeURI="src/LCSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MBMSChargingDataTypes.asn" relativeURI="src/MBMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MMSChargingDataTypes.asn" relativeURI="src/MMSChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MMTelChargingDataTypes.asn" relativeURI="src/MMTelChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/POCChargingDataTypes.asn" relativeURI="src/POCChargingDataTypes.asn"/>
+    <FileResource projectRelativePath="src/SS_DataTypes.asn" relativeURI="src/SS_DataTypes.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CDR_v9.5.0_SGSN_CNL113728</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CIP_CS4.0_CNL113535.tpd b/regression_test/XML/tpdValidTest/tpdTest/CIP_CS4.0_CNL113535.tpd
new file mode 100644
index 000000000..8e6fd084a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CIP_CS4.0_CNL113535.tpd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CIP_CS4.0_CNL113535.tpd
+   Description:        tpd project file
+   Rev:                R4A01
+   Prodnr:             CNL 113 535
+   Updated:            2012-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CIP_CS4.0_CNL113535</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CIP_CS4.0_CNL113535_FS.pdf" relativeURI="doc/CIP_CS4.0_CNL113535_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CIP_CS4.0_CNL113535_PRI.pdf" relativeURI="doc/CIP_CS4.0_CNL113535_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CIP_CS4.0_CNL113535_UG.pdf" relativeURI="doc/CIP_CS4.0_CNL113535_UG.pdf"/>
+    <FileResource projectRelativePath="src/CIP_EncDec.cc" relativeURI="src/CIP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CIP_ITUasp_Types.ttcn" relativeURI="src/CIP_ITUasp_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CIP_PDU_Defs.asn" relativeURI="src/CIP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/CIP_Types.ttcn" relativeURI="src/CIP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CIP_CS4.0_CNL113535</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/CIP_Orga_Italy_CNL113701.tpd b/regression_test/XML/tpdValidTest/tpdTest/CIP_Orga_Italy_CNL113701.tpd
new file mode 100644
index 000000000..9926db1be
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/CIP_Orga_Italy_CNL113701.tpd
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               CIP_Orga_Italy_CNL113701.tpd
+   Description:        tpd project file
+   Rev:                R3A01
+   Prodnr:             CNL 113 701
+   Updated:            2012-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>CIP_Orga_Italy_CNL113701</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/CIP_Orga_Italy_CNL113701_FS.pdf" relativeURI="doc/CIP_Orga_Italy_CNL113701_FS.pdf"/>
+    <FileResource projectRelativePath="doc/CIP_Orga_Italy_CNL113701_PRI.pdf" relativeURI="doc/CIP_Orga_Italy_CNL113701_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/CIP_Orga_Italy_CNL113701_UG.pdf" relativeURI="doc/CIP_Orga_Italy_CNL113701_UG.pdf"/>
+    <FileResource projectRelativePath="src/CIP_Orga.grp" relativeURI="src/CIP_Orga.grp"/>
+    <FileResource projectRelativePath="src/CIP_Orga_EncDec.cc" relativeURI="src/CIP_Orga_EncDec.cc"/>
+    <FileResource projectRelativePath="src/CIP_Orga_ITUasp_Types.ttcn" relativeURI="src/CIP_Orga_ITUasp_Types.ttcn"/>
+    <FileResource projectRelativePath="src/CIP_Orga_PDU_Defs.asn" relativeURI="src/CIP_Orga_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/CIP_Orga_Types.ttcn" relativeURI="src/CIP_Orga_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/CIP_Orga_Italy_CNL113701</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/DHCP_CNL113461.tpd b/regression_test/XML/tpdValidTest/tpdTest/DHCP_CNL113461.tpd
new file mode 100644
index 000000000..b0af40c2f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/DHCP_CNL113461.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               DHCP_CNL113461.tpd
+   Description:        tpd project file
+   Rev:                R5A01
+   Prodnr:             CNL 113 461
+   Updated:            2012-05-11
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DHCP_CNL113461</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/DHCP_CNL113461_FS.pdf" relativeURI="doc/DHCP_CNL113461_FS.pdf"/>
+    <FileResource projectRelativePath="doc/DHCP_CNL113461_PRI.pdf" relativeURI="doc/DHCP_CNL113461_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/DHCP_CNL113461_UG.pdf" relativeURI="doc/DHCP_CNL113461_UG.pdf"/>
+    <FileResource projectRelativePath="src/DHCP_EncDec.cc" relativeURI="src/DHCP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/DHCP_Options.ttcn" relativeURI="src/DHCP_Options.ttcn"/>
+    <FileResource projectRelativePath="src/DHCP_Types.ttcn" relativeURI="src/DHCP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/DHCP_CNL113461</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/DHCPv6_CNL113763.tpd b/regression_test/XML/tpdValidTest/tpdTest/DHCPv6_CNL113763.tpd
new file mode 100644
index 000000000..b15a2515a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/DHCPv6_CNL113763.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               DHCPv6_CNL113763.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 763
+   Updated:            2012-12-05
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DHCPv6_CNL113763</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/DHCPv6_Types.ttcn" relativeURI="src/DHCPv6_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/DHCPv6_CNL113763</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/DNS_CNL113429.tpd b/regression_test/XML/tpdValidTest/tpdTest/DNS_CNL113429.tpd
new file mode 100644
index 000000000..8b5b42b87
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/DNS_CNL113429.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               DNS_CNL113429.tpd
+   Description:        tpd project file
+   Rev:                R6A01
+   Prodnr:             CNL 113 429
+   Updated:            2012-02-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DNS_CNL113429</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="DNS_EncDec.cc" relativeURI="src/DNS_EncDec.cc"/>
+    <FileResource projectRelativePath="DNS_Types.ttcn" relativeURI="src/DNS_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/DNS_CNL113429</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/DSS1_ETSI_CNL113435.tpd b/regression_test/XML/tpdValidTest/tpdTest/DSS1_ETSI_CNL113435.tpd
new file mode 100644
index 000000000..5e7520fca
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/DSS1_ETSI_CNL113435.tpd
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               DSS1_ETSI_CNL113435.tpd
+   Description:        tpd project file
+   Rev:                R3B03
+   Prodnr:             CNL 113 435
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>DSS1_ETSI_CNL113435</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/DSS1_ETSI_ProtocolModule.grp" relativeURI="src/DSS1_ETSI_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/DSS1_EncDec.cc" relativeURI="src/DSS1_EncDec.cc"/>
+    <FileResource projectRelativePath="src/DSS1_Types.ttcn" relativeURI="src/DSS1_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Facility_EncDec.cc" relativeURI="src/Facility_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Facility_IE_Defs.asn" relativeURI="src/Facility_IE_Defs.asn"/>
+    <FileResource projectRelativePath="src/Facility_Operations.asn" relativeURI="src/Facility_Operations.asn"/>
+    <FileResource projectRelativePath="src/Facility_Types.ttcn" relativeURI="src/Facility_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Revised_Addressing_Data_Elements.asn" relativeURI="src/Revised_Addressing_Data_Elements.asn"/>
+    <FileResource projectRelativePath="src/Revised_Advice_of_Charge_Interaction_Operations.asn" relativeURI="src/Revised_Advice_of_Charge_Interaction_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Advice_of_Charge_Operations.asn" relativeURI="src/Revised_Advice_of_Charge_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Basic_Service_Elements.asn" relativeURI="src/Revised_Basic_Service_Elements.asn"/>
+    <FileResource projectRelativePath="src/Revised_CCBS_Operation_and_Errors.asn" relativeURI="src/Revised_CCBS_Operation_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_CCBS_private_networks_Operations_and_Errors.asn" relativeURI="src/Revised_CCBS_private_networks_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Closed_User_Group_Service_Operations.asn" relativeURI="src/Revised_Closed_User_Group_Service_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Conference_Add_On_Operations.asn" relativeURI="src/Revised_Conference_Add_On_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Diversion_Operations.asn" relativeURI="src/Revised_Diversion_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_Embedded_Q931_Types.asn" relativeURI="src/Revised_Embedded_Q931_Types.asn"/>
+    <FileResource projectRelativePath="src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn" relativeURI="src/Revised_Explicit_Call_Transfer_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn" relativeURI="src/Revised_Explicit_Network_Controlled_Channel_Reservation.asn"/>
+    <FileResource projectRelativePath="src/Revised_Facility_Information_Element_Components.asn" relativeURI="src/Revised_Facility_Information_Element_Components.asn"/>
+    <FileResource projectRelativePath="src/Revised_Freephone_Operations.asn" relativeURI="src/Revised_Freephone_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_General_Errors.asn" relativeURI="src/Revised_General_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_MCID_Operations.asn" relativeURI="src/Revised_MCID_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_MWI_Operations_and_Errors.asn" relativeURI="src/Revised_MWI_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Notification_Indicator_IE_Data_Structure.asn" relativeURI="src/Revised_Notification_Indicator_IE_Data_Structure.asn"/>
+    <FileResource projectRelativePath="src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn" relativeURI="src/Revised_Outgoing_Call_Barring_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Set_Operations_and_Errors.asn" relativeURI="src/Revised_Set_Operations_and_Errors.asn"/>
+    <FileResource projectRelativePath="src/Revised_Status_Request_Procedure.asn" relativeURI="src/Revised_Status_Request_Procedure.asn"/>
+    <FileResource projectRelativePath="src/Revised_Three_Party_Operations.asn" relativeURI="src/Revised_Three_Party_Operations.asn"/>
+    <FileResource projectRelativePath="src/Revised_UUS_Operations.asn" relativeURI="src/Revised_UUS_Operations.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/DSS1_ETSI_CNL113435</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EAP_CNL113722.tpd b/regression_test/XML/tpdValidTest/tpdTest/EAP_CNL113722.tpd
new file mode 100644
index 000000000..07592f39c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EAP_CNL113722.tpd
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EAP_CNL113722.tpd
+   Description:        tpd project file
+   Rev:                R3A
+   Prodnr:             CNL 113 722
+   Updated:            2013-03-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EAP_CNL113722</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/EAP.grp" relativeURI="src/EAP.grp"/>
+    <FileResource projectRelativePath="src/EAP_EncDec.cc" relativeURI="src/EAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/EAP_Types.ttcn" relativeURI="src/EAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EAP_CNL113722</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <altstep>.*</altstep>
+          <globalConstant>.*</globalConstant>
+          <externalConstant>.*</externalConstant>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <globalPort>.*</globalPort>
+          <globalTemplate>.*</globalTemplate>
+          <testcase>.*</testcase>
+          <globalTimer>.*</globalTimer>
+          <group>.*</group>
+          <localConstant>.*</localConstant>
+          <localVariable>.*</localVariable>
+          <localTemplate>.*</localTemplate>
+          <localVariableTemplate>.*</localVariableTemplate>
+          <localTimer>.*</localTimer>
+          <formalParameter>.*</formalParameter>
+          <componentConstant>.*</componentConstant>
+          <componentVariable>.*</componentVariable>
+          <componentTimer>.*</componentTimer>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ECMS_CORBAmsg_CNL113687.tpd b/regression_test/XML/tpdValidTest/tpdTest/ECMS_CORBAmsg_CNL113687.tpd
new file mode 100644
index 000000000..62e8191a8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ECMS_CORBAmsg_CNL113687.tpd
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ECMS_CORBAmsg_CNL113687.tpd
+   Description:        tpd project file
+   Rev:                R1A04
+   Prodnr:             CNL 113 687
+   Updated:            2012-06-28
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ECMS_CORBAmsg_CNL113687</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/Address_type.ttcn" relativeURI="src/Address_type.ttcn"/>
+    <FileResource projectRelativePath="src/Makefile" relativeURI="src/Makefile"/>
+    <FileResource projectRelativePath="src/com.ttcn" relativeURI="src/com.ttcn"/>
+    <FileResource projectRelativePath="src/com_Converter.cc" relativeURI="src/com_Converter.cc"/>
+    <FileResource projectRelativePath="src/com_Converter.hh" relativeURI="src/com_Converter.hh"/>
+    <FileResource projectRelativePath="src/com__lhs.ttcn" relativeURI="src/com__lhs.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs_Converter.cc" relativeURI="src/com__lhs_Converter.cc"/>
+    <FileResource projectRelativePath="src/com__lhs_Converter.hh" relativeURI="src/com__lhs_Converter.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb.ttcn" relativeURI="src/com__lhs__ccb.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb_Converter.cc" relativeURI="src/com__lhs__ccb_Converter.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb_Converter.hh" relativeURI="src/com__lhs__ccb_Converter.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi.ttcn" relativeURI="src/com__lhs__ccb__soi.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi_Converter.cc" relativeURI="src/com__lhs__ccb__soi_Converter.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi_Converter.hh" relativeURI="src/com__lhs__ccb__soi_Converter.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ClientCallbackI.ttcn" relativeURI="src/com__lhs__ccb__soi__ClientCallbackI.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ClientCallbackI_PT.cc" relativeURI="src/com__lhs__ccb__soi__ClientCallbackI_PT.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ClientCallbackI_PT.hh" relativeURI="src/com__lhs__ccb__soi__ClientCallbackI_PT.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ClientCallbackI_portType.ttcn" relativeURI="src/com__lhs__ccb__soi__ClientCallbackI_portType.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceFactoryI.ttcn" relativeURI="src/com__lhs__ccb__soi__ServiceFactoryI.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceFactoryI_PT.cc" relativeURI="src/com__lhs__ccb__soi__ServiceFactoryI_PT.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceFactoryI_PT.hh" relativeURI="src/com__lhs__ccb__soi__ServiceFactoryI_PT.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceFactoryI_portType.ttcn" relativeURI="src/com__lhs__ccb__soi__ServiceFactoryI_portType.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceObjectI.ttcn" relativeURI="src/com__lhs__ccb__soi__ServiceObjectI.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceObjectI_PT.cc" relativeURI="src/com__lhs__ccb__soi__ServiceObjectI_PT.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceObjectI_PT.hh" relativeURI="src/com__lhs__ccb__soi__ServiceObjectI_PT.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceObjectI_portType.ttcn" relativeURI="src/com__lhs__ccb__soi__ServiceObjectI_portType.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceRootI.ttcn" relativeURI="src/com__lhs__ccb__soi__ServiceRootI.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceRootI_PT.cc" relativeURI="src/com__lhs__ccb__soi__ServiceRootI_PT.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceRootI_PT.hh" relativeURI="src/com__lhs__ccb__soi__ServiceRootI_PT.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__ServiceRootI_portType.ttcn" relativeURI="src/com__lhs__ccb__soi__ServiceRootI_portType.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__XMLServiceFactoryI.ttcn" relativeURI="src/com__lhs__ccb__soi__XMLServiceFactoryI.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__XMLServiceFactoryI_PT.cc" relativeURI="src/com__lhs__ccb__soi__XMLServiceFactoryI_PT.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__XMLServiceFactoryI_PT.hh" relativeURI="src/com__lhs__ccb__soi__XMLServiceFactoryI_PT.hh"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__XMLServiceFactoryI_portType.ttcn" relativeURI="src/com__lhs__ccb__soi__XMLServiceFactoryI_portType.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__types.ttcn" relativeURI="src/com__lhs__ccb__soi__types.ttcn"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__types_Converter.cc" relativeURI="src/com__lhs__ccb__soi__types_Converter.cc"/>
+    <FileResource projectRelativePath="src/com__lhs__ccb__soi__types_Converter.hh" relativeURI="src/com__lhs__ccb__soi__types_Converter.hh"/>
+    <FileResource projectRelativePath="src/soi_test.hh" relativeURI="src/soi_test.hh"/>
+    <FileResource projectRelativePath="src/soi_test.idl" relativeURI="src/soi_test.idl"/>
+    <FileResource projectRelativePath="src/soi_testDynSK.cc" relativeURI="src/soi_testDynSK.cc"/>
+    <FileResource projectRelativePath="src/soi_testSK.cc" relativeURI="src/soi_testSK.cc"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ECMS_CORBAmsg_CNL113687</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OMNIORB4_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>omniORB4</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OMNIORB4_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/Makefile</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BICC_CNL113711.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BICC_CNL113711.tpd
new file mode 100644
index 000000000..a616f008e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BICC_CNL113711.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_BICC_CNL113711.tpd
+   Description:        tpd project file
+   Rev:                R1A03
+   Prodnr:             CNL 113 711
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_BICC_CNL113711</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="BICC_ANSI_CNL113397" projectLocationURI="../../ProtocolModules/BICC_ANSI_CNL113397/BICC_ANSI_CNL113397.tpd"/>
+    <ReferencedProject name="BICC_Q.1902.1_CNL113359" projectLocationURI="../../ProtocolModules/BICC_Q.1902.1_CNL113359/BICC_Q.1902.1_CNL113359.tpd"/>
+    <ReferencedProject name="BICC_TTC_CNL113416" projectLocationURI="../../ProtocolModules/BICC_TTC_CNL113416/BICC_TTC_CNL113416.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_M3_CNL113682" projectLocationURI="../EPTF_CommonTransport_M3_CNL113682/EPTF_CommonTransport_M3_CNL113682.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_BICC_Common_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_Stat_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_Stat_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_ITU_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_ITU_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_ITU_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_ITU_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_ANSI_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_ANSI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_ANSI_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_ANSI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_TTC_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_TTC_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_LGen_TCC_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BICC_LGen_TTC_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_BICC_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BICC_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_BICC_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_BICC_CNL113711</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BSSMAP_CNL113608.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BSSMAP_CNL113608.tpd
new file mode 100644
index 000000000..f785fcdb9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_BSSMAP_CNL113608.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_BSSMAP_CNL113608.tpd
+   Description:        tpd project file
+   Rev:                R1A06
+   Prodnr:             CNL 113 608
+   Updated:            2013-01-25
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_BSSMAP_CNL113608</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="BSSMAP_v8.6.0_CNL113655" projectLocationURI="../../ProtocolModules/BSSMAP_v8.6.0_CNL113655/BSSMAP_v8.6.0_CNL113655.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_SCCP_CNL113610" projectLocationURI="../EPTF_CommonTransport_SCCP_CNL113610/EPTF_CommonTransport_SCCP_CNL113610.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_BSSMAP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_BSSMAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BSSMAP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BSSMAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BSSMAP_LGen_UserExtension_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_BSSMAP_LGen_UserExtension_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BSSMAP_LGen_UserExtension_Functions.ttcn" relativeURI="src/LoadGen/EPTF_BSSMAP_LGen_UserExtension_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BSSMAP_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_BSSMAP_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_BSSMAP_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_BSSMAP_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_BSSMAP_CNL113608</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAI3G_CNL113566.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAI3G_CNL113566.tpd
new file mode 100644
index 000000000..6251869c4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAI3G_CNL113566.tpd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAI3G_CNL113566.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 566
+   Updated:            2013-02-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAI3G_CNL113566</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="HTTPmsg_CNL113312" projectLocationURI="../../TestPorts/HTTPmsg_CNL113312/HTTPmsg_CNL113312.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_TitanSim" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_TitanSim.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>   
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAI3G_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAI3G_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAI3G_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_CAI3G_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_CAI3G_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Templates.ttcn" relativeURI="src/LoadGen/EPTF_CAI3G_Templates.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_CAI3G_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Transport_ExternalFunctions.cc" relativeURI="src/Transport/EPTF_CAI3G_Transport_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CAI3G_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_CAI3G_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAI3G_CNL113566</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_CNL113662.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_CNL113662.tpd
new file mode 100644
index 000000000..ee2d2b274
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_CNL113662.tpd
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAP_CNL113662.tpd
+   Description:        tpd project file
+   Rev:                R6C02
+   Prodnr:             CNL 113 662
+   Updated:            2012-05-25
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAP_CNL113662</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CAP_v2_v6.4.0_CNL113483" projectLocationURI="../../ProtocolModules/CAP_v2_v6.4.0_CNL113483/CAP_v2_v6.4.0_CNL113483.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAP_Common_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAP_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAP_Common_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAP_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAPv2_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv2_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAPv2_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv2_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAP_CNL113662</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_Common_CNL113662.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_Common_CNL113662.tpd
new file mode 100644
index 000000000..3ef5b6b10
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_Common_CNL113662.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAP_Common_CNL113662.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 662
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAP_Common_CNL113662</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAP_Common_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAP_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAP_Common_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAP_Common_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAP_CNL113662</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v2_CNL113662.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v2_CNL113662.tpd
new file mode 100644
index 000000000..6fcc294f8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v2_CNL113662.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAP_v2_CNL113662.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 662
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAP_v2_CNL113662</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CAP_v2_v6.4.0_CNL113483" projectLocationURI="../../ProtocolModules/CAP_v2_v6.4.0_CNL113483/CAP_v2_v6.4.0_CNL113483.tpd"/>
+    <ReferencedProject name="EPTF_Applib_CAP_Common_CNL113662" projectLocationURI="EPTF_Applib_CAP_Common_CNL113662.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAPv2_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv2_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAPv2_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv2_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAP_v2_CNL113662</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v3_CNL113662.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v3_CNL113662.tpd
new file mode 100644
index 000000000..b14d559d3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v3_CNL113662.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAP_v3_CNL113662.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 662
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAP_v3_CNL113662</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CAP_v4.7.0_CNL113425" projectLocationURI="../../ProtocolModules/CAP_v4.7.0_CNL113425/CAP_v4.7.0_CNL113425.tpd"/>
+    <ReferencedProject name="EPTF_Applib_CAP_Common_CNL113662" projectLocationURI="EPTF_Applib_CAP_Common_CNL113662.tpd"/>
+    <ReferencedProject name="Ericsson_INAP_CS1plus_CNL113356" projectLocationURI="../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/Ericsson_INAP_CS1plus_CNL113356.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAPv3_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv3_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAPv3_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv3_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAP_v3_CNL113662</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_CNL113662.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_CNL113662.tpd
new file mode 100644
index 000000000..48c036d4a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_CNL113662.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAP_v4_CNL113662.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 662
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAP_v4_CNL113662</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CAP_v4_v7.6.0_CNL113721" projectLocationURI="../../ProtocolModules/CAP_v4_v7.6.0_CNL113721/CAP_v4_v7.6.0_CNL113721.tpd"/>
+    <ReferencedProject name="EPTF_Applib_CAP_Common_CNL113662" projectLocationURI="EPTF_Applib_CAP_Common_CNL113662.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAPv4_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv4_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAPv4_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv4_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAP_v4_CNL113662</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_v760_CNL113662.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_v760_CNL113662.tpd
new file mode 100644
index 000000000..605c3e7c5
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CAP_v4_v760_CNL113662.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CAP_v4_v760_CNL113662.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 662
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CAP_v4_CNL113662</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CAP_v4_v7.6.0_CNL113721" projectLocationURI="../../ProtocolModules/CAP_v4_v7.6.0_CNL113721/CAP_v4_v7.6.0_CNL113721.tpd"/>
+    <ReferencedProject name="EPTF_Applib_CAP_Common_CNL113662" projectLocationURI="EPTF_Applib_CAP_Common_CNL113662.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CAPv4_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv4_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CAPv4_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CAPv4_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CAP_v4_CNL113662</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_All_CNL113666.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_All_CNL113666.tpd
new file mode 100644
index 000000000..19d4e14ac
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_All_CNL113666.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CIP_All_CNL113666.tpd
+   Description:        tpd project file
+   Rev:                R5C02
+   Prodnr:             CNL 113 666
+   Updated:            2012-11-29
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CIP_All_CNL113666</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CIP_CNL113666" projectLocationURI="EPTF_Applib_CIP_CNL113666.tpd"/>
+    <ReferencedProject name="EPTF_Applib_CIP_Orga_CNL113666" projectLocationURI="EPTF_Applib_CIP_Orga_CNL113666.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CIP_All_CNL113666</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_CNL113666.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_CNL113666.tpd
new file mode 100644
index 000000000..cfa6c173b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_CNL113666.tpd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CIP_CNL113666.tpd
+   Description:        tpd project file
+   Rev:                R5C02
+   Prodnr:             CNL 113 666
+   Updated:            2012-11-29
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CIP_CNL113666</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CIP_CS4.0_CNL113535" projectLocationURI="../../ProtocolModules/CIP_CS4.0_CNL113535/CIP_CS4.0_CNL113535.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="Logger" relativeURI="src/Logger"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CIP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CIP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CIP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CIP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="Logger/EPTF_CIP_Logger.grp" relativeURI="src/Logger/EPTF_CIP_Logger.grp"/>
+    <FileResource projectRelativePath="Logger/EPTF_CIP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_CIP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="Logger/EPTF_CIP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_CIP_Logger_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CIP_CNL113666</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_Orga_CNL113666.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_Orga_CNL113666.tpd
new file mode 100644
index 000000000..d2e1d82e8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_CIP_Orga_CNL113666.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_CIP_Orga_CNL113666.tpd
+   Description:        tpd project file
+   Rev:                R5C02
+   Prodnr:             CNL 113 666
+   Updated:            2012-11-29
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_CIP_Orga_CNL113666</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="CIP_Orga_Italy_CNL113701" projectLocationURI="../../ProtocolModules/CIP_Orga_Italy_CNL113701/CIP_Orga_Italy_CNL113701.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CIP_Orga_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_CIP_Orga_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CIP_Orga_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_CIP_Orga_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_CIP_LGen_CNL113666</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DNS_CNL113597.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DNS_CNL113597.tpd
new file mode 100644
index 000000000..e4b46694a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DNS_CNL113597.tpd
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_DNS_CNL113597.tpd
+   Description:        tpd project file
+   Rev:                R3A01
+   Prodnr:             CNL 113 597
+   Updated:            2012-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_DNS_CNL113597</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>    
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="TELNETasp_CNL113320" projectLocationURI="../../TestPorts/TELNETasp_CNL113320/TELNETasp_CNL113320.tpd"/>        
+    <ReferencedProject name="UDPasp_CNL113346" projectLocationURI="../../TestPorts/UDPasp_CNL113346/UDPasp_CNL113346.tpd"/>    
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>  
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../../TestPorts/Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="DNS_CNL113429" projectLocationURI="../../ProtocolModules/DNS_CNL113429/DNS_CNL113429.tpd"/>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../../ProtocolModules/XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_TitanSim" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_TitanSim.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>   
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_DNS_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DNS_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DNS_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DNS_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DNS_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_DNS_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DNS_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_DNS_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DNS_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_DNS_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DNS_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_DNS_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_DNS_CNL113597_FS.pdf" relativeURI="doc/EPTF_Applib_DNS_CNL113597_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_DNS_CNL113597_PRI.pdf" relativeURI="doc/EPTF_Applib_DNS_CNL113597_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_DNS_CNL113597_UG.pdf" relativeURI="doc/EPTF_Applib_DNS_CNL113597_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/Menu.txt" relativeURI="doc/apidoc/Menu.txt"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_DNS_LGen_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_DNS_LGen_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_DNS_LGen_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_DNS_LGen_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_DNS_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_DNS_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_DNS_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_DNS_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_DNS_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_DNS_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_DNS_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_DNS_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Altsteps.html" relativeURI="doc/apidoc/index/Altsteps.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General3.html" relativeURI="doc/apidoc/index/General3.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_DNS_CNL113597</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DSS1_CNL113748.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DSS1_CNL113748.tpd
new file mode 100644
index 000000000..a5afc7a72
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_DSS1_CNL113748.tpd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_DSS1_CNL113748.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 748
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_DSS1_CNL113748</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="DSS1_ETSI_CNL113435" projectLocationURI="../../ProtocolModules/DSS1_ETSI_CNL113435/DSS1_ETSI_CNL113435.tpd"/>
+    <ReferencedProject name="EPTF_Applib_IUA_CNL113747" projectLocationURI="../EPTF_Applib_IUA_CNL113747/EPTF_Applib_IUA_CNL113747.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/EPTF_Applib_DSS1.grp" relativeURI="src/EPTF_Applib_DSS1.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_DSS1_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DSS1_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_DSS1_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DSS1_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_DSS1_LGen_Stat_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DSS1_LGen_Stat_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_DSS1_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_DSS1_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_DSS1_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_DSS1_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_DSS1_CNL113748</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_Diameter_CNL113521.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_Diameter_CNL113521.tpd
new file mode 100644
index 000000000..8f922fd54
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_Diameter_CNL113521.tpd
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_Diameter_CNL113521.tpd
+   Description:        tpd project file
+   Rev:                R15A04
+   Prodnr:             CNL 113 521
+   Updated:            2013-04-04
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_Diameter_CNL113521</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EAP_CNL113722" projectLocationURI="../../ProtocolModules/EAP_CNL113722/EAP_CNL113722.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="IP_CNL113418" projectLocationURI="../../ProtocolModules/IP_CNL113418/IP_CNL113418.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Security" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Security.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="DIAMETER_EncDec.cc" relativeURI="demo/DIAMETER_EncDec.cc"/>
+    <FileResource projectRelativePath="DIAMETER_Types.ttcn" relativeURI="demo/DIAMETER_Types.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter3gppRx_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_Diameter3gppRx_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter3gppRx_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_Diameter3gppRx_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter3gppSh_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_Diameter3gppSh_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter3gppSh_LGen_Functions.ttcnpp" relativeURI="src/LoadGen/EPTF_Diameter3gppSh_LGen_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_DiameterAAA_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterAAA_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterAAA_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterAAA_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterA_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterA_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterA_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterA_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterBase_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterBase_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterBase_LGen_Functions.ttcnpp" relativeURI="src/LoadGen/EPTF_DiameterBase_LGen_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_DiameterCC_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterCC_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterCC_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterCC_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterCLF_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterCLF_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterCLF_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterCLF_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterE2_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterE2_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterE2_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterE2_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterEPC_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterEPC_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterEPC_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterEPC_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterE_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterE_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterE_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterE_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterHSS_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterHSS_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterHSS_LGen_Functions.ttcnpp" relativeURI="src/LoadGen/EPTF_DiameterHSS_LGen_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_DiameterRACF_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterRACF_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterRACF_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterRACF_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterSCAPv1_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterSCAPv1_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterSCAPv1_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterSCAPv1_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterSW_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterSW_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterSW_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterSW_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterUAAF_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterUAAF_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_DiameterUAAF_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_DiameterUAAF_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_Common_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_Diameter_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_Common_Functions.ttcn" relativeURI="src/LoadGen/EPTF_Diameter_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_External_Functions.cc" relativeURI="src/LoadGen/EPTF_Diameter_External_Functions.cc"/>
+    <FileResource projectRelativePath="EPTF_Diameter_LGen_FSMs.ttcn" relativeURI="src/LoadGen/EPTF_Diameter_LGen_FSMs.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_Diameter_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_Diameter_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_Diameter_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Diameter_Transport_Functions.ttcnpp" relativeURI="src/Transport/EPTF_Diameter_Transport_Functions.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_Diameter_CNL113521</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_EricssonRTC_CNL113683.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_EricssonRTC_CNL113683.tpd
new file mode 100644
index 000000000..5756dfcb2
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_EricssonRTC_CNL113683.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_EricssonRTC_CNL113683.tpd
+   Description:        tpd project file
+   Rev:                R1A03
+   Prodnr:             CNL 113 683
+   Updated:            2012-04-11
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_EricssonRTC_CNL113683</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EricssonRTC_CNL113414" projectLocationURI="../../ProtocolModules/EricssonRTC_CNL113414/EricssonRTC_CNL113414.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_EricssonRTC_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_EricssonRTC_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_EricssonRTC_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_EricssonRTC_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_EricssonRTC_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_EricssonRTC_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_EricssonRTC_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_EricssonRTC_Logger_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_EricssonRTC_CNL113683</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_H248_CNL113523.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_H248_CNL113523.tpd
new file mode 100644
index 000000000..cdbe3b361
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_H248_CNL113523.tpd
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_H248_CNL113523.tpd
+   Description:        tpd project file
+   Rev:                R12B02
+   Prodnr:             CNL 113 523
+   Updated:            2013-03-14
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_H248_CNL113523</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HostAdmin" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="GCP_31r1_CNL113364" projectLocationURI="../../ProtocolModules/GCP_31r1_CNL113364/GCP_31r1_CNL113364.tpd"/>
+    <ReferencedProject name="H248_v2_CNL113424" projectLocationURI="../../ProtocolModules/H248_v2_CNL113424/H248_v2_CNL113424.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_Applib_H248_CNL113523.tpd" relativeURI="EPTF_Applib_H248_CNL113523.tpd"/>
+    <FileResource projectRelativePath="EPTF_H248_DS_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_H248_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_DS_Functions.ttcn" relativeURI="src/LoadGen/EPTF_H248_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Database_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_H248_Database_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Database_Functions.ttcn" relativeURI="src/LoadGen/EPTF_H248_Database_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_H248_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_H248_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_H248_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_H248_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_SDP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_H248_SDP_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Scheduler_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_H248_Scheduler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Scheduler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_H248_Scheduler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Templates.ttcn" relativeURI="src/LoadGen/EPTF_H248_Templates.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Transport_Local_Definitions.ttcn" relativeURI="src/Transport/EPTF_H248_Transport_Local_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_Transport_Local_Functions.ttcn" relativeURI="src/Transport/EPTF_H248_Transport_Local_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_H248_UIHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_H248_UIHandler_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_H248_CNL113523</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>ENABLE_SCTP</listItem>
+            <listItem>USE_SCTP</listItem>
+            <listItem>LKSCTP_1_0_7</listItem>
+            <listItem>EINSS7_THREADSAFE</listItem>
+            <listItem>__EXTENSIONS__</listItem>
+            <listItem>_REENTRANT</listItem>
+            <listItem>_POSIX_PTHREAD_SEMANTICS</listItem>
+            <listItem>CP_R12A30</listItem>
+            <listItem>CP_R12</listItem>
+            <listItem>SCCP_CAA901437_R12</listItem>
+            <listItem>TCAP_CAA20118_R8</listItem>
+            <listItem>T_ADDRESS -DEINSS7_ADDR_IN_RESP</listItem>
+            <listItem>$(PLATFORM)</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorDefines>
+            <listItem>$(PLATFORM)</listItem>
+            <listItem>NO_IPV6</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_HTTP_CNL113618.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_HTTP_CNL113618.tpd
new file mode 100644
index 000000000..e48118822
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_HTTP_CNL113618.tpd
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_HTTP_CNL113618.tpd
+   Description:        tpd project file
+   Rev:                R6C01
+   Prodnr:             CNL 113 618
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_HTTP_CNL113618</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="HTTPmsg_CNL113312" projectLocationURI="../../TestPorts/HTTPmsg_CNL113312/HTTPmsg_CNL113312.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Security" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Security.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_HTTP_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_HTTP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_HTTP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_HTTP_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_HTTP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_HTTP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_HTTP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_HTTP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_HTTP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_HTTP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_HTTP_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_HTTP_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_HTTP_CNL113618_FS.pdf" relativeURI="doc/EPTF_Applib_HTTP_CNL113618_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_HTTP_CNL113618_PRI.pdf" relativeURI="doc/EPTF_Applib_HTTP_CNL113618_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_HTTP_CNL113618_UG.pdf" relativeURI="doc/EPTF_Applib_HTTP_CNL113618_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/Menu.txt" relativeURI="doc/apidoc/Menu.txt"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_HTTP_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_HTTP_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_HTTP_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_HTTP_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_HTTP_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_HTTP_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_HTTP_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_HTTP_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_HTTP_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_HTTP_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_HTTP_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_HTTP_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Altsteps.html" relativeURI="doc/apidoc/index/Altsteps.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants2.html" relativeURI="doc/apidoc/index/Constants2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions2.html" relativeURI="doc/apidoc/index/Functions2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General3.html" relativeURI="doc/apidoc/index/General3.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General4.html" relativeURI="doc/apidoc/index/General4.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General5.html" relativeURI="doc/apidoc/index/General5.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Templates.html" relativeURI="doc/apidoc/index/Templates.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_HTTP_CNL113618</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_INAP_CNL113596.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_INAP_CNL113596.tpd
new file mode 100644
index 000000000..0fab3a1a1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_INAP_CNL113596.tpd
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_INAP_CNL113596.tpd
+   Description:        tpd project file
+   Rev:                R8B02
+   Prodnr:             CNL 113 596
+   Updated:            2012-06-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_INAP_CNL113596</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="Ericsson_INAP_CS1plus_CNL113356" projectLocationURI="../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/Ericsson_INAP_CS1plus_CNL113356.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_INAP_CS1plus_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_INAP_CS1plus_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_INAP_CS1plus_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_INAP_CS1plus_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_INAP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_INAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_INAP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_INAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_INAP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_INAP_Logger_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_INAP_CNL113596</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_ISUP_CNL113681.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_ISUP_CNL113681.tpd
new file mode 100644
index 000000000..d3e4e6bfe
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_ISUP_CNL113681.tpd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_ISUP_CNL113681.tpd
+   Description:        tpd project file
+   Rev:                R4A02
+   Prodnr:             CNL 113 681
+   Updated:            2012-10-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_ISUP_CNL113681</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ISUP_ANSI_CNL113411" projectLocationURI="../../ProtocolModules/ISUP_ANSI_CNL113411/ISUP_ANSI_CNL113411.tpd"/>
+    <ReferencedProject name="ISUP_Q.762_CNL113365" projectLocationURI="../../ProtocolModules/ISUP_Q.762_CNL113365/ISUP_Q.762_CNL113365.tpd"/>
+    <ReferencedProject name="ISUP_for_Japan_CNL113727" projectLocationURI="../../ProtocolModules/ISUP_for_Japan_CNL113727/ISUP_for_Japan_CNL113727.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_M3_CNL113682" projectLocationURI="../EPTF_CommonTransport_M3_CNL113682/EPTF_CommonTransport_M3_CNL113682.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_ISUP_Common_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_Stat_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_Stat_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_ITU_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_ITU_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_ITU_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_ITU_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_ANSI_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_ANSI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_ANSI_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_ANSI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_TTC_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_TTC_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_TCC_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_TTC_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_UserExtension_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_UserExtension_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_LGen_UserExtension_Functions.ttcn" relativeURI="src/LoadGen/EPTF_ISUP_LGen_UserExtension_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_ISUP_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ISUP_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_ISUP_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_ISUP_CNL113681</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_IUA_CNL113747.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_IUA_CNL113747.tpd
new file mode 100644
index 000000000..27ef87610
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_IUA_CNL113747.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_IUA_CNL113747.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 747
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_IUA_CNL113747</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="IUA_CNL113439" projectLocationURI="../../ProtocolModules/IUA_CNL113439/IUA_CNL113439.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/Logger/EPTF_IUA_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_IUA_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_IUA_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_IUA_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_IUA_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_IUA_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_IUA_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_IUA_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_IUA_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_IUA_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_IUA_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_IUA_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_IUA_CNL113747</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LANL2_CNL113698.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LANL2_CNL113698.tpd
new file mode 100644
index 000000000..74b5e32cb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LANL2_CNL113698.tpd
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_LANL2_CNL113698.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 698
+   Updated:            2012-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_LANL2_CNL113698</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="IP_CNL113418" projectLocationURI="../../ProtocolModules/IP_CNL113418/IP_CNL113418.tpd"/>
+    <ReferencedProject name="LANL2asp_CNL113519" projectLocationURI="../../TestPorts/LANL2asp_CNL113519/LANL2asp_CNL113519.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../../TestPorts/Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Interface" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Interface.tpd"/>
+    <ReferencedProject name="UDP_CNL113420" projectLocationURI="../../ProtocolModules/UDP_CNL113420/UDP_CNL113420.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/Data" relativeURI="doc/apidoc/Data"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_LANL2_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_LANL2_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_LANL2_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_LANL2_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_LANL2_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_LANL2_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_LANL2_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_LANL2_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_LANL2_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_LANL2_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_LANL2_Transport_ExternalFunctions.cc" relativeURI="src/Transport/EPTF_LANL2_Transport_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_LANL2_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_LANL2_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_LANL2_CNL113698_FS.pdf" relativeURI="doc/EPTF_Applib_LANL2_CNL113698_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_LANL2_CNL113698_PRI.pdf" relativeURI="doc/EPTF_Applib_LANL2_CNL113698_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_LANL2_CNL113698_UG.pdf" relativeURI="doc/EPTF_Applib_LANL2_CNL113698_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/Data/ClassHierarchy.nd" relativeURI="doc/apidoc/Data/ClassHierarchy.nd"/>
+    <FileResource projectRelativePath="doc/apidoc/Data/ConfigFileInfo.nd" relativeURI="doc/apidoc/Data/ConfigFileInfo.nd"/>
+    <FileResource projectRelativePath="doc/apidoc/Data/FileInfo.nd" relativeURI="doc/apidoc/Data/FileInfo.nd"/>
+    <FileResource projectRelativePath="doc/apidoc/Data/PreviousMenuState.nd" relativeURI="doc/apidoc/Data/PreviousMenuState.nd"/>
+    <FileResource projectRelativePath="doc/apidoc/Data/PreviousSettings.nd" relativeURI="doc/apidoc/Data/PreviousSettings.nd"/>
+    <FileResource projectRelativePath="doc/apidoc/Data/SymbolTable.nd" relativeURI="doc/apidoc/Data/SymbolTable.nd"/>
+    <FileResource projectRelativePath="doc/apidoc/Menu.txt" relativeURI="doc/apidoc/Menu.txt"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_LANL2_LGen_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_LANL2_LGen_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_LANL2_LGen_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_LANL2_LGen_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_LANL2_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_LANL2_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_LANL2_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_LANL2_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/TITANSim.html" relativeURI="doc/apidoc/files/TITANSim.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_LANL2_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_LANL2_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_LANL2_Transport_ExternalFunctions-cc.html" relativeURI="doc/apidoc/files/Transport/EPTF_LANL2_Transport_ExternalFunctions-cc.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_LANL2_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_LANL2_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/EPTF_Applib_LANL2_CNL113698</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LNP_CNL113714.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LNP_CNL113714.tpd
new file mode 100644
index 000000000..59c9fa3c0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_LNP_CNL113714.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_LNP_CNL113714.tpd
+   Description:        tpd project file
+   Rev:                R1D01
+   Prodnr:             CNL 113 714
+   Updated:            2012-10-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_LNP_CNL113714</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="LNP_ANSI_CNL113715" projectLocationURI="../../ProtocolModules/LNP_ANSI_CNL113715/LNP_ANSI_CNL113715.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/EPTF_Applib_LNP.grp" relativeURI="src/EPTF_Applib_LNP.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_LNP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_LNP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_LNP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_LNP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_LNP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_LNP_Logger_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_LNP_CNL113714</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MAP_CNL113595.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MAP_CNL113595.tpd
new file mode 100644
index 000000000..48363dab2
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MAP_CNL113595.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_MAP_CNL113595.tpd
+   Description:        tpd project file
+   Rev:                R8B01
+   Prodnr:             CNL 113 595
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_MAP_CNL113595</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="Ericsson_MAP_v2_CNL113725" projectLocationURI="../../ProtocolModules/Ericsson_MAP_v2_CNL113725/Ericsson_MAP_v2_CNL113725.tpd"/>
+    <ReferencedProject name="MAP_v1_CNL113431" projectLocationURI="../../ProtocolModules/MAP_v1_CNL113431/MAP_v1_CNL113431.tpd"/>
+    <ReferencedProject name="MAP_v2_CNL113432" projectLocationURI="../../ProtocolModules/MAP_v2_CNL113432/MAP_v2_CNL113432.tpd"/>
+    <ReferencedProject name="MAP_v7.12.0_CNL113635_v123" projectLocationURI="../../ProtocolModules/MAP_v7.12.0_CNL113635/MAP_v7.12.0_CNL113635_v123.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_MAP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MAP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_MAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MAP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_MAP_Logger_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_MAP_CNL113595</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MLSim_CNL113568.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MLSim_CNL113568.tpd
new file mode 100644
index 000000000..af56078bc
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MLSim_CNL113568.tpd
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_MLSim_CNL113568.tpd
+   Description:        tpd project file
+   Rev:                R10A02
+   Prodnr:             CNL 113 568
+   Updated:            2013-02-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_MLSim_CNL113568</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="MLSIMasp_CNL113538" projectLocationURI="../../TestPorts/MLSIMasp_CNL113538/MLSIMasp_CNL113538.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_MLSim_Functions.ttcn" relativeURI="src/LoadGen/EPTF_MLSim_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_MLSim_General_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MLSim_General_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_MLSim_LoadGen.grp" relativeURI="src/LoadGen/EPTF_MLSim_LoadGen.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_MLSim_Request_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MLSim_Request_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_MLSim_Response_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MLSim_Response_Definitions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_MLSim_CNL113568</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MSRP_CNL113564.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MSRP_CNL113564.tpd
new file mode 100644
index 000000000..f0dc37aeb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MSRP_CNL113564.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_MSRP_CNL113564.tpd
+   Description:        tpd project file
+   Rev:                R10A03
+   Prodnr:             CNL 113 564
+   Updated:            2013-04-04
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_MSRP_CNL113564</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="MSRP_CNL113467" projectLocationURI="../../ProtocolModules/MSRP_CNL113467/MSRP_CNL113467.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_MSRP_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MSRP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MSRP_EncDec.cc" relativeURI="src/Transport/EPTF_MSRP_EncDec.cc"/>
+    <FileResource projectRelativePath="EPTF_MSRP_FSMs.ttcn" relativeURI="src/LoadGen/EPTF_MSRP_FSMs.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MSRP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_MSRP_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MSRP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_MSRP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MSRP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_MSRP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MSRP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_MSRP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MSRP_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_MSRP_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_MSRP_CNL113564</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MobileL3_CNL113609.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MobileL3_CNL113609.tpd
new file mode 100644
index 000000000..30695d851
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_MobileL3_CNL113609.tpd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_MobileL3_CNL113609.tpd
+   Description:        tpd project file
+   Rev:                R1A06
+   Prodnr:             CNL 113 609
+   Updated:            2013-01-25
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_MobileL3_CNL113609</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MobileL3_v10.5.0_CNL113758" projectLocationURI="../../ProtocolModules/MobileL3_v10.5.0_CNL113758/MobileL3_v10.5.0_CNL113758.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_SCCP_CNL113610" projectLocationURI="../EPTF_CommonTransport_SCCP_CNL113610/EPTF_CommonTransport_SCCP_CNL113610.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_MobileL3_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MobileL3_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MobileL3_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_MobileL3_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MobileL3_LGen_UserExtension_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_MobileL3_LGen_UserExtension_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MobileL3_LGen_UserExtension_Functions.ttcn" relativeURI="src/LoadGen/EPTF_MobileL3_LGen_UserExtension_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MobileL3_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_MobileL3_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_MobileL3_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_MobileL3_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_MobileL3_CNL113609</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_RANAP_CNL113647.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_RANAP_CNL113647.tpd
new file mode 100644
index 000000000..695e5e2f8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_RANAP_CNL113647.tpd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_RANAP_CNL113647.tpd
+   Description:        tpd project file
+   Rev:                R1A07
+   Prodnr:             CNL 113 647
+   Updated:            2013-01-25
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_RANAP_CNL113647</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC" projectLocationURI="../../ProtocolModules/RANAP_v9.5.0_CNL113718/demo/RNC_to_RNC/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_SCCP_CNL113610" projectLocationURI="../EPTF_CommonTransport_SCCP_CNL113610/EPTF_CommonTransport_SCCP_CNL113610.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_RANAP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_RANAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_RANAP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_RANAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_RANAP_LGen_UserExtension_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_RANAP_LGen_UserExtension_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_RANAP_LGen_UserExtension_Functions.ttcn" relativeURI="src/LoadGen/EPTF_RANAP_LGen_UserExtension_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_RANAP_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_RANAP_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_RANAP_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_RANAP_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_RANAP_CNL113647</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SDP_CNL113744.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SDP_CNL113744.tpd
new file mode 100644
index 000000000..9f55a652f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SDP_CNL113744.tpd
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_SDP_CNL113744.tpd
+   Description:        tpd project file
+   Rev:                R1A03
+   Prodnr:             CNL 113 744
+   Updated:            2013-02-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_SDP_CNL113744</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="SDP_CNL113353" projectLocationURI="../../ProtocolModules/SDP_CNL113353/SDP_CNL113353.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Maths" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Maths.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="demo" relativeURI="demo"/>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="test" relativeURI="test"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SDP_CNL113744_FS.pdf" relativeURI="doc/EPTF_Applib_SDP_CNL113744_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SDP_CNL113744_PRI.pdf" relativeURI="doc/EPTF_Applib_SDP_CNL113744_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SDP_CNL113744_UG.pdf" relativeURI="doc/EPTF_Applib_SDP_CNL113744_UG.pdf"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SDP_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SDP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SDP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SDP_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SDP_LoadGen.grp" relativeURI="src/LoadGen/EPTF_SDP_LoadGen.grp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_SDP_CNL113744</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>demo</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>test</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SGsAP_CNL113723.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SGsAP_CNL113723.tpd
new file mode 100644
index 000000000..f29b8b62e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SGsAP_CNL113723.tpd
@@ -0,0 +1,135 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_SGsAP_CNL113723.tpd
+   Description:        tpd project file
+   Rev:                R1A03
+   Prodnr:             CNL 113 723
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_SGsAP_CNL113723</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LoadRegulator" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulator.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LoadRegulatorUI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulatorUI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="SGsAP_v9.0.0_CNL113684" projectLocationURI="../../ProtocolModules/SGsAP_v9.0.0_CNL113684/SGsAP_v9.0.0_CNL113684.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/search" relativeURI="doc/apidoc/search"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SGsAP_CNL113723_FS.pdf" relativeURI="doc/EPTF_Applib_SGsAP_CNL113723_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SGsAP_CNL113723_PRI.pdf" relativeURI="doc/EPTF_Applib_SGsAP_CNL113723_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SGsAP_CNL113723_UG.pdf" relativeURI="doc/EPTF_Applib_SGsAP_CNL113723_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_SGsAP_LGen_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_SGsAP_LGen_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_SGsAP_LGen_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_SGsAP_LGen_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_SGsAP_UIHandler_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_SGsAP_UIHandler_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_SGsAP_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_SGsAP_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_SGsAP_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_SGsAP_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_SGsAP_Logging_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_SGsAP_Logging_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_SGsAP_Logging_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_SGsAP_Logging_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_SGsAP_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_SGsAP_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_SGsAP_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_SGsAP_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Altsteps.html" relativeURI="doc/apidoc/index/Altsteps.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General3.html" relativeURI="doc/apidoc/index/General3.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/searchdata.js" relativeURI="doc/apidoc/javascript/searchdata.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/AltstepsA.html" relativeURI="doc/apidoc/search/AltstepsA.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/ConstantsC.html" relativeURI="doc/apidoc/search/ConstantsC.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/ConstantsF.html" relativeURI="doc/apidoc/search/ConstantsF.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/ConstantsI.html" relativeURI="doc/apidoc/search/ConstantsI.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/ConstantsP.html" relativeURI="doc/apidoc/search/ConstantsP.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/ConstantsS.html" relativeURI="doc/apidoc/search/ConstantsS.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/FilesE.html" relativeURI="doc/apidoc/search/FilesE.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/FunctionsF.html" relativeURI="doc/apidoc/search/FunctionsF.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralA.html" relativeURI="doc/apidoc/search/GeneralA.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralC.html" relativeURI="doc/apidoc/search/GeneralC.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralE.html" relativeURI="doc/apidoc/search/GeneralE.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralF.html" relativeURI="doc/apidoc/search/GeneralF.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralI.html" relativeURI="doc/apidoc/search/GeneralI.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralL.html" relativeURI="doc/apidoc/search/GeneralL.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralM.html" relativeURI="doc/apidoc/search/GeneralM.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralP.html" relativeURI="doc/apidoc/search/GeneralP.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralR.html" relativeURI="doc/apidoc/search/GeneralR.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralS.html" relativeURI="doc/apidoc/search/GeneralS.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralT.html" relativeURI="doc/apidoc/search/GeneralT.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/NoResults.html" relativeURI="doc/apidoc/search/NoResults.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/TypesE.html" relativeURI="doc/apidoc/search/TypesE.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+    <FileResource projectRelativePath="src/EPTF_Applib_SGsAP.grp" relativeURI="src/EPTF_Applib_SGsAP.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SGsAP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SGsAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SGsAP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SGsAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SGsAP_UIHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SGsAP_UIHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SGsAP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_SGsAP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SGsAP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_SGsAP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SGsAP_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_SGsAP_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SGsAP_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_SGsAP_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SGsAP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_SGsAP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SGsAP_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_SGsAP_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_SGsAP_CNL113723</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SIP_CNL113522.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SIP_CNL113522.tpd
new file mode 100644
index 000000000..0f69e60ee
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SIP_CNL113522.tpd
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_SIP_CNL113522.tpd
+   Description:        tpd project file
+   Rev:                R12A03
+   Prodnr:             CNL 113 522
+   Updated:            2013-04-04
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_SIP_CNL113522</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="MIME_CNL113352" projectLocationURI="../../ProtocolModules/MIME_CNL113352/MIME_CNL113352.tpd"/>
+    <ReferencedProject name="SDP_CNL113353" projectLocationURI="../../ProtocolModules/SDP_CNL113353/SDP_CNL113353.tpd"/>
+    <ReferencedProject name="SIPmsg_CNL113319" projectLocationURI="../../TestPorts/SIPmsg_CNL113319/SIPmsg_CNL113319.tpd"/>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../../TestPorts/Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_IPsec" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_IPsec.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Security" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Security.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_SIP_BodyHandler_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_BodyHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_BodyHandler_ExternalFunctions.cc" relativeURI="src/LoadGen/EPTF_SIP_BodyHandler_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_SIP_BodyHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_BodyHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Common_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Common_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_CreateRemove_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_CreateRemove_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Dialog_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Dialog_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Dialog_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Dialog_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_EventNotification_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_EventNotification_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_EventNotification_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_EventNotification_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Events.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Events.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_LGen_ExternalFunctions.cc" relativeURI="src/LoadGen/EPTF_SIP_LGen_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_SIP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_SIP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_SIP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_MessageCreator_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_MessageCreator_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_MessageHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_MessageHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Publish_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Publish_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Publish_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Publish_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_StateHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_StateHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Templates.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Templates.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_TestSteps.ttcn" relativeURI="src/LoadGen/EPTF_SIP_TestSteps.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Transaction_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Transaction_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Transaction_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_Transaction_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_SIP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_SIP_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_UserDatabase_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_UserDatabase_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SIP_UserDatabase_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SIP_UserDatabase_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_SIP_CNL113522</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SOAP_CNL113620.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SOAP_CNL113620.tpd
new file mode 100644
index 000000000..3e03fb8aa
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SOAP_CNL113620.tpd
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_SOAP_CNL113620.tpd
+   Description:        tpd project file
+   Rev:                R2C01
+   Prodnr:             CNL 113 620
+   Updated:            2012-10-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_SOAP_CNL113620</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_HTTP_CNL113618" projectLocationURI="../EPTF_Applib_HTTP_CNL113618/EPTF_Applib_HTTP_CNL113618.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SOAP_CNL113620_FS.pdf" relativeURI="doc/EPTF_Applib_SOAP_CNL113620_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SOAP_CNL113620_PRI.pdf" relativeURI="doc/EPTF_Applib_SOAP_CNL113620_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SOAP_CNL113620_UG.pdf" relativeURI="doc/EPTF_Applib_SOAP_CNL113620_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_SOAP_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_SOAP_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_SOAP_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_SOAP_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_SOAP_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_SOAP_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_SOAP_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_SOAP_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_SOAP_SOAPOverHTTP_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_SOAP_SOAPOverHTTP_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_SOAP_SOAPOverHTTP_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_SOAP_SOAPOverHTTP_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Templates.html" relativeURI="doc/apidoc/index/Templates.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+    <FileResource projectRelativePath="src/EPTF_SOAP_All.grp" relativeURI="src/EPTF_SOAP_All.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SOAP_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SOAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SOAP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SOAP_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SOAP_LoadGen.grp" relativeURI="src/LoadGen/EPTF_SOAP_LoadGen.grp"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SOAP_Logger.grp" relativeURI="src/Logger/EPTF_SOAP_Logger.grp"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SOAP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_SOAP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SOAP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_SOAP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SOAP_SOAPOverHTTP_Definitions.ttcn" relativeURI="src/Transport/EPTF_SOAP_SOAPOverHTTP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SOAP_SOAPOverHTTP_Functions.ttcn" relativeURI="src/Transport/EPTF_SOAP_SOAPOverHTTP_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SOAP_Transport.grp" relativeURI="src/Transport/EPTF_SOAP_Transport.grp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_SOAP_CNL113620</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SRVCC_CNL113741.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SRVCC_CNL113741.tpd
new file mode 100644
index 000000000..65fe9b3f7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_SRVCC_CNL113741.tpd
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_SRVCC_CNL113741.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 741
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_SRVCC_CNL113741</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LoadRegulator" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulator.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LoadRegulatorUI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulatorUI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="GTPv2_Sv_v9.7.0_CNL113730" projectLocationURI="../../ProtocolModules/GTPv2_Sv_v9.7.0_CNL113730/GTPv2_Sv_v9.7.0_CNL113730.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SRVCC_CNL113741_FS.pdf" relativeURI="doc/EPTF_Applib_SRVCC_CNL113741_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SRVCC_CNL113741_PRI.pdf" relativeURI="doc/EPTF_Applib_SRVCC_CNL113741_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_SRVCC_CNL113741_UG.pdf" relativeURI="doc/EPTF_Applib_SRVCC_CNL113741_UG.pdf"/>
+    <FileResource projectRelativePath="src/EPTF_Applib_SRVCC.grp" relativeURI="src/EPTF_Applib_SRVCC.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SRVCC_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SRVCC_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SRVCC_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SRVCC_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_SRVCC_UIHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SRVCC_UIHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SRVCC_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_SRVCC_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SRVCC_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_SRVCC_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SRVCC_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_SRVCC_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_SRVCC_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_SRVCC_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SRVCC_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_SRVCC_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_SRVCC_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_SRVCC_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_SRVCC_CNL113741</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_STUN_CNL113645.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_STUN_CNL113645.tpd
new file mode 100644
index 000000000..a091c1ddc
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_STUN_CNL113645.tpd
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_STUN_CNL113645.tpd
+   Description:        tpd project file
+   Rev:                R1B02
+   Prodnr:             CNL 113 645
+   Updated:            2012-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_STUN_CNL113645</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_TitanSim" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_TitanSim.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="UDPasp_CNL113346" projectLocationURI="../../TestPorts/UDPasp_CNL113346/UDPasp_CNL113346.tpd"/>    
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>  
+    <ReferencedProject name="TELNETasp_CNL113320" projectLocationURI="../../TestPorts/TELNETasp_CNL113320/TELNETasp_CNL113320.tpd"/>   
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../../ProtocolModules/XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../../TestPorts/Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>    
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>   
+    <ReferencedProject name="STUN_CNL113644" projectLocationURI="../../ProtocolModules/STUN_CNL113644/STUN_CNL113644.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_STUN_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_STUN_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_STUN_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_STUN_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_STUN_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_STUN_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_STUN_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_STUN_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_STUN_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_STUN_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_STUN_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_STUN_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_STUN_CNL113645_FS.pdf" relativeURI="doc/EPTF_Applib_STUN_CNL113645_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_STUN_CNL113645_PRI.pdf" relativeURI="doc/EPTF_Applib_STUN_CNL113645_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_STUN_CNL113645_UG.pdf" relativeURI="doc/EPTF_Applib_STUN_CNL113645_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/Menu.txt" relativeURI="doc/apidoc/Menu.txt"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_STUN_LGen_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_STUN_LGen_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_STUN_LGen_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_STUN_LGen_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_STUN_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_STUN_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_STUN_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_STUN_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_STUN_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_STUN_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_STUN_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_STUN_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Altsteps.html" relativeURI="doc/apidoc/index/Altsteps.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General3.html" relativeURI="doc/apidoc/index/General3.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Templates.html" relativeURI="doc/apidoc/index/Templates.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_STUN_CNL113645</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UPloadCP_CNL113634.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UPloadCP_CNL113634.tpd
new file mode 100644
index 000000000..66689eeeb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UPloadCP_CNL113634.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_UPloadCP_CNL113634.tpd
+   Description:        tpd project file
+   Rev:                R5B01
+   Prodnr:             CNL 113 634
+   Updated:            2013-01-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_UPloadCP_CNL113634</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="UPloadCP_CNL113633" projectLocationURI="../../ProtocolModules/UPloadCP_CNL113633/UPloadCP_CNL113633.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_UPloadCP_LGen_DSFunctions.ttcn" relativeURI="src/LoadGen/EPTF_UPloadCP_LGen_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_UPloadCP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_LGen_Functions.ttcnpp" relativeURI="src/LoadGen/EPTF_UPloadCP_LGen_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_UPloadCP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_UPloadCP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_UPloadCP_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_UPloadCP_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_UPloadCP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_Transport_Functions.ttcnpp" relativeURI="src/Transport/EPTF_UPloadCP_Transport_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_UPloadCP_UIHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_UPloadCP_UIHandler_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_UPloadCP_CNL113634</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UserPlane_CNL113724.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UserPlane_CNL113724.tpd
new file mode 100644
index 000000000..c72afd388
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_UserPlane_CNL113724.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_UserPlane_CNL113724.tpd
+   Description:        tpd project file
+   Rev:                R4A04
+   Prodnr:             CNL 113 724
+   Updated:            2013-04-04
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_UserPlane_CNL113724</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_MLSim_CNL113568" projectLocationURI="../EPTF_Applib_MLSim_CNL113568/EPTF_Applib_MLSim_CNL113568.tpd"/>
+    <ReferencedProject name="EPTF_Applib_MSRP_CNL113564" projectLocationURI="../EPTF_Applib_MSRP_CNL113564/EPTF_Applib_MSRP_CNL113564.tpd"/>
+    <ReferencedProject name="EPTF_Applib_UPloadCP_CNL113634" projectLocationURI="../EPTF_Applib_UPloadCP_CNL113634/EPTF_Applib_UPloadCP_CNL113634.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_Abstract.grp" relativeURI="src/LoadGen/EPTF_UserPlane_Abstract.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_Abstract_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_Abstract_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_Abstract_Functions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_Abstract_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MLSim.grp" relativeURI="src/LoadGen/EPTF_UserPlane_MLSim.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MLSim_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_MLSim_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MLSim_Functions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_MLSim_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MLSim.grp" relativeURI="src/LoadGen/EPTF_UserPlane_MLSimPlus.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MLSim_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_MLSimPlus_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MLSim_Functions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_MLSimPlus_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MSRP.grp" relativeURI="src/LoadGen/EPTF_UserPlane_MSRP.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MSRP_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_MSRP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_MSRP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_MSRP_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_UPload.grp" relativeURI="src/LoadGen/EPTF_UserPlane_UPload.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_UPload_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_UPload_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_UserPlane_UPload_Functions.ttcn" relativeURI="src/LoadGen/EPTF_UserPlane_UPload_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_UserPlane_CNL113724</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_VXML_CNL113565.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_VXML_CNL113565.tpd
new file mode 100644
index 000000000..82fecb199
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_VXML_CNL113565.tpd
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_VXML_CNL113565.tpd
+   Description:        tpd project file
+   Rev:                R4A01
+   Prodnr:             CNL 113 565
+   Updated:            2012-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_VXML_CNL113565</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>   
+    <ReferencedProject name="HTTPmsg_CNL113312" projectLocationURI="../../TestPorts/HTTPmsg_CNL113312/HTTPmsg_CNL113312.tpd"/>   
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>  
+    <ReferencedProject name="TELNETasp_CNL113320" projectLocationURI="../../TestPorts/TELNETasp_CNL113320/TELNETasp_CNL113320.tpd"/>        
+    <ReferencedProject name="UDPasp_CNL113346" projectLocationURI="../../TestPorts/UDPasp_CNL113346/UDPasp_CNL113346.tpd"/>    
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../../TestPorts/Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_TitanSim" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_TitanSim.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>    
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../../ProtocolModules/XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_VXML_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_VXML_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_VXML_Functions.ttcn" relativeURI="src/LoadGen/EPTF_VXML_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_VXML_Templates.ttcn" relativeURI="src/LoadGen/EPTF_VXML_Templates.ttcn"/>
+    <FileResource projectRelativePath="EPTF_VXML_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_VXML_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_VXML_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_VXML_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_VXML_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_VXML_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_VXML_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_VXML_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_VXML_CNL113565_FS.pdf" relativeURI="doc/EPTF_Applib_VXML_CNL113565_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_VXML_CNL113565_PRI.pdf" relativeURI="doc/EPTF_Applib_VXML_CNL113565_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_VXML_CNL113565_UG.pdf" relativeURI="doc/EPTF_Applib_VXML_CNL113565_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/Menu.txt" relativeURI="doc/apidoc/Menu.txt"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_VXML_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_VXML_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_VXML_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_VXML_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_VXML_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_VXML_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_VXML_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_VXML_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_VXML_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_VXML_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_VXML_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_VXML_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Altsteps.html" relativeURI="doc/apidoc/index/Altsteps.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General3.html" relativeURI="doc/apidoc/index/General3.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General4.html" relativeURI="doc/apidoc/index/General4.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Templates.html" relativeURI="doc/apidoc/index/Templates.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_VXML_CNL113565</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_XCAP_CNL113534.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_XCAP_CNL113534.tpd
new file mode 100644
index 000000000..642ed71a1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_Applib_XCAP_CNL113534.tpd
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_Applib_XCAP_CNL113534.tpd
+   Description:        tpd project file
+   Rev:                R5E01
+   Prodnr:             CNL 113 534
+   Updated:            2013-02-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_Applib_XCAP_CNL113534</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="HTTPmsg_CNL113312" projectLocationURI="../../TestPorts/HTTPmsg_CNL113312/HTTPmsg_CNL113312.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Security" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Security.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_TitanSim" projectLocationURI="../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_TitanSim.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="doc/apidoc" relativeURI="doc/apidoc"/>
+    <FolderResource projectRelativePath="doc/apidoc/files" relativeURI="doc/apidoc/files"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/LoadGen" relativeURI="doc/apidoc/files/LoadGen"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Logger" relativeURI="doc/apidoc/files/Logger"/>
+    <FolderResource projectRelativePath="doc/apidoc/files/Transport" relativeURI="doc/apidoc/files/Transport"/>
+    <FolderResource projectRelativePath="doc/apidoc/index" relativeURI="doc/apidoc/index"/>
+    <FolderResource projectRelativePath="doc/apidoc/javascript" relativeURI="doc/apidoc/javascript"/>
+    <FolderResource projectRelativePath="doc/apidoc/search" relativeURI="doc/apidoc/search"/>
+    <FolderResource projectRelativePath="doc/apidoc/styles" relativeURI="doc/apidoc/styles"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/LoadGen" relativeURI="src/LoadGen"/>
+    <FolderResource projectRelativePath="src/Logger" relativeURI="src/Logger"/>
+    <FolderResource projectRelativePath="src/Transport" relativeURI="src/Transport"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/EPTF_Applib_XCAP_CNL113534_FS.pdf" relativeURI="doc/EPTF_Applib_XCAP_CNL113534_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_XCAP_CNL113534_PRI.pdf" relativeURI="doc/EPTF_Applib_XCAP_CNL113534_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EPTF_Applib_XCAP_CNL113534_UG.pdf" relativeURI="doc/EPTF_Applib_XCAP_CNL113534_UG.pdf"/>
+    <FileResource projectRelativePath="doc/apidoc/Menu.txt" relativeURI="doc/apidoc/Menu.txt"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_XCAP_Definitions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_XCAP_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/LoadGen/EPTF_XCAP_Functions-ttcn.html" relativeURI="doc/apidoc/files/LoadGen/EPTF_XCAP_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_XCAP_Logger_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_XCAP_Logger_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Logger/EPTF_XCAP_Logger_Functions-ttcn.html" relativeURI="doc/apidoc/files/Logger/EPTF_XCAP_Logger_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/TitanSim.html" relativeURI="doc/apidoc/files/TitanSim.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_XCAP_Transport_Definitions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_XCAP_Transport_Definitions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/files/Transport/EPTF_XCAP_Transport_Functions-ttcn.html" relativeURI="doc/apidoc/files/Transport/EPTF_XCAP_Transport_Functions-ttcn.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index.html" relativeURI="doc/apidoc/index.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Altsteps.html" relativeURI="doc/apidoc/index/Altsteps.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Constants.html" relativeURI="doc/apidoc/index/Constants.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Files.html" relativeURI="doc/apidoc/index/Files.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Functions.html" relativeURI="doc/apidoc/index/Functions.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General.html" relativeURI="doc/apidoc/index/General.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General2.html" relativeURI="doc/apidoc/index/General2.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/General3.html" relativeURI="doc/apidoc/index/General3.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Templates.html" relativeURI="doc/apidoc/index/Templates.html"/>
+    <FileResource projectRelativePath="doc/apidoc/index/Types.html" relativeURI="doc/apidoc/index/Types.html"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/main.js" relativeURI="doc/apidoc/javascript/main.js"/>
+    <FileResource projectRelativePath="doc/apidoc/javascript/searchdata.js" relativeURI="doc/apidoc/javascript/searchdata.js"/>
+    <FileResource projectRelativePath="doc/apidoc/menu.html" relativeURI="doc/apidoc/menu.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/AltstepsA.html" relativeURI="doc/apidoc/search/AltstepsA.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/ConstantsC.html" relativeURI="doc/apidoc/search/ConstantsC.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/FilesE.html" relativeURI="doc/apidoc/search/FilesE.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/FunctionsF.html" relativeURI="doc/apidoc/search/FunctionsF.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralA.html" relativeURI="doc/apidoc/search/GeneralA.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralC.html" relativeURI="doc/apidoc/search/GeneralC.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralE.html" relativeURI="doc/apidoc/search/GeneralE.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralF.html" relativeURI="doc/apidoc/search/GeneralF.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralL.html" relativeURI="doc/apidoc/search/GeneralL.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralM.html" relativeURI="doc/apidoc/search/GeneralM.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralP.html" relativeURI="doc/apidoc/search/GeneralP.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralR.html" relativeURI="doc/apidoc/search/GeneralR.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/GeneralT.html" relativeURI="doc/apidoc/search/GeneralT.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/NoResults.html" relativeURI="doc/apidoc/search/NoResults.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/TemplatesT.html" relativeURI="doc/apidoc/search/TemplatesT.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/TypesE.html" relativeURI="doc/apidoc/search/TypesE.html"/>
+    <FileResource projectRelativePath="doc/apidoc/search/TypesF.html" relativeURI="doc/apidoc/search/TypesF.html"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/1.css" relativeURI="doc/apidoc/styles/1.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/2.css" relativeURI="doc/apidoc/styles/2.css"/>
+    <FileResource projectRelativePath="doc/apidoc/styles/main.css" relativeURI="doc/apidoc/styles/main.css"/>
+    <FileResource projectRelativePath="src/EPTF_XCAP_All.grp" relativeURI="src/EPTF_XCAP_All.grp"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_XCAP_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_XCAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_XCAP_Functions.ttcn" relativeURI="src/LoadGen/EPTF_XCAP_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/LoadGen/EPTF_XCAP_LoadGen.grp" relativeURI="src/LoadGen/EPTF_XCAP_LoadGen.grp"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_XCAP_Logger.grp" relativeURI="src/Logger/EPTF_XCAP_Logger.grp"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_XCAP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_XCAP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Logger/EPTF_XCAP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_XCAP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_XCAP_Transport.grp" relativeURI="src/Transport/EPTF_XCAP_Transport.grp"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_XCAP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_XCAP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/Transport/EPTF_XCAP_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_XCAP_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_Applib_XCAP_CNL113534</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>NO_IPV6</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorDefines>
+            <listItem>NO_IPV6</listItem>
+          </preprocessorDefines>
+          <suppressWarnings>true</suppressWarnings>
+          <Solaris8SpecificLibraries>
+            <listItem>resolv</listItem>
+            <listItem>xnet</listItem>
+          </Solaris8SpecificLibraries>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Base.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Base.tpd
new file mode 100644
index 000000000..f2bdb1b4f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Base.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Base</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Base_Definitions.ttcn" relativeURI="EPTF_CLL_Base_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Base_ExternalFunctions.cc" relativeURI="EPTF_CLL_Base_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Base_Functions.ttcn" relativeURI="EPTF_CLL_Base_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Base</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Buffer.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Buffer.tpd
new file mode 100644
index 000000000..fd64185e1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Buffer.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Buffer</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Buffer_Definitions.ttcn" relativeURI="EPTF_CLL_Buffer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Buffer_ExternalFunctions.cc" relativeURI="EPTF_CLL_Buffer_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Buffer_Functions.ttcn" relativeURI="EPTF_CLL_Buffer_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_Buffer</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CLI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CLI.tpd
new file mode 100644
index 000000000..ecac4e166
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CLI.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_CLI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TELNETasp_CNL113320" projectLocationURI="../../../../TestPorts/TELNETasp_CNL113320/TELNETasp_CNL113320.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_CLI_Definitions.ttcn" relativeURI="EPTF_CLL_CLI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CLI_Functions.ttcn" relativeURI="EPTF_CLL_CLI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/CommandLineInterface</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralScheduling.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralScheduling.tpd
new file mode 100644
index 000000000..2de26b6ff
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralScheduling.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_CentralScheduling</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HostAdmin" projectLocationURI="../HostAdmin/EPTF_CLL_HostAdmin.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_CSAdmin_Functions.ttcn" relativeURI="EPTF_CLL_CSAdmin_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CSLB_Functions.ttcn" relativeURI="EPTF_CLL_CSLB_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CS_Definitions.ttcn" relativeURI="EPTF_CLL_CS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CS_DSFunctions.ttcn" relativeURI="EPTF_CLL_CS_DSFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_CentralScheduling</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralSchedulingUIHandler.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralSchedulingUIHandler.tpd
new file mode 100644
index 000000000..431a68580
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_CentralSchedulingUIHandler.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_CentralSchedulingUIHandler</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_CentralScheduling" projectLocationURI="EPTF_CLL_CentralScheduling.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl_UI" projectLocationURI="../ExecCtrl/EPTF_CLL_ExecCtrl_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HostAdmin" projectLocationURI="../HostAdmin/EPTF_CLL_HostAdmin.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HostAdmin_UI" projectLocationURI="../HostAdmin/EPTF_CLL_HostAdmin_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_CSUIHandler_Definitions.ttcn" relativeURI="EPTF_CLL_CSUIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CSUIHandler_Functions.ttcn" relativeURI="EPTF_CLL_CSUIHandler_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_CentralSchedulingUIHandler</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Common.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Common.tpd
new file mode 100644
index 000000000..bd53b98df
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Common.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Common</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Common_Definitions.ttcn" relativeURI="EPTF_CLL_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_ExternalFunctions.cc" relativeURI="EPTF_CLL_Common_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_Functions.ttcn" relativeURI="EPTF_CLL_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_IndexArrayDefinitions.ttcn" relativeURI="EPTF_CLL_Common_IndexArrayDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_IndexArrayFunctions.ttcn" relativeURI="EPTF_CLL_Common_IndexArrayFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_PrivateDebugDefinitions.ttcnpp" relativeURI="EPTF_CLL_Common_PrivateDebugDefinitions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_RndDefinitions.ttcn" relativeURI="EPTF_CLL_Common_RndDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_RndFunctions.ttcn" relativeURI="EPTF_CLL_Common_RndFunctions.ttcn"/>
+  </Files>
+  <PathVariables>
+  </PathVariables>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Common</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="Debug">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Common</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>EPTF_DEBUG</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorDefines>
+            <listItem>EPTF_DEBUG</listItem>
+          </preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_DataSource.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_DataSource.tpd
new file mode 100644
index 000000000..5437379a3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_DataSource.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_DataSource</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_CLI" projectLocationURI="../CommandLineInterface/EPTF_CLL_CLI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDP_CNL113663" projectLocationURI="../../../../ProtocolModules/XTDP_CNL113663/XTDP_CNL113663.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_DataSourceClient_Functions.ttcn" relativeURI="EPTF_CLL_DataSourceClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSource_Definitions.ttcn" relativeURI="EPTF_CLL_DataSource_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSource_ExternalFunctions.cc" relativeURI="EPTF_CLL_DataSource_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSource_Functions.ttcn" relativeURI="EPTF_CLL_DataSource_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_DataSource</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl.tpd
new file mode 100644
index 000000000..4cf162bcc
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl.tpd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_ExecCtrl</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_CLI" projectLocationURI="../CommandLineInterface/EPTF_CLL_CLI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlClient_Functions.ttcn" relativeURI="EPTF_CLL_ExecCtrlClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlTimeProfile_Definitions.ttcn" relativeURI="EPTF_CLL_ExecCtrlTimeProfile_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_CLIDefinitions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_CLIDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_CLIFunctions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_CLIFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_DSFunctions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_Definitions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_Functions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_LoggingFunctions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_LoggingFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_PhaseDefinitions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_PhaseDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_PhaseFunctions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_PhaseFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_ScenarioDefinitions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_ScenarioDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_ScenarioFunctions.ttcn" relativeURI="EPTF_CLL_ExecCtrl_ScenarioFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/ExecCtrl</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl_UI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl_UI.tpd
new file mode 100644
index 000000000..325ff580c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ExecCtrl_UI.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_ExecCtrl_UI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_CLI" projectLocationURI="../CommandLineInterface/EPTF_CLL_CLI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase_UI" projectLocationURI="../LGenBase/EPTF_CLL_LGenBase_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler_UI" projectLocationURI="../StatHandler/EPTF_CLL_StatHandler_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlUIHandler_Definitions.ttcn" relativeURI="EPTF_CLL_ExecCtrlUIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlUIHandler_Functions.ttcn" relativeURI="EPTF_CLL_ExecCtrlUIHandler_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_ExecCtrl_UI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_FBQ.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_FBQ.tpd
new file mode 100644
index 000000000..cba594e14
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_FBQ.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_FreeBusyQueue</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NQueue" projectLocationURI="../NQueue/EPTF_CLL_NQueue.tpd"/>    
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_FBQ_Definitions.ttcn" relativeURI="EPTF_CLL_FBQ_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_FBQ_Functions.ttcn" relativeURI="EPTF_CLL_FBQ_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_FreeBusyQueue</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_GUIViewer.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_GUIViewer.tpd
new file mode 100644
index 000000000..0c15e9cd1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_GUIViewer.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_GUIViewer</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_CLI" projectLocationURI="../CommandLineInterface/EPTF_CLL_CLI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_IPL4" projectLocationURI="../Transport/EPTF_CLL_Transport_IPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="XTDP_CNL113663" projectLocationURI="../../../../ProtocolModules/XTDP_CNL113663/XTDP_CNL113663.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_GUIViewer_Functions.ttcn" relativeURI="EPTF_CLL_GUIViewer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_GUIViewer.db" relativeURI="EPTF_CLL_GUIViewer.db"/>
+    <FileResource projectRelativePath="EPTF_CLL_GUIViewer.xml" relativeURI="EPTF_CLL_GUIViewer.xml"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/GUIViewer</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HashMap.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HashMap.tpd
new file mode 100644
index 000000000..6db9e84f0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HashMap.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_HashMap</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapInt2Int_ExternalFunctions.cc" relativeURI="EPTF_CLL_HashMapInt2Int_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapInt2Int_Functions.ttcn" relativeURI="EPTF_CLL_HashMapInt2Int_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapOct2Int_ExternalFunctions.cc" relativeURI="EPTF_CLL_HashMapOct2Int_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapOct2Int_Functions.ttcn" relativeURI="EPTF_CLL_HashMapOct2Int_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapStr2Int_ExternalFunctions.cc" relativeURI="EPTF_CLL_HashMapStr2Int_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapStr2Int_Functions.ttcn" relativeURI="EPTF_CLL_HashMapStr2Int_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMap_Functions.ttcn" relativeURI="EPTF_CLL_HashMap_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMap_Definitions.ttcn" relativeURI="EPTF_CLL_HashMap_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMap_ExternalFunctions.hh" relativeURI="EPTF_CLL_HashMap_ExternalFunctions.hh"/>
+  </Files>
+  <PathVariables>
+  </PathVariables>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_HashMap</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin.tpd
new file mode 100644
index 000000000..211b2a4f0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_HostAdmin</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="LOADMEASasp_CNL113585" projectLocationURI="../../../../TestPorts/LOADMEASasp_CNL113585/LOADMEASasp_CNL113585.tpd"/>    
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Interface" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Interface.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminServer_Definitions.ttcn" relativeURI="EPTF_CLL_HostAdminServer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminServer_Functions.ttcn" relativeURI="EPTF_CLL_HostAdminServer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_BaseDefinitions.ttcn" relativeURI="EPTF_CLL_HostAdmin_BaseDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_BaseFunctions.ttcn" relativeURI="EPTF_CLL_HostAdmin_BaseFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_DSFunctions.ttcn" relativeURI="EPTF_CLL_HostAdmin_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_Definitions.ttcn" relativeURI="EPTF_CLL_HostAdmin_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_Functions.ttcn" relativeURI="EPTF_CLL_HostAdmin_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_HostAdmin</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin_UI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin_UI.tpd
new file mode 100644
index 000000000..1e25a9083
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_HostAdmin_UI.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_HostAdmin_UI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HostAdmin" projectLocationURI="EPTF_CLL_HostAdmin.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable_UI" projectLocationURI="../UIHandler/EPTF_CLL_Variable_UI.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminUI_Definitions.ttcn" relativeURI="EPTF_CLL_HostAdminUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminUI_Functions.ttcn" relativeURI="EPTF_CLL_HostAdminUI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_HostAdmin_UI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILog.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILog.tpd
new file mode 100644
index 000000000..4b61eb165
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILog.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_ILog</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_ILogBase" projectLocationURI="EPTF_CLL_ILogBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../LGenBase/EPTF_CLL_LGenBase.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_ILog_Definitions.ttcn" relativeURI="EPTF_CLL_ILog_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ILog_Functions.ttcn" relativeURI="EPTF_CLL_ILog_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_ILog</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c_.*</globalConstant>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogBase.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogBase.tpd
new file mode 100644
index 000000000..146effab3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogBase.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_ILogBase</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NQueue" projectLocationURI="../NQueue/EPTF_CLL_NQueue.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_ILogBase_Definitions.ttcn" relativeURI="EPTF_CLL_ILogBase_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ILogBase_Functions.ttcn" relativeURI="EPTF_CLL_ILogBase_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_ILogBase</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogString.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogString.tpd
new file mode 100644
index 000000000..08baa58af
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_ILogString.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_ILogString</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_ILogBase" projectLocationURI="EPTF_CLL_ILogBase.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_ILogString_Definitions.ttcn" relativeURI="EPTF_CLL_ILogString_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ILogString_Functions.ttcn" relativeURI="EPTF_CLL_ILogString_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_ILogString</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase.tpd
new file mode 100644
index 000000000..187e2d3e9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase.tpd
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_LGenBase</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RandomNArray" projectLocationURI="../RandomNArray/EPTF_CLL_RandomNArray.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Maths" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Maths.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStats_Definitions.ttcn" relativeURI="EPTF_CLL_LGenBaseStats_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStats_Functions.ttcn" relativeURI="EPTF_CLL_LGenBaseStats_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseTrafficMixer_Definitions.ttcn" relativeURI="EPTF_CLL_LGenBaseTrafficMixer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseTrafficMixer_Functions.ttcn" relativeURI="EPTF_CLL_LGenBaseTrafficMixer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_ConfigDefinitions.ttcn" relativeURI="EPTF_CLL_LGenBase_ConfigDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_ConfigFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_ConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_Definitions.ttcn" relativeURI="EPTF_CLL_LGenBase_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_EventHandlingExternalFunctions.cc" relativeURI="EPTF_CLL_LGenBase_EventHandlingExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_EventHandlingFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_EventHandlingFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_ExternalFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_ExternalFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_Functions.ttcn" relativeURI="EPTF_CLL_LGenBase_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_LoggingFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_LoggingFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_PhaseConfigFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_PhaseConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_PhaseDefinitions.ttcn" relativeURI="EPTF_CLL_LGenBase_PhaseDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_PhaseFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_PhaseFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_StepFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_StepFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_TemplateDefinitions.ttcn" relativeURI="EPTF_CLL_LGenBase_TemplateDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_TemplateFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_TemplateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_TrafficFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_TrafficFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_DSFunctions.ttcn" relativeURI="EPTF_CLL_LGenBase_DSFunctions.ttcn"/>    
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/LGenBase</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="Debug">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/LGenBase</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>EPTF_CLL_Common</projectName>
+            <rerquiredConfiguration>Debug</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase_UI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase_UI.tpd
new file mode 100644
index 000000000..556563d79
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LGenBase_UI.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_LGenBase_UI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStatsUI_Definitions.ttcn" relativeURI="EPTF_CLL_LGenBaseStatsUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStatsUI_Functions.ttcn" relativeURI="EPTF_CLL_LGenBaseStatsUI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_LGenBase_UI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulator.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulator.tpd
new file mode 100644
index 000000000..4be8a0447
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulator.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_LoadRegulator</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>    
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulator_Definitions.ttcn" relativeURI="EPTF_CLL_LoadRegulator_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulator_Functions.ttcn" relativeURI="EPTF_CLL_LoadRegulator_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_LoadRegulator</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulatorUI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulatorUI.tpd
new file mode 100644
index 000000000..4748784d7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_LoadRegulatorUI.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_LoadRegulatorUI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_LoadRegulator" projectLocationURI="EPTF_CLL_LoadRegulator.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable_UI" projectLocationURI="../UIHandler/EPTF_CLL_Variable_UI.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulatorUI_Definitions.ttcn" relativeURI="EPTF_CLL_LoadRegulatorUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulatorUI_Functions.ttcn" relativeURI="EPTF_CLL_LoadRegulatorUI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_LoadRegulatorUI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging.tpd
new file mode 100644
index 000000000..5ac81e8ba
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Logging</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Logging_Definitions.ttcn" relativeURI="EPTF_CLL_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Logging_Functions.ttcn" relativeURI="EPTF_CLL_Logging_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Logging</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Client.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Client.tpd
new file mode 100644
index 000000000..e5faebc0e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Client.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Logging_Client</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="EPTF_CLL_Logging_Server.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingClient_Functions.ttcn" relativeURI="EPTF_CLL_LoggingClient_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CLL_Logging_Client</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Server.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Server.tpd
new file mode 100644
index 000000000..6351dd91e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_Server.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Logging_Server</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingServer_Definitions.ttcn" relativeURI="EPTF_CLL_LoggingServer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingServer_Functions.ttcn" relativeURI="EPTF_CLL_LoggingServer_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CLL_Logging_Server</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_UI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_UI.tpd
new file mode 100644
index 000000000..039ca24cf
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Logging_UI.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Logging_UI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUIClient_Functions.ttcn" relativeURI="EPTF_CLL_LoggingUIClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUI_Definitions.ttcn" relativeURI="EPTF_CLL_LoggingUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUI_Functions.ttcn" relativeURI="EPTF_CLL_LoggingUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUI_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_LoggingUI_PrivateFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_Logging_UI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NQueue.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NQueue.tpd
new file mode 100644
index 000000000..ab4575e13
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NQueue.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_NQueue</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_NQueue_Definitions.ttcn" relativeURI="EPTF_CLL_NQueue_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_NQueue_ExternalFunctions.cc" relativeURI="EPTF_CLL_NQueue_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_NQueue_Functions.ttcn" relativeURI="EPTF_CLL_NQueue_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/NQueue</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NameService.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NameService.tpd
new file mode 100644
index 000000000..9bcdd3b02
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_NameService.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_NameService</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_NameServiceClient_Functions.ttcn" relativeURI="EPTF_CLL_NameServiceClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_NameService_Definitions.ttcn" relativeURI="EPTF_CLL_NameService_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_NameService_ExternalFunctions.cc" relativeURI="EPTF_CLL_NameService_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_NameService_Functions.ttcn" relativeURI="EPTF_CLL_NameService_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_NameService</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_PTCDeployment.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_PTCDeployment.tpd
new file mode 100644
index 000000000..0ed279148
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_PTCDeployment.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_PTCDeployment</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_PTCDeployment_Definitions.ttcn" relativeURI="EPTF_CLL_PTCDeployment_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_PTCDeployment_Functions.ttcn" relativeURI="EPTF_CLL_PTCDeployment_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_PTCDeployment_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_PTCDeployment_PrivateFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_PTCDeployment</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RandomNArray.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RandomNArray.tpd
new file mode 100644
index 000000000..5ff043cab
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RandomNArray.tpd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_RandomNArray</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_RNA_Definitions.ttcn" relativeURI="EPTF_CLL_RNA_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RNA_Functions.ttcn" relativeURI="EPTF_CLL_RNA_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/RandomNArray</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RedBlackTree.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RedBlackTree.tpd
new file mode 100644
index 000000000..c0c006c2e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RedBlackTree.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_RedBlackTree</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_RBT_Definitions.ttcn" relativeURI="EPTF_CLL_RBT_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBT_ExternalFunctions.cc" relativeURI="EPTF_CLL_RBT_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBT_Functions.ttcn" relativeURI="EPTF_CLL_RBT_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeFloat_Functions.ttcn" relativeURI="EPTF_CLL_RBtreeFloat_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeFloat_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_RBtreeFloat_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeInteger_Functions.ttcn" relativeURI="EPTF_CLL_RBtreeInteger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeInteger_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_RBtreeInteger_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtree_Definitions.ttcn" relativeURI="EPTF_CLL_RBtree_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtree_Functions.ttcn" relativeURI="EPTF_CLL_RBtree_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtree_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_RBtree_PrivateFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_RedBlackTree</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Rendezvous.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Rendezvous.tpd
new file mode 100644
index 000000000..7849d43a6
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Rendezvous.tpd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Rendezvous</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_RendezvousClient_Functions.ttcn" relativeURI="EPTF_CLL_RendezvousClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Rendezvous_Definitions.ttcn" relativeURI="EPTF_CLL_Rendezvous_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Rendezvous_Functions.ttcn" relativeURI="EPTF_CLL_Rendezvous_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_Rendezvous</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RingBuffer.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RingBuffer.tpd
new file mode 100644
index 000000000..49cc7ed4c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_RingBuffer.tpd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_RingBuffer</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_GenericRingBuffer_Definitions.ttcnin" relativeURI="EPTF_CLL_GenericRingBuffer_Definitions.ttcnin"/>
+    <FileResource projectRelativePath="EPTF_CLL_GenericRingBuffer_Functions.ttcnin" relativeURI="EPTF_CLL_GenericRingBuffer_Functions.ttcnin"/>
+    <FileResource projectRelativePath="EPTF_CLL_IntegerRingBuffer_Functions.ttcn" relativeURI="EPTF_CLL_IntegerRingBuffer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RingBuffer_Definitions.ttcn" relativeURI="EPTF_CLL_RingBuffer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RingBuffer_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_RingBuffer_PrivateFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_RingBuffer</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Scheduler.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Scheduler.tpd
new file mode 100644
index 000000000..2f0a9a14c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Scheduler.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Scheduler</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RedBlackTree" projectLocationURI="../RedBlackTree/EPTF_CLL_RedBlackTree.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_RBTScheduler_Definitions.ttcn" relativeURI="EPTF_CLL_RBTScheduler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBTScheduler_Functions.ttcn" relativeURI="EPTF_CLL_RBTScheduler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Scheduler_Definitions.ttcn" relativeURI="EPTF_CLL_Scheduler_Definitions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Scheduler</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Semaphore.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Semaphore.tpd
new file mode 100644
index 000000000..39286a554
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Semaphore.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Semaphore</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Semaphore_Definitions.ttcn" relativeURI="EPTF_CLL_Semaphore_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Semaphore_Functions.ttcn" relativeURI="EPTF_CLL_Semaphore_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/Semaphore</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCapture.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCapture.tpd
new file mode 100644
index 000000000..ce443c246
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCapture.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatCapture</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatCapture_Definitions.ttcn" relativeURI="EPTF_CLL_StatCapture_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCapture_ExternalFunctions.cc" relativeURI="EPTF_CLL_StatCapture_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCapture_Functions.ttcn" relativeURI="EPTF_CLL_StatCapture_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_StatCapture</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureControl.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureControl.tpd
new file mode 100644
index 000000000..27875e6dc
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureControl.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatCaptureControl</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_NameService" projectLocationURI="../NameService/EPTF_CLL_NameService.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatCapture" projectLocationURI="EPTF_CLL_StatCapture.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatCaptureControl_Definitions.ttcn" relativeURI="EPTF_CLL_StatCaptureControl_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCaptureControl_Functions.ttcn" relativeURI="EPTF_CLL_StatCaptureControl_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_StatCaptureControl</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureUI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureUI.tpd
new file mode 100644
index 000000000..794ed45e8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatCaptureUI.tpd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatCaptureUI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatCapture" projectLocationURI="EPTF_CLL_StatCapture.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatCaptureControl" projectLocationURI="EPTF_CLL_StatCaptureControl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable_UI" projectLocationURI="../UIHandler/EPTF_CLL_Variable_UI.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatCaptureUI_Definitions.ttcn" relativeURI="EPTF_CLL_StatCaptureUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCaptureUI_Functions.ttcn" relativeURI="EPTF_CLL_StatCaptureUI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_StatCaptureUI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler.tpd
new file mode 100644
index 000000000..1977401fa
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatHandler</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerClient_Definitions.ttcn" relativeURI="EPTF_CLL_StatHandlerClient_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerClient_Functions.ttcn" relativeURI="EPTF_CLL_StatHandlerClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerLogging_Definitions.ttcn" relativeURI="EPTF_CLL_StatHandlerLogging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerLogging_Functions.ttcn" relativeURI="EPTF_CLL_StatHandlerLogging_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandler_Definitions.ttcn" relativeURI="EPTF_CLL_StatHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandler_Functions.ttcn" relativeURI="EPTF_CLL_StatHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandler_DSFunctions.ttcn" relativeURI="EPTF_CLL_StatHandler_DSFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/StatHandler</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler_UI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler_UI.tpd
new file mode 100644
index 000000000..0c0f04c9a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatHandler_UI.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatHandler_UI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerUI_Definitions.ttcn" relativeURI="EPTF_CLL_StatHandlerUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerUI_Functions.ttcn" relativeURI="EPTF_CLL_StatHandlerUI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_StatHandler_UI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatManager.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatManager.tpd
new file mode 100644
index 000000000..de305597f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatManager.tpd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatManager</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>    
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>    
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>    
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatManager_Definitions.ttcn" relativeURI="EPTF_CLL_StatManager_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatManager_Functions.ttcn" relativeURI="EPTF_CLL_StatManager_Functions.ttcn"/>    
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/StatManager</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatMeasure.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatMeasure.tpd
new file mode 100644
index 000000000..05101b518
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatMeasure.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatMeasure</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Maths" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Maths.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatMeasure_Definitions.ttcn" relativeURI="EPTF_CLL_StatMeasure_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatMeasure_Functions.ttcn" relativeURI="EPTF_CLL_StatMeasure_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/StatMeasure</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatReplay.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatReplay.tpd
new file mode 100644
index 000000000..38ef61a0c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_StatReplay.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_StatReplay</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RingBuffer" projectLocationURI="../RingBuffer/EPTF_CLL_RingBuffer.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_StatReplay_Definitions.ttcnpp" relativeURI="EPTF_CLL_StatReplay_Definitions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatReplay_Execution.ttcn" relativeURI="EPTF_CLL_StatReplay_Execution.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatReplay_Functions.ttcn" relativeURI="EPTF_CLL_StatReplay_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_StatReplay</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TimeProfileEditor.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TimeProfileEditor.tpd
new file mode 100644
index 000000000..a2fb5050d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TimeProfileEditor.tpd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_TimeProfileEditor</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_IPL4" projectLocationURI="../Transport/EPTF_CLL_Transport_IPL4.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_TimeProfileEditor.ttcn" relativeURI="EPTF_CLL_TimeProfileEditor.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TimeProfileEditor_Definitions.ttcn" relativeURI="EPTF_CLL_TimeProfileEditor_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TimeProfileEditor_Functions.ttcn" relativeURI="EPTF_CLL_TimeProfileEditor_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TimeProfileEditor_XTDPTemplates.ttcn" relativeURI="EPTF_CLL_TimeProfileEditor_XTDPTemplates.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_TimeProfileEditor</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport.tpd
new file mode 100644
index 000000000..5fc133381
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Transport</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_IPL2" projectLocationURI="EPTF_CLL_Transport_IPL2.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_IPL4" projectLocationURI="EPTF_CLL_Transport_IPL4.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Transport_Definitions.ttcn" relativeURI="EPTF_CLL_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Transport_Functions.ttcn" relativeURI="EPTF_CLL_Transport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_Transport</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TransportRouting.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TransportRouting.tpd
new file mode 100644
index 000000000..4e8d0d707
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_TransportRouting.tpd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_TransportRouting</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_TransportRouting_Definitions.ttcn" relativeURI="EPTF_CLL_TransportRouting_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportRouting_Functions.ttcn" relativeURI="EPTF_CLL_TransportRouting_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_TransportRouting</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_CommPortIPL4.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_CommPortIPL4.tpd
new file mode 100644
index 000000000..ced456d11
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_CommPortIPL4.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Transport_CommPortIPL4</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Transport_IPL4" projectLocationURI="EPTF_CLL_Transport_IPL4.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_TransportCommPortIPL4_Definitions.ttcn" relativeURI="EPTF_CLL_TransportCommPortIPL4_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportCommPortIPL4_Functions.ttcn" relativeURI="EPTF_CLL_TransportCommPortIPL4_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CLL_Transport_CommPortIPL4</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_Common.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_Common.tpd
new file mode 100644
index 000000000..b3628f2fb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_Common.tpd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Transport_Common</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../../../../TestPorts/Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Transport_CommonDefinitions.ttcn" relativeURI="EPTF_CLL_Transport_CommonDefinitions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Transport_Common</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL2.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL2.tpd
new file mode 100644
index 000000000..cd9d9f12d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL2.tpd
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Transport_IPL2</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Buffer" projectLocationURI="../Buffer/EPTF_CLL_Buffer.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="IP_CNL113418" projectLocationURI="../../../../ProtocolModules/IP_CNL113418/IP_CNL113418.tpd"/>
+    <ReferencedProject name="LANL2asp_CNL113519" projectLocationURI="../../../../TestPorts/LANL2asp_CNL113519/LANL2asp_CNL113519.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../../../../TestPorts/Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Interface" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Interface.tpd"/>
+    <ReferencedProject name="TCP_CNL113675" projectLocationURI="../../../../ProtocolModules/TCP_CNL113675/TCP_CNL113675.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL2_Definitions.ttcn" relativeURI="EPTF_CLL_TransportIPL2_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL2_ExternalFunctions.cc" relativeURI="EPTF_CLL_TransportIPL2_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL2_Functions.ttcn" relativeURI="EPTF_CLL_TransportIPL2_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CLL_Transport_IPL2</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL4.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL4.tpd
new file mode 100644
index 000000000..e45a39057
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_IPL4.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Transport_IPL4</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_MessageBufferManager" projectLocationURI="EPTF_CLL_Transport_MessageBufferManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531_Interface" projectLocationURI="../../../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531_Interface.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL4_Definitions.ttcn" relativeURI="EPTF_CLL_TransportIPL4_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL4_Functions.ttcn" relativeURI="EPTF_CLL_TransportIPL4_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_Transport_IPL4</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_MessageBufferManager.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_MessageBufferManager.tpd
new file mode 100644
index 000000000..4ce8e2d4c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Transport_MessageBufferManager.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Transport_MessageBufferManager</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_TransportMessageBufferManager_Definitions.ttcn" relativeURI="EPTF_CLL_TransportMessageBufferManager_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportMessageBufferManager_Functions.ttcn" relativeURI="EPTF_CLL_TransportMessageBufferManager_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_TransportMessageBufferManager</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_UIHandler.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_UIHandler.tpd
new file mode 100644
index 000000000..a2c55cf50
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_UIHandler.tpd
@@ -0,0 +1,103 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_UIHandler</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_CLI" projectLocationURI="../CommandLineInterface/EPTF_CLL_CLI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_RingBuffer" projectLocationURI="../RingBuffer/EPTF_CLL_RingBuffer.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Semaphore" projectLocationURI="../Semaphore/EPTF_CLL_Semaphore.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatManager" projectLocationURI="../StatManager/EPTF_CLL_StatManager.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_IPL4" projectLocationURI="../Transport/EPTF_CLL_Transport_IPL4.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="HTTPmsg_CNL113312" projectLocationURI="../../../../TestPorts/HTTPmsg_CNL113312/HTTPmsg_CNL113312.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="XTDP_CNL113663" projectLocationURI="../../../../ProtocolModules/XTDP_CNL113663/XTDP_CNL113663.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerCLI_CommandDefinitions.ttcn" relativeURI="EPTF_CLL_UIHandlerCLI_CommandDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerCLI_Definitions.ttcn" relativeURI="EPTF_CLL_UIHandlerCLI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerCLI_Functions.ttcn" relativeURI="EPTF_CLL_UIHandlerCLI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerClient_Definitions.ttcn" relativeURI="EPTF_CLL_UIHandlerClient_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerClient_Functions.ttcn" relativeURI="EPTF_CLL_UIHandlerClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_BrowserFunctions.ttcn" relativeURI="EPTF_CLL_UIHandler_BrowserFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_CLIClientDefinitions.ttcn" relativeURI="EPTF_CLL_UIHandler_CLIClientDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcn" relativeURI="EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcnpp" relativeURI="EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_ConvertFunctions.ttcn" relativeURI="EPTF_CLL_UIHandler_ConvertFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_DS_Definitions.ttcn" relativeURI="EPTF_CLL_UIHandler_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_DS_Functions.ttcn" relativeURI="EPTF_CLL_UIHandler_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_Definitions.ttcn" relativeURI="EPTF_CLL_UIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_ExternalFunctions.cc" relativeURI="EPTF_CLL_UIHandler_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_MsgDefinitions.ttcn" relativeURI="EPTF_CLL_UIHandler_MsgDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_PrivateFunctions.ttcn" relativeURI="EPTF_CLL_UIHandler_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_WidgetFunctions.ttcn" relativeURI="EPTF_CLL_UIHandler_WidgetFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_XSD_XTDPTemplateDefinitions.ttcn" relativeURI="EPTF_CLL_UIHandler_XSD_XTDPTemplateDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_XTDPTemplateDefinitions.ttcn" relativeURI="EPTF_CLL_UIHandler_XTDPTemplateDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_XULFunctions.ttcn" relativeURI="EPTF_CLL_UIHandler_XULFunctions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/UIHandler</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <globalConstant>c_.*</globalConstant>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="ringbuffer_generated">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/UIHandler</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <globalConstant>c_.*</globalConstant>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>EPTF_CLL_UIHandler_ChartDataTypeRingBuffer_Functions.ttcnpp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable.tpd
new file mode 100644
index 000000000..955683891
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Variable</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../../TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_Variable_Definitions.ttcn" relativeURI="EPTF_CLL_Variable_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Variable_ExternalFunctions.cc" relativeURI="EPTF_CLL_Variable_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Variable_Functions.ttcn" relativeURI="EPTF_CLL_Variable_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/Variable</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable_UI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable_UI.tpd
new file mode 100644
index 000000000..be231b62a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CLL_Variable_UI.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CLL_Variable_UI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerVariableUI_Definitions.ttcn" relativeURI="EPTF_CLL_UIHandlerVariableUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerVariableUI_Functions.ttcn" relativeURI="EPTF_CLL_UIHandlerVariableUI_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_CLL_Variable_UI</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_M3_CNL113682.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_M3_CNL113682.tpd
new file mode 100644
index 000000000..ef670b5ad
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_M3_CNL113682.tpd
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_CommonTransport_M3_CNL113682.tpd
+   Description:        tpd project file
+   Rev:                R4A01
+   Prodnr:             CNL 113 682
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CommonTransport_M3_CNL113682</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Client" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Client.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="MTP3asp_EIN_CNL113421" projectLocationURI="../../TestPorts/MTP3asp_EIN_CNL113421/MTP3asp_EIN_CNL113421.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_M3_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_M3_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_M3_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_M3_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_M3_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_M3_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_M3_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_M3_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_M3_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_M3_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_M3_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_M3_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_M3_Definitions.ttcnpp" relativeURI="src/Transport/EPTF_Transport_CommPort_M3_Definitions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_M3_Functions.ttcnpp" relativeURI="src/Transport/EPTF_Transport_CommPort_M3_Functions.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CommonTransport_M3_CNL113682</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>MTP3_EIN_TESTPORT</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="With_EINstack">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CommonTransport_M3_CNL113682</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>MTP3_EIN_TESTPORT</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="Without_EIN">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CommonTransport_M3_CNL113682</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_SCCP_CNL113610.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_SCCP_CNL113610.tpd
new file mode 100644
index 000000000..d25a8838e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_SCCP_CNL113610.tpd
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_CommonTransport_SCCP_CNL113610.tpd
+   Description:        tpd project file
+   Rev:                R1A07
+   Prodnr:             CNL 113 610
+   Updated:            2013-01-25
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CommonTransport_SCCP_CNL113610</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Client" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Client.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="SCCPasp_CNL113348" projectLocationURI="../../TestPorts/SCCPasp_CNL113348/SCCPasp_CNL113348.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_SCCP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_SCCP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SCCP_LGen_Functions.ttcnpp" relativeURI="src/LoadGen/EPTF_SCCP_LGen_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_SCCP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_SCCP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SCCP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_SCCP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SCCP_Logging_Definitions.ttcn" relativeURI="src/Logger/EPTF_SCCP_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SCCP_Logging_Functions.ttcn" relativeURI="src/Logger/EPTF_SCCP_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SCCP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_SCCP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_SCCP_Transport_Functions.ttcnpp" relativeURI="src/Transport/EPTF_SCCP_Transport_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_SCCP_UIHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_SCCP_UIHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_SCCP_Definitions.ttcnpp" relativeURI="src/Transport/EPTF_Transport_CommPort_SCCP_Definitions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_SCCP_Functions.ttcnpp" relativeURI="src/Transport/EPTF_Transport_CommPort_SCCP_Functions.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CommonTransport_SCCP_CNL113610</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_TCAP_CNL113592.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_TCAP_CNL113592.tpd
new file mode 100644
index 000000000..438bbd0d6
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_CommonTransport_TCAP_CNL113592.tpd
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EPTF_CommonTransport_TCAP_CNL113592.tpd
+   Description:        tpd project file
+   Rev:                R11C01
+   Prodnr:             CNL 113 592
+   Updated:            2013-03-14
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_CommonTransport_TCAP_CNL113592</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatMeasure" projectLocationURI="../EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure.tpd"/>
+    <ReferencedProject name="EPTF_CLL_TransportRouting" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_DS_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_TCAP_LGen_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_DS_Functions.ttcn" relativeURI="src/LoadGen/EPTF_TCAP_LGen_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_TCAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_Functions.ttcn" relativeURI="src/LoadGen/EPTF_TCAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Logger_Definitions.ttcn" relativeURI="src/Logger/EPTF_TCAP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Logger_Functions.ttcn" relativeURI="src/Logger/EPTF_TCAP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Transport_Definitions.ttcn" relativeURI="src/Transport/EPTF_TCAP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Transport_Functions.ttcn" relativeURI="src/Transport/EPTF_TCAP_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_UIHandler_Definitions.ttcn" relativeURI="src/LoadGen/EPTF_TCAP_UIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_UIHandler_Functions.ttcn" relativeURI="src/LoadGen/EPTF_TCAP_UIHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_TCAP_Definitions.ttcn" relativeURI="src/Transport/EPTF_Transport_CommPort_TCAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_TCAP_Functions.ttcn" relativeURI="src/Transport/EPTF_Transport_CommPort_TCAP_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_CommonTransport_TCAP_CNL113592</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_FreeBusyQueue_demo.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_FreeBusyQueue_demo.tpd
new file mode 100644
index 000000000..f85d1922f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_FreeBusyQueue_demo.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_FreeBusyQueue_demo</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../../src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../../src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_FreeBusyQueue_demo.cfg" relativeURI="EPTF_FreeBusyQueue_demo.cfg"/>
+    <FileResource projectRelativePath="EPTF_FreeBusyQueue_demo.ttcn" relativeURI="EPTF_FreeBusyQueue_demo.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_FreeBusyQueue_demo</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>EPTF_CLL_Common</projectName>
+            <rerquiredConfiguration>Debug</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp.tpd
new file mode 100644
index 000000000..245af1ff4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp.tpd
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_UPloadCP_CNL113634" projectLocationURI="../../../Libraries/EPTF_Applib_UPloadCP_CNL113634/EPTF_Applib_UPloadCP_CNL113634.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_AC" projectLocationURI="../src/http/EPTF_GenApp_AC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_AIR" projectLocationURI="../src/http/EPTF_GenApp_AIR.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ASDP" projectLocationURI="../src/http/EPTF_GenApp_ASDP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAI3G" projectLocationURI="../src/cai3g/EPTF_GenApp_CAI3G.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="../src/cap/EPTF_GenApp_CAPv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv3" projectLocationURI="../src/cap/EPTF_GenApp_CAPv3.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CCMP" projectLocationURI="../src/http/EPTF_GenApp_CCMP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP" projectLocationURI="../src/cip/EPTF_GenApp_CIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP_Orga" projectLocationURI="../src/cip/EPTF_GenApp_CIP_Orga.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CNS" projectLocationURI="../src/http/EPTF_GenApp_CNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CSCF" projectLocationURI="../src/sip/EPTF_GenApp_CSCF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DNS" projectLocationURI="../src/dns/EPTF_GenApp_DNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_H248" projectLocationURI="../src/h248/EPTF_GenApp_H248.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../src/http/EPTF_GenApp_HTTP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ISUP" projectLocationURI="../src/isup/EPTF_GenApp_ISUP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_LNP" projectLocationURI="../src/lnp/EPTF_GenApp_LNP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_LRF" projectLocationURI="../src/http/EPTF_GenApp_LRF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MRFC" projectLocationURI="../src/sip/EPTF_GenApp_MRFC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_NACF" projectLocationURI="../src/imsa2/EPTF_GenApp_NACF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ParlayX" projectLocationURI="../src/http/EPTF_GenApp_ParlayX.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PGM_HTTP" projectLocationURI="../src/http/EPTF_GenApp_PGM_HTTP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PGM_SIP" projectLocationURI="../src/sip/EPTF_GenApp_PGM_SIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SCP" projectLocationURI="../src/cap/EPTF_GenApp_SCP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SNA" projectLocationURI="../src/http/SNA/EPTF_GenApp_SNA.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SOAP" projectLocationURI="../src/soap/EPTF_GenApp_SOAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_UserPlane" projectLocationURI="../src/userplane/EPTF_GenApp_UserPlane.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_USSD" projectLocationURI="../src/http/EPTF_GenApp_USSD.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_VXML" projectLocationURI="../src/vxml/EPTF_GenApp_VXML.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_WCE_HTTP_Client" projectLocationURI="../src/http/EPTF_GenApp_WCE_HTTP_Client.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_XCAP" projectLocationURI="../src/xcap/EPTF_GenApp_XCAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_ALL</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AC.tpd
new file mode 100644
index 000000000..ced667151
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AC.tpd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_AC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_AC_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_AC_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_AC_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_AC_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_AC</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AIR.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AIR.tpd
new file mode 100644
index 000000000..bf9ebc472
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_AIR.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_AIR</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_AIR_HTTP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_AIR_HTTP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_AIR_HTTP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_AIR_HTTP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_AIR</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ASDP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ASDP.tpd
new file mode 100644
index 000000000..3b85d4a7a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ASDP.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ASDP_TopLevel</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_ASDP" projectLocationURI="../src/http/EPTF_GenApp_ASDP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="ASDP_main_demo.cfg" relativeURI="productconfigs/ASDP/ASDP_main_demo.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ASDP_TopLevel</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+            <listItem>GENAPP_COMPILE_ASDP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ATandT.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ATandT.tpd
new file mode 100644
index 000000000..aef15408f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ATandT.tpd
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ATandT</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="../src/cap/EPTF_GenApp_CAPv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv3" projectLocationURI="../src/cap/EPTF_GenApp_CAPv3.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ISUP" projectLocationURI="../src/isup/EPTF_GenApp_ISUP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_LNP" projectLocationURI="../src/lnp/EPTF_GenApp_LNP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="ATandT_CAPv2_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_CAPv2_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_CAPv2_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_CAPv2_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_CLL_TestPorts.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ATandT_DIAMETER_ACR_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_DIAMETER_ACR_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_DIAMETER_ACR_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_DIAMETER_ACR_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_DIAMETER_CCR_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_DIAMETER_CCR_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_DIAMETER_CCR_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_DIAMETER_CCR_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_DIAMETER_Ro_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_DIAMETER_Ro_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_DIAMETER_Ro_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_DIAMETER_Ro_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_ISUP_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_ISUP_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_ISUP_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_ISUP_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_LNP_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_LNP_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_LNP_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_LNP_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_MAP_FSM.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_MAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ATandT_MAP_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_MAP_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_debug_settings.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ATandT_local_host.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_local_host.cfg"/>
+    <FileResource projectRelativePath="ATandT_main_demo.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_main_demo.cfg"/>
+    <FileResource projectRelativePath="ATandT_remote_node.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_remote_node.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings_CAPv2.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings_CAPv2.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings_DIAMETER_ACR.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings_DIAMETER_ACR.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings_DIAMETER_CCR.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings_DIAMETER_CCR.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings_ISUP.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings_ISUP.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings_LNP.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings_LNP.cfg"/>
+    <FileResource projectRelativePath="ATandT_statistics_settings_MAP.cfg" relativeURI="productconfigs/ATandT/ATandT/ATandT_statistics_settings_MAP.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ATandT</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_COMBINED_CAPv2</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_ISUP</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+            <listItem>GENAPP_COMPILE_LNP</listItem>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+            <listItem>MTP3_EIN_TESTPORT</listItem>
+            <listItem>ENABLE_SCTP</listItem>
+            <listItem>USE_SCTP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_AC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_AC.tpd
new file mode 100644
index 000000000..c1e365e2c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_AC.tpd
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_BCS_AC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_AC" projectLocationURI="../src/http/EPTF_GenApp_AC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../src/http/EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="BCS" relativeURI="productconfigs/BCS"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="BCS/BCS_AC_FSM.cfg" relativeURI="productconfigs/BCS/BCS_AC_FSM.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_AC_demo.cfg" relativeURI="productconfigs/BCS/BCS_AC_demo.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_AC_local_host.cfg" relativeURI="productconfigs/BCS/BCS_AC_local_host.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_AC_main.cfg" relativeURI="productconfigs/BCS/BCS_AC_main.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_AC_statistics_settings.cfg" relativeURI="productconfigs/BCS/BCS_AC_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_SSP_FSM.cfg" relativeURI="productconfigs/BCS/BCS_SSP_FSM.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_SSP_demo.cfg" relativeURI="productconfigs/BCS/BCS_SSP_demo.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_SSP_localhost.cfg" relativeURI="productconfigs/BCS/BCS_SSP_localhost.cfg"/>
+    <FileResource projectRelativePath="BCS/BCS_SSP_main.cfg" relativeURI="productconfigs/BCS/BCS_SSP_main.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="makefile_patch_BCS_AC.sh" relativeURI="makefile_patch_BCS_AC.sh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_BCS_AC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_AC</listItem>
+            <listItem>NDEBUG</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_SSP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_SSP.tpd
new file mode 100644
index 000000000..51807f251
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_SSP.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_BCS_SSP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../src/http/EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="BCS_SSP_FSM.cfg" relativeURI="productconfigs/BCS/BCS_SSP_FSM.cfg"/>
+    <FileResource projectRelativePath="BCS_SSP_demo.cfg" relativeURI="productconfigs/BCS/BCS_SSP_demo.cfg"/>
+    <FileResource projectRelativePath="BCS_SSP_localhost.cfg" relativeURI="productconfigs/BCS/BCS_SSP_localhost.cfg"/>
+    <FileResource projectRelativePath="BCS_SSP_main.cfg" relativeURI="productconfigs/BCS/BCS_SSP_main.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="makefile_patch_BCS_SSP.sh" relativeURI="makefile_patch_BCS_SSP.sh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_BCS_SSP</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_WCE.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_WCE.tpd
new file mode 100644
index 000000000..1553c5eab
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_BCS_WCE.tpd
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_BCS_WCE</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CSCF" projectLocationURI="../src/sip/EPTF_GenApp_CSCF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PGM_HTTP" projectLocationURI="../src/http/EPTF_GenApp_PGM_HTTP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PGM_SIP" projectLocationURI="../src/sip/EPTF_GenApp_PGM_SIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_WCE_HTTP_Client" projectLocationURI="../src/http/EPTF_GenApp_WCE_HTTP_Client.tpd"/>
+    <ReferencedProject name="JSON_v07_2006_CNL113676" projectLocationURI="../../../ProtocolModules/JSON_v07_2006_CNL113676/JSON_v07_2006_CNL113676.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="BCS" relativeURI="templates/BCS"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.acceptchat_request.header" relativeURI="templates/BCS/bcs.wce_client.acceptchat_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.acceptfiletransfer_request.header" relativeURI="templates/BCS/bcs.wce_client.acceptfiletransfer_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.addcontact_request.header" relativeURI="templates/BCS/bcs.wce_client.addcontact_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.addgroup_request.header" relativeURI="templates/BCS/bcs.wce_client.addgroup_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.chat_request.body" relativeURI="templates/BCS/bcs.wce_client.chat_request.body"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.chat_request.header" relativeURI="templates/BCS/bcs.wce_client.chat_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.closechat_request.header" relativeURI="templates/BCS/bcs.wce_client.closechat_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.createchat_request.header" relativeURI="templates/BCS/bcs.wce_client.createchat_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.deletechat_request.header" relativeURI="templates/BCS/bcs.wce_client.deletechat_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.deletecontact_request.header" relativeURI="templates/BCS/bcs.wce_client.deletecontact_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.deletegroup_request.header" relativeURI="templates/BCS/bcs.wce_client.deletegroup_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.deregistration_request.header" relativeURI="templates/BCS/bcs.wce_client.deregistration_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.fileTransfer_getfilemedia_request.header" relativeURI="templates/BCS/bcs.wce_client.fileTransfer_getfilemedia_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.filetransfer_request.body" relativeURI="templates/BCS/bcs.wce_client.filetransfer_request.body"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.filetransfer_request.header" relativeURI="templates/BCS/bcs.wce_client.filetransfer_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.getactiveuser_request.header" relativeURI="templates/BCS/bcs.wce_client.getactiveuser_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.getcontact_request.header" relativeURI="templates/BCS/bcs.wce_client.getcontact_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.getevents_request.header" relativeURI="templates/BCS/bcs.wce_client.getevents_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.getgroup_request.header" relativeURI="templates/BCS/bcs.wce_client.getgroup_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.getpresence_request.header" relativeURI="templates/BCS/bcs.wce_client.getpresence_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.lookup_request.header" relativeURI="templates/BCS/bcs.wce_client.lookup_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.registration_request.header" relativeURI="templates/BCS/bcs.wce_client.registration_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.renamegroup_request.header" relativeURI="templates/BCS/bcs.wce_client.renamegroup_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.send_file_request.header" relativeURI="templates/BCS/bcs.wce_client.send_file_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.send_im_request.header" relativeURI="templates/BCS/bcs.wce_client.send_im_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.wce_client.setpresence_request.header" relativeURI="templates/BCS/bcs.wce_client.setpresence_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.calloptionex_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.calloptionex_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.calloptions_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.calloptions_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.contactdetailex_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.contactdetailex_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.contactdetails_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.contactdetails_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.deregistration_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.deregistration_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.getpresence_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.getpresence_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.groupcontacts_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.groupcontacts_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.grouplist_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.grouplist_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.registration_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.registration_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.searchinput_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.searchinput_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.searchresult_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.searchresult_request.header"/>
+    <FileResource projectRelativePath="BCS/bcs.xmlapp_client.setpresence_request.header" relativeURI="templates/BCS/bcs.xmlapp_client.setpresence_request.header"/>
+    <FileResource projectRelativePath="BCS_CLL_TestPorts.cfg" relativeURI="productconfigs/BCS_WCE/BCS_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="BCS_PGM_HTTP_FSM.cfg" relativeURI="productconfigs/BCS_WCE/BCS_PGM_HTTP_FSM.cfg"/>
+    <FileResource projectRelativePath="BCS_PGM_HTTP_Simulation.cfg" relativeURI="productconfigs/BCS_WCE/BCS_PGM_HTTP_Simulation.cfg"/>
+    <FileResource projectRelativePath="BCS_PGM_SIP_FSM.cfg" relativeURI="productconfigs/BCS_WCE/BCS_PGM_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="BCS_PGM_SIP_HTTP_Combined.cfg" relativeURI="productconfigs/BCS_WCE/BCS_PGM_SIP_HTTP_Combined.cfg"/>
+    <FileResource projectRelativePath="BCS_PGM_SIP_Simulation.cfg" relativeURI="productconfigs/BCS_WCE/BCS_PGM_SIP_Simulation.cfg"/>
+    <FileResource projectRelativePath="BCS_WCE_HTTP_Client_FSM.cfg" relativeURI="productconfigs/BCS_WCE/BCS_WCE_HTTP_Client_FSM.cfg"/>
+    <FileResource projectRelativePath="BCS_WCE_HTTP_Client_Simulation.cfg" relativeURI="productconfigs/BCS_WCE/BCS_WCE_HTTP_Client_Simulation.cfg"/>
+    <FileResource projectRelativePath="BCS_debug_settings.cfg" relativeURI="productconfigs/BCS_WCE/BCS_debug_settings.cfg"/>
+    <FileResource projectRelativePath="BCS_local_host.cfg" relativeURI="productconfigs/BCS_WCE/BCS_local_host.cfg"/>
+    <FileResource projectRelativePath="BCS_main.demo.cfg" relativeURI="productconfigs/BCS_WCE/BCS_main.demo.cfg"/>
+    <FileResource projectRelativePath="BCS_remote_node.cfg" relativeURI="productconfigs/BCS_WCE/BCS_remote_node.cfg"/>
+    <FileResource projectRelativePath="BCS_statistics_settings.cfg" relativeURI="productconfigs/BCS_WCE/BCS_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_WCE</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+            <listItem>GENAPP_COMPILE_PGM</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAI3G.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAI3G.tpd
new file mode 100644
index 000000000..f8703b7fe
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAI3G.tpd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CAI3G</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CAI3G_CNL113566" projectLocationURI="../../../../Libraries/EPTF_Applib_CAI3G_CNL113566/EPTF_Applib_CAI3G_CNL113566.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CAI3G_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CAI3G_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CAI3G_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CAI3G_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>EPTF_GenApp_CAI3G</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv2.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv2.tpd
new file mode 100644
index 000000000..befcb83c8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv2.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CAPv2</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CAP_v2_CNL113662" projectLocationURI="../../../../Libraries/EPTF_Applib_CAP_CNL113662/EPTF_Applib_CAP_v2_CNL113662.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv2.tpd" relativeURI="EPTF_GenApp_CAPv2.tpd"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv2_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CAPv2_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv2_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CAPv2_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_CAPv2</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv3.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv3.tpd
new file mode 100644
index 000000000..5991cbd2d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv3.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CAPv3</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CAP_v3_CNL113662" projectLocationURI="../../../../Libraries/EPTF_Applib_CAP_CNL113662/EPTF_Applib_CAP_v3_CNL113662.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv3_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CAPv3_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv3_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CAPv3_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_CAPv3</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv4.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv4.tpd
new file mode 100644
index 000000000..a166d44fd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CAPv4.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CAPv4</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CAP_Common_CNL113662" projectLocationURI="../../../../Libraries/EPTF_Applib_CAP_CNL113662/EPTF_Applib_CAP_Common_CNL113662.tpd"/>
+    <ReferencedProject name="EPTF_Applib_CAP_v4_CNL113662" projectLocationURI="../../../../Libraries/EPTF_Applib_CAP_CNL113662/EPTF_Applib_CAP_v4_CNL113662.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_Common" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_Common.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv4_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CAPv4_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CAPv4_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CAPv4_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_CAPv4</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CCMP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CCMP.tpd
new file mode 100644
index 000000000..b830377e4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CCMP.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CCMP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_HTTP_CNL113618" projectLocationURI="../../../../Libraries/EPTF_Applib_HTTP_CNL113618/EPTF_Applib_HTTP_CNL113618.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CCMP_DS_Definitions.ttcn" relativeURI="EPTF_GenApp_CCMP_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CCMP_DS_Functions.ttcn" relativeURI="EPTF_GenApp_CCMP_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CCMP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CCMP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CCMP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CCMP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_CCMP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP.tpd
new file mode 100644
index 000000000..9804d9524
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CIP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CIP_CNL113666" projectLocationURI="../../../../Libraries/EPTF_Applib_CIP_CNL113666/EPTF_Applib_CIP_CNL113666.tpd"/>
+    <ReferencedProject name="EPTF_Applib_INAP_CNL113596" projectLocationURI="../../../../Libraries/EPTF_Applib_INAP_CNL113596/EPTF_Applib_INAP_CNL113596.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CIP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CIP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CIP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CIP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_CIP</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP_Orga.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP_Orga.tpd
new file mode 100644
index 000000000..d53ac2dd3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CIP_Orga.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CIP_Orga</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CIP_Orga_CNL113666" projectLocationURI="../../../../Libraries/EPTF_Applib_CIP_CNL113666/EPTF_Applib_CIP_Orga_CNL113666.tpd"/>
+    <ReferencedProject name="EPTF_Applib_INAP_CNL113596" projectLocationURI="../../../../Libraries/EPTF_Applib_INAP_CNL113596/EPTF_Applib_INAP_CNL113596.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_CIP_Orga_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_CIP_Orga_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CIP_Orga_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_CIP_Orga_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_CIP_Orga</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLF.tpd
new file mode 100644
index 000000000..68d423ce9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLF.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CLF</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="CLFSim" relativeURI="productconfigs/CLFSim"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="CLFSim/CLFSim.cfg" relativeURI="productconfigs/CLFSim/CLFSim.cfg"/>
+    <FileResource projectRelativePath="CLFSim/CLFSim_Diameter.cfg" relativeURI="productconfigs/CLFSim/CLFSim_Diameter.cfg"/>
+    <FileResource projectRelativePath="CLFSim/CLFSim_Diameter_FSMs.cfg" relativeURI="productconfigs/CLFSim/CLFSim_Diameter_FSMs.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CLF.tpd" relativeURI="EPTF_GenApp_CLF.tpd"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="makefile_patch_CLF.sh" relativeURI="makefile_patch_CLF.sh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_CLF</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLFv2.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLFv2.tpd
new file mode 100644
index 000000000..af56d3757
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CLFv2.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CLFv2</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="CLF_main.cfg" relativeURI="productconfigs/NASS/CLF_main.cfg"/>
+    <FileResource projectRelativePath="CLF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/CLF_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="CLF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/CLF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="makefile_patch_NASS.sh" relativeURI="makefile_patch_NASS.sh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/EPTF_GenApp_CLFv2</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CNS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CNS.tpd
new file mode 100644
index 000000000..175377308
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CNS.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CNS_TopLevel</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CNS" projectLocationURI="../src/http/EPTF_GenApp_CNS.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="CNS_FSM.cfg" relativeURI="productconfigs/CNS/CNS_FSM.cfg"/>
+    <FileResource projectRelativePath="CNS_demo.cfg" relativeURI="productconfigs/CNS/CNS_demo.cfg"/>
+    <FileResource projectRelativePath="CNS_main_demo.cfg" relativeURI="productconfigs/CNS/CNS_main_demo.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_CNS_TopLevel</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+            <listItem>GENAPP_COMPILE_CNS</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCF.tpd
new file mode 100644
index 000000000..3463ea308
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCF.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CSCF_TopLevel</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CSCF" projectLocationURI="../src/sip/EPTF_GenApp_CSCF.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="CSCFSim_CLL_TestPorts.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_SIP_FSM.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_SIP_demo.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_SIP_demo.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_debug_settings.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_debug_settings.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_local_host.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_local_host.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_main_demo.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_main_demo.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_remote_node.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_remote_node.cfg"/>
+    <FileResource projectRelativePath="CSCFSim_statistics_settings.cfg" relativeURI="productconfigs/CSCFSim/CSCFSim_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_CSCF</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CSCF</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCFclient.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCFclient.tpd
new file mode 100644
index 000000000..e07f04900
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_CSCFclient.tpd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_CSCFclient</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="CSCFclient" relativeURI="productconfigs/CSCFclient"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_CLL_TestPorts.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_SIP_FSM.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_SIP_demo.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_SIP_demo.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_debug_settings.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_debug_settings.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_local_host.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_local_host.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_main_demo.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_main_demo.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_remote_node.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_remote_node.cfg"/>
+    <FileResource projectRelativePath="CSCFclient/CSCFclient_statistics_settings.cfg" relativeURI="productconfigs/CSCFclient/CSCFclient_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_CSCFclient</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Common.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Common.tpd
new file mode 100644
index 000000000..0352ece7a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Common.tpd
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_Common</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_Base" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_DataSource" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl_UI" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HostAdmin" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LoadRegulator" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulator.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Client" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Client.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_Server" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Server.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Rendezvous" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Rendezvous/EPTF_CLL_Rendezvous.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Scheduler" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatCapture" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatCapture/EPTF_CLL_StatCapture.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler_UI" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Variable" projectLocationURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable.tpd"/>
+    <ReferencedProject name="XTDP_CNL113663" projectLocationURI="../../../ProtocolModules/XTDP_CNL113663/XTDP_CNL113663.tpd"/>
+    <ReferencedProject name="XTDPasp_CNL113494" projectLocationURI="../../../TestPorts/XTDPasp_CNL113494/XTDPasp_CNL113494.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="common" relativeURI="../src/common"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="common/EPTF_GenApp_Common.grp" relativeURI="../src/common/EPTF_GenApp_Common.grp"/>
+    <FileResource projectRelativePath="common/EPTF_GenApp_Common_Definitions.ttcn" relativeURI="../src/common/EPTF_GenApp_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="common/EPTF_GenApp_Common_ExternalFunctions.cc" relativeURI="../src/common/EPTF_GenApp_Common_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="common/EPTF_GenApp_Common_Functions.ttcn" relativeURI="../src/common/EPTF_GenApp_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="common/EPTF_GenApp_Gui.xml" relativeURI="../src/common/EPTF_GenApp_Gui.xml"/>
+    <FileResource projectRelativePath="common/EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="common/demo.xml" relativeURI="../src/common/demo.xml"/>
+    <FileResource projectRelativePath="common/demo_tab.xml" relativeURI="../src/common/demo_tab.xml"/>
+    <FileResource projectRelativePath="common/gui_empty_window.xml" relativeURI="../src/common/gui_empty_window.xml"/>
+    <FileResource projectRelativePath="common/gui_execctrl_buttons.xml" relativeURI="../src/common/gui_execctrl_buttons.xml"/>
+    <FileResource projectRelativePath="common/gui_execctrl_tabpanel.xml" relativeURI="../src/common/gui_execctrl_tabpanel.xml"/>
+    <FileResource projectRelativePath="common/gui_genapp_console_tabpanel.xml" relativeURI="../src/common/gui_genapp_console_tabpanel.xml"/>
+    <FileResource projectRelativePath="common/gui_genapp_statistic_tabpanel.xml" relativeURI="../src/common/gui_genapp_statistic_tabpanel.xml"/>
+    <FileResource projectRelativePath="common/gui_genapp_tabs.xml" relativeURI="../src/common/gui_genapp_tabs.xml"/>
+    <FileResource projectRelativePath="common/gui_stathandler_tabpanel.xml" relativeURI="../src/common/gui_stathandler_tabpanel.xml"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_Common</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="WCE">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_Common</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_PGM</listItem>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+          </TTCN3preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DIAMETER.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DIAMETER.tpd
new file mode 100644
index 000000000..4cf7dbc63
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DIAMETER.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_DIAMETER</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_Diameter_CNL113521" projectLocationURI="../../../../Libraries/EPTF_Applib_Diameter_CNL113521/EPTF_Applib_Diameter_CNL113521.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="PIPEasp_CNL113334" projectLocationURI="../../../../TestPorts/PIPEasp_CNL113334/PIPEasp_CNL113334.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_DIAMETER_DS_Definitions.ttcn" relativeURI="EPTF_GenApp_DIAMETER_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DIAMETER_DS_Functions.ttcn" relativeURI="EPTF_GenApp_DIAMETER_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DIAMETER_ExternalFunctions.cc" relativeURI="EPTF_GenApp_DIAMETER_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DIAMETER_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_DIAMETER_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DIAMETER_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_DIAMETER_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_DIAMETER</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DNS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DNS.tpd
new file mode 100644
index 000000000..be980f080
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DNS.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_DNS</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="DNS_CNL113429" projectLocationURI="../../../../ProtocolModules/DNS_CNL113429/DNS_CNL113429.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ParlayX" projectLocationURI="../http/EPTF_GenApp_ParlayX.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_DNS_DS_Definitions.ttcn" relativeURI="EPTF_GenApp_DNS_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DNS_DS_Functions.ttcn" relativeURI="EPTF_GenApp_DNS_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DNS_Definitions.ttcn" relativeURI="EPTF_GenApp_DNS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_DNS_Functions.ttcn" relativeURI="EPTF_GenApp_DNS_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_DNS</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DSC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DSC.tpd
new file mode 100644
index 000000000..f6b52c136
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_DSC.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_DSC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="DSC" relativeURI="productconfigs/DSC"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="DSC/DSC_Diameter.cfg" relativeURI="productconfigs/DSC/DSC_Diameter.cfg"/>
+    <FileResource projectRelativePath="DSC/DSC_FSMs.cfg" relativeURI="productconfigs/DSC/DSC_FSMs.cfg"/>
+    <FileResource projectRelativePath="DSC/DSC_main.cfg" relativeURI="productconfigs/DSC/DSC_main.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_DSC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB.tpd
new file mode 100644
index 000000000..ba2184693
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB.tpd
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_EDB</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="../src/cap/EPTF_GenApp_CAPv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP_Orga" projectLocationURI="../src/cip/EPTF_GenApp_CIP_Orga.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="EDB" relativeURI="productconfigs/EDB"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_CLI.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_NorthBound_HomeZone.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_NorthBound_HomeZone.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_NorthBound_VPN.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_NorthBound_VPN.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_SouthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_SouthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_TIM.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_NorthBound_HomeZone.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_NorthBound_HomeZone.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_NorthBound_VPN.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_NorthBound_VPN.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_SouthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_SouthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_TIM.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_statistics_settings_NorthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_statistics_settings_NorthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_statistics_settings_SouthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_statistics_settings_SouthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv4_FSM.cfg" relativeURI="productconfigs/EDB/EDB_CAPv4_FSM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv4_demo.cfg" relativeURI="productconfigs/EDB/EDB_CAPv4_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv4_statistics_settings.cfg" relativeURI="productconfigs/EDB/EDB_CAPv4_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CIP_Orga_FSM.cfg" relativeURI="productconfigs/EDB/EDB_CIP_Orga_FSM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CIP_Orga_demo.cfg" relativeURI="productconfigs/EDB/EDB_CIP_Orga_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CLL_TestPorts.cfg" relativeURI="productconfigs/EDB/EDB_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_Combined_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_Combined_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_FSM_CLI.cfg" relativeURI="productconfigs/EDB/EDB_INAP_FSM_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_FSM_TIM.cfg" relativeURI="productconfigs/EDB/EDB_INAP_FSM_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_INAP_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_demo_TIM.cfg" relativeURI="productconfigs/EDB/EDB_INAP_demo_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_FSM.cfg" relativeURI="productconfigs/EDB/EDB_MAP_FSM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_FSM_CLI.cfg" relativeURI="productconfigs/EDB/EDB_MAP_FSM_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_demo.cfg" relativeURI="productconfigs/EDB/EDB_MAP_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_MAP_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_debug_settings.cfg" relativeURI="productconfigs/EDB/EDB_debug_settings.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_local_host.cfg" relativeURI="productconfigs/EDB/EDB_local_host.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_main_demo.cfg" relativeURI="productconfigs/EDB/EDB_main_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_main_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_main_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_remote_node.cfg" relativeURI="productconfigs/EDB/EDB_remote_node.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_statistics_settings_CLI.cfg" relativeURI="productconfigs/EDB/EDB_statistics_settings_CLI.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_EDB</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CAPv2</listItem>
+            <listItem>GENAPP_COMPILE_CAPv4</listItem>
+            <listItem>GENAPP_COMPILE_CIP_ORGA</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB_CLI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB_CLI.tpd
new file mode 100644
index 000000000..a10a2c1a4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EDB_CLI.tpd
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_EDB_CLI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="../src/cap/EPTF_GenApp_CAPv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP_Orga" projectLocationURI="../src/cip/EPTF_GenApp_CIP_Orga.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="EDB" relativeURI="productconfigs/EDB"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_CLI.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_NorthBound_HomeZone.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_NorthBound_HomeZone.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_NorthBound_VPN.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_NorthBound_VPN.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_SouthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_SouthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_FSM_TIM.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_FSM_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_NorthBound_HomeZone.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_NorthBound_HomeZone.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_NorthBound_VPN.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_NorthBound_VPN.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_SouthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_SouthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_demo_TIM.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_demo_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_statistics_settings_NorthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_statistics_settings_NorthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv2_statistics_settings_SouthBound.cfg" relativeURI="productconfigs/EDB/EDB_CAPv2_statistics_settings_SouthBound.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv4_FSM.cfg" relativeURI="productconfigs/EDB/EDB_CAPv4_FSM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv4_demo.cfg" relativeURI="productconfigs/EDB/EDB_CAPv4_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CAPv4_statistics_settings.cfg" relativeURI="productconfigs/EDB/EDB_CAPv4_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CIP_Orga_FSM.cfg" relativeURI="productconfigs/EDB/EDB_CIP_Orga_FSM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CIP_Orga_demo.cfg" relativeURI="productconfigs/EDB/EDB_CIP_Orga_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_CLL_TestPorts.cfg" relativeURI="productconfigs/EDB/EDB_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_Combined_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_Combined_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_FSM_CLI.cfg" relativeURI="productconfigs/EDB/EDB_INAP_FSM_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_FSM_TIM.cfg" relativeURI="productconfigs/EDB/EDB_INAP_FSM_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_INAP_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_INAP_demo_TIM.cfg" relativeURI="productconfigs/EDB/EDB_INAP_demo_TIM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_FSM.cfg" relativeURI="productconfigs/EDB/EDB_MAP_FSM.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_FSM_CLI.cfg" relativeURI="productconfigs/EDB/EDB_MAP_FSM_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_demo.cfg" relativeURI="productconfigs/EDB/EDB_MAP_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_MAP_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_MAP_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_debug_settings.cfg" relativeURI="productconfigs/EDB/EDB_debug_settings.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_local_host.cfg" relativeURI="productconfigs/EDB/EDB_local_host.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_main_demo.cfg" relativeURI="productconfigs/EDB/EDB_main_demo.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_main_demo_CLI.cfg" relativeURI="productconfigs/EDB/EDB_main_demo_CLI.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_remote_node.cfg" relativeURI="productconfigs/EDB/EDB_remote_node.cfg"/>
+    <FileResource projectRelativePath="EDB/EDB_statistics_settings_CLI.cfg" relativeURI="productconfigs/EDB/EDB_statistics_settings_CLI.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_EDB</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CAPv2</listItem>
+            <listItem>GENAPP_COMPILE_CAPv4</listItem>
+            <listItem>GENAPP_COMPILE_CIP_ORGA</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_CAPv2</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_INAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EPC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EPC.tpd
new file mode 100644
index 000000000..3494dbf54
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_EPC.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_EPC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="EPC" relativeURI="productconfigs/EPC"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPC/EPC_Diameter.cfg" relativeURI="productconfigs/EPC/EPC_Diameter.cfg"/>
+    <FileResource projectRelativePath="EPC/EPC_Diameter_FSM.cfg" relativeURI="productconfigs/EPC/EPC_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="EPC/EPC_Main.cfg" relativeURI="productconfigs/EPC/EPC_Main.cfg"/>
+    <FileResource projectRelativePath="EPC/EPC_Testports.cfg" relativeURI="productconfigs/EPC/EPC_Testports.cfg"/>
+    <FileResource projectRelativePath="EPC/EPC_debug_settings.cfg" relativeURI="productconfigs/EPC/EPC_debug_settings.cfg"/>
+    <FileResource projectRelativePath="EPC/EPC_statistics.cfg" relativeURI="productconfigs/EPC/EPC_statistics.cfg"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_EPC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM.tpd
new file mode 100644
index 000000000..4a21f6b55
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM.tpd
@@ -0,0 +1,408 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="Log_Dir1" relativeURI="logs"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="ETM_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_main_demo.cfg"/>
+    <FileResource projectRelativePath="Abstract_Socket.cc" relativeURI="../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.cc"/>
+    <FileResource projectRelativePath="Abstract_Socket.hh" relativeURI="../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.hh"/>
+    <FileResource projectRelativePath="CIP_EncDec.cc" relativeURI="../../../ProtocolModules/CIP_CS4.0_CNL113535/src/CIP_EncDec.cc"/>
+    <FileResource projectRelativePath="CIP_ITUasp_Types.ttcn" relativeURI="../../../ProtocolModules/CIP_CS4.0_CNL113535/src/CIP_ITUasp_Types.ttcn"/>
+    <FileResource projectRelativePath="CIP_PDU_Defs.asn" relativeURI="../../../ProtocolModules/CIP_CS4.0_CNL113535/src/CIP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="CIP_Types.ttcn" relativeURI="../../../ProtocolModules/CIP_CS4.0_CNL113535/src/CIP_Types.ttcn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_ApplicationContexts.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Codes.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_Codes.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_DataTypes.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_DataTypes.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_EncDec.cc" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_EncDec.cc"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Errors.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_Errors.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Operations.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_Operations.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Types.ttcn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_CS1_Types.ttcn"/>
+    <FileResource projectRelativePath="Core_INAP_PDU_Defs.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Core_INAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="EPTF_CIP_LGen_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_CIP_CNL113666/src/LoadGen/EPTF_CIP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CIP_LGen_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_CIP_CNL113666/src/LoadGen/EPTF_CIP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CIP_Logger_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_CIP_CNL113666/src/Logger/EPTF_CIP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CIP_Logger_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_CIP_CNL113666/src/Logger/EPTF_CIP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Base_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Base_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Base_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Base/EPTF_CLL_Base_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CLI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/CommandLineInterface/EPTF_CLL_CLI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_CLI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/CommandLineInterface/EPTF_CLL_CLI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_IndexArrayDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_IndexArrayDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_IndexArrayFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_IndexArrayFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_PrivateDebugDefinitions.ttcnpp" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_PrivateDebugDefinitions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_RndDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_RndDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Common_RndFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common_RndFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSourceClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSourceClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSource_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSource_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_DataSource_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/DataSource/EPTF_CLL_DataSource_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrlClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlTimeProfile_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrlTimeProfile_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlUIHandler_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrlUIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrlUIHandler_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrlUIHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_CLIDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_CLIDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_CLIFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_CLIFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_DSFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_LoggingFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_LoggingFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_PhaseDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_PhaseDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_PhaseFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_PhaseFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_ScenarioDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_ScenarioDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_ExecCtrl_ScenarioFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl_ScenarioFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_FBQ_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_FBQ_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapInt2Int_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMapInt2Int_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapInt2Int_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMapInt2Int_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapOct2Int_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMapOct2Int_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapOct2Int_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMapOct2Int_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapStr2Int_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMapStr2Int_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMapStr2Int_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMapStr2Int_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMap_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMap_ExternalFunctions.hh" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap_ExternalFunctions.hh"/>
+    <FileResource projectRelativePath="EPTF_CLL_HashMap_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminServer_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdminServer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminServer_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdminServer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminUI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdminUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdminUI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdminUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_BaseDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin_BaseDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_BaseFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin_BaseFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_DSFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_HostAdmin_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/HostAdmin/EPTF_CLL_HostAdmin_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStatsUI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBaseStatsUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStatsUI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBaseStatsUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStats_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBaseStats_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseStats_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBaseStats_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseTrafficMixer_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBaseTrafficMixer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBaseTrafficMixer_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBaseTrafficMixer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_ConfigDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_ConfigDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_ConfigFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_ConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_DSFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_EventHandlingExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_EventHandlingExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_EventHandlingFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_EventHandlingFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_ExternalFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_ExternalFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_LoggingFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_LoggingFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_PhaseConfigFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_PhaseConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_PhaseDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_PhaseDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_PhaseFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_PhaseFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_StepFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_StepFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_TemplateDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_TemplateDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_TemplateFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_TemplateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LGenBase_TrafficFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase_TrafficFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulatorUI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulatorUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulatorUI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulatorUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulator_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulator_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoadRegulator_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/LoadRegulator/EPTF_CLL_LoadRegulator_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingServer_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingServer_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingServer_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingServer_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUIClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingUIClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_LoggingUI_PrivateFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_LoggingUI_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Logging_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Logging_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_NQueue_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_NQueue_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_NQueue_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/NQueue/EPTF_CLL_NQueue_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBTScheduler_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_RBTScheduler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBTScheduler_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_RBTScheduler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBT_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBT_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBT_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBT_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBT_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBT_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeFloat_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtreeFloat_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeFloat_PrivateFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtreeFloat_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeInteger_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtreeInteger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtreeInteger_PrivateFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtreeInteger_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtree_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtree_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtree_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtree_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RBtree_PrivateFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RedBlackTree/EPTF_CLL_RBtree_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RNA_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RNA_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RNA_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/RandomNArray/EPTF_CLL_RNA_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_RendezvousClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Rendezvous/EPTF_CLL_RendezvousClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Rendezvous_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Rendezvous/EPTF_CLL_Rendezvous_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Rendezvous_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Rendezvous/EPTF_CLL_Rendezvous_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Scheduler_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Scheduler/EPTF_CLL_Scheduler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Semaphore_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Semaphore_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Semaphore/EPTF_CLL_Semaphore_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCapture_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatCapture/EPTF_CLL_StatCapture_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCapture_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatCapture/EPTF_CLL_StatCapture_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatCapture_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatCapture/EPTF_CLL_StatCapture_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerClient_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandlerClient_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandlerClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerLogging_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandlerLogging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerLogging_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandlerLogging_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerUI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandlerUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandlerUI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandlerUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandler_DSFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler_DSFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandler_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatHandler_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatMeasure_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_StatMeasure_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/StatMeasure/EPTF_CLL_StatMeasure_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportCommPortIPL4_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportCommPortIPL4_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportCommPortIPL4_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportCommPortIPL4_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL4_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportIPL4_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportIPL4_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportIPL4_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportMessageBufferManager_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportMessageBufferManager_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportMessageBufferManager_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportMessageBufferManager_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportRouting_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_TransportRouting_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_TransportRouting_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Transport_CommonDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommonDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerCLI_CommandDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerCLI_CommandDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerCLI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerCLI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerCLI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerCLI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerClient_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerClient_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerClient_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerClient_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerVariableUI_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerVariableUI_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandlerVariableUI_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandlerVariableUI_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_CLIClientDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_CLIClientDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_ConvertFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_ConvertFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_MsgDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_MsgDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_PrivateFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_PrivateFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_WidgetFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_WidgetFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_XSD_XTDPTemplateDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_XSD_XTDPTemplateDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_XTDPTemplateDefinitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_XTDPTemplateDefinitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_UIHandler_XULFunctions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler_XULFunctions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Variable_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_CLL_Variable_ExternalFunctions.cc" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_CLL_Variable_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Core_Library_CNL113512/src/Variable/EPTF_CLL_Variable_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CIP_LGen_Definitions.ttcn" relativeURI="../src/cip/EPTF_GenApp_CIP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_CIP_LGen_Functions.ttcn" relativeURI="../src/cip/EPTF_GenApp_CIP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_Common_Definitions.ttcn" relativeURI="../src/common/EPTF_GenApp_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_Common_ExternalFunctions.cc" relativeURI="../src/common/EPTF_GenApp_Common_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_GenApp_Common_Functions.ttcn" relativeURI="../src/common/EPTF_GenApp_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_GUI_main.xml" relativeURI="../src/common/EPTF_GenApp_GUI_main.xml"/>
+    <FileResource projectRelativePath="EPTF_GenApp_Gui.xml" relativeURI="../src/common/EPTF_GenApp_Gui.xml"/>
+    <FileResource projectRelativePath="EPTF_GenApp_INAP_LGen_Definitions.ttcn" relativeURI="../src/inap/EPTF_GenApp_INAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_INAP_LGen_Functions.ttcn" relativeURI="../src/inap/EPTF_GenApp_INAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_INAP_CS1plus_LGen_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_INAP_CNL113596/src/LoadGen/EPTF_INAP_CS1plus_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_INAP_CS1plus_LGen_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_INAP_CNL113596/src/LoadGen/EPTF_INAP_CS1plus_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_INAP_Logger_Functions.ttcn" relativeURI="../../../Libraries/EPTF_Applib_INAP_CNL113596/src/Logger/EPTF_INAP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_DS_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/LoadGen/EPTF_TCAP_LGen_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_DS_Functions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/LoadGen/EPTF_TCAP_LGen_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/LoadGen/EPTF_TCAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_LGen_Functions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/LoadGen/EPTF_TCAP_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Logger_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/Logger/EPTF_TCAP_Logger_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Logger_Functions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/Logger/EPTF_TCAP_Logger_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Transport_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/Transport/EPTF_TCAP_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_Transport_Functions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/Transport/EPTF_TCAP_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_UIHandler_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/LoadGen/EPTF_TCAP_UIHandler_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_TCAP_UIHandler_Functions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/LoadGen/EPTF_TCAP_UIHandler_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_TCAP_Definitions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/Transport/EPTF_Transport_CommPort_TCAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_Transport_CommPort_TCAP_Functions.ttcn" relativeURI="../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/src/Transport/EPTF_Transport_CommPort_TCAP_Functions.ttcn"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_ApplicationContexts.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_ApplicationContexts_RevB.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_ApplicationContexts_RevB.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Codes.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_Codes.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Datatypes.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_Datatypes.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Errors.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_Errors.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Operations.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_Operations.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Types.ttcn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/Ericsson_INAP_CS1plus_Types.ttcn"/>
+    <FileResource projectRelativePath="General_Types.ttcn" relativeURI="../../../ProtocolModules/COMMON/src/General_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_CS1plus_ANSIasp_Types.ttcn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/INAP_CS1plus_ANSIasp_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_CS1plus_Detailed_EncDec.cc" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/INAP_CS1plus_Detailed_EncDec.cc"/>
+    <FileResource projectRelativePath="INAP_CS1plus_EncDec.cc" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/INAP_CS1plus_EncDec.cc"/>
+    <FileResource projectRelativePath="INAP_CS1plus_ITUasp_Types.ttcn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/INAP_CS1plus_ITUasp_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_CS1plus_Types.ttcn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/INAP_CS1plus_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_PDU_Defs.asn" relativeURI="../../../ProtocolModules/Ericsson_INAP_CS1plus_CNL113356/src/INAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="IPL4asp_Functions.ttcn" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_Functions.ttcn"/>
+    <FileResource projectRelativePath="IPL4asp_PT.cc" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_PT.cc"/>
+    <FileResource projectRelativePath="IPL4asp_PT.hh" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_PT.hh"/>
+    <FileResource projectRelativePath="IPL4asp_PortType.ttcn" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_PortType.ttcn"/>
+    <FileResource projectRelativePath="IPL4asp_Types.ttcn" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_Types.ttcn"/>
+    <FileResource projectRelativePath="IPL4asp_discovery.cc" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_discovery.cc"/>
+    <FileResource projectRelativePath="IPL4asp_protocol_L234.hh" relativeURI="../../../TestPorts/IPL4asp_CNL113531/src/IPL4asp_protocol_L234.hh"/>
+    <FileResource projectRelativePath="LOADMEASasp_PT.cc" relativeURI="../../../TestPorts/LOADMEASasp_CNL113585/src/LOADMEASasp_PT.cc"/>
+    <FileResource projectRelativePath="LOADMEASasp_PT.hh" relativeURI="../../../TestPorts/LOADMEASasp_CNL113585/src/LOADMEASasp_PT.hh"/>
+    <FileResource projectRelativePath="LOADMEASasp_PortType.ttcn" relativeURI="../../../TestPorts/LOADMEASasp_CNL113585/src/LOADMEASasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="LOADMEASasp_Types.ttcn" relativeURI="../../../TestPorts/LOADMEASasp_CNL113585/src/LOADMEASasp_Types.ttcn"/>
+    <FileResource projectRelativePath="MobileDomainDefinitions.asn" relativeURI="../../../ProtocolModules/COMMON/src/MobileDomainDefinitions.asn"/>
+    <FileResource projectRelativePath="PIPEasp_PT.cc" relativeURI="../../../TestPorts/PIPEasp_CNL113334/src/PIPEasp_PT.cc"/>
+    <FileResource projectRelativePath="PIPEasp_PT.hh" relativeURI="../../../TestPorts/PIPEasp_CNL113334/src/PIPEasp_PT.hh"/>
+    <FileResource projectRelativePath="PIPEasp_PortType.ttcn" relativeURI="../../../TestPorts/PIPEasp_CNL113334/src/PIPEasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="PIPEasp_Types.ttcn" relativeURI="../../../TestPorts/PIPEasp_CNL113334/src/PIPEasp_Types.ttcn"/>
+    <FileResource projectRelativePath="Remote_Operations_Generic_ROS_PDUs.asn" relativeURI="../../../ProtocolModules/ROSE_CNL113369/src/Remote_Operations_Generic_ROS_PDUs.asn"/>
+    <FileResource projectRelativePath="Remote_Operations_Information_Objects.asn" relativeURI="../../../ProtocolModules/ROSE_CNL113369/src/Remote_Operations_Information_Objects.asn"/>
+    <FileResource projectRelativePath="SS7Common.cc" relativeURI="../../../Other/EINSS7/UTIL/SS7Common.cc"/>
+    <FileResource projectRelativePath="SS7Common.hh" relativeURI="../../../Other/EINSS7/UTIL/SS7Common.hh"/>
+    <FileResource projectRelativePath="SS7DDefs.h" relativeURI="../../../Servers/EIN_SS7_Daemon_CNL113380/src/SS7DDefs.h"/>
+    <FileResource projectRelativePath="SS7DUtils.cc" relativeURI="../../../Servers/EIN_SS7_Daemon_CNL113380/src/SS7DUtils.cc"/>
+    <FileResource projectRelativePath="SS7DUtils.hh" relativeURI="../../../Servers/EIN_SS7_Daemon_CNL113380/src/SS7DUtils.hh"/>
+    <FileResource projectRelativePath="Socket_API_Definitions.ttcn" relativeURI="../../../TestPorts/Common_Components/Socket_API_CNL113686/src/Socket_API_Definitions.ttcn"/>
+    <FileResource projectRelativePath="Socket_Component.cc" relativeURI="../../../Servers/EIN_SS7_Daemon_CNL113380/src/Socket_Component.cc"/>
+    <FileResource projectRelativePath="Socket_Component.hh" relativeURI="../../../Servers/EIN_SS7_Daemon_CNL113380/src/Socket_Component.hh"/>
+    <FileResource projectRelativePath="TCAPPackage.asn" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPPackage.asn"/>
+    <FileResource projectRelativePath="TCAPasp_PT.cc" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PT.cc"/>
+    <FileResource projectRelativePath="TCAPasp_PT.hh" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PT.hh"/>
+    <FileResource projectRelativePath="TCAPasp_PT_Daemon_Interface.cc" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PT_Daemon_Interface.cc"/>
+    <FileResource projectRelativePath="TCAPasp_PT_Daemon_Interface.hh" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PT_Daemon_Interface.hh"/>
+    <FileResource projectRelativePath="TCAPasp_PT_EIN_Interface.cc" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PT_EIN_Interface.cc"/>
+    <FileResource projectRelativePath="TCAPasp_PT_EIN_Interface.hh" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PT_EIN_Interface.hh"/>
+    <FileResource projectRelativePath="TCAPasp_PortType.ttcn" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="TCAPasp_Types.ttcn" relativeURI="../../../TestPorts/TCAPasp_CNL113349/src/TCAPasp_Types.ttcn"/>
+    <FileResource projectRelativePath="TCCAssertion.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCAssertion.cc"/>
+    <FileResource projectRelativePath="TCCAssertion_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCAssertion_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCConversion.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCConversion.cc"/>
+    <FileResource projectRelativePath="TCCConversion_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCConversion_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCDateTime.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCDateTime.cc"/>
+    <FileResource projectRelativePath="TCCDateTime_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCDateTime_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCEncoding.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCEncoding.cc"/>
+    <FileResource projectRelativePath="TCCEncoding_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCEncoding_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCEnv.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCEnv.cc"/>
+    <FileResource projectRelativePath="TCCEnv_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCEnv_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCFileIO.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileIO.cc"/>
+    <FileResource projectRelativePath="TCCFileIO_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileIO_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCFileSystem.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileSystem.cc"/>
+    <FileResource projectRelativePath="TCCFileSystem_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCFileSystem_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCIPsec.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec.cc"/>
+    <FileResource projectRelativePath="TCCIPsec_Definitions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec_Definitions.ttcn"/>
+    <FileResource projectRelativePath="TCCIPsec_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCIPsec_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCInterface.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface.cc"/>
+    <FileResource projectRelativePath="TCCInterface_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCInterface_ip.h" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCInterface_ip.h"/>
+    <FileResource projectRelativePath="TCCMaths.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths.cc"/>
+    <FileResource projectRelativePath="TCCMaths_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCMaths_GenericTypes.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCMaths_GenericTypes.ttcn"/>
+    <FileResource projectRelativePath="TCCMessageHandling.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCMessageHandling.cc"/>
+    <FileResource projectRelativePath="TCCMessageHandling_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCMessageHandling_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCSecurity.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCSecurity.cc"/>
+    <FileResource projectRelativePath="TCCSecurity_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCSecurity_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCSystem.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCSystem.cc"/>
+    <FileResource projectRelativePath="TCCSystem_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCSystem_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCTemplate_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCTemplate_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCTitanMetadata.cc" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCTitanMetadata.cc"/>
+    <FileResource projectRelativePath="TCCTitanMetadata_Functions.ttcn" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/TCCTitanMetadata_Functions.ttcn"/>
+    <FileResource projectRelativePath="TELNETasp_PT.cc" relativeURI="../../../TestPorts/TELNETasp_CNL113320/src/TELNETasp_PT.cc"/>
+    <FileResource projectRelativePath="TELNETasp_PT.hh" relativeURI="../../../TestPorts/TELNETasp_CNL113320/src/TELNETasp_PT.hh"/>
+    <FileResource projectRelativePath="TELNETasp_PortType.ttcn" relativeURI="../../../TestPorts/TELNETasp_CNL113320/src/TELNETasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="UsefulTtcn3Types.ttcn" relativeURI="../../../ProtocolModules/XTDP_CNL113663/src/generated_files/UsefulTtcn3Types.ttcn"/>
+    <FileResource projectRelativePath="XSD.ttcn" relativeURI="../../../ProtocolModules/XTDP_CNL113663/src/generated_files/XSD.ttcn"/>
+    <FileResource projectRelativePath="XSD_ASN.asn" relativeURI="../../../ProtocolModules/XSDASN_CNL113474/src/XSD_ASN.asn"/>
+    <FileResource projectRelativePath="XTDP-EXER-EncDec.cc" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDP-EXER-EncDec.cc"/>
+    <FileResource projectRelativePath="XTDP_EncDecFunctions.ttcn" relativeURI="../../../ProtocolModules/XTDP_CNL113663/src/XTDP_EncDecFunctions.ttcn"/>
+    <FileResource projectRelativePath="XTDP_Images.ttcn" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDP_Images.ttcn"/>
+    <FileResource projectRelativePath="XTDP_PDU_Defs.asn" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="XTDPasp_PT.cc" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDPasp_PT.cc"/>
+    <FileResource projectRelativePath="XTDPasp_PT.hh" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDPasp_PT.hh"/>
+    <FileResource projectRelativePath="XTDPasp_PortType.ttcn" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="XTDPasp_Types.ttcn" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XTDPasp_Types.ttcn"/>
+    <FileResource projectRelativePath="XUL_XTDL.asn" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/XUL_XTDL.asn"/>
+    <FileResource projectRelativePath="aka_algorythm_set.c" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/aka_algorythm_set.c"/>
+    <FileResource projectRelativePath="aka_algorythm_set.h" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/aka_algorythm_set.h"/>
+    <FileResource projectRelativePath="demo.xml" relativeURI="../src/common/demo.xml"/>
+    <FileResource projectRelativePath="demo_tab.xml" relativeURI="../src/common/demo_tab.xml"/>
+    <FileResource projectRelativePath="digcalc.c" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/digcalc.c"/>
+    <FileResource projectRelativePath="digcalc.h" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/digcalc.h"/>
+    <FileResource projectRelativePath="gui_empty_window.xml" relativeURI="../src/common/gui_empty_window.xml"/>
+    <FileResource projectRelativePath="gui_execctrl_buttons.xml" relativeURI="../src/common/gui_execctrl_buttons.xml"/>
+    <FileResource projectRelativePath="gui_execctrl_tabpanel.xml" relativeURI="../src/common/gui_execctrl_tabpanel.xml"/>
+    <FileResource projectRelativePath="gui_genapp_console_tabpanel.xml" relativeURI="../src/common/gui_genapp_console_tabpanel.xml"/>
+    <FileResource projectRelativePath="gui_genapp_hostadmin_tabpanel.xml" relativeURI="../src/common/gui_genapp_hostadmin_tabpanel.xml"/>
+    <FileResource projectRelativePath="gui_genapp_statistic_tabpanel.xml" relativeURI="../src/common/gui_genapp_statistic_tabpanel.xml"/>
+    <FileResource projectRelativePath="gui_genapp_tabs.xml" relativeURI="../src/common/gui_genapp_tabs.xml"/>
+    <FileResource projectRelativePath="gui_stathandler_tabpanel.xml" relativeURI="../src/common/gui_stathandler_tabpanel.xml"/>
+    <FileResource projectRelativePath="lex.xtdp.c" relativeURI="../../../TestPorts/XTDPasp_CNL113494/src/lex.xtdp.c"/>
+    <FileResource projectRelativePath="makefile_patch_ETM.sh" relativeURI="makefile_patch_ETM.sh"/>
+    <FileResource projectRelativePath="ttcn_ericsson_se_protocolModules_xtdp_xtdl.ttcn" relativeURI="../../../ProtocolModules/XTDP_CNL113663/src/generated_files/ttcn_ericsson_se_protocolModules_xtdp_xtdl.ttcn"/>
+    <FileResource projectRelativePath="ttcn_ericsson_se_protocolModules_xtdp_xtdp.ttcn" relativeURI="../../../ProtocolModules/XTDP_CNL113663/src/generated_files/ttcn_ericsson_se_protocolModules_xtdp_xtdp.ttcn"/>
+    <FileResource projectRelativePath="zuc.c" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/zuc.c"/>
+    <FileResource projectRelativePath="zuc.h" relativeURI="../../../Libraries/TCCUsefulFunctions_CNL113472/src/zuc.h"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_ETM</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <MakefileScript>makefile_patch_ETM.sh</MakefileScript>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>INAP_CS1plus_ANSIasp_Types.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SS7DUtils.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SS7DUtils.hh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>Socket_Component.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>Socket_Component.hh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>TCAPasp_PT_Daemon_Interface.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>TCAPasp_PT_Daemon_Interface.hh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv2.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv2.tpd
new file mode 100644
index 000000000..f6e79c365
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv2.tpd
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_CAPv2</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CAPv2_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAPv2_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CAPv2_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAPv2_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_PGStraffic.cf" relativeURI="productconfigs/ETM/ETM_statistics_settings_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_VPNtraffic.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_CAPv2</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv3.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv3.tpd
new file mode 100644
index 000000000..a7f62d8a8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv3.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_CAPv3</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv3" projectLocationURI="../src/cap/EPTF_GenApp_CAPv3.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP" projectLocationURI="../src/cip/EPTF_GenApp_CIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CAPv3_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAPv3_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CAPv3_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAPv3_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_PGStraffic.cf" relativeURI="productconfigs/ETM/ETM_statistics_settings_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_VPNtraffic.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_CAPv3</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+            <listItem>GENAPP_COMPILE_CAPv3</listItem>
+            <listItem>GENAPP_COMPILE_CIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4.tpd
new file mode 100644
index 000000000..78475f908
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_CAPv4</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP" projectLocationURI="../src/cip/EPTF_GenApp_CIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CAPv4_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAPv4_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CAPv4_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAP4_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_PGStraffic.cf" relativeURI="productconfigs/ETM/ETM_statistics_settings_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_VPNtraffic.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_CAPv4</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+            <listItem>GENAPP_COMPILE_CAPv4</listItem>
+            <listItem>GENAPP_COMPILE_CIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4_v760.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4_v760.tpd
new file mode 100644
index 000000000..bd6d0cf4c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CAPv4_v760.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_CAPv4_v760</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CIP" projectLocationURI="../src/cip/EPTF_GenApp_CIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CAPv4_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAPv4_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CAPv4_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CAP4_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CIP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_CIP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_PGStraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_VPNtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_PGStraffic.cf" relativeURI="productconfigs/ETM/ETM_statistics_settings_PGStraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_SNAtraffic_assisting.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_SNAtraffic_assisting.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_VPNtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_VPNtraffic.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_CAPv4_v760</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+            <listItem>GENAPP_COMPILE_CAPv4</listItem>
+            <listItem>GENAPP_COMPILE_CIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CCA.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CCA.tpd
new file mode 100644
index 000000000..c219a1446
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CCA.tpd
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_CCA</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="../src/cap/EPTF_GenApp_CAPv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv4" projectLocationURI="../src/cap/EPTF_GenApp_CAPv4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CAPv2_FSM_CCA.cfg" relativeURI="productconfigs/ETM/ETM_CAPv2_FSM_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_CAPv2_demo_CCA.cfg" relativeURI="productconfigs/ETM/ETM_CAPv2_demo_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_CCA.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_CCA.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_MAP_FSM_CCA.cfg" relativeURI="productconfigs/ETM/ETM_MAP_FSM_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_MAP_demo_CCA.cfg" relativeURI="productconfigs/ETM/ETM_MAP_demo_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_main_demo_CCA.cfg" relativeURI="productconfigs/ETM/ETM_main_demo_CCA.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_CCA.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_CCA.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_CCA</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CAPv2</listItem>
+            <listItem>GENAPP_COMPILE_CAPv4</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CSCF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CSCF.tpd
new file mode 100644
index 000000000..a57de8724
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_CSCF.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_CSCF</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_main_demo_CSCF.cfg" relativeURI="productconfigs/ETM/ETM_main_demo_CSCF.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_SIP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_SIP_demo.cfg" relativeURI="productconfigs/ETM/ETM_SIP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_CSCF.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_CSCF.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_CSCF</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_DCC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_DCC.tpd
new file mode 100644
index 000000000..ca3ab609d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_DCC.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_DCC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+     <FileResource projectRelativePath="ETM_DCC_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_DCC_main_demo.cfg"/>
+     <FileResource projectRelativePath="ETM_DCC_FSM.cfg" relativeURI="productconfigs/ETM/ETM_DCC_FSM.cfg"/>
+     <FileResource projectRelativePath="ETM_DCC_demo.cfg" relativeURI="productconfigs/ETM/ETM_DCC_demo.cfg"/>
+     <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_DCC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+            <listItem>ENABLE_SCTP</listItem>
+            <listItem>USE_SCTP</listItem>
+          </TTCN3preprocessorDefines>
+          <preprocessorDefines>
+            <listItem>ENABLE_SCTP</listItem>
+            <listItem>USE_SCTP</listItem>
+          </preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_ECC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_ECC.tpd
new file mode 100644
index 000000000..142330edb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_ECC.tpd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_ECC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_main_demo_ECC.cfg" relativeURI="productconfigs/ETM/ETM_main_demo_ECC.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_ECC_EMAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_ECC_EMAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_ECC_EMAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_ECC_EMAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_ECCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_ECCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_ECCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_ECCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_ECCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_ECCtraffic.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_ECC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_HomeZone.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_HomeZone.tpd
new file mode 100644
index 000000000..eb46760f7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_HomeZone.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_HomeZone</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="../src/cap/EPTF_GenApp_CAPv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_HomeZone_FSM.cfg" relativeURI="productconfigs/ETM/ETM_HomeZone_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_HomeZone_demo.cfg" relativeURI="productconfigs/ETM/ETM_HomeZone_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_HomeZone_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_HomeZone_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_HomeZone</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_COMBINED_CAPv2</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_INAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_LTE_INAP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_LTE_INAP.tpd
new file mode 100644
index 000000000..ae71997d7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_LTE_INAP.tpd
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_LTE_INAP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CIP" projectLocationURI="../src/cip/EPTF_GenApp_CIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_USSD" projectLocationURI="../src/http/EPTF_GenApp_USSD.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_LTE_INAP_FSM_PnCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_LTE_INAP_FSM_PnCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_LTE_INAP_demo_PnCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_LTE_INAP_demo_PnCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_LTE_INAP_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_LTE_INAP_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_CIP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_MCC_CIP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_CIP_demo.cfg" relativeURI="productconfigs/ETM/ETM_MCC_CIP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_USSD_FSM.cfg" relativeURI="productconfigs/ETM/ETM_MCC_USSD_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_USSD_demo.cfg" relativeURI="productconfigs/ETM/ETM_MCC_USSD_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>../EPTF_GenApp_ETM_LTE/bin/EPTF_GenApp_ETM_LTE</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+            <listItem>GENAPP_COMPILE_CIP</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+            <listItem>GENAPP_COMPILE_USSD</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_MCC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_MCC.tpd
new file mode 100644
index 000000000..08bd6a217
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_MCC.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_MCC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CIP" projectLocationURI="../src/cip/EPTF_GenApp_CIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_USSD" projectLocationURI="../src/http/EPTF_GenApp_USSD.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_main_demo_MCC.cfg" relativeURI="productconfigs/ETM/ETM_main_demo_MCC.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_FSM_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_FSM_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_MCCtraffic.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_CIP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_MCC_CIP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_CIP_demo.cfg" relativeURI="productconfigs/ETM/ETM_MCC_CIP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_MAP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_MCC_MAP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_MAP_demo.cfg" relativeURI="productconfigs/ETM/ETM_MCC_MAP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_USSD_FSM.cfg" relativeURI="productconfigs/ETM/ETM_MCC_USSD_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_MCC_USSD_demo.cfg" relativeURI="productconfigs/ETM/ETM_MCC_USSD_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings_MCCtraffic.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings_MCCtraffic.cfg"/>    
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_MCC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+            <listItem>GENAPP_COMPILE_CIP</listItem>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+            <listItem>GENAPP_COMPILE_USSD</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP.tpd
new file mode 100644
index 000000000..32e284634
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_NP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_main_demo_NP.cfg" relativeURI="productconfigs/ETM/ETM_main_demo_NP.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_MAP_FSM_NP.cfg" relativeURI="productconfigs/ETM/ETM_MAP_FSM_NP.cfg"/>
+    <FileResource projectRelativePath="ETM_MAP_demo_NP.cfg" relativeURI="productconfigs/ETM/ETM_MAP_demo_NP.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_NP</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP21.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP21.tpd
new file mode 100644
index 000000000..391c659dd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_NP21.tpd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_NP21</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_INAP" projectLocationURI="../src/inap/EPTF_GenApp_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_main_demo_NP21.cfg" relativeURI="productconfigs/ETM/ETM_main_demo_NP21.cfg"/>
+    <FileResource projectRelativePath="ETM_CLL_TestPorts.cfg" relativeURI="productconfigs/ETM/ETM_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_LNP_ST_ExtendedTablesFSM.cfg" relativeURI="productconfigs/ETM/ETM_INAP_LNP_ST_ExtendedTablesFSM.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_LNP_ST_ExtendedTablesFSM_noNegativeScenario.cfg" relativeURI="productconfigs/ETM/ETM_INAP_LNP_ST_ExtendedTablesFSM_noNegativeScenario.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_LNP_ST.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_LNP_ST.cfg"/>
+    <FileResource projectRelativePath="ETM_INAP_demo_LNP_ST_noNegativeScenario.cfg" relativeURI="productconfigs/ETM/ETM_INAP_demo_LNP_ST_noNegativeScenario.cfg"/>
+    <FileResource projectRelativePath="ETM_MAP_FSM_NP.cfg" relativeURI="productconfigs/ETM/ETM_MAP_FSM_NP.cfg"/>
+    <FileResource projectRelativePath="ETM_MAP_demo_NP.cfg" relativeURI="productconfigs/ETM/ETM_MAP_demo_NP.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_settings.cfg" relativeURI="productconfigs/ETM/ETM_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_NP21</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+            <listItem>GENAPP_COMPILE_INAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA.tpd
new file mode 100644
index 000000000..a2ad3b82c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_SNA</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SNA" projectLocationURI="../src/http/SNA/EPTF_GenApp_SNA.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_SNA_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_SNA_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_SNA_FSM.cfg" relativeURI="productconfigs/ETM/ETM_SNA_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_SNA_demo.cfg" relativeURI="productconfigs/ETM/ETM_SNA_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>    
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_SNA</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SNA</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA2.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA2.tpd
new file mode 100644
index 000000000..c97237403
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ETM_SNA2.tpd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ETM_SNA2</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../src/http/EPTF_GenApp_HTTP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="ETM_SNA2_main_demo.cfg" relativeURI="productconfigs/ETM/ETM_SNA2_main_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_SNA2_HTTP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_SNA2_HTTP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_SNA2_HTTP_demo.cfg" relativeURI="productconfigs/ETM/ETM_SNA2_HTTP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_SNA2_SIP_FSM.cfg" relativeURI="productconfigs/ETM/ETM_SNA2_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="ETM_SNA2_SIP_demo.cfg" relativeURI="productconfigs/ETM/ETM_SNA2_SIP_demo.cfg"/>
+    <FileResource projectRelativePath="ETM_debug_settings.cfg" relativeURI="productconfigs/ETM/ETM_debug_settings.cfg"/>
+    <FileResource projectRelativePath="ETM_local_host.cfg" relativeURI="productconfigs/ETM/ETM_local_host.cfg"/>
+    <FileResource projectRelativePath="ETM_remote_node.cfg" relativeURI="productconfigs/ETM/ETM_remote_node.cfg"/>
+    <FileResource projectRelativePath="ETM_statistics_SNA2.cfg" relativeURI="productconfigs/ETM/ETM_statistics_SNA2.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_ETM_SNA2</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_COMBINED_SIP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_HTTP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_H248.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_H248.tpd
new file mode 100644
index 000000000..8d68002e9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_H248.tpd
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_H248</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_H248_CNL113523" projectLocationURI="../../../../Libraries/EPTF_Applib_H248_CNL113523/EPTF_Applib_H248_CNL113523.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_H248_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_H248_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_H248_LGen_Functions.ttcnpp" relativeURI="EPTF_GenApp_H248_LGen_Functions.ttcnpp"/>
+    <FileResource projectRelativePath="EPTF_GenApp_H248_Mapping_Definitions.ttcn" relativeURI="EPTF_GenApp_H248_Mapping_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_H248_Mapping_Functions.ttcnpp" relativeURI="EPTF_GenApp_H248_Mapping_Functions.ttcnpp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_H248</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_H248</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLR.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLR.tpd
new file mode 100644
index 000000000..991cd79fb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLR.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_HLR</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="HLR_Main.cfg" relativeURI="productconfigs/HLR/HLR_Main.cfg"/>
+    <FileResource projectRelativePath="HLR_debug_settings.cfg" relativeURI="productconfigs/HLR/HLR_debug_settings.cfg"/>
+    <FileResource projectRelativePath="HLR_local_host.cfg" relativeURI="productconfigs/HLR/HLR_local_host.cfg"/>
+    <FileResource projectRelativePath="HLR_MAP_FSM.cfg" relativeURI="productconfigs/HLR/HLR_MAP_FSM.cfg"/>
+    <FileResource projectRelativePath="HLR_MAP_Settings.cfg" relativeURI="productconfigs/HLR/HLR_MAP_Settings.cfg"/>
+    <FileResource projectRelativePath="HLR_MAP_TestPorts.cfg" relativeURI="productconfigs/HLR/HLR_MAP_TestPorts.cfg"/>
+    <FileResource projectRelativePath="HLR_remote_node.cfg" relativeURI="productconfigs/HLR/HLR_remote_node.cfg"/>
+    <FileResource projectRelativePath="HLR_statistics_settings.cfg" relativeURI="productconfigs/HLR/HLR_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_HLR</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLRsim.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLRsim.tpd
new file mode 100644
index 000000000..cee59bca3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HLRsim.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_HLRsim</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_MAP" projectLocationURI="../src/map/EPTF_GenApp_MAP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="HLRsim_main.cfg" relativeURI="productconfigs/HLRsim/HLRsim_main.cfg"/>
+    <FileResource projectRelativePath="HLRsim_FSM.cfg" relativeURI="productconfigs/HLRsim/HLRsim_FSM.cfg"/>
+    <FileResource projectRelativePath="HLRsim_local_host.cfg" relativeURI="productconfigs/HLRsim/HLRsim_local_host.cfg"/>
+    <FileResource projectRelativePath="HLRsim_settings.cfg" relativeURI="productconfigs/HLRsim/HLRsim_settings.cfg"/>
+    <FileResource projectRelativePath="HLRsim_settings_imstools.cfg" relativeURI="productconfigs/HLRsim/HLRsim_settings_imstools.cfg"/>
+    <FileResource projectRelativePath="HLRsim_statistics_settings.cfg" relativeURI="productconfigs/HLRsim/HLRsim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_HLRsim</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HTTP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HTTP.tpd
new file mode 100644
index 000000000..d36fec9b4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_HTTP.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_HTTP_TopLevel</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../src/http/EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="HTTP_main_demo.cfg" relativeURI="productconfigs/HTTP/HTTP_main_demo.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_HTTP_TopLevel</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_INAP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_INAP.tpd
new file mode 100644
index 000000000..ced665233
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_INAP.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_INAP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_INAP_CNL113596" projectLocationURI="../../../../Libraries/EPTF_Applib_INAP_CNL113596/EPTF_Applib_INAP_CNL113596.tpd"/>
+    <ReferencedProject name="EPTF_CommonTransport_TCAP_CNL113592" projectLocationURI="../../../../Libraries/EPTF_CommonTransport_TCAP_CNL113592/EPTF_CommonTransport_TCAP_CNL113592.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_INAP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_INAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_INAP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_INAP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_INAP</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ISUP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ISUP.tpd
new file mode 100644
index 000000000..b9db867e2
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ISUP.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ISUP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_ISUP_CNL113681" projectLocationURI="../../../../Libraries/EPTF_Applib_ISUP_CNL113681/EPTF_Applib_ISUP_CNL113681.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_ISUP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_ISUP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_ISUP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_ISUP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_ISUP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LDAP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LDAP.tpd
new file mode 100644
index 000000000..c7c8e7f4b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LDAP.tpd
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_LDAP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_LDAP_CNL113754" projectLocationURI="../../../../Libraries/EPTF_Applib_LDAP_CNL113754/EPTF_Applib_LDAP_CNL113754.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Common" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Common/EPTF_CLL_Common.tpd"/>
+    <ReferencedProject name="EPTF_CLL_ExecCtrl" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/ExecCtrl/EPTF_CLL_ExecCtrl.tpd"/>
+    <ReferencedProject name="EPTF_CLL_FreeBusyQueue" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/FreeBusyQueue/EPTF_CLL_FBQ.tpd"/>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Logging_UI" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Logging/EPTF_CLL_Logging_UI.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Rendezvous" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Rendezvous/EPTF_CLL_Rendezvous.tpd"/>
+    <ReferencedProject name="EPTF_CLL_StatHandler" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/StatHandler/EPTF_CLL_StatHandler.tpd"/>
+    <ReferencedProject name="EPTF_CLL_UIHandler" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/UIHandler/EPTF_CLL_UIHandler.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../../demo/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="LDAPasp_RFC4511_CNL113513_Functions" projectLocationURI="../../../../TestPorts/LDAPasp_RFC4511_CNL113513/LDAPasp_RFC4511_CNL113513_Functions.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="bin" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin"/>
+    <FolderResource projectRelativePath="ldap" relativeURI="."/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath=".TITAN_properties" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/.TITAN_properties"/>
+    <FileResource projectRelativePath=".project" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/.project"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP.grp" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP.grp"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP.tpd" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP.tpd"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Definitions.cc" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Definitions.cc"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Definitions.d" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Definitions.d"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Definitions.hh" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Definitions.hh"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Definitions.o" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Definitions.o"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Definitions.ttcn" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Functions.cc" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Functions.cc"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Functions.d" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Functions.d"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Functions.hh" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Functions.hh"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Functions.o" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Functions.o"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_LDAP_Functions.ttcn" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_LDAP_Functions.ttcn"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_MainModule.cc" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_MainModule.cc"/>
+    <FileResource projectRelativePath="bin/EPTF_GenApp_MainModule.hh" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/EPTF_GenApp_MainModule.hh"/>
+    <FileResource projectRelativePath="bin/Makefile" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/Makefile"/>
+    <FileResource projectRelativePath="bin/compile" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/compile"/>
+    <FileResource projectRelativePath="bin/compile-all" relativeURI="../../../../../../../workspace/EPTF_GenApp_LDAP/bin/compile-all"/>
+    <FileResource projectRelativePath="ldap/EPTF_GenApp_LDAP.grp" relativeURI="EPTF_GenApp_LDAP.grp"/>
+    <FileResource projectRelativePath="ldap/EPTF_GenApp_LDAP.tpd" relativeURI="EPTF_GenApp_LDAP.tpd"/>
+    <FileResource projectRelativePath="ldap/EPTF_GenApp_LDAP_Definitions.ttcn" relativeURI="EPTF_GenApp_LDAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="ldap/EPTF_GenApp_LDAP_Functions.ttcn" relativeURI="EPTF_GenApp_LDAP_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_LDAP</targetExecutable>
+          <buildLevel>Level 2 - Creating object files</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LNP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LNP.tpd
new file mode 100644
index 000000000..10fd4ffb1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LNP.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_LNP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_LNP_CNL113714" projectLocationURI="../../../../Libraries/EPTF_Applib_LNP_CNL113714/EPTF_Applib_LNP_CNL113714.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_LNP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_LNP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_LNP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_LNP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_LNP</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LRF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LRF.tpd
new file mode 100644
index 000000000..515504abf
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LRF.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_LRF_TopLevel</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_LRF" projectLocationURI="../src/http/EPTF_GenApp_LRF.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="LRF_main_demo.cfg" relativeURI="productconfigs/LRF/LRF_main_demo.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_LRF_TopLevel</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_HTTP</listItem>
+            <listItem>GENAPP_COMPILE_LRF</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LTE.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LTE.tpd
new file mode 100644
index 000000000..dad4d4bde
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_LTE.tpd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_LTE</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_UserPlane" projectLocationURI="../src/userplane/EPTF_GenApp_UserPlane.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="LTE_main_demo.cfg" relativeURI="productconfigs/LTE/LTE_main_demo.cfg"/>
+    <FileResource projectRelativePath="LTE_CLL_TestPorts.cfg" relativeURI="productconfigs/LTE/LTE_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="LTE_Combined_demo.cfg" relativeURI="productconfigs/LTE/LTE_Combined_demo.cfg"/>
+    <FileResource projectRelativePath="LTE_MLSim_config_settings.cfg" relativeURI="productconfigs/LTE/LTE_MLSim_config_settings.cfg"/>
+    <FileResource projectRelativePath="LTE_MLSim_profile_settings.cfg" relativeURI="productconfigs/LTE/LTE_MLSim_profile_settings.cfg"/>
+    <FileResource projectRelativePath="LTE_SIP_FSM.cfg" relativeURI="productconfigs/LTE/LTE_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="LTE_SIP_demo.cfg" relativeURI="productconfigs/LTE/LTE_SIP_demo.cfg"/>
+    <FileResource projectRelativePath="LTE_UPload_config_settings.cfg" relativeURI="productconfigs/LTE/LTE_UPload_config_settings.cfg"/>
+    <FileResource projectRelativePath="LTE_UserPlane_FSM.cfg" relativeURI="productconfigs/LTE/LTE_UserPlane_FSM.cfg"/>
+    <FileResource projectRelativePath="LTE_UserPlane_demo.cfg" relativeURI="productconfigs/LTE/LTE_UserPlane_demo.cfg"/>
+    <FileResource projectRelativePath="LTE_debug_settings.cfg" relativeURI="productconfigs/LTE/LTE_debug_settings.cfg"/>
+    <FileResource projectRelativePath="LTE_local_host.cfg" relativeURI="productconfigs/LTE/LTE_local_host.cfg"/>
+    <FileResource projectRelativePath="LTE_remote_node.cfg" relativeURI="productconfigs/LTE/LTE_remote_node.cfg"/>
+    <FileResource projectRelativePath="LTE_statistics_settings.cfg" relativeURI="productconfigs/LTE/LTE_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_LTE</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_MLSIM</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_MSRP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_SDP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_UPLOAD</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MABEZ.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MABEZ.tpd
new file mode 100644
index 000000000..740827b9f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MABEZ.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MABEZ</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MABEZ_main_demo.cfg" relativeURI="productconfigs/MABEZ/MABEZ_main_demo.cfg"/>
+    <FileResource projectRelativePath="MABEZ_CLL_TestPorts.cfg" relativeURI="productconfigs/MABEZ/MABEZ_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MABEZ_SIP_FSM.cfg" relativeURI="productconfigs/MABEZ/MABEZ_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="MABEZ_SIP_demo.cfg" relativeURI="productconfigs/MABEZ/MABEZ_SIP_demo.cfg"/>
+    <FileResource projectRelativePath="MABEZ_debug_settings.cfg" relativeURI="productconfigs/MABEZ/MABEZ_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MABEZ_local_host.cfg" relativeURI="productconfigs/MABEZ/MABEZ_local_host.cfg"/>
+    <FileResource projectRelativePath="MABEZ_remote_node.cfg" relativeURI="productconfigs/MABEZ/MABEZ_remote_node.cfg"/>
+    <FileResource projectRelativePath="MABEZ_statistics_settings.cfg" relativeURI="productconfigs/MABEZ/MABEZ_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_MABEZ</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MAP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MAP.tpd
new file mode 100644
index 000000000..f627158f4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MAP.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MAP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_MAP_CNL113595" projectLocationURI="../../../../Libraries/EPTF_Applib_MAP_CNL113595/EPTF_Applib_MAP_CNL113595.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Security" projectLocationURI="../../../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Security.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MAP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_MAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MAP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_MAP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_MAP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MGW.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MGW.tpd
new file mode 100644
index 000000000..3088d01e4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MGW.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MGW</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_H248" projectLocationURI="../src/h248/EPTF_GenApp_H248.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MGWSim_main_demo.cfg" relativeURI="productconfigs/MGWSim/MGWSim_main_demo.cfg"/>
+    <FileResource projectRelativePath="MGWSim_CLL_TestPorts.cfg" relativeURI="productconfigs/MGWSim/MGWSim_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MGWSim_H248_FSM.cfg" relativeURI="productconfigs/MGWSim/MGWSim_H248_FSM.cfg"/>
+    <FileResource projectRelativePath="MGWSim_H248_demo.cfg" relativeURI="productconfigs/MGWSim/MGWSim_H248_demo.cfg"/>
+    <FileResource projectRelativePath="MGWSim_debug_settings.cfg" relativeURI="productconfigs/MGWSim/MGWSim_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MGWSim_local_host.cfg" relativeURI="productconfigs/MGWSim/MGWSim_local_host.cfg"/>
+    <FileResource projectRelativePath="MGWSim_remote_node.cfg" relativeURI="productconfigs/MGWSim/MGWSim_remote_node.cfg"/>
+    <FileResource projectRelativePath="MGWSim_statistics_settings.cfg" relativeURI="productconfigs/MGWSim/MGWSim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_MGW</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_H248</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMESim.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMESim.tpd
new file mode 100644
index 000000000..3e4f21746
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMESim.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MMEsim</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MMEsim_main.cfg" relativeURI="../../../../cfg/MMESim/MMEsim_main.cfg"/>
+    <FileResource projectRelativePath="MMEsim_AVPs.cfg" relativeURI="../../../../cfg/MMESim/MMEsim_AVPs.cfg"/>
+    <FileResource projectRelativePath="MMEsim_FSM.cfg" relativeURI="../../../../cfg/MMESim/MMEsim_FSM.cfg"/>
+    <FileResource projectRelativePath="MMEsim_local_host.cfg" relativeURI="../../../../cfg/MMESim/MMEsim_local_host.cfg"/>
+    <FileResource projectRelativePath="MMEsim_settings.cfg" relativeURI="../../../../cfg/MMESim/MMEsim_settings.cfg"/>
+    <FileResource projectRelativePath="MMEsim_statistics_settings.cfg" relativeURI="../../../../cfg/MMESim/MMEsim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/titansim</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMsim.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMsim.tpd
new file mode 100644
index 000000000..244dfba6b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MMsim.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MMsim</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MMsim_main.cfg" relativeURI="productconfigs/MMsim/MMsim_main.cfg"/>
+    <FileResource projectRelativePath="MMsim_AVPs.cfg" relativeURI="productconfigs/MMsim/MMsim_AVPs.cfg"/>
+    <FileResource projectRelativePath="MMsim_FSM.cfg" relativeURI="productconfigs/MMsim/MMsim_FSM.cfg"/>
+    <FileResource projectRelativePath="MMsim_local_host.cfg" relativeURI="productconfigs/MMsim/MMsim_local_host.cfg"/>
+    <FileResource projectRelativePath="MMsim_traffic.cfg" relativeURI="productconfigs/MMsim/MMsim_traffic.cfg"/>
+    <FileResource projectRelativePath="MMsim_statistics_settings.cfg" relativeURI="productconfigs/MMsim/MMsim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_MMsim</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MRFC.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MRFC.tpd
new file mode 100644
index 000000000..71dd2c3bb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MRFC.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MRFC</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_HTTP_CNL113618" projectLocationURI="../../../../Libraries/EPTF_Applib_HTTP_CNL113618/EPTF_Applib_HTTP_CNL113618.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="EPTF_GenApp_SIP.tpd"/>
+    <ReferencedProject name="SDP_CNL113353" projectLocationURI="../../../../ProtocolModules/SDP_CNL113353/SDP_CNL113353.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MRFC_DS_Definitions.ttcn" relativeURI="EPTF_GenApp_MRFC_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MRFC_DS_Functions.ttcn" relativeURI="EPTF_GenApp_MRFC_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MRFC_Definitions.ttcn" relativeURI="EPTF_GenApp_MRFC_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_MRFC_Functions.ttcn" relativeURI="EPTF_GenApp_MRFC_Functions.ttcn"/>
+    <FileResource projectRelativePath="www_w3_org_2001_vxml.ttcn" relativeURI="www_w3_org_2001_vxml.ttcn"/>
+    <FileResource projectRelativePath="www_w3_org_XML_1998_namespace.ttcn" relativeURI="www_w3_org_XML_1998_namespace.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_MRFC</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MRFC</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MSS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MSS.tpd
new file mode 100644
index 000000000..617d5a18d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MSS.tpd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MSS</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_ISUP" projectLocationURI="../src/isup/EPTF_GenApp_ISUP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MSS_CLL_TestPorts.cfg" relativeURI="productconfigs/MSS/MSS_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MSS_ISUP_FSM.cfg" relativeURI="productconfigs/MSS/MSS_ISUP_FSM.cfg"/>
+    <FileResource projectRelativePath="MSS_ISUP_traffic.cfg" relativeURI="productconfigs/MSS/MSS_ISUP_traffic.cfg"/>
+    <FileResource projectRelativePath="MSS_SIP_FSM.cfg" relativeURI="productconfigs/MSS/MSS_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="MSS_SIP_traffic.cfg" relativeURI="productconfigs/MSS/MSS_SIP_traffic.cfg"/>
+    <FileResource projectRelativePath="MSS_debug_settings.cfg" relativeURI="productconfigs/MSS/MSS_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MSS_local_host.cfg" relativeURI="productconfigs/MSS/MSS_local_host.cfg"/>
+    <FileResource projectRelativePath="MSS_main.cfg" relativeURI="productconfigs/MSS/MSS_main.cfg"/>
+    <FileResource projectRelativePath="MSS_remote_node.cfg" relativeURI="productconfigs/MSS/MSS_remote_node.cfg"/>
+    <FileResource projectRelativePath="MSS_statistics_settings.cfg" relativeURI="productconfigs/MSS/MSS_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_MSS</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_COMBINED_SIP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_ISUP</listItem>
+            <listItem>ENABLE_SCTP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS.tpd
new file mode 100644
index 000000000..6b238e8cd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS.tpd
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MTAS</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAI3G" projectLocationURI="../src/cai3g/EPTF_GenApp_CAI3G.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CCMP" projectLocationURI="../src/http/EPTF_GenApp_CCMP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CNS" projectLocationURI="../src/http/EPTF_GenApp_CNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DNS" projectLocationURI="../src/dns/EPTF_GenApp_DNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_H248" projectLocationURI="../src/h248/EPTF_GenApp_H248.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MRFC" projectLocationURI="../src/sip/EPTF_GenApp_MRFC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ParlayX" projectLocationURI="../src/http/EPTF_GenApp_ParlayX.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SCP" projectLocationURI="../src/cap/EPTF_GenApp_SCP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_XCAP" projectLocationURI="../src/xcap/EPTF_GenApp_XCAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MTAS_CAI3G_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_CAI3G_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_CAI3G_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_CAI3G_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_CCMP_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_CCMP_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_CCMP_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_CCMP_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_CCMP_statistics_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_CCMP_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="MTAS_CLL_TestPorts.cfg" relativeURI="productconfigs/MTAS/MTAS_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MTAS_CNS_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_CNS_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_CNS_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_CNS_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_DIAMETER_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_DIAMETER_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_DIAMETER_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_DIAMETER_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_DIAMETER_demo_SLF.cfg" relativeURI="productconfigs/MTAS/MTAS_DIAMETER_demo_SLF.cfg"/>
+    <FileResource projectRelativePath="MTAS_DNS_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_DNS_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_DNS_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_DNS_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_H248_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_H248_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_H248_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_H248_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_H248_demo_4MRFP.cfg" relativeURI="productconfigs/MTAS/MTAS_H248_demo_4MRFP.cfg"/>
+    <FileResource projectRelativePath="MTAS_MRFC_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_MRFC_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_MRFC_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_MRFC_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_SCP_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_SCP_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_SCP_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_SCP_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_SCP_statistics_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_SCP_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="MTAS_XCAP_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_XCAP_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_XCAP_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_XCAP_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_debug_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MTAS_local_host.cfg" relativeURI="productconfigs/MTAS/MTAS_local_host.cfg"/>
+    <FileResource projectRelativePath="MTAS_main_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_main_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_remote_node.cfg" relativeURI="productconfigs/MTAS/MTAS_remote_node.cfg"/>
+    <FileResource projectRelativePath="MTAS_statistics_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_MTAS</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CAI3G</listItem>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+            <listItem>GENAPP_COMPILE_H248</listItem>
+            <listItem>GENAPP_COMPILE_XCAP</listItem>
+            <listItem>GENAPP_COMPILE_CNS</listItem>
+            <listItem>GENAPP_COMPILE_MRFC</listItem>
+            <listItem>GENAPP_COMPILE_SCP</listItem>
+            <listItem>GENAPP_COMPILE_PARLAYX</listItem>
+            <listItem>GENAPP_COMPILE_DNS</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_CCMP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_SIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS_noSS7.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS_noSS7.tpd
new file mode 100644
index 000000000..eb465a5a5
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MTAS_noSS7.tpd
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MTAS_noSS7</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAI3G" projectLocationURI="../src/cai3g/EPTF_GenApp_CAI3G.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CCMP" projectLocationURI="../src/http/EPTF_GenApp_CCMP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CNS" projectLocationURI="../src/http/EPTF_GenApp_CNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_DNS" projectLocationURI="../src/dns/EPTF_GenApp_DNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_H248" projectLocationURI="../src/h248/EPTF_GenApp_H248.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MRFC" projectLocationURI="../src/sip/EPTF_GenApp_MRFC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ParlayX" projectLocationURI="../src/http/EPTF_GenApp_ParlayX.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_XCAP" projectLocationURI="../src/xcap/EPTF_GenApp_XCAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MTAS_CAI3G_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_CAI3G_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_CAI3G_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_CAI3G_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_CCMP_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_CCMP_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_CCMP_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_CCMP_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_CCMP_statistics_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_CCMP_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="MTAS_CLL_TestPorts.cfg" relativeURI="productconfigs/MTAS/MTAS_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MTAS_CNS_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_CNS_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_CNS_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_CNS_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_DIAMETER_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_DIAMETER_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_DIAMETER_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_DIAMETER_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_DIAMETER_demo_SLF.cfg" relativeURI="productconfigs/MTAS/MTAS_DIAMETER_demo_SLF.cfg"/>
+    <FileResource projectRelativePath="MTAS_DNS_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_DNS_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_DNS_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_DNS_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_H248_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_H248_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_H248_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_H248_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_H248_demo_4MRFP.cfg" relativeURI="productconfigs/MTAS/MTAS_H248_demo_4MRFP.cfg"/>
+    <FileResource projectRelativePath="MTAS_MRFC_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_MRFC_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_MRFC_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_MRFC_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_XCAP_FSM.cfg" relativeURI="productconfigs/MTAS/MTAS_XCAP_FSM.cfg"/>
+    <FileResource projectRelativePath="MTAS_XCAP_demo.cfg" relativeURI="productconfigs/MTAS/MTAS_XCAP_demo.cfg"/>
+    <FileResource projectRelativePath="MTAS_debug_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MTAS_local_host.cfg" relativeURI="productconfigs/MTAS/MTAS_local_host.cfg"/>
+    <FileResource projectRelativePath="MTAS_main_demo_noSS7.cfg" relativeURI="productconfigs/MTAS/MTAS_main_demo_noSS7.cfg"/>
+    <FileResource projectRelativePath="MTAS_remote_node.cfg" relativeURI="productconfigs/MTAS/MTAS_remote_node.cfg"/>
+    <FileResource projectRelativePath="MTAS_statistics_settings.cfg" relativeURI="productconfigs/MTAS/MTAS_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_MTAS</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CAI3G</listItem>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+            <listItem>GENAPP_COMPILE_H248</listItem>
+            <listItem>GENAPP_COMPILE_XCAP</listItem>
+            <listItem>GENAPP_COMPILE_CNS</listItem>
+            <listItem>GENAPP_COMPILE_MRFC</listItem>
+            <listItem>GENAPP_COMPILE_PARLAYX</listItem>
+            <listItem>GENAPP_COMPILE_DNS</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_CCMP</listItem>
+            <listItem>GENAPP_COMPILE_COMBINED_SIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWI.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWI.tpd
new file mode 100644
index 000000000..917fafbd2
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWI.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MWI</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MWISim_main.cfg" relativeURI="productconfigs/MWISim/MWISim_main.cfg"/>
+    <FileResource projectRelativePath="MWISim_CLL_TestPorts.cfg" relativeURI="productconfigs/MWISim/MWISim_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MWISim_SIP_FSM.cfg" relativeURI="productconfigs/MWISim/MWISim_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="MWISim_SIP_traffic.cfg" relativeURI="productconfigs/MWISim/MWISim_SIP_traffic.cfg"/>
+    <FileResource projectRelativePath="MWISim_debug_settings.cfg" relativeURI="productconfigs/MWISim/MWISim_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MWISim_local_host.cfg" relativeURI="productconfigs/MWISim/MWISim_local_host.cfg"/>
+    <FileResource projectRelativePath="MWISim_remote_node.cfg" relativeURI="productconfigs/MWISim/MWISim_remote_node.cfg"/>
+    <FileResource projectRelativePath="MWISim_statistics_settings.cfg" relativeURI="productconfigs/MWISim/MWISim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_MWI</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWIAS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWIAS.tpd
new file mode 100644
index 000000000..504424ebf
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_MWIAS.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_MWIAS</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="MWIASSim_main.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_main.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_CLL_TestPorts.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_SIP_FSM.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_SIP_traffic.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_SIP_traffic.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_debug_settings.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_debug_settings.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_local_host.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_local_host.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_remote_node.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_remote_node.cfg"/>
+    <FileResource projectRelativePath="MWIASSim_statistics_settings.cfg" relativeURI="productconfigs/MWIASSim/MWIASSim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_MWIAS</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MWIAS</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Meta.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Meta.tpd
new file mode 100644
index 000000000..c607c9b65
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Meta.tpd
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_Meta</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp" projectLocationURI="EPTF_GenApp.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ASDP_TopLevel" projectLocationURI="EPTF_GenApp_ASDP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ATandT" projectLocationURI="EPTF_GenApp_ATandT.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_BCS_AC" projectLocationURI="EPTF_GenApp_BCS_AC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_BCS_SSP" projectLocationURI="EPTF_GenApp_BCS_SSP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_BCS_WCE" projectLocationURI="EPTF_GenApp_BCS_WCE.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CLF" projectLocationURI="EPTF_GenApp_CLF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CLFv2" projectLocationURI="EPTF_GenApp_CLFv2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CNS_TopLevel" projectLocationURI="EPTF_GenApp_CNS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CSCF_TopLevel" projectLocationURI="EPTF_GenApp_CSCF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CSCFclient" projectLocationURI="EPTF_GenApp_CSCFclient.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_EDB" projectLocationURI="EPTF_GenApp_EDB.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_EDB_CLI" projectLocationURI="EPTF_GenApp_EDB_CLI.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_DCC" projectLocationURI="EPTF_GenApp_ETM_DCC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_ECC" projectLocationURI="EPTF_GenApp_ETM_ECC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_HomeZone" projectLocationURI="EPTF_GenApp_ETM_HomeZone.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_LTE_INAP" projectLocationURI="EPTF_GenApp_ETM_LTE_INAP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_MCC" projectLocationURI="EPTF_GenApp_ETM_MCC.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_NP" projectLocationURI="EPTF_GenApp_ETM_NP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_NP21" projectLocationURI="EPTF_GenApp_ETM_NP21.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_SNA" projectLocationURI="EPTF_GenApp_ETM_SNA.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_ETM_SNA2" projectLocationURI="EPTF_GenApp_ETM_SNA2.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HLR" projectLocationURI="EPTF_GenApp_HLR.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HLRsim" projectLocationURI="EPTF_GenApp_HLRsim.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HTTP_TopLevel" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_LRF_TopLevel" projectLocationURI="EPTF_GenApp_LRF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_LTE" projectLocationURI="EPTF_GenApp_LTE.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MABEZ" projectLocationURI="EPTF_GenApp_MABEZ.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MGW" projectLocationURI="EPTF_GenApp_MGW.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MMEsim" projectLocationURI="EPTF_GenApp_MMEsim.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MMsim" projectLocationURI="EPTF_GenApp_MMsim.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MSS" projectLocationURI="EPTF_GenApp_MSS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MTAS" projectLocationURI="EPTF_GenApp_MTAS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MTAS_H248_Test" projectLocationURI="../test/EPTF_GenApp_MTAS_H248_Test.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MTAS_noSS7" projectLocationURI="EPTF_GenApp_MTAS_noSS7.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MWI" projectLocationURI="EPTF_GenApp_MWI.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_MWIAS" projectLocationURI="EPTF_GenApp_MWIAS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_NACF_TopLevel" projectLocationURI="EPTF_GenApp_NACF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_NASS" projectLocationURI="EPTF_GenApp_NASS.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_OCF" projectLocationURI="EPTF_GenApp_OCF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PCRFsim" projectLocationURI="EPTF_GenApp_PCRFsim.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PGM" projectLocationURI="EPTF_GenApp_PGM.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_RACF" projectLocationURI="EPTF_GenApp_RACF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_UAAF" projectLocationURI="EPTF_GenApp_UAAF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_VMS" projectLocationURI="EPTF_GenApp_VMS.tpd"/>
+  </ReferencedProjects>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_Meta</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NACF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NACF.tpd
new file mode 100644
index 000000000..f1ffeba6e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NACF.tpd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_NACF_TopLevel</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_NACF" projectLocationURI="../src/imsa2/EPTF_GenApp_NACF.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="NACF_main.cfg" relativeURI="productconfigs/NASS/NACF_main.cfg"/>
+    <FileResource projectRelativePath="NACF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/NACF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="NACF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/NACF_Diameter_FSM.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_NACF_TopLevel</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_NACF</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NASS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NASS.tpd
new file mode 100644
index 000000000..9305940e6
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_NASS.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_NASS</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="NASS_main.cfg" relativeURI="productconfigs/NASS/NASS_main.cfg"/>
+    <FileResource projectRelativePath="CLF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/CLF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="CLF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/CLF_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="CLF_main.cfg" relativeURI="productconfigs/NASS/CLF_main.cfg"/>
+    <FileResource projectRelativePath="NACF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/NACF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="NACF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/NACF_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="NACF_main.cfg" relativeURI="productconfigs/NASS/NACF_main.cfg"/>
+    <FileResource projectRelativePath="NASS_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/NASS_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="NASS_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/NASS_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="RACF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/RACF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="RACF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/RACF_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="RACF_main.cfg" relativeURI="productconfigs/NASS/RACF_main.cfg"/>
+    <FileResource projectRelativePath="UAAF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/UAAF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="UAAF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/UAAF_Diameter_FSM.cfg"/>
+    <FileResource projectRelativePath="UAAF_main.cfg" relativeURI="productconfigs/NASS/UAAF_main.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_NASS</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+            <listItem>GENAPP_LAUNCH_NASS_PROVISIONING</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Netconf.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Netconf.tpd
new file mode 100644
index 000000000..3130e5d2c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_Netconf.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_Netconf</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_SSH_CNL113766" projectLocationURI="../../../../Libraries/EPTF_Applib_SSH_CNL113766/EPTF_Applib_SSH_CNL113766.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_Netconf_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_Netconf_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_Netconf_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_Netconf_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_Netconf</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_NETCONF</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_OCF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_OCF.tpd
new file mode 100644
index 000000000..e736c0ec1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_OCF.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_OCF</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="OCFSim_main.cfg" relativeURI="productconfigs/OCFSim/OCFSim_main.cfg"/>
+    <FileResource projectRelativePath="OCFSim_CLL_TestPorts.cfg" relativeURI="productconfigs/OCFSim/OCFSim_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="OCFSim_DIAMETER_FSM.cfg" relativeURI="productconfigs/OCFSim/OCFSim_DIAMETER_FSM.cfg"/>
+    <FileResource projectRelativePath="OCFSim_DIAMETER_traffic.cfg" relativeURI="productconfigs/OCFSim/OCFSim_DIAMETER_traffic.cfg"/>
+    <FileResource projectRelativePath="OCFSim_debug_settings.cfg" relativeURI="productconfigs/OCFSim/OCFSim_debug_settings.cfg"/>
+    <FileResource projectRelativePath="OCFSim_local_host.cfg" relativeURI="productconfigs/OCFSim/OCFSim_local_host.cfg"/>
+    <FileResource projectRelativePath="OCFSim_remote_node.cfg" relativeURI="productconfigs/OCFSim/OCFSim_remote_node.cfg"/>
+    <FileResource projectRelativePath="OCFSim_statistics_settings.cfg" relativeURI="productconfigs/OCFSim/OCFSim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_OCF</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PCRFsim.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PCRFsim.tpd
new file mode 100644
index 000000000..36e33e9df
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PCRFsim.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_PCRFsim</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="PCRFsim_main.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_main.cfg"/>
+    <FileResource projectRelativePath="PCRFsim_FSM.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_FSM.cfg"/>
+    <FileResource projectRelativePath="PCRFsim_2_FSM.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_2_FSM.cfg"/>
+    <FileResource projectRelativePath="PCRFsim_local_host.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_local_host.cfg"/>
+    <FileResource projectRelativePath="PCRFsim_settings.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_settings.cfg"/>
+    <FileResource projectRelativePath="PCRFsim_2_settings.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_2_settings.cfg"/>
+    <FileResource projectRelativePath="PCRFsim_statistics_settings.cfg" relativeURI="productconfigs/PCRFsim/PCRFsim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_PCRFsim</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM.tpd
new file mode 100644
index 000000000..348547a5f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM.tpd
@@ -0,0 +1,373 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_PGM</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CAI3G" projectLocationURI="../src/cai3g/EPTF_GenApp_CAI3G.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_XCAP" projectLocationURI="../src/xcap/EPTF_GenApp_XCAP.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="templates" relativeURI="templates"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="PGM_BAT_CAI3G_FSM.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_CAI3G_FSM.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_CAI3G_traffic.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_CAI3G_traffic.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_CAI3G_traffic_BATgen.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_CAI3G_traffic_BATgen.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_CLL_TestPorts.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_SIP_FSM.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_SIP_traffic.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_SIP_traffic.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_SIP_traffic_BATgen.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_SIP_traffic_BATgen.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_XCAP_FSM.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_XCAP_FSM.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_XCAP_traffic.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_XCAP_traffic.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_XCAP_traffic_BATgen.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_XCAP_traffic_BATgen.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_debug_settings.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_debug_settings.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_local_host.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_local_host.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_local_host_BATgen.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_local_host_BATgen.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_main.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_main.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_main_titansim.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_main_titansim.cfg"/>
+    <FileResource projectRelativePath="PGM_BAT_statistics_settings.cfg" relativeURI="productconfigs/PGM_BAT/PGM_BAT_statistics_settings.cfg"/>
+    <FileResource projectRelativePath="templates/EAS_sip_invite_rfc3262.body" relativeURI="templates/EAS_sip_invite_rfc3262.body"/>
+    <FileResource projectRelativePath="templates/EAS_sip_invite_rfc3262.header" relativeURI="templates/EAS_sip_invite_rfc3262.header"/>
+    <FileResource projectRelativePath="templates/ETM_SIP_HTTP.body" relativeURI="templates/ETM_SIP_HTTP.body"/>
+    <FileResource projectRelativePath="templates/ETM_SIP_HTTP.header" relativeURI="templates/ETM_SIP_HTTP.header"/>
+    <FileResource projectRelativePath="templates/cai3g_create.header" relativeURI="templates/cai3g_create.header"/>
+    <FileResource projectRelativePath="templates/cai3g_create_PGM_XDMS_users.body" relativeURI="templates/cai3g_create_PGM_XDMS_users.body"/>
+    <FileResource projectRelativePath="templates/cai3g_delete.header" relativeURI="templates/cai3g_delete.header"/>
+    <FileResource projectRelativePath="templates/cai3g_delete_PGM_XDMS_users.body" relativeURI="templates/cai3g_delete_PGM_XDMS_users.body"/>
+    <FileResource projectRelativePath="templates/http_demoBody.body" relativeURI="templates/http_demoBody.body"/>
+    <FileResource projectRelativePath="templates/http_demoHeader.header" relativeURI="templates/http_demoHeader.header"/>
+    <FileResource projectRelativePath="templates/initial_publish.body" relativeURI="templates/initial_publish.body"/>
+    <FileResource projectRelativePath="templates/initial_publish.header" relativeURI="templates/initial_publish.header"/>
+    <FileResource projectRelativePath="templates/initial_publish_mwi.body" relativeURI="templates/initial_publish_mwi.body"/>
+    <FileResource projectRelativePath="templates/initial_publish_mwi.header" relativeURI="templates/initial_publish_mwi.header"/>
+    <FileResource projectRelativePath="templates/initial_subscribe_to_resourcelist.header" relativeURI="templates/initial_subscribe_to_resourcelist.header"/>
+    <FileResource projectRelativePath="templates/modify_publish.header" relativeURI="templates/modify_publish.header"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_create.body" relativeURI="templates/mtas.cai3g_create.body"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_create.header" relativeURI="templates/mtas.cai3g_create.header"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_get.body" relativeURI="templates/mtas.cai3g_get.body"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_get.header" relativeURI="templates/mtas.cai3g_get.header"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_login.body" relativeURI="templates/mtas.cai3g_login.body"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_login.header" relativeURI="templates/mtas.cai3g_login.header"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_set.body" relativeURI="templates/mtas.cai3g_set.body"/>
+    <FileResource projectRelativePath="templates/mtas.cai3g_set.header" relativeURI="templates/mtas.cai3g_set.header"/>
+    <FileResource projectRelativePath="templates/mtas.cns_error_response.body" relativeURI="templates/mtas.cns_error_response.body"/>
+    <FileResource projectRelativePath="templates/mtas.cns_ok_response.body" relativeURI="templates/mtas.cns_ok_response.body"/>
+    <FileResource projectRelativePath="templates/mtas.cns_response.header" relativeURI="templates/mtas.cns_response.header"/>
+    <FileResource projectRelativePath="templates/mtas.xcap_get.body" relativeURI="templates/mtas.xcap_get.body"/>
+    <FileResource projectRelativePath="templates/mtas.xcap_get.header" relativeURI="templates/mtas.xcap_get.header"/>
+    <FileResource projectRelativePath="templates/mtas.xcap_put.body" relativeURI="templates/mtas.xcap_put.body"/>
+    <FileResource projectRelativePath="templates/mtas.xcap_put.header" relativeURI="templates/mtas.xcap_put.header"/>
+    <FileResource projectRelativePath="templates/ptt_sip_message_ipa_orig_part.header" relativeURI="templates/ptt_sip_message_ipa_orig_part.header"/>
+    <FileResource projectRelativePath="templates/ptt_vxml_tel_invite_adhoc_orig_contr.header" relativeURI="templates/ptt_vxml_tel_invite_adhoc_orig_contr.header"/>
+    <FileResource projectRelativePath="templates/refresh_subscribe_to_resourcelist.header" relativeURI="templates/refresh_subscribe_to_resourcelist.header"/>
+    <FileResource projectRelativePath="templates/titansim.MMAS_sip_invite_rfc3261.header" relativeURI="templates/titansim.MMAS_sip_invite_rfc3261.header"/>
+    <FileResource projectRelativePath="templates/titansim.MMAS_sip_invite_rfc3262_rfc3261.body" relativeURI="templates/titansim.MMAS_sip_invite_rfc3262_rfc3261.body"/>
+    <FileResource projectRelativePath="templates/titansim.MMAS_sip_options.header" relativeURI="templates/titansim.MMAS_sip_options.header"/>
+    <FileResource projectRelativePath="templates/titansim.air_getaccountdetails_OK_response.body" relativeURI="templates/titansim.air_getaccountdetails_OK_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.air_getaccountdetails_OK_response.header" relativeURI="templates/titansim.air_getaccountdetails_OK_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.air_updatebalance_OK_response.body" relativeURI="templates/titansim.air_updatebalance_OK_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.air_updatebalance_OK_response.header" relativeURI="templates/titansim.air_updatebalance_OK_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.asdp_response.body" relativeURI="templates/titansim.asdp_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.asdp_response.header" relativeURI="templates/titansim.asdp_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_createconfrequest.body" relativeURI="templates/titansim.bcs_createconfrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_createconfrequest.header" relativeURI="templates/titansim.bcs_createconfrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_createmeetingrequest.body" relativeURI="templates/titansim.bcs_createmeetingrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_createmeetingrequest.header" relativeURI="templates/titansim.bcs_createmeetingrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_participant.body" relativeURI="templates/titansim.bcs_participant.body"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_readconfrequest.body" relativeURI="templates/titansim.bcs_readconfrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_readparticipantsrequest.body" relativeURI="templates/titansim.bcs_readparticipantsrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_readparticipantsrequest.header" relativeURI="templates/titansim.bcs_readparticipantsrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.bcs_webbrowser.header" relativeURI="templates/titansim.bcs_webbrowser.header"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_create.header" relativeURI="templates/titansim.cai3g_create.header"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_create_PGM_XDMS_users.body" relativeURI="templates/titansim.cai3g_create_PGM_XDMS_users.body"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_delete.header" relativeURI="templates/titansim.cai3g_delete.header"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_delete_PGM_XDMS_users.body" relativeURI="templates/titansim.cai3g_delete_PGM_XDMS_users.body"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_generic.header" relativeURI="templates/titansim.cai3g_generic.header"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_login.body" relativeURI="templates/titansim.cai3g_login.body"/>
+    <FileResource projectRelativePath="templates/titansim.cai3g_login.header" relativeURI="templates/titansim.cai3g_login.header"/>
+    <FileResource projectRelativePath="templates/titansim.ccmp_confrequest.header" relativeURI="templates/titansim.ccmp_confrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.ccmp_createconfrequest.body" relativeURI="templates/titansim.ccmp_createconfrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.ccmp_deleteconfrequest.body" relativeURI="templates/titansim.ccmp_deleteconfrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.ccmp_mediatype.body" relativeURI="templates/titansim.ccmp_mediatype.body"/>
+    <FileResource projectRelativePath="templates/titansim.ccmp_retrieveconfrequest.body" relativeURI="templates/titansim.ccmp_retrieveconfrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.cns_error_response.body" relativeURI="templates/titansim.cns_error_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.cns_ok_response.body" relativeURI="templates/titansim.cns_ok_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.cns_response.header" relativeURI="templates/titansim.cns_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.deregister.header" relativeURI="templates/titansim.deregister.header"/>
+    <FileResource projectRelativePath="templates/titansim.diameter.HSS.userData" relativeURI="templates/titansim.diameter.HSS.userData"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_200ok_sdp_tc221.body" relativeURI="templates/titansim.etm_sip_200ok_sdp_tc221.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_200ok_sdp_tc335.body" relativeURI="templates/titansim.etm_sip_200ok_sdp_tc335.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_200ok_tc221.header" relativeURI="templates/titansim.etm_sip_200ok_tc221.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_200ok_tc335.header" relativeURI="templates/titansim.etm_sip_200ok_tc335.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_invite_sdp_tc221.body" relativeURI="templates/titansim.etm_sip_invite_sdp_tc221.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_invite_sdp_tc335.body" relativeURI="templates/titansim.etm_sip_invite_sdp_tc335.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_invite_tc221.header" relativeURI="templates/titansim.etm_sip_invite_tc221.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_sip_invite_tc335.header" relativeURI="templates/titansim.etm_sip_invite_tc335.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_snasip_200ok_mrfc.body" relativeURI="templates/titansim.etm_snasip_200ok_mrfc.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_snasip_200ok_mrfc.header" relativeURI="templates/titansim.etm_snasip_200ok_mrfc.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_snasip_invite.body" relativeURI="templates/titansim.etm_snasip_invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_snasip_invite.header" relativeURI="templates/titansim.etm_snasip_invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_ussd_makecollectcall.body" relativeURI="templates/titansim.etm_ussd_makecollectcall.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_ussd_makecollectcall.header" relativeURI="templates/titansim.etm_ussd_makecollectcall.header"/>
+    <FileResource projectRelativePath="templates/titansim.etm_ussd_showmenu.body" relativeURI="templates/titansim.etm_ussd_showmenu.body"/>
+    <FileResource projectRelativePath="templates/titansim.etm_ussd_showmenu.header" relativeURI="templates/titansim.etm_ussd_showmenu.header"/>
+    <FileResource projectRelativePath="templates/titansim.initial_publish.body" relativeURI="templates/titansim.initial_publish.body"/>
+    <FileResource projectRelativePath="templates/titansim.initial_publish.header" relativeURI="templates/titansim.initial_publish.header"/>
+    <FileResource projectRelativePath="templates/titansim.initial_publish.message" relativeURI="templates/titansim.initial_publish.message"/>
+    <FileResource projectRelativePath="templates/titansim.initial_subscribe2presentity.header" relativeURI="templates/titansim.initial_subscribe2presentity.header"/>
+    <FileResource projectRelativePath="templates/titansim.initial_subscribe2resourcelist.header" relativeURI="templates/titansim.initial_subscribe2resourcelist.header"/>
+    <FileResource projectRelativePath="templates/titansim.initial_subscribe2watcher_info.header" relativeURI="templates/titansim.initial_subscribe2watcher_info.header"/>
+    <FileResource projectRelativePath="templates/titansim.invite.body" relativeURI="templates/titansim.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.invite.header" relativeURI="templates/titansim.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_ft_401error_response.header" relativeURI="templates/titansim.lrf_ft_401error_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_ft_ok_response.body" relativeURI="templates/titansim.lrf_ft_ok_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_ft_ok_response.header" relativeURI="templates/titansim.lrf_ft_ok_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_tcom_401error_response.header" relativeURI="templates/titansim.lrf_tcom_401error_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_tcom_LISAerror_response.body" relativeURI="templates/titansim.lrf_tcom_LISAerror_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_tcom_ok_response.body" relativeURI="templates/titansim.lrf_tcom_ok_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.lrf_tcom_ok_response.header" relativeURI="templates/titansim.lrf_tcom_ok_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.modify_publish.header" relativeURI="templates/titansim.modify_publish.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.183.body" relativeURI="templates/titansim.mss.tc001.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.183.header" relativeURI="templates/titansim.mss.tc001.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.200.body" relativeURI="templates/titansim.mss.tc001.200.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.200.header" relativeURI="templates/titansim.mss.tc001.200.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.ack.1.body" relativeURI="templates/titansim.mss.tc001.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.ack.1.header" relativeURI="templates/titansim.mss.tc001.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.ack.header" relativeURI="templates/titansim.mss.tc001.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.bye.header" relativeURI="templates/titansim.mss.tc001.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.invite.body" relativeURI="templates/titansim.mss.tc001.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.invite.header" relativeURI="templates/titansim.mss.tc001.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.prack.body" relativeURI="templates/titansim.mss.tc001.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.prack.header" relativeURI="templates/titansim.mss.tc001.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc001.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc001.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc001.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc001.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.183.body" relativeURI="templates/titansim.mss.tc002.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.183.header" relativeURI="templates/titansim.mss.tc002.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.200.body" relativeURI="templates/titansim.mss.tc002.200.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.200.header" relativeURI="templates/titansim.mss.tc002.200.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.ack.1.body" relativeURI="templates/titansim.mss.tc002.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.ack.1.header" relativeURI="templates/titansim.mss.tc002.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.ack.header" relativeURI="templates/titansim.mss.tc002.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.bye.header" relativeURI="templates/titansim.mss.tc002.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.invite.body" relativeURI="templates/titansim.mss.tc002.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.invite.header" relativeURI="templates/titansim.mss.tc002.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.prack.body" relativeURI="templates/titansim.mss.tc002.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.prack.header" relativeURI="templates/titansim.mss.tc002.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc002.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc002.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc002.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc002.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.183.body" relativeURI="templates/titansim.mss.tc003.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.183.header" relativeURI="templates/titansim.mss.tc003.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.200.body" relativeURI="templates/titansim.mss.tc003.200.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.200.header" relativeURI="templates/titansim.mss.tc003.200.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.ack.1.body" relativeURI="templates/titansim.mss.tc003.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.ack.1.header" relativeURI="templates/titansim.mss.tc003.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.ack.header" relativeURI="templates/titansim.mss.tc003.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.bye.header" relativeURI="templates/titansim.mss.tc003.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.invite.body" relativeURI="templates/titansim.mss.tc003.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.invite.header" relativeURI="templates/titansim.mss.tc003.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.prack.body" relativeURI="templates/titansim.mss.tc003.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.prack.header" relativeURI="templates/titansim.mss.tc003.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc003.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc003.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc003.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc003.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.180.header" relativeURI="templates/titansim.mss.tc004.180.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.183.body" relativeURI="templates/titansim.mss.tc004.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.183.header" relativeURI="templates/titansim.mss.tc004.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.200.0.body" relativeURI="templates/titansim.mss.tc004.200.0.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.200.0.header" relativeURI="templates/titansim.mss.tc004.200.0.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.200.1.header" relativeURI="templates/titansim.mss.tc004.200.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.ack.1.body" relativeURI="templates/titansim.mss.tc004.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.ack.1.header" relativeURI="templates/titansim.mss.tc004.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.ack.header" relativeURI="templates/titansim.mss.tc004.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.bye.header" relativeURI="templates/titansim.mss.tc004.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.bye.sipi.header" relativeURI="templates/titansim.mss.tc004.bye.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.invite.body" relativeURI="templates/titansim.mss.tc004.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.invite.header" relativeURI="templates/titansim.mss.tc004.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.invite.sipi.header" relativeURI="templates/titansim.mss.tc004.invite.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.prack.body" relativeURI="templates/titansim.mss.tc004.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.prack.header" relativeURI="templates/titansim.mss.tc004.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc004.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc004.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc004.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc004.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.180.header" relativeURI="templates/titansim.mss.tc005.180.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.183.body" relativeURI="templates/titansim.mss.tc005.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.183.header" relativeURI="templates/titansim.mss.tc005.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.200.0.body" relativeURI="templates/titansim.mss.tc005.200.0.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.200.0.header" relativeURI="templates/titansim.mss.tc005.200.0.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.200.1.header" relativeURI="templates/titansim.mss.tc005.200.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.200.2.header" relativeURI="templates/titansim.mss.tc005.200.2.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.ack.1.body" relativeURI="templates/titansim.mss.tc005.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.ack.1.header" relativeURI="templates/titansim.mss.tc005.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.ack.header" relativeURI="templates/titansim.mss.tc005.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.bye.header" relativeURI="templates/titansim.mss.tc005.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.bye.sipi.header" relativeURI="templates/titansim.mss.tc005.bye.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.invite.body" relativeURI="templates/titansim.mss.tc005.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.invite.header" relativeURI="templates/titansim.mss.tc005.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.invite.sipi.header" relativeURI="templates/titansim.mss.tc005.invite.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.prack.body" relativeURI="templates/titansim.mss.tc005.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.prack.header" relativeURI="templates/titansim.mss.tc005.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc005.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc005.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc005.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc005.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.180.header" relativeURI="templates/titansim.mss.tc006.180.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.183.body" relativeURI="templates/titansim.mss.tc006.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.183.header" relativeURI="templates/titansim.mss.tc006.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.200.0.body" relativeURI="templates/titansim.mss.tc006.200.0.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.200.0.header" relativeURI="templates/titansim.mss.tc006.200.0.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.200.1.header" relativeURI="templates/titansim.mss.tc006.200.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.ack.1.body" relativeURI="templates/titansim.mss.tc006.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.ack.1.header" relativeURI="templates/titansim.mss.tc006.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.ack.header" relativeURI="templates/titansim.mss.tc006.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.bye.header" relativeURI="templates/titansim.mss.tc006.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.bye.sipi.header" relativeURI="templates/titansim.mss.tc006.bye.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.invite.body" relativeURI="templates/titansim.mss.tc006.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.invite.header" relativeURI="templates/titansim.mss.tc006.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.invite.sipi.header" relativeURI="templates/titansim.mss.tc006.invite.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.prack.body" relativeURI="templates/titansim.mss.tc006.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.prack.header" relativeURI="templates/titansim.mss.tc006.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc006.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc006.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc006.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc006.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.180.header" relativeURI="templates/titansim.mss.tc007.180.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.183.body" relativeURI="templates/titansim.mss.tc007.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.183.header" relativeURI="templates/titansim.mss.tc007.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.200.0.body" relativeURI="templates/titansim.mss.tc007.200.0.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.200.0.header" relativeURI="templates/titansim.mss.tc007.200.0.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.200.1.header" relativeURI="templates/titansim.mss.tc007.200.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.200.2.header" relativeURI="templates/titansim.mss.tc007.200.2.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.ack.1.body" relativeURI="templates/titansim.mss.tc007.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.ack.1.header" relativeURI="templates/titansim.mss.tc007.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.ack.header" relativeURI="templates/titansim.mss.tc007.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.bye.header" relativeURI="templates/titansim.mss.tc007.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.bye.sipi.header" relativeURI="templates/titansim.mss.tc007.bye.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.invite.body" relativeURI="templates/titansim.mss.tc007.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.invite.header" relativeURI="templates/titansim.mss.tc007.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.invite.sipi.header" relativeURI="templates/titansim.mss.tc007.invite.sipi.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.prack.body" relativeURI="templates/titansim.mss.tc007.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.prack.header" relativeURI="templates/titansim.mss.tc007.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc007.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc007.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc007.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc007.update.header" relativeURI="templates/titansim.mss.tc007.update.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.183.body" relativeURI="templates/titansim.mss.tc008.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.183.header" relativeURI="templates/titansim.mss.tc008.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.ack.1.body" relativeURI="templates/titansim.mss.tc008.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.ack.1.header" relativeURI="templates/titansim.mss.tc008.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.ack.header" relativeURI="templates/titansim.mss.tc008.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.bye.header" relativeURI="templates/titansim.mss.tc008.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.invite.body" relativeURI="templates/titansim.mss.tc008.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.invite.header" relativeURI="templates/titansim.mss.tc008.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.prack.body" relativeURI="templates/titansim.mss.tc008.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.prack.header" relativeURI="templates/titansim.mss.tc008.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc008.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc008.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc008.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc008.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.183.body" relativeURI="templates/titansim.mss.tc009.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.183.header" relativeURI="templates/titansim.mss.tc009.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.ack.1.body" relativeURI="templates/titansim.mss.tc009.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.ack.1.header" relativeURI="templates/titansim.mss.tc009.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.ack.header" relativeURI="templates/titansim.mss.tc009.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.bye.header" relativeURI="templates/titansim.mss.tc009.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.invite.body" relativeURI="templates/titansim.mss.tc009.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.invite.header" relativeURI="templates/titansim.mss.tc009.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.prack.body" relativeURI="templates/titansim.mss.tc009.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.prack.header" relativeURI="templates/titansim.mss.tc009.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc009.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc009.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc009.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc009.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.183.body" relativeURI="templates/titansim.mss.tc010.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.183.header" relativeURI="templates/titansim.mss.tc010.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.ack.1.body" relativeURI="templates/titansim.mss.tc010.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.ack.1.header" relativeURI="templates/titansim.mss.tc010.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.ack.header" relativeURI="templates/titansim.mss.tc010.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.bye.header" relativeURI="templates/titansim.mss.tc010.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.invite.body" relativeURI="templates/titansim.mss.tc010.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.invite.header" relativeURI="templates/titansim.mss.tc010.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.prack.body" relativeURI="templates/titansim.mss.tc010.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.prack.header" relativeURI="templates/titansim.mss.tc010.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc010.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc010.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc010.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc010.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.181.header" relativeURI="templates/titansim.mss.tc011.181.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.183.body" relativeURI="templates/titansim.mss.tc011.183.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.183.header" relativeURI="templates/titansim.mss.tc011.183.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.ack.1.body" relativeURI="templates/titansim.mss.tc011.ack.1.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.ack.1.header" relativeURI="templates/titansim.mss.tc011.ack.1.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.ack.header" relativeURI="templates/titansim.mss.tc011.ack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.bye.header" relativeURI="templates/titansim.mss.tc011.bye.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.invite.body" relativeURI="templates/titansim.mss.tc011.invite.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.invite.header" relativeURI="templates/titansim.mss.tc011.invite.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.prack.body" relativeURI="templates/titansim.mss.tc011.prack.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.prack.header" relativeURI="templates/titansim.mss.tc011.prack.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.reinvite.nosdp.header" relativeURI="templates/titansim.mss.tc011.reinvite.nosdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.reinvite.sdp.body" relativeURI="templates/titansim.mss.tc011.reinvite.sdp.body"/>
+    <FileResource projectRelativePath="templates/titansim.mss.tc011.reinvite.sdp.header" relativeURI="templates/titansim.mss.tc011.reinvite.sdp.header"/>
+    <FileResource projectRelativePath="templates/titansim.notify_mwias.body" relativeURI="templates/titansim.notify_mwias.body"/>
+    <FileResource projectRelativePath="templates/titansim.notify_mwias.header" relativeURI="templates/titansim.notify_mwias.header"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_endcallsessionrequest.body" relativeURI="templates/titansim.parlayx_endcallsessionrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_endcallsessionrequest.header" relativeURI="templates/titansim.parlayx_endcallsessionrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_getcallsessioninformationrequest.body" relativeURI="templates/titansim.parlayx_getcallsessioninformationrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_getcallsessioninformationrequest.header" relativeURI="templates/titansim.parlayx_getcallsessioninformationrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_handlecallednumberresponse.body" relativeURI="templates/titansim.parlayx_handlecallednumberresponse.body"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_handlecallednumberresponse.header" relativeURI="templates/titansim.parlayx_handlecallednumberresponse.header"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_makecallsessionrequest.body" relativeURI="templates/titansim.parlayx_makecallsessionrequest.body"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_makecallsessionrequest.header" relativeURI="templates/titansim.parlayx_makecallsessionrequest.header"/>
+    <FileResource projectRelativePath="templates/titansim.parlayx_response503.header" relativeURI="templates/titansim.parlayx_response503.header"/>
+    <FileResource projectRelativePath="templates/titansim.ptt_sip_message_ipa_orig_part.header" relativeURI="templates/titansim.ptt_sip_message_ipa_orig_part.header"/>
+    <FileResource projectRelativePath="templates/titansim.refresh_subscribe2presentity.header" relativeURI="templates/titansim.refresh_subscribe2presentity.header"/>
+    <FileResource projectRelativePath="templates/titansim.refresh_subscribe2resourcelist.header" relativeURI="templates/titansim.refresh_subscribe2resourcelist.header"/>
+    <FileResource projectRelativePath="templates/titansim.refresh_subscribe2watcher_info.header" relativeURI="templates/titansim.refresh_subscribe2watcher_info.header"/>
+    <FileResource projectRelativePath="templates/titansim.register.header" relativeURI="templates/titansim.register.header"/>
+    <FileResource projectRelativePath="templates/titansim.trafficadvisor_collectcall_OK_response.body" relativeURI="templates/titansim.trafficadvisor_collectcall_OK_response.body"/>
+    <FileResource projectRelativePath="templates/titansim.trafficadvisor_collectcall_OK_response.header" relativeURI="templates/titansim.trafficadvisor_collectcall_OK_response.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_caps_get.header" relativeURI="templates/titansim.xcap_caps_get.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_directory_get.header" relativeURI="templates/titansim.xcap_directory_get.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_hdrstate_get_compose_doc.header" relativeURI="templates/titansim.xcap_hdrstate_get_compose_doc.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_hdrstate_put_compose_doc.body" relativeURI="templates/titansim.xcap_hdrstate_put_compose_doc.body"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_hdrstate_put_compose_doc.header" relativeURI="templates/titansim.xcap_hdrstate_put_compose_doc.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_presence_get.header" relativeURI="templates/titansim.xcap_presence_get.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_presence_put.body" relativeURI="templates/titansim.xcap_presence_put.body"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_presence_put.header" relativeURI="templates/titansim.xcap_presence_put.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_rls_get.header" relativeURI="templates/titansim.xcap_rls_get.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_shared_14_contacts_delete_one_contact_put.body" relativeURI="templates/titansim.xcap_shared_14_contacts_delete_one_contact_put.body"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_shared_15_contacts_put.body" relativeURI="templates/titansim.xcap_shared_15_contacts_put.body"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_shared_get.header" relativeURI="templates/titansim.xcap_shared_get.header"/>
+    <FileResource projectRelativePath="templates/titansim.xcap_shared_put.header" relativeURI="templates/titansim.xcap_shared_put.header"/>
+    <FileResource projectRelativePath="templates/xcap_ap_client_shared_put.header" relativeURI="templates/xcap_ap_client_shared_put.header"/>
+    <FileResource projectRelativePath="templates/xcap_shared_14_contacts_delete_one_contact_put.body" relativeURI="templates/xcap_shared_14_contacts_delete_one_contact_put.body"/>
+    <FileResource projectRelativePath="templates/xcap_shared_15_contacts_put.body" relativeURI="templates/xcap_shared_15_contacts_put.body"/>
+    <FileResource projectRelativePath="templates/xcap_shared_put.body" relativeURI="templates/xcap_shared_put.body"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_PGM</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_CAI3G</listItem>
+            <listItem>GENAPP_COMPILE_SIP</listItem>
+            <listItem>GENAPP_COMPILE_XCAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_HTTP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_HTTP.tpd
new file mode 100644
index 000000000..97cd176d5
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_HTTP.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_PGM_HTTP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_PGM_HTTP_ExternalFunctions.cc" relativeURI="EPTF_GenApp_PGM_HTTP_ExternalFunctions.cc"/>
+    <FileResource projectRelativePath="EPTF_GenApp_PGM_HTTP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_PGM_HTTP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_PGM_HTTP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_PGM_HTTP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_PGM_HTTP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_SIP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_SIP.tpd
new file mode 100644
index 000000000..5bfc98ddf
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_PGM_SIP.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_PGM_SIP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_CSCF" projectLocationURI="EPTF_GenApp_CSCF.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_PGM_HTTP" projectLocationURI="../http/EPTF_GenApp_PGM_HTTP.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_PGM_SIP_Definitions.ttcn" relativeURI="EPTF_GenApp_PGM_SIP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_PGM_SIP_Functions.ttcn" relativeURI="EPTF_GenApp_PGM_SIP_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_PGM_SIP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ParlayX.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ParlayX.tpd
new file mode 100644
index 000000000..75528c4bc
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_ParlayX.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_ParlayX</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_ParlayX_DS_Definitions.ttcn" relativeURI="EPTF_GenApp_ParlayX_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_ParlayX_DS_Functions.ttcn" relativeURI="EPTF_GenApp_ParlayX_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_ParlayX_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_ParlayX_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_ParlayX_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_ParlayX_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_ParlayX</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_RACF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_RACF.tpd
new file mode 100644
index 000000000..903f8e74b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_RACF.tpd
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_RACF</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="RACF_main.cfg" relativeURI="productconfigs/NASS/RACF_main.cfg"/>
+    <FileResource projectRelativePath="RACF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/RACF_Diameter_traffic.cfg"/>
+    <FileResource projectRelativePath="RACF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/RACF_Diameter_FSM.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_RACF</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SCP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SCP.tpd
new file mode 100644
index 000000000..054b25cfd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SCP.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_SCP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_CAP_v2_CNL113662" projectLocationURI="../../../../Libraries/EPTF_Applib_CAP_CNL113662/EPTF_Applib_CAP_v2_CNL113662.tpd"/>
+    <ReferencedProject name="EPTF_CLL_Transport_CommPortIPL4" projectLocationURI="../../../../Libraries/EPTF_Core_Library_CNL113512/src/Transport/EPTF_CLL_Transport_CommPortIPL4.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_CAPv2" projectLocationURI="EPTF_GenApp_CAPv2.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_SCP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_SCP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_SCP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_SCP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_SCP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SIP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SIP.tpd
new file mode 100644
index 000000000..72e366610
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SIP.tpd
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_SIP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_SIP_CNL113522" projectLocationURI="../../../../Libraries/EPTF_Applib_SIP_CNL113522/EPTF_Applib_SIP_CNL113522.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_SIP_Definitions.ttcn" relativeURI="EPTF_GenApp_SIP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_SIP_Functions.ttcn" relativeURI="EPTF_GenApp_SIP_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_SIP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SNA.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SNA.tpd
new file mode 100644
index 000000000..4e1e0dbc1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SNA.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_SNA</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_SNA_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_SNA_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_SNA_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_SNA_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="ngin_ericsson_com_sna_types_v1_0.ttcn" relativeURI="ngin_ericsson_com_sna_types_v1_0.ttcn"/>
+    <FileResource projectRelativePath="schemas_xmlsoap_org_soap_envelope.ttcn" relativeURI="schemas_xmlsoap_org_soap_envelope.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_SNA</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SOAP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SOAP.tpd
new file mode 100644
index 000000000..dbddbe13e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_SOAP.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_SOAP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_SOAP_CNL113620" projectLocationURI="../../../../Libraries/EPTF_Applib_SOAP_CNL113620/EPTF_Applib_SOAP_CNL113620.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="../http/EPTF_GenApp_HTTP.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_TitanSim" projectLocationURI="../../../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_TitanSim.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_SOAP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_SOAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_SOAP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_SOAP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_SOAP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UAAF.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UAAF.tpd
new file mode 100644
index 000000000..4252b8fb8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UAAF.tpd
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_UAAF</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_DIAMETER" projectLocationURI="../src/diameter/EPTF_GenApp_DIAMETER.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="UAAF_main.cfg" relativeURI="productconfigs/NASS/UAAF_main.cfg"/>
+    <FileResource projectRelativePath="UAAF_Diameter_traffic.cfg" relativeURI="productconfigs/NASS/UAAF_Diameter_traffic_traffic.cfg"/>
+    <FileResource projectRelativePath="UAAF_Diameter_FSM.cfg" relativeURI="productconfigs/NASS/UAAF_Diameter_FSM.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/EPTF_GenApp_UAAF</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_DIAMETER</listItem>
+            <listItem>GENAPP_LAUNCH_NASS_PROVISIONING</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_USSD.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_USSD.tpd
new file mode 100644
index 000000000..b10bb907b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_USSD.tpd
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_USSD</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_USSD_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_USSD_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_USSD_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_USSD_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_USSD</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UserPlane.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UserPlane.tpd
new file mode 100644
index 000000000..9254ede79
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_UserPlane.tpd
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_UserPlane</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_UserPlane_CNL113724" projectLocationURI="../../../../Libraries/EPTF_Applib_UserPlane_CNL113724/EPTF_Applib_UserPlane_CNL113724.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_Common_Definitions.ttcn" relativeURI="EPTF_GenApp_UserPlane_Common_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_Common_Functions.ttcn" relativeURI="EPTF_GenApp_UserPlane_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_MLSim_Definitions.ttcn" relativeURI="EPTF_GenApp_UserPlane_MLSim_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_MLSim_Functions.ttcn" relativeURI="EPTF_GenApp_UserPlane_MLSim_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_MSRP_Definitions.ttcn" relativeURI="EPTF_GenApp_UserPlane_MSRP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_MSRP_Functions.ttcn" relativeURI="EPTF_GenApp_UserPlane_MSRP_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_UPload_Definitions.ttcn" relativeURI="EPTF_GenApp_UserPlane_UPload_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_UserPlane_UPload_Functions.ttcn" relativeURI="EPTF_GenApp_UserPlane_UPload_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_UserPlane</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VMS.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VMS.tpd
new file mode 100644
index 000000000..95b0d151a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VMS.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_VMS</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_SIP" projectLocationURI="../src/sip/EPTF_GenApp_SIP.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_MainModule.ttcnpp" relativeURI="../src/common/EPTF_GenApp_MainModule.ttcnpp"/>
+    <FileResource projectRelativePath="VMSSim_CLL_TestPorts.cfg" relativeURI="productconfigs/VMSSim/VMSSim_CLL_TestPorts.cfg"/>
+    <FileResource projectRelativePath="VMSSim_SIP_FSM.cfg" relativeURI="productconfigs/VMSSim/VMSSim_SIP_FSM.cfg"/>
+    <FileResource projectRelativePath="VMSSim_SIP_settings.cfg" relativeURI="productconfigs/VMSSim/VMSSim_SIP_settings.cfg"/>
+    <FileResource projectRelativePath="VMSSim_debug_settings.cfg" relativeURI="productconfigs/VMSSim/VMSSim_debug_settings.cfg"/>
+    <FileResource projectRelativePath="VMSSim_local_host.cfg" relativeURI="productconfigs/VMSSim/VMSSim_local_host.cfg"/>
+    <FileResource projectRelativePath="VMSSim_main.cfg" relativeURI="productconfigs/VMSSim/VMSSim_main.cfg"/>
+    <FileResource projectRelativePath="VMSSim_remote_node.cfg" relativeURI="productconfigs/VMSSim/VMSSim_remote_node.cfg"/>
+    <FileResource projectRelativePath="VMSSim_statistics_settings.cfg" relativeURI="productconfigs/VMSSim/VMSSim_statistics_settings.cfg"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_GenApp_VMS</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_MWIAS</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VXML.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VXML.tpd
new file mode 100644
index 000000000..d2d48f96b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_VXML.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_VXML</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_VXML_CNL113565" projectLocationURI="../../../../Libraries/EPTF_Applib_VXML_CNL113565/EPTF_Applib_VXML_CNL113565.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_VXML_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_VXML_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_VXML_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_VXML_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/EPTF_GenApp_VXML</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_WCE_HTTP_Client.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_WCE_HTTP_Client.tpd
new file mode 100644
index 000000000..267698b32
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_WCE_HTTP_Client.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_WCE_HTTP_Client</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_GenApp_HTTP" projectLocationURI="EPTF_GenApp_HTTP.tpd"/>
+    <ReferencedProject name="JSON_v07_2006_CNL113676" projectLocationURI="../../../../ProtocolModules/JSON_v07_2006_CNL113676/JSON_v07_2006_CNL113676.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_WCE_HTTP_Client_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_WCE_HTTP_Client_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_WCE_HTTP_Client_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_WCE_HTTP_Client_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EPTF_GenApp_WCE_HTTP_Client</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_XCAP.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_XCAP.tpd
new file mode 100644
index 000000000..8bc6f8187
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_GenApp_XCAP.tpd
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_GenApp_XCAP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_Applib_XCAP_CNL113534" projectLocationURI="../../../../Libraries/EPTF_Applib_XCAP_CNL113534/EPTF_Applib_XCAP_CNL113534.tpd"/>
+    <ReferencedProject name="EPTF_GenApp_Common" projectLocationURI="../common/EPTF_GenApp_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_GenApp_XCAP_LGen_Definitions.ttcn" relativeURI="EPTF_GenApp_XCAP_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_GenApp_XCAP_LGen_Functions.ttcn" relativeURI="EPTF_GenApp_XCAP_LGen_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>build/EPTF_GenApp_XCAP</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>GENAPP_COMPILE_XCAP</listItem>
+          </TTCN3preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EPTF_ILog_demo.tpd b/regression_test/XML/tpdValidTest/tpdTest/EPTF_ILog_demo.tpd
new file mode 100644
index 000000000..dd62bc23b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EPTF_ILog_demo.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EPTF_ILog_demo</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_ILog" projectLocationURI="../../src/ILog/EPTF_CLL_ILog.tpd"/>
+    <ReferencedProject name="EPTF_CLL_LGenBase" projectLocationURI="../../src/LGenBase/EPTF_CLL_LGenBase.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="EPTF_ILog_Applib_Definitions.ttcn" relativeURI="EPTF_ILog_Applib_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ILog_Applib_Functions.ttcn" relativeURI="EPTF_ILog_Applib_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ILog_Application_Definitions.ttcn" relativeURI="EPTF_ILog_Application_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ILog_Application_Functions.ttcn" relativeURI="EPTF_ILog_Application_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ILog_Transport_Definitions.ttcn" relativeURI="EPTF_ILog_Transport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ILog_Transport_Functions.ttcn" relativeURI="EPTF_ILog_Transport_Functions.ttcn"/>
+    <FileResource projectRelativePath="EPTF_ILog_demo.cfg" relativeURI="EPTF_ILog_demo.cfg"/>
+    <FileResource projectRelativePath="EPTF_ILog_demo.ttcn" relativeURI="EPTF_ILog_demo.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/EPTF_ILog_demo</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c_.*</globalConstant>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/EricssonRTC_CNL113414.tpd b/regression_test/XML/tpdValidTest/tpdTest/EricssonRTC_CNL113414.tpd
new file mode 100644
index 000000000..a9df75ded
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/EricssonRTC_CNL113414.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               EricssonRTC_CNL113414.tpd
+   Description:        tpd project file
+   Rev:                R5A02
+   Prodnr:             CNL 113 414
+   Updated:            2012-04-03
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>EricssonRTC_CNL113414</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.12.0_CNL113635" projectLocationURI="../MAP_v7.12.0_CNL113635/MAP_v7.12.0_CNL113635.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/EricssonRTC_CNL113414_FS.pdf" relativeURI="doc/EricssonRTC_CNL113414_FS.pdf"/>
+    <FileResource projectRelativePath="doc/EricssonRTC_CNL113414_PRI.pdf" relativeURI="doc/EricssonRTC_CNL113414_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/EricssonRTC_CNL113414_UG.pdf" relativeURI="doc/EricssonRTC_CNL113414_UG.pdf"/>
+    <FileResource projectRelativePath="src/EricssonRTC_EncDec.cc" relativeURI="src/EricssonRTC_EncDec.cc"/>
+    <FileResource projectRelativePath="src/EricssonRTC_PDU_Defs.asn" relativeURI="src/EricssonRTC_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/EricssonRTC_ReferenceNumber.asn" relativeURI="src/EricssonRTC_ReferenceNumber.asn"/>
+    <FileResource projectRelativePath="src/EricssonRTC_Types.ttcn" relativeURI="src/EricssonRTC_Types.ttcn"/>
+    <FileResource projectRelativePath="src/EricssonRTC_U_ABORT_Data.asn" relativeURI="src/EricssonRTC_U_ABORT_Data.asn"/>
+    <FileResource projectRelativePath="src/EricssonRTC_object_identifiers.asn" relativeURI="src/EricssonRTC_object_identifiers.asn"/>
+    <FileResource projectRelativePath="src/EricssonRTC_ops_args.asn" relativeURI="src/EricssonRTC_ops_args.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/EricssonRTC_CNL113414</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/Ericsson_INAP_CS1plus_CNL113356.tpd b/regression_test/XML/tpdValidTest/tpdTest/Ericsson_INAP_CS1plus_CNL113356.tpd
new file mode 100644
index 000000000..7c2637097
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/Ericsson_INAP_CS1plus_CNL113356.tpd
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               Ericsson_INAP_CS1plus_CNL113356.tpd
+   Description:        tpd project file
+   Rev:                R9B01
+   Prodnr:             CNL 113 356
+   Updated:            2012-05-22
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Ericsson_INAP_CS1plus_CNL113356</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="Core_INAP_CS1_ApplicationContexts.asn" relativeURI="src/Core_INAP_CS1_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Codes.asn" relativeURI="src/Core_INAP_CS1_Codes.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_DataTypes.asn" relativeURI="src/Core_INAP_CS1_DataTypes.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_EncDec.cc" relativeURI="src/Core_INAP_CS1_EncDec.cc"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Errors.asn" relativeURI="src/Core_INAP_CS1_Errors.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Operations.asn" relativeURI="src/Core_INAP_CS1_Operations.asn"/>
+    <FileResource projectRelativePath="Core_INAP_CS1_Types.ttcn" relativeURI="src/Core_INAP_CS1_Types.ttcn"/>
+    <FileResource projectRelativePath="Core_INAP_PDU_Defs.asn" relativeURI="src/Core_INAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_ApplicationContexts.asn" relativeURI="src/Ericsson_INAP_CS1plus_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_ApplicationContexts_RevB.asn" relativeURI="src/Ericsson_INAP_CS1plus_ApplicationContexts_RevB.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Codes.asn" relativeURI="src/Ericsson_INAP_CS1plus_Codes.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Datatypes.asn" relativeURI="src/Ericsson_INAP_CS1plus_Datatypes.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Errors.asn" relativeURI="src/Ericsson_INAP_CS1plus_Errors.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Operations.asn" relativeURI="src/Ericsson_INAP_CS1plus_Operations.asn"/>
+    <FileResource projectRelativePath="Ericsson_INAP_CS1plus_Types.ttcn" relativeURI="src/Ericsson_INAP_CS1plus_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_CS1plus_ANSIasp_Types.ttcn" relativeURI="src/INAP_CS1plus_ANSIasp_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_CS1plus_Detailed_EncDec.cc" relativeURI="src/INAP_CS1plus_Detailed_EncDec.cc"/>
+    <FileResource projectRelativePath="INAP_CS1plus_EncDec.cc" relativeURI="src/INAP_CS1plus_EncDec.cc"/>
+    <FileResource projectRelativePath="INAP_CS1plus_ITUasp_Types.ttcn" relativeURI="src/INAP_CS1plus_ITUasp_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_CS1plus_Types.ttcn" relativeURI="src/INAP_CS1plus_Types.ttcn"/>
+    <FileResource projectRelativePath="INAP_PDU_Defs.asn" relativeURI="src/INAP_PDU_Defs.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Ericsson_INAP_CS1plus_CNL113356</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/Ericsson_MAP_v2_CNL113725.tpd b/regression_test/XML/tpdValidTest/tpdTest/Ericsson_MAP_v2_CNL113725.tpd
new file mode 100644
index 000000000..c45100d14
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/Ericsson_MAP_v2_CNL113725.tpd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Ericsson_MAP_v2_CNL113725</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/Ericsson_MAP_v2_CNL113725_FS.pdf" relativeURI="doc/Ericsson_MAP_v2_CNL113725_FS.pdf"/>
+    <FileResource projectRelativePath="doc/Ericsson_MAP_v2_CNL113725_PRI.pdf" relativeURI="doc/Ericsson_MAP_v2_CNL113725_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/Ericsson_MAP_v2_CNL113725_UG.pdf" relativeURI="doc/Ericsson_MAP_v2_CNL113725_UG.pdf"/>
+    <FileResource projectRelativePath="src/Ericsson_MAP_Operations_v2.asn" relativeURI="src/Ericsson_MAP_Operations_v2.asn"/>
+    <FileResource projectRelativePath="src/Ericsson_MAPv2_EncDec.cc" relativeURI="src/Ericsson_MAPv2_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Ericsson_MAPv2_Types.ttcn" relativeURI="src/Ericsson_MAPv2_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Ericsson_MAP_v2_CNL113725</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GCP_31r1_CNL113364.tpd b/regression_test/XML/tpdValidTest/tpdTest/GCP_31r1_CNL113364.tpd
new file mode 100644
index 000000000..5cea7acb1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GCP_31r1_CNL113364.tpd
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GCP_31r1_CNL113364.tpd
+   Description:        tpd project file
+   Rev:                R5A01
+   Prodnr:             CNL 113 364
+   Updated:            2012-11-28
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GCP_31r1_CNL113364</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="demo" relativeURI="demo"/>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="demo/GCP_EncDec.cc" relativeURI="demo/GCP_EncDec.cc"/>
+    <FileResource projectRelativePath="demo/GCP_PDU_Defs.asn" relativeURI="demo/GCP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="demo/GCP_Types.ttcn" relativeURI="demo/GCP_Types.ttcn"/>
+    <FileResource projectRelativePath="doc/GCP_31r1_CNL113364_FS.pdf" relativeURI="doc/GCP_31r1_CNL113364_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GCP_31r1_CNL113364_PRI.pdf" relativeURI="doc/GCP_31r1_CNL113364_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GCP_31r1_CNL113364_UG.pdf" relativeURI="doc/GCP_31r1_CNL113364_UG.pdf"/>
+    <FileResource projectRelativePath="src/GCP_31r1_ProtocolModule.grp" relativeURI="src/GCP_31r1_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/GCP_EncDec.cc" relativeURI="src/GCP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/GCP_PDU_Defs.asn" relativeURI="src/GCP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/GCP_Types.ttcn" relativeURI="src/GCP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GCP_31r1_CNL113364</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>demo</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTP_v9.11.0_CNL113765.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTP_v9.11.0_CNL113765.tpd
new file mode 100644
index 000000000..343933993
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTP_v9.11.0_CNL113765.tpd
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTP_v9.11.0_CNL113765.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 765
+   Updated:            2013-01-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTP_v9.11.0_CNL113765</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/GTP_v9.11.0_CNL113765_FS.pdf" relativeURI="doc/GTP_v9.11.0_CNL113765_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GTP_v9.11.0_CNL113765_PRI.pdf" relativeURI="doc/GTP_v9.11.0_CNL113765_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GTP_v9.11.0_CNL113765_UG.pdf" relativeURI="doc/GTP_v9.11.0_CNL113765_UG.pdf"/>
+    <FileResource projectRelativePath="src/GTPC_EncDec.cc" relativeURI="src/GTPC_EncDec.cc"/>
+    <FileResource projectRelativePath="src/GTPC_Types.ttcn" relativeURI="src/GTPC_Types.ttcn"/>
+    <FileResource projectRelativePath="src/GTPU_EncDec.cc" relativeURI="src/GTPU_EncDec.cc"/>
+    <FileResource projectRelativePath="src/GTPU_Types.ttcn" relativeURI="src/GTPU_Types.ttcn"/>
+    <FileResource projectRelativePath="src/GTP_v9.11.0.grp" relativeURI="src/GTP_v9.11.0.grp"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTP_v9.11.0_CNL113765</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/GTP_v9.11.0.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v10.5.0_CNL113740.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v10.5.0_CNL113740.tpd
new file mode 100644
index 000000000..697f9edce
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v10.5.0_CNL113740.tpd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTPv2_Sv_v10.5.0_CNL113740.tpd
+   Description:        tpd project file
+   Rev:                R3A
+   Prodnr:             CNL 113 740
+   Updated:            2013-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTPv2_Sv_v10.5.0_CNL113740</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/GTPv2_PrivateExtensions.ttcn" relativeURI="src/GTPv2_PrivateExtensions.ttcn"/>
+    <FileResource projectRelativePath="src/GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Sv_EncDec.cc" relativeURI="src/Sv_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Sv_Types.ttcn" relativeURI="src/Sv_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTPv2_Sv_v10.5.0_CNL113740</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v11.4.0_CNL113777.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v11.4.0_CNL113777.tpd
new file mode 100644
index 000000000..d71a6b365
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v11.4.0_CNL113777.tpd
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTPv2_Sv_v11.4.0_CNL113777.tpd
+   Description:        tpd project file
+   Rev:                R1A
+   Prodnr:             CNL 113 777
+   Updated:            2013-04-09
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTPv2_Sv_v11.4.0_CNL113777</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/GTPv2_Sv_v11.4.0.grp" relativeURI="src/GTPv2_Sv_v11.4.0.grp"/>
+    <FileResource projectRelativePath="src/GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Sv_EncDec.cc" relativeURI="src/Sv_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Sv_Types.ttcn" relativeURI="src/Sv_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTPv2_Sv_v11.4.0_CNL113777</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <altstep>.*</altstep>
+          <globalConstant>.*</globalConstant>
+          <externalConstant>.*</externalConstant>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <globalPort>.*</globalPort>
+          <globalTemplate>.*</globalTemplate>
+          <testcase>.*</testcase>
+          <globalTimer>.*</globalTimer>
+          <group>.*</group>
+          <localConstant>.*</localConstant>
+          <localVariable>.*</localVariable>
+          <localTemplate>.*</localTemplate>
+          <localVariableTemplate>.*</localVariableTemplate>
+          <localTimer>.*</localTimer>
+          <formalParameter>.*</formalParameter>
+          <componentConstant>.*</componentConstant>
+          <componentVariable>.*</componentVariable>
+          <componentTimer>.*</componentTimer>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.1.0_CNL113703.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.1.0_CNL113703.tpd
new file mode 100644
index 000000000..8b39805f0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.1.0_CNL113703.tpd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTPv2_Sv_v9.1.0_CNL113703.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 703
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTPv2_Sv_v9.1.0_CNL113703</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.1.0_CNL113703_FS.pdf" relativeURI="doc/GTPv2_Sv_v9.1.0_CNL113703_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.1.0_CNL113703_PRI.pdf" relativeURI="doc/GTPv2_Sv_v9.1.0_CNL113703_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.1.0_CNL113703_UG.pdf" relativeURI="doc/GTPv2_Sv_v9.1.0_CNL113703_UG.pdf"/>
+    <FileResource projectRelativePath="src/GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Sv_Types.ttcn" relativeURI="src/Sv_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTPv2_Sv_v9.1.0_CNL113703</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.7.0_CNL113730.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.7.0_CNL113730.tpd
new file mode 100644
index 000000000..72ab646f7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.7.0_CNL113730.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTPv2_Sv_v9.7.0_CNL113730.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 730
+   Updated:            2012-09-28
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTPv2_Sv_v9.7.0_CNL113730</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.7.0_CNL113730_FS.pdf" relativeURI="doc/GTPv2_Sv_v9.7.0_CNL113730_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.7.0_CNL113730_PRI.pdf" relativeURI="doc/GTPv2_Sv_v9.7.0_CNL113730_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.7.0_CNL113730_UG.pdf" relativeURI="doc/GTPv2_Sv_v9.7.0_CNL113730_UG.pdf"/>
+    <FileResource projectRelativePath="src/GTPv2_PrivateExtensions.ttcn" relativeURI="src/GTPv2_PrivateExtensions.ttcn"/>
+    <FileResource projectRelativePath="src/GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Sv_EncDec.cc" relativeURI="src/Sv_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Sv_Types.ttcn" relativeURI="src/Sv_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTPv2_Sv_v9.7.0_CNL113730</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.8.0_CNL113737.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.8.0_CNL113737.tpd
new file mode 100644
index 000000000..80c02a568
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_Sv_v9.8.0_CNL113737.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTPv2_Sv_v9.8.0_CNL113737.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 737
+   Updated:            2012-12-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTPv2_Sv_v9.8.0_CNL113737</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.8.0_CNL113737_FS.pdf" relativeURI="doc/GTPv2_Sv_v9.8.0_CNL113737_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.8.0_CNL113737_PRI.pdf" relativeURI="doc/GTPv2_Sv_v9.8.0_CNL113737_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_Sv_v9.8.0_CNL113737_UG.pdf" relativeURI="doc/GTPv2_Sv_v9.8.0_CNL113737_UG.pdf"/>
+    <FileResource projectRelativePath="src/GTPv2_PrivateExtensions.ttcn" relativeURI="src/GTPv2_PrivateExtensions.ttcn"/>
+    <FileResource projectRelativePath="src/GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Sv_EncDec.cc" relativeURI="src/Sv_EncDec.cc"/>
+    <FileResource projectRelativePath="src/Sv_Types.ttcn" relativeURI="src/Sv_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTPv2_Sv_v9.8.0_CNL113737</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GTPv2_v11.x.0_CNL113753.tpd b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_v11.x.0_CNL113753.tpd
new file mode 100644
index 000000000..108c5be9e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GTPv2_v11.x.0_CNL113753.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GTPv2_v11.x.0_CNL113753.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 753
+   Updated:            2012-08-03
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GTPv2_v11.x.0_CNL113753</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/GTPv2_v11.x.0_CNL113753_FS.pdf" relativeURI="doc/GTPv2_v11.x.0_CNL113753_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_v11.x.0_CNL113753_PRI.pdf" relativeURI="doc/GTPv2_v11.x.0_CNL113753_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GTPv2_v11.x.0_CNL113753_UG.pdf" relativeURI="doc/GTPv2_v11.x.0_CNL113753_UG.pdf"/>
+    <FileResource projectRelativePath="src/GTPv2_PrivateExtensions.ttcn" relativeURI="src/GTPv2_PrivateExtensions.ttcn"/>
+    <FileResource projectRelativePath="src/GTPv2_Types.ttcn" relativeURI="src/GTPv2_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/GTPv2_v11.x.0_CNL113753</targetExecutable>
+          <buildLevel>Level 4.5 - Creating Executable Test Suite with heuristical dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/GiGnREPLAYasp_CNL113604.tpd b/regression_test/XML/tpdValidTest/tpdTest/GiGnREPLAYasp_CNL113604.tpd
new file mode 100644
index 000000000..95983d065
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/GiGnREPLAYasp_CNL113604.tpd
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               GiGnREPLAYasp_CNL113604.tpd
+   Description:        tpd project file
+   Rev:                R2C01
+   Prodnr:             CNL 113 604
+   Updated:            2012-10-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>GiGnREPLAYasp_CNL113604</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/GiGnREPLAYasp_CNL113604_FS.pdf" relativeURI="doc/GiGnREPLAYasp_CNL113604_FS.pdf"/>
+    <FileResource projectRelativePath="doc/GiGnREPLAYasp_CNL113604_PRI.pdf" relativeURI="doc/GiGnREPLAYasp_CNL113604_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/GiGnREPLAYasp_CNL113604_UG.pdf" relativeURI="doc/GiGnREPLAYasp_CNL113604_UG.pdf"/>
+    <FileResource projectRelativePath="src/CaptureFileReader.cc" relativeURI="src/CaptureFileReader.cc"/>
+    <FileResource projectRelativePath="src/CaptureFileReader.hh" relativeURI="src/CaptureFileReader.hh"/>
+    <FileResource projectRelativePath="src/GiGnREPLAYasp_PT.cc" relativeURI="src/GiGnREPLAYasp_PT.cc"/>
+    <FileResource projectRelativePath="src/GiGnREPLAYasp_PT.hh" relativeURI="src/GiGnREPLAYasp_PT.hh"/>
+    <FileResource projectRelativePath="src/GiGnREPLAYasp_PortType.ttcn" relativeURI="src/GiGnREPLAYasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/GiGnREPLAYasp_Types.ttcn" relativeURI="src/GiGnREPLAYasp_Types.ttcn"/>
+    <FileResource projectRelativePath="src/Packet.cc" relativeURI="src/Packet.cc"/>
+    <FileResource projectRelativePath="src/Packet.hh" relativeURI="src/Packet.hh"/>
+    <FileResource projectRelativePath="src/PacketContainer.cc" relativeURI="src/PacketContainer.cc"/>
+    <FileResource projectRelativePath="src/PacketContainer.hh" relativeURI="src/PacketContainer.hh"/>
+    <FileResource projectRelativePath="src/ProtocolTypes.hh" relativeURI="src/ProtocolTypes.hh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/GiGnREPLAYasp_CNL113604</targetExecutable>
+          <linkerLibraries>
+            <listItem>pcap</listItem>
+          </linkerLibraries>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/H225.0_v0298_CNL113354.tpd b/regression_test/XML/tpdValidTest/tpdTest/H225.0_v0298_CNL113354.tpd
new file mode 100644
index 000000000..a206f1d2e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/H225.0_v0298_CNL113354.tpd
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               H225.0_v0298_CNL113354.tpd
+   Description:        tpd project file
+   Rev:                R4B01
+   Prodnr:             CNL 113 354
+   Updated:            2012-10-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>H225.0_v0298_CNL113354</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="H225CC_EncDec.cc" relativeURI="src/H225CC_EncDec.cc"/>
+    <FileResource projectRelativePath="H225CC_Types.ttcn" relativeURI="src/H225CC_Types.ttcn"/>
+    <FileResource projectRelativePath="H225_Q931_Types.ttcn" relativeURI="src/H225_Q931_Types.ttcn"/>
+    <FileResource projectRelativePath="H235_SECURITY_MESSAGES.asn" relativeURI="src/H235_SECURITY_MESSAGES.asn"/>
+    <FileResource projectRelativePath="H323_EncDec.cc" relativeURI="src/H323_EncDec.cc"/>
+    <FileResource projectRelativePath="H323_MESSAGES.asn" relativeURI="src/H323_MESSAGES.asn"/>
+    <FileResource projectRelativePath="H323_RAS_Types.ttcn" relativeURI="src/H323_RAS_Types.ttcn"/>
+    <FileResource projectRelativePath="OSS_H323_MESSAGES.c" relativeURI="src/OSS_H323_MESSAGES.c"/>
+    <FileResource projectRelativePath="OSS_H323_MESSAGES.h" relativeURI="src/OSS_H323_MESSAGES.h"/>
+    <FileResource projectRelativePath="OSS_H323_MESSAGES_linux.c" relativeURI="src/OSS_H323_MESSAGES_linux.c"/>
+    <FileResource projectRelativePath="OSS_H323_MESSAGES_linux64bit.c" relativeURI="src/OSS_H323_MESSAGES_linux64bit.c"/>
+    <FileResource projectRelativePath="RAS_EncDec.cc" relativeURI="src/RAS_EncDec.cc"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/H225.0_v0298_CNL113354</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/H225.0_v0298_CNL113354</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/H225.0_v0298_CNL113354</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/H225.0_v0298_CNL113354</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_H323_MESSAGES_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/H245_v6_CNL113587.tpd b/regression_test/XML/tpdValidTest/tpdTest/H245_v6_CNL113587.tpd
new file mode 100644
index 000000000..889c25baf
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/H245_v6_CNL113587.tpd
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               H245_v6_CNL113587.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 587
+   Updated:            2012-10-19
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>H245_v6_CNL113587</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="H245_EncDec.cc" relativeURI="src/H245_EncDec.cc"/>
+    <FileResource projectRelativePath="H245_Types.ttcn" relativeURI="src/H245_Types.ttcn"/>
+    <FileResource projectRelativePath="MULTIMEDIA_SYSTEM_CONTROL.asn" relativeURI="src/MULTIMEDIA_SYSTEM_CONTROL.asn"/>
+    <FileResource projectRelativePath="OSS_MULTIMEDIA_SYSTEM_CONTROL.c" relativeURI="src/OSS_MULTIMEDIA_SYSTEM_CONTROL.c"/>
+    <FileResource projectRelativePath="OSS_MULTIMEDIA_SYSTEM_CONTROL.h" relativeURI="src/OSS_MULTIMEDIA_SYSTEM_CONTROL.h"/>
+    <FileResource projectRelativePath="OSS_MULTIMEDIA_SYSTEM_CONTROL_linux32bit.c" relativeURI="src/OSS_MULTIMEDIA_SYSTEM_CONTROL_linux32bit.c"/>
+    <FileResource projectRelativePath="OSS_MULTIMEDIA_SYSTEM_CONTROL_linux64bit.c" relativeURI="src/OSS_MULTIMEDIA_SYSTEM_CONTROL_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/H245_v6_CNL113587</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL_linux32bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/H245_v6_CNL113587</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL_linux32bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/H245_v6_CNL113587</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL_linux32bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/H245_v6_CNL113587</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>OSS_MULTIMEDIA_SYSTEM_CONTROL_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/H248_v2_CNL113424.tpd b/regression_test/XML/tpdValidTest/tpdTest/H248_v2_CNL113424.tpd
new file mode 100644
index 000000000..9e68e570d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/H248_v2_CNL113424.tpd
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               H248_v2_CNL113424.tpd
+   Description:        tpd project file
+   Rev:                R5B01
+   Prodnr:             CNL 113 424
+   Updated:            2012-04-03
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>H248_v2_CNL113424</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/H248_v2_CNL113424_FS.pdf" relativeURI="doc/H248_v2_CNL113424_FS.pdf"/>
+    <FileResource projectRelativePath="doc/H248_v2_CNL113424_PRI.pdf" relativeURI="doc/H248_v2_CNL113424_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/H248_v2_CNL113424_UG.pdf" relativeURI="doc/H248_v2_CNL113424_UG.pdf"/>
+    <FileResource projectRelativePath="src/H248_EncDec.cc" relativeURI="src/H248_EncDec.cc"/>
+    <FileResource projectRelativePath="src/H248_SDP_EncDec.cc" relativeURI="src/H248_SDP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/H248_SDP_Types.ttcn" relativeURI="src/H248_SDP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/H248_SDP_parse_.tab.c" relativeURI="src/H248_SDP_parse_.tab.c"/>
+    <FileResource projectRelativePath="src/H248_SDP_parse_.tab.h" relativeURI="src/H248_SDP_parse_.tab.h"/>
+    <FileResource projectRelativePath="src/H248_SDP_parse_parser.h" relativeURI="src/H248_SDP_parse_parser.h"/>
+    <FileResource projectRelativePath="src/H248_SDP_parser.l" relativeURI="src/H248_SDP_parser.l"/>
+    <FileResource projectRelativePath="src/H248_SDP_parser.y" relativeURI="src/H248_SDP_parser.y"/>
+    <FileResource projectRelativePath="src/H248_Types.ttcn" relativeURI="src/H248_Types.ttcn"/>
+    <FileResource projectRelativePath="src/H248_la.cc" relativeURI="src/H248_la.cc"/>
+    <FileResource projectRelativePath="src/H248_la.l" relativeURI="src/H248_la.l"/>
+    <FileResource projectRelativePath="src/H248_p.cc" relativeURI="src/H248_p.cc"/>
+    <FileResource projectRelativePath="src/H248_p.hh" relativeURI="src/H248_p.hh"/>
+    <FileResource projectRelativePath="src/H248_p.y" relativeURI="src/H248_p.y"/>
+    <FileResource projectRelativePath="src/H248_p_types.hh" relativeURI="src/H248_p_types.hh"/>
+    <FileResource projectRelativePath="src/lex.H248_SDP_parse_.c" relativeURI="src/lex.H248_SDP_parse_.c"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/H248_v2_CNL113424</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/HTTPmsg_CNL113312.tpd b/regression_test/XML/tpdValidTest/tpdTest/HTTPmsg_CNL113312.tpd
new file mode 100644
index 000000000..4d33a1256
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/HTTPmsg_CNL113312.tpd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               HTTPmsg_CNL113312.tpd
+   Description:        tpd project file
+   Rev:                R8B01
+   Prodnr:             CNL 113 312
+   Updated:            2012-07-18
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>HTTPmsg_CNL113312</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/HTTPmsg_CNL113312_FS.pdf" relativeURI="doc/HTTPmsg_CNL113312_FS.pdf"/>
+    <FileResource projectRelativePath="doc/HTTPmsg_CNL113312_PRI.pdf" relativeURI="doc/HTTPmsg_CNL113312_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/HTTPmsg_CNL113312_UG.pdf" relativeURI="doc/HTTPmsg_CNL113312_UG.pdf"/>
+    <FileResource projectRelativePath="src/HTTPmsg_MessageLen.ttcn" relativeURI="src/HTTPmsg_MessageLen.ttcn"/>
+    <FileResource projectRelativePath="src/HTTPmsg_MessageLen_Function.cc" relativeURI="src/HTTPmsg_MessageLen_Function.cc"/>
+    <FileResource projectRelativePath="src/HTTPmsg_PT.cc" relativeURI="src/HTTPmsg_PT.cc"/>
+    <FileResource projectRelativePath="src/HTTPmsg_PT.hh" relativeURI="src/HTTPmsg_PT.hh"/>
+    <FileResource projectRelativePath="src/HTTPmsg_PortType.ttcn" relativeURI="src/HTTPmsg_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/HTTPmsg_Types.ttcn" relativeURI="src/HTTPmsg_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/HTTPmsg_CNL113312</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IMSA2_CNL113693.tpd b/regression_test/XML/tpdValidTest/tpdTest/IMSA2_CNL113693.tpd
new file mode 100644
index 000000000..295c488dd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IMSA2_CNL113693.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IMSA2_CNL113693.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 693
+   Updated:            2012-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IMSA2_CNL113693</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/IMSA2_CNL113693_FS.pdf" relativeURI="doc/IMSA2_CNL113693_FS.pdf"/>
+    <FileResource projectRelativePath="doc/IMSA2_CNL113693_PRI.pdf" relativeURI="doc/IMSA2_CNL113693_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/IMSA2_CNL113693_UG.pdf" relativeURI="doc/IMSA2_CNL113693_UG.pdf"/>
+    <FileResource projectRelativePath="src/IMSA2_Types.ttcn" relativeURI="src/IMSA2_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/IMSA2_CNL113693</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IOS_HRPD_CLN113752.tpd b/regression_test/XML/tpdValidTest/tpdTest/IOS_HRPD_CLN113752.tpd
new file mode 100644
index 000000000..fcb9516e1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IOS_HRPD_CLN113752.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IOS_HRPD_CLN113752.tpd
+   Description:        tpd project file
+   Rev:                R1C01
+   Prodnr:             CNL 113 752
+   Updated:            2012-12-03
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IOS_HRPD_CLN113752</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/A21_Types.ttcn" relativeURI="src/A21_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/IOS_HRPD_CLN113752</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IPL4_EIN_SCTP.tpd b/regression_test/XML/tpdValidTest/tpdTest/IPL4_EIN_SCTP.tpd
new file mode 100644
index 000000000..e4a0e73e4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IPL4_EIN_SCTP.tpd
@@ -0,0 +1,254 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IPL4_EIN_SCTP.tpd
+   Description:        tpd project file
+   Rev:                R11A
+   Prodnr:             CNL 113 531
+   Updated:            2013-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IPL4_EIN_SCTP</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+    <ReferencedProject name="SS7Common_CNL113755" projectLocationURI="../Common_Components/SS7Common_CNL113755/SS7Common_CNL113755.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="IPL4asp_PT.cc" relativeURI="src/IPL4asp_PT.cc"/>
+    <FileResource projectRelativePath="IPL4asp_PT.hh" relativeURI="src/IPL4asp_PT.hh"/>
+    <FileResource projectRelativePath="IPL4asp_PortType.ttcn" relativeURI="src/IPL4asp_PortType.ttcn"/>
+    <FileResource projectRelativePath="IPL4asp_Types.ttcn" relativeURI="src/IPL4asp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SSL">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>IPL4_USE_SSL</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SSL_SCTP">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>IPL4_USE_SSL</listItem>
+            <listItem>USE_SCTP</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SSL_SCTP107">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>IPL4_USE_SSL</listItem>
+            <listItem>LKSCTP_1_0_7</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SSL_SCTP109">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>IPL4_USE_SSL</listItem>
+            <listItem>LKSCTP_1_0_9</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SCTP109">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>LKSCTP_1_0_9</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SCTP107">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>LKSCTP_1_0_9</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SCTP">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>USE_SCTP</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531.tpd b/regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531.tpd
new file mode 100644
index 000000000..7b334cd58
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531.tpd
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IPL4asp_CNL113531.tpd
+   Description:        tpd project file
+   Rev:                R11A
+   Prodnr:             CNL 113 531
+   Updated:            2013-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IPL4asp_CNL113531</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="IPL4asp_PT.cc" relativeURI="src/IPL4asp_PT.cc"/>
+    <FileResource projectRelativePath="IPL4asp_PT.hh" relativeURI="src/IPL4asp_PT.hh"/>
+    <FileResource projectRelativePath="IPL4asp_PortType.ttcn" relativeURI="src/IPL4asp_PortType.ttcn"/>
+    <FileResource projectRelativePath="IPL4asp_Types.ttcn" relativeURI="src/IPL4asp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>SSL_SCTP</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SSL">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>IPL4_USE_SSL</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SSL_SCTP">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>IPL4_USE_SSL</listItem>
+            <listItem>USE_SCTP</listItem>
+            <listItem>LKSCTP_MULTIHOMING_ENABLED</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>ssl</listItem>
+            <listItem>sctp</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OPENSSL_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="SCTP">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/IPL4asp_CNL113531</targetExecutable>
+          <preprocessorDefines>
+            <listItem>USE_SCTP</listItem>
+            <listItem>LKSCTP_MULTIHOMING_ENABLED</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[OPENSSL_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>sctp</listItem>
+          </linkerLibraries>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531_Interface.tpd b/regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531_Interface.tpd
new file mode 100644
index 000000000..b5cca266b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IPL4asp_CNL113531_Interface.tpd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IPL4asp_CNL113531_Interface.tpd
+   Description:        tpd project file
+   Rev:                R11A
+   Prodnr:             CNL 113 531
+   Updated:            2013-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IPL4asp_CNL113531_Interface</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Interface" projectLocationURI="../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Interface.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="IPL4asp_Functions.ttcn" relativeURI="demo/InterfaceFunctions/IPL4asp_Functions.ttcn"/>
+    <FileResource projectRelativePath="IPL4asp_discovery.cc" relativeURI="demo/InterfaceFunctions/IPL4asp_discovery.cc"/>
+    <FileResource projectRelativePath="IPL4asp_protocol_L234.hh" relativeURI="demo/InterfaceFunctions/IPL4asp_protocol_L234.hh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IPL4asp_CNL113531_Interface</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IP_CNL113418.tpd b/regression_test/XML/tpdValidTest/tpdTest/IP_CNL113418.tpd
new file mode 100644
index 000000000..d2afd1d6e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IP_CNL113418.tpd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IP_CNL113418.tpd
+   Description:        tpd project file
+   Rev:                R7A01
+   Prodnr:             CNL 113 418
+   Updated:            2012-02-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IP_CNL113418</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/IP_CNL113418_FS.pdf" relativeURI="doc/IP_CNL113418_FS.pdf"/>
+    <FileResource projectRelativePath="doc/IP_CNL113418_PRI.pdf" relativeURI="doc/IP_CNL113418_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/IP_CNL113418_UG.pdf" relativeURI="doc/IP_CNL113418_UG.pdf"/>
+    <FileResource projectRelativePath="src/IP_EncDec.cc" relativeURI="src/IP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/IP_Types.ttcn" relativeURI="src/IP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/IP_CNL113418</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c[g]?_.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739.tpd b/regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739.tpd
new file mode 100644
index 000000000..3c0f587ac
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739.tpd
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IP_Daemon_Dynamic_CNL113739.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 739
+   Updated:            2012-11-12
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IP_Daemon_Dynamic_CNL113739</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="Socket_API_CNL113686" projectLocationURI="../../TestPorts/Common_Components/Socket_API_CNL113686/Socket_API_CNL113686.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Interface" projectLocationURI="../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Interface.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic.cfg" relativeURI="demo/IP_Daemon_Dynamic.cfg"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic.ttcn" relativeURI="src/IP_Daemon_Dynamic.ttcn"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_IPL4_CtrlFuncDef.cc" relativeURI="src/IP_Daemon_Dynamic_IPL4_CtrlFuncDef.cc"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_IPL4_CtrlFunct.ttcn" relativeURI="src/IP_Daemon_Dynamic_IPL4_CtrlFunct.ttcn"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_Interface_Definitions.ttcn" relativeURI="src/IP_Daemon_Dynamic_Interface_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_Types.ttcn" relativeURI="src/IP_Daemon_Dynamic_Types.ttcn"/>
+    <FileResource projectRelativePath="doc/IP_Daemon_Dynamic_CNL113739_FS.pdf" relativeURI="doc/IP_Daemon_Dynamic_CNL113739_FS.pdf"/>
+    <FileResource projectRelativePath="doc/IP_Daemon_Dynamic_CNL113739_PRI.pdf" relativeURI="doc/IP_Daemon_Dynamic_CNL113739_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/IP_Daemon_Dynamic_CNL113739_UG.pdf" relativeURI="doc/IP_Daemon_Dynamic_CNL113739_UG.pdf"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/IP_Daemon_Dynamic_CNL113739</targetExecutable>
+          <preprocessorDefines>
+            <listItem>LKSCTP_1_0_9</listItem>
+          </preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>IPL4asp_CNL113531</projectName>
+            <rerquiredConfiguration>SSL_SCTP109</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739_demo.tpd b/regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739_demo.tpd
new file mode 100644
index 000000000..52424adec
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IP_Daemon_Dynamic_CNL113739_demo.tpd
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IP_Daemon_Dynamic_CNL113739_demo</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IP_Daemon_Dynamic_CNL113739" projectLocationURI="../IP_Daemon_Dynamic_CNL113739.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic.cfg" relativeURI="IP_Daemon_Dynamic.cfg"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_Test.cfg" relativeURI="IP_Daemon_Dynamic_Test.cfg"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_Test.ttcn" relativeURI="IP_Daemon_Dynamic_Test.ttcn"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_with_DiameterAutoReplies.ttcn" relativeURI="IP_Daemon_Dynamic_with_DiameterAutoReplies.ttcn"/>
+    <FileResource projectRelativePath="IP_Daemon_Dynamic_with_StartupCallback.ttcn" relativeURI="IP_Daemon_Dynamic_with_StartupCallback.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/IP_Daemon_Dynamic_CNL113739_demo</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ISUP_ANSI_CNL113411.tpd b/regression_test/XML/tpdValidTest/tpdTest/ISUP_ANSI_CNL113411.tpd
new file mode 100644
index 000000000..ab62fab25
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ISUP_ANSI_CNL113411.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ISUP_ANSI_CNL113411.tpd
+   Description:        tpd project file
+   Rev:                R6A01
+   Prodnr:             CNL 113 411
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ISUP_ANSI_CNL113411</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/ISUP_ANSI_CNL113411_FS.pdf" relativeURI="doc/ISUP_ANSI_CNL113411_FS.pdf"/>
+    <FileResource projectRelativePath="doc/ISUP_ANSI_CNL113411_PRI.pdf" relativeURI="doc/ISUP_ANSI_CNL113411_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/ISUP_ANSI_CNL113411_UG.pdf" relativeURI="doc/ISUP_ANSI_CNL113411_UG.pdf"/>
+    <FileResource projectRelativePath="src/ISUP_ANSI_EncDec.cc" relativeURI="src/ISUP_ANSI_EncDec.cc"/>
+    <FileResource projectRelativePath="src/ISUP_ANSI_Types.ttcn" relativeURI="src/ISUP_ANSI_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ISUP_ANSI_CNL113411</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_CNL113365.tpd b/regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_CNL113365.tpd
new file mode 100644
index 000000000..3aa72de5e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_CNL113365.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ISUP_Q.762_CNL113365.tpd
+   Description:        tpd project file
+   Rev:                R7B01
+   Prodnr:             CNL 113 365
+   Updated:            2012-11-13
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ISUP_Q.762_CNL113365</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/ISUP_Q.762_CNL113365_FS.pdf" relativeURI="doc/ISUP_Q.762_CNL113365_FS.pdf"/>
+    <FileResource projectRelativePath="doc/ISUP_Q.762_CNL113365_PRI.pdf" relativeURI="doc/ISUP_Q.762_CNL113365_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/ISUP_Q.762_CNL113365_UG.pdf" relativeURI="doc/ISUP_Q.762_CNL113365_UG.pdf"/>
+    <FileResource projectRelativePath="src/ISUP_EncDec.cc" relativeURI="src/ISUP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/ISUP_Types.ttcn" relativeURI="src/ISUP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ISUP_Q.762_CNL113365</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_TCOM_CNL113762.tpd b/regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_TCOM_CNL113762.tpd
new file mode 100644
index 000000000..e9da4b9b2
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ISUP_Q.762_TCOM_CNL113762.tpd
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ISUP_Q.762_TCOM_CNL113762.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 762
+   Updated:            2013-01-22
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ISUP_Q.762_TCOM_CNL113762</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="ISUP_Q.762_TCOM_CNL113762_FS.pdf" relativeURI="doc/ISUP_Q.762_TCOM_CNL113762_FS.pdf"/>
+    <FileResource projectRelativePath="ISUP_Q.762_TCOM_CNL113762_PRI.pdf" relativeURI="doc/ISUP_Q.762_TCOM_CNL113762_PRI.pdf"/>
+    <FileResource projectRelativePath="ISUP_Q.762_TCOM_CNL113762_UG.pdf" relativeURI="doc/ISUP_Q.762_TCOM_CNL113762_UG.pdf"/>
+    <FileResource projectRelativePath="src/ISUP_Q.762_TCOM_CNL113762.grp" relativeURI="src/ISUP_Q.762_TCOM_CNL113762.grp"/>
+    <FileResource projectRelativePath="src/ISUP_TCOM_EncDec.cc" relativeURI="src/ISUP_TCOM_EncDec.cc"/>
+    <FileResource projectRelativePath="src/ISUP_TCOM_Types.ttcn" relativeURI="src/ISUP_TCOM_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ISUP_Q.762_TCOM_CNL113762</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ISUP_for_Japan_CNL113727.tpd b/regression_test/XML/tpdValidTest/tpdTest/ISUP_for_Japan_CNL113727.tpd
new file mode 100644
index 000000000..ba954934f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ISUP_for_Japan_CNL113727.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ISUP_for_Japan_CNL113727.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 727
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ISUP_for_Japan_CNL113727</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/ISUP_for_Japan_CNL113727_FS.pdf" relativeURI="doc/ISUP_for_Japan_CNL113727_FS.pdf"/>
+    <FileResource projectRelativePath="doc/ISUP_for_Japan_CNL113727_PRI.pdf" relativeURI="doc/ISUP_for_Japan_CNL113727_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/ISUP_for_Japan_CNL113727_UG.pdf" relativeURI="doc/ISUP_for_Japan_CNL113727_UG.pdf"/>
+    <FileResource projectRelativePath="src/ISUP_TTC_EncDec.cc" relativeURI="src/ISUP_TTC_EncDec.cc"/>
+    <FileResource projectRelativePath="src/ISUP_TTC_Types.ttcn" relativeURI="src/ISUP_TTC_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ISUP_for_Japan_CNL113727</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/IUA_CNL113439.tpd b/regression_test/XML/tpdValidTest/tpdTest/IUA_CNL113439.tpd
new file mode 100644
index 000000000..ad2722014
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/IUA_CNL113439.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               IUA_CNL113439.tpd
+   Description:        tpd project file
+   Rev:                R4A01
+   Prodnr:             CNL 113 439
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>IUA_CNL113439</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/IUA_Types.ttcn" relativeURI="src/IUA_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/IUA_CNL113439</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/JSON_v07_2006_CNL113676.tpd b/regression_test/XML/tpdValidTest/tpdTest/JSON_v07_2006_CNL113676.tpd
new file mode 100644
index 000000000..be1852fa5
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/JSON_v07_2006_CNL113676.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               JSON_v07_2006_CNL113676.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 676
+   Updated:            2012-07-31
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>JSON_v07_2006_CNL113676</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="JSON_Types.ttcn" relativeURI="src/JSON_Types.ttcn"/>
+    <FileResource projectRelativePath="doc/JSON_v07_2006_CNL113676_FS.pdf" relativeURI="doc/JSON_v07_2006_CNL113676_FS.pdf"/>
+    <FileResource projectRelativePath="doc/JSON_v07_2006_CNL113676_PRI.pdf" relativeURI="doc/JSON_v07_2006_CNL113676_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/JSON_v07_2006_CNL113676_UG.pdf" relativeURI="doc/JSON_v07_2006_CNL113676_UG.pdf"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/JSON_v07_2006_CNL113676</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/JUnit.tpd b/regression_test/XML/tpdValidTest/tpdTest/JUnit.tpd
new file mode 100644
index 000000000..1321632e3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/JUnit.tpd
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>JUnit</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="JUnit.xsd" relativeURI="JUnit.xsd"/>
+    <FileResource projectRelativePath="JUnitTestResult.ttcn" relativeURI="JUnitTestResult.ttcn"/>
+    <FileResource projectRelativePath="UsefulTtcn3Types.ttcn" relativeURI="UsefulTtcn3Types.ttcn"/>
+    <FileResource projectRelativePath="XSD.ttcn" relativeURI="XSD.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/JUnit</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/LANL2asp_CNL113519.tpd b/regression_test/XML/tpdValidTest/tpdTest/LANL2asp_CNL113519.tpd
new file mode 100644
index 000000000..7528f70b8
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/LANL2asp_CNL113519.tpd
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               LANL2asp_CNL113519.tpd
+   Description:        tpd project file
+   Rev:                R6A02
+   Prodnr:             CNL 113 519
+   Updated:            2012-03-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>LANL2asp_CNL113519</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/LANL2asp_CNL113519_FS.pdf" relativeURI="doc/LANL2asp_CNL113519_FS.pdf"/>
+    <FileResource projectRelativePath="doc/LANL2asp_CNL113519_PRI.pdf" relativeURI="doc/LANL2asp_CNL113519_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/LANL2asp_CNL113519_UG.pdf" relativeURI="doc/LANL2asp_CNL113519_UG.pdf"/>
+    <FileResource projectRelativePath="src/LANL2asp_PT.cc" relativeURI="src/LANL2asp_PT.cc"/>
+    <FileResource projectRelativePath="src/LANL2asp_PT.hh" relativeURI="src/LANL2asp_PT.hh"/>
+    <FileResource projectRelativePath="src/LANL2asp_PortType.ttcn" relativeURI="src/LANL2asp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/LANL2asp_Types.ttcn" relativeURI="src/LANL2asp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/LANL2asp_CNL113519</targetExecutable>
+          <linkerLibraries>
+            <listItem>pcap</listItem>
+          </linkerLibraries>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_Functions.tpd b/regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_Functions.tpd
new file mode 100644
index 000000000..7b6e68083
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_Functions.tpd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               LDAPasp_RFC4511_CNL113513_Functions.tpd
+   Description:        tpd project file
+   Rev:                R3C01
+   Prodnr:             CNL 113 513
+   Updated:            2012-11-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>LDAPasp_RFC4511_CNL113513_Functions</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="LDAPasp_RFC4511_Types.ttcn" relativeURI="src/LDAPasp_RFC4511_Types.ttcn"/>
+    <FileResource projectRelativePath="Lightweight_Directory_Access_Protocol.asn" relativeURI="src/Lightweight_Directory_Access_Protocol.asn"/>
+    <FileResource projectRelativePath="doc/LDAPasp_RFC4511_CNL113513_FS.pdf" relativeURI="doc/LDAPasp_RFC4511_CNL113513_FS.pdf"/>
+    <FileResource projectRelativePath="doc/LDAPasp_RFC4511_CNL113513_PRI.pdf" relativeURI="doc/LDAPasp_RFC4511_CNL113513_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/LDAPasp_RFC4511_CNL113513_UG.pdf" relativeURI="doc/LDAPasp_RFC4511_CNL113513_UG.pdf"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/LDAPasp_RFC4511_CNL113513_Functions</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_TestPort.tpd b/regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_TestPort.tpd
new file mode 100644
index 000000000..d26902be3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/LDAPasp_RFC4511_CNL113513_TestPort.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               LDAPasp_RFC4511_CNL113513_TestPort.tpd
+   Description:        tpd project file
+   Rev:                R3C01
+   Prodnr:             CNL 113 513
+   Updated:            2012-11-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>LDAPasp_RFC4511_CNL113513_TestPort</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="LDAPasp_RFC4511_CNL113513_Functions" projectLocationURI="LDAPasp_RFC4511_CNL113513_Functions.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath=".TITAN_properties" relativeURI="../../../../../home/ekovjno/workspace/LDAPasp_RFC4511_CNL113513_TestPort/.TITAN_properties"/>
+    <FileResource projectRelativePath=".project" relativeURI="../../../../../home/ekovjno/workspace/LDAPasp_RFC4511_CNL113513_TestPort/.project"/>
+    <FileResource projectRelativePath="LDAPasp_RFC4511_PT.cc" relativeURI="src/LDAPasp_RFC4511_PT.cc"/>
+    <FileResource projectRelativePath="LDAPasp_RFC4511_PT.hh" relativeURI="src/LDAPasp_RFC4511_PT.hh"/>
+    <FileResource projectRelativePath="LDAPasp_RFC4511_PortType.ttcn" relativeURI="src/LDAPasp_RFC4511_PortType.ttcn"/>
+    <FileResource projectRelativePath="LDIF_RFC4511.ttcn" relativeURI="src/LDIF_RFC4511.ttcn"/>
+    <FileResource projectRelativePath="doc/LDAPasp_RFC4511_CNL113513_FS.pdf" relativeURI="doc/LDAPasp_RFC4511_CNL113513_FS.pdf"/>
+    <FileResource projectRelativePath="doc/LDAPasp_RFC4511_CNL113513_PRI.pdf" relativeURI="doc/LDAPasp_RFC4511_CNL113513_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/LDAPasp_RFC4511_CNL113513_UG.pdf" relativeURI="doc/LDAPasp_RFC4511_CNL113513_UG.pdf"/>
+    <FileResource projectRelativePath="ldif.lex" relativeURI="src/ldif.lex"/>
+    <FileResource projectRelativePath="ldif.tab.cc" relativeURI="src/ldif.tab.cc"/>
+    <FileResource projectRelativePath="ldif.tab.hh" relativeURI="src/ldif.tab.hh"/>
+    <FileResource projectRelativePath="ldif.y" relativeURI="src/ldif.y"/>
+    <FileResource projectRelativePath="lex.ldif.cc" relativeURI="src/lex.ldif.cc"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/LDAPasp_RFC4511_CNL113513_TestPort</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/LNP_ANSI_CNL113715.tpd b/regression_test/XML/tpdValidTest/tpdTest/LNP_ANSI_CNL113715.tpd
new file mode 100644
index 000000000..cfd317200
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/LNP_ANSI_CNL113715.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               LNP_ANSI_CNL113715.tpd
+   Description:        tpd project file
+   Rev:                R1D01
+   Prodnr:             CNL 113 715
+   Updated:            2013-01-28
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>LNP_ANSI_CNL113715</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/LNP_ANSI_CNL113715_FS.pdf" relativeURI="doc/LNP_ANSI_CNL113715_FS.pdf"/>
+    <FileResource projectRelativePath="doc/LNP_ANSI_CNL113715_PRI.pdf" relativeURI="doc/LNP_ANSI_CNL113715_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/LNP_ANSI_CNL113715_UG.pdf" relativeURI="doc/LNP_ANSI_CNL113715_UG.pdf"/>
+    <FileResource projectRelativePath="src/LNP_ANSI_EncDec.cc" relativeURI="src/LNP_ANSI_EncDec.cc"/>
+    <FileResource projectRelativePath="src/LNP_ANSI_Errors.asn" relativeURI="src/LNP_ANSI_Errors.asn"/>
+    <FileResource projectRelativePath="src/LNP_ANSI_Operations.asn" relativeURI="src/LNP_ANSI_Operations.asn"/>
+    <FileResource projectRelativePath="src/LNP_ANSI_PDU_Defs.asn" relativeURI="src/LNP_ANSI_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/LNP_ANSI_Parameters.asn" relativeURI="src/LNP_ANSI_Parameters.asn"/>
+    <FileResource projectRelativePath="src/LNP_ANSI_Types.ttcn" relativeURI="src/LNP_ANSI_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/LNP_ANSI_CNL113715</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/LOADMEASasp_CNL113585.tpd b/regression_test/XML/tpdValidTest/tpdTest/LOADMEASasp_CNL113585.tpd
new file mode 100644
index 000000000..72fd051ec
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/LOADMEASasp_CNL113585.tpd
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               LOADMEASasp_CNL113585.tpd
+   Description:        tpd project file
+   Rev:                R3C02
+   Prodnr:             CNL 113 585
+   Updated:            2012-07-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>LOADMEASasp_CNL113585</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/LOADMEASasp_CNL113585_FS.pdf" relativeURI="doc/LOADMEASasp_CNL113585_FS.pdf"/>
+    <FileResource projectRelativePath="doc/LOADMEASasp_CNL113585_PRI.pdf" relativeURI="doc/LOADMEASasp_CNL113585_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/LOADMEASasp_CNL113585_UG.pdf" relativeURI="doc/LOADMEASasp_CNL113585_UG.pdf"/>
+    <FileResource projectRelativePath="src/LOADMEASasp_PT.cc" relativeURI="src/LOADMEASasp_PT.cc"/>
+    <FileResource projectRelativePath="src/LOADMEASasp_PT.hh" relativeURI="src/LOADMEASasp_PT.hh"/>
+    <FileResource projectRelativePath="src/LOADMEASasp_PortType.ttcn" relativeURI="src/LOADMEASasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/LOADMEASasp_Types.ttcn" relativeURI="src/LOADMEASasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/LOADMEASasp_CNL113585</targetExecutable>
+          <SolarisSpecificLibraries>
+            <listItem>kstat</listItem>
+            <listItem>rt</listItem>
+          </SolarisSpecificLibraries>
+          <Solaris8SpecificLibraries>
+            <listItem>kstat</listItem>
+            <listItem>rt</listItem>
+          </Solaris8SpecificLibraries>
+          <linkerLibraries>
+            <listItem>pthread</listItem>
+          </linkerLibraries>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>tsp.*</moduleParameter>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/M2PA_CNL113558.tpd b/regression_test/XML/tpdValidTest/tpdTest/M2PA_CNL113558.tpd
new file mode 100644
index 000000000..128693d05
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/M2PA_CNL113558.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               M2PA_CNL113558.tpd
+   Description:        tpd project file
+   Rev:                R1B
+   Prodnr:             CNL 113 558
+   Updated:            2013-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>M2PA_CNL113558</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/M2PA_Types.ttcn" relativeURI="src/M2PA_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M2PA_CNL113558</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/M3AP_v9.4.0_CNL113735.tpd b/regression_test/XML/tpdValidTest/tpdTest/M3AP_v9.4.0_CNL113735.tpd
new file mode 100644
index 000000000..059b96e8f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/M3AP_v9.4.0_CNL113735.tpd
@@ -0,0 +1,320 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               M3AP_v9.4.0_CNL113735.tpd
+   Description:        tpd project file
+   Rev:                R1A03
+   Prodnr:             CNL 113 735
+   Updated:            2012-04-20
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>M3AP_v9.4.0_CNL113735</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/M3AP_v9.4.0_CNL113735_FS.pdf" relativeURI="doc/M3AP_v9.4.0_CNL113735_FS.pdf"/>
+    <FileResource projectRelativePath="doc/M3AP_v9.4.0_CNL113735_PRI.pdf" relativeURI="doc/M3AP_v9.4.0_CNL113735_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/M3AP_v9.4.0_CNL113735_UG.pdf" relativeURI="doc/M3AP_v9.4.0_CNL113735_UG.pdf"/>
+    <FileResource projectRelativePath="src/M3AP_CommonDataTypes.asn" relativeURI="src/M3AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/M3AP_Constants.asn" relativeURI="src/M3AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/M3AP_Containers.asn" relativeURI="src/M3AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/M3AP_EncDec.cc" relativeURI="src/M3AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/M3AP_IEs.asn" relativeURI="src/M3AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/M3AP_PDU_Contents.asn" relativeURI="src/M3AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/M3AP_PDU_Descriptions.asn" relativeURI="src/M3AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/M3AP_Types.ttcn" relativeURI="src/M3AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/m3ap_class.h" relativeURI="src/m3ap_class.h"/>
+    <FileResource projectRelativePath="src/m3ap_class.c" relativeURI="src/m3ap_class.c"/>
+    <FileResource projectRelativePath="src/m3ap_class.c" relativeURI="src/m3ap_class_solarisx86.c"/>
+    <FileResource projectRelativePath="src/m3ap_class_linux.c" relativeURI="src/m3ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/m3ap_class_linux64bit.c" relativeURI="src/m3ap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M3AP_v9.4.0_CNL113735</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/m3ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M3AP_v9.4.0_CNL113735</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/m3ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M3AP_v9.4.0_CNL113735</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/m3ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M3AP_v9.4.0_CNL113735</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/m3ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+
+
+
+    <Configuration name="SOLARIS_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M3AP_v9.4.0_CNL113735</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/m3ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/m3ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/M3UA_SCTP_Daemon_CNL113487.tpd b/regression_test/XML/tpdValidTest/tpdTest/M3UA_SCTP_Daemon_CNL113487.tpd
new file mode 100644
index 000000000..792bde69b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/M3UA_SCTP_Daemon_CNL113487.tpd
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               M3UA_SCTP_Daemon_CNL113487.tpd
+   Description:        tpd project file
+   Rev:                R5A01
+   Prodnr:             CNL 113 487
+   Updated:            2012-11-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>M3UA_SCTP_Daemon_CNL113487</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="MTP3asp_CNL113337" projectLocationURI="../../TestPorts/MTP3asp_CNL113337/MTP3asp_CNL113337.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/M3UA_SCTP_Daemon_CNL113487_FS.pdf" relativeURI="doc/M3UA_SCTP_Daemon_CNL113487_FS.pdf"/>
+    <FileResource projectRelativePath="doc/M3UA_SCTP_Daemon_CNL113487_PRI.pdf" relativeURI="doc/M3UA_SCTP_Daemon_CNL113487_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/M3UA_SCTP_Daemon_CNL113487_UG.pdf" relativeURI="doc/M3UA_SCTP_Daemon_CNL113487_UG.pdf"/>
+    <FileResource projectRelativePath="src/M3UA_SCTP_Daemon.ttcn" relativeURI="src/M3UA_SCTP_Daemon.ttcn"/>
+    <FileResource projectRelativePath="src/M3UA_SCTP_EncDec.cc" relativeURI="src/M3UA_SCTP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/M3UA_SCTP_Types.ttcn" relativeURI="src/M3UA_SCTP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/M3UA_SCTP_Daemon_CNL113487</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673.tpd
new file mode 100644
index 000000000..9997e45fb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_ANSI_v2.0_CNL113673.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 673
+   Updated:            2012-10-12
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_ANSI_v2.0_CNL113673</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="TCAPasp_CNL113349" projectLocationURI="../../TestPorts/TCAPasp_CNL113349/TCAPasp_CNL113349.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_ANSI_v2.0_CNL113673_FS.pdf" relativeURI="doc/MAP_ANSI_v2.0_CNL113673_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_ANSI_v2.0_CNL113673_PRI.pdf" relativeURI="doc/MAP_ANSI_v2.0_CNL113673_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_ANSI_v2.0_CNL113673_UG.pdf" relativeURI="doc/MAP_ANSI_v2.0_CNL113673_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_ANSI_EncDec.cc" relativeURI="src/MAP_ANSI_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_ANSI_Operations.asn" relativeURI="src/MAP_ANSI_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_ANSI_Parameters.asn" relativeURI="src/MAP_ANSI_Parameters.asn"/>
+    <FileResource projectRelativePath="src/MAP_ANSI_Types.ttcn" relativeURI="src/MAP_ANSI_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_ANSI_v2.0_CNL113673</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673_demo.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673_demo.tpd
new file mode 100644
index 000000000..728a78570
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_ANSI_v2.0_CNL113673_demo.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_ANSI_v2.0_CNL113673_demo</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_ANSI_v2.0_CNL113673" projectLocationURI="../MAP_ANSI_v2.0_CNL113673.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="MAP_ANSI.cfg" relativeURI="MAP_ANSI.cfg"/>
+    <FileResource projectRelativePath="MAP_ANSI_Demo.ttcn" relativeURI="MAP_ANSI_Demo.ttcn"/>
+    <FileResource projectRelativePath="MAP_ANSI_Mapping.ttcn" relativeURI="MAP_ANSI_Mapping.ttcn"/>
+  </Files>
+  <PathVariables>
+    <PathVariable name="SS7_HOME" value="/vobs/ttcn/TCC_Common/Other/EINSS7/19089-lpy111903_1_R1B/EABss7028"/>
+  </PathVariables>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_ANSI_v2.0_CNL113673_demo</targetExecutable>
+          <preprocessorDefines>
+            <listItem>EINSS7_THREADSAFE -D__EXTENSIONS__</listItem>
+            <listItem>_REENTRANT</listItem>
+            <listItem>_POSIX_PTHREAD_SEMANTICS</listItem>
+            <listItem>CP_R12A30</listItem>
+            <listItem>CP_R12</listItem>
+            <listItem>SCCP_CAA901437_R12</listItem>
+            <listItem>TCAP_CAA20118_R8</listItem>
+            <listItem>TCAP_CAA201694_R10</listItem>
+            <listItem>T_ADDRESS</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>$(SS7_HOME)/include</listItem>
+          </preprocessorIncludes>
+          <disableXER>true</disableXER>
+          <linkerLibraries>
+            <listItem>einss7_n_r</listItem>
+            <listItem>rt</listItem>
+            <listItem>dl</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>$(SS7_HOME)/lib64</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
\ No newline at end of file
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1.tpd
new file mode 100644
index 000000000..f7c935260
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1.tpd
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_Current_CNL113745_1.tpd
+   Description:        tpd project file
+   Rev:                R2B
+   Prodnr:             CNL 113 745
+   Updated:            2013-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_Current_CNL113745_1</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_ProtocolModule.grp" relativeURI="src/MAP_Current_CNL113745_1_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_ProtocolModule_HLR.grp" relativeURI="src/MAP_Current_CNL113745_1_ProtocolModule_HLR.grp"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_v123_ProtocolModule.grp" relativeURI="src/MAP_Current_CNL113745_1_v123_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_v123_ProtocolModule_HLR.grp" relativeURI="src/MAP_Current_CNL113745_1_v123_ProtocolModule_HLR.grp"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_EncDec_v123.cc" relativeURI="src/MAP_EncDec_v123.cc"/>
+    <FileResource projectRelativePath="src/MAP_Ericsson_Operations.asn" relativeURI="src/MAP_Ericsson_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes_HLR.asn" relativeURI="src/MAP_ExtensionDataTypes_HLR.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes_NumberPortability.asn" relativeURI="src/MAP_ExtensionDataTypes_NumberPortability.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDC_Operations.asn" relativeURI="src/MAP_PDC_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs_v123.asn" relativeURI="src/MAP_PDU_Defs_v123.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MAP_Types_v123.ttcn" relativeURI="src/MAP_Types_v123.ttcn"/>
+  </Files>
+  <ActiveConfiguration>NumberPortability</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_v7.12.0_CNL113635</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MAP_EncDec_v123.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_PDU_Defs_v123.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Types_v123.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="NumberPortability">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_Current_CNL113635</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_ProtocolModule_HLR.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_v123_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_v123_ProtocolModule_HLR.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_EncDec_v123.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_ExtensionDataTypes_HLR.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_ExtensionDataTypes_NumberPortability.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_PDU_Defs_v123.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Types_v123.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_HLR.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_HLR.tpd
new file mode 100644
index 000000000..9f4074d63
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_HLR.tpd
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_Current_CNL113745_1_HLR.tpd
+   Description:        tpd project file
+   Rev:                R2B
+   Prodnr:             CNL 113 745
+   Updated:            2013-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_Current_CNL113745_1</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_Current_CNL113745_1_FS.pdf" relativeURI="doc/MAP_Current_CNL113745_1_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_Current_CNL113745_1_PRI.pdf" relativeURI="doc/MAP_Current_CNL113745_1_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_Current_CNL113745_1_UG.pdf" relativeURI="doc/MAP_Current_CNL113745_1_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_ProtocolModule_HLR.grp" relativeURI="src/MAP_Current_CNL113745_1_ProtocolModule_HLR.grp"/>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_ProtocolModule.grp" relativeURI="src/MAP_Current_CNL113745_1_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_v123_ProtocolModule.grp" relativeURI="src/MAP_Current_CNL113745_1_v123_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAP_Current_CNL113745_1_v123_ProtocolModule_HLR.grp" relativeURI="src/MAP_Current_CNL113745_1_v123_ProtocolModule_HLR.grp"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_EncDec_v123.cc" relativeURI="src/MAP_EncDec_v123.cc"/>
+    <FileResource projectRelativePath="src/MAP_Ericsson_Operations.asn" relativeURI="src/MAP_Ericsson_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes_HLR.asn" relativeURI="src/MAP_ExtensionDataTypes_HLR.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes_NumberPortability.asn" relativeURI="src/MAP_ExtensionDataTypes_NumberPortability.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDC_Operations.asn" relativeURI="src/MAP_PDC_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs_v123.asn" relativeURI="src/MAP_PDU_Defs_v123.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MAP_Types_v123.ttcn" relativeURI="src/MAP_Types_v123.ttcn"/>
+  </Files>
+  <ActiveConfiguration>NumberPortability</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_v7.12.0_CNL113635</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MAP_EncDec_v123.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_PDU_Defs_v123.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Types_v123.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="NumberPortability">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_Current_CNL113635</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_ProtocolModule_HLR.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_v123_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Current_CNL113745_1_v123_ProtocolModule_HLR.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_EncDec_v123.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_ExtensionDataTypes.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_ExtensionDataTypes_NumberPortability.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_PDU_Defs_v123.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Types_v123.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123.tpd
new file mode 100644
index 000000000..63e358c0d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123.tpd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_Current_CNL113745_1_v123.tpd
+   Description:        tpd project file
+   Rev:                R2B
+   Prodnr:             CNL 113 745
+   Updated:            2013-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_Current_CNL113745_1_v123</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Ericsson_MAP_v2_CNL113725" projectLocationURI="../Ericsson_MAP_v2_CNL113725/Ericsson_MAP_v2_CNL113725.tpd"/>
+    <ReferencedProject name="MAP_Current_CNL113745_1" projectLocationURI="MAP_Current_CNL113745_1.tpd"/>
+    <ReferencedProject name="MAP_v1_CNL113431" projectLocationURI="../MAP_v1_CNL113431/MAP_v1_CNL113431.tpd"/>
+    <ReferencedProject name="MAP_v2_CNL113432" projectLocationURI="../MAP_v2_CNL113432/MAP_v2_CNL113432.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="MAP_EncDec_v123.cc" relativeURI="src/MAP_EncDec_v123.cc"/>
+    <FileResource projectRelativePath="MAP_PDU_Defs_v123.asn" relativeURI="src/MAP_PDU_Defs_v123.asn"/>
+    <FileResource projectRelativePath="MAP_Types_v123.ttcn" relativeURI="src/MAP_Types_v123.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_Current_CNL113745_1_v123</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123_HLR.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123_HLR.tpd
new file mode 100644
index 000000000..c247c6d9e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_Current_CNL113745_1_v123_HLR.tpd
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_Current_CNL113745_1_v123_HLR.tpd
+   Description:        tpd project file
+   Rev:                R2B
+   Prodnr:             CNL 113 745
+   Updated:            2013-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_Current_CNL113745_1_v123</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Ericsson_MAP_v2_CNL113725" projectLocationURI="../Ericsson_MAP_v2_CNL113725/Ericsson_MAP_v2_CNL113725.tpd"/>
+    <ReferencedProject name="MAP_Current_CNL113745_1" projectLocationURI="MAP_Current_CNL113745_1_HLR.tpd"/>
+    <ReferencedProject name="MAP_v1_CNL113431" projectLocationURI="../MAP_v1_CNL113431/MAP_v1_CNL113431.tpd"/>
+    <ReferencedProject name="MAP_v2_CNL113432" projectLocationURI="../MAP_v2_CNL113432/MAP_v2_CNL113432.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="MAP_EncDec_v123.cc" relativeURI="src/MAP_EncDec_v123.cc"/>
+    <FileResource projectRelativePath="MAP_PDU_Defs_v123.asn" relativeURI="src/MAP_PDU_Defs_v123.asn"/>
+    <FileResource projectRelativePath="MAP_Types_v123.ttcn" relativeURI="src/MAP_Types_v123.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_Current_CNL113745_1_v123</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v10.4.0_CNL113736.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v10.4.0_CNL113736.tpd
new file mode 100644
index 000000000..a4a7a96be
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v10.4.0_CNL113736.tpd
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v10.4.0_CNL113736.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 736
+   Updated:            2012-02-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v10.4.0_CNL113736</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_v10.4.0_CNL113736_FS.pdf" relativeURI="doc/MAP_v10.4.0_CNL113736_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v10.4.0_CNL113736_PRI.pdf" relativeURI="doc/MAP_v10.4.0_CNL113736_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v10.4.0_CNL113736_UG.pdf" relativeURI="doc/MAP_v10.4.0_CNL113736_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v10.4.0_CNL113736</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v10.6.0_CNL113764.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v10.6.0_CNL113764.tpd
new file mode 100644
index 000000000..5ad80c18e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v10.6.0_CNL113764.tpd
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v10.6.0_CNL113764.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 764
+   Updated:            2013-01-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v10.6.0_CNL113764</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v10.6.0_CNL113764</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v1_CNL113431.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v1_CNL113431.tpd
new file mode 100644
index 000000000..b10b57e93
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v1_CNL113431.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v1_CNL113431.tpd
+   Description:        tpd project file
+   Rev:                R8A
+   Prodnr:             CNL 113 431
+   Updated:            2013-03-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v1_CNL113431</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MAP_Operations_v1.asn" relativeURI="src/MAP_Operations_v1.asn"/>
+    <FileResource projectRelativePath="src/MAPv1_EncDec.cc" relativeURI="src/MAPv1_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAPv1_ProtocolModule.grp" relativeURI="src/MAPv1_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAPv1_Types.ttcn" relativeURI="src/MAPv1_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v1_CNL113431</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v2_CNL113432.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v2_CNL113432.tpd
new file mode 100644
index 000000000..5e34937f9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v2_CNL113432.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v2_CNL113432.tpd
+   Description:        tpd project file
+   Rev:                R6A
+   Prodnr:             CNL 113 432
+   Updated:            2013-03-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v2_CNL113432</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MAP_Operations_v2.asn" relativeURI="src/MAP_Operations_v2.asn"/>
+    <FileResource projectRelativePath="src/MAPv2_EncDec.cc" relativeURI="src/MAPv2_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAPv2_ProtocolModule.grp" relativeURI="src/MAPv2_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAPv2_Types.ttcn" relativeURI="src/MAPv2_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v2_CNL113432</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v6.11.0_CNL113500.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v6.11.0_CNL113500.tpd
new file mode 100644
index 000000000..0e67629b9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v6.11.0_CNL113500.tpd
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v6.11.0_CNL113500.tpd
+   Description:        tpd project file
+   Rev:                R3B01
+   Prodnr:             CNL 113 500
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v6.11.0_CNL113500</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_v6.11.0_CNL113500_FS.pdf" relativeURI="doc/MAP_v6.11.0_CNL113500_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v6.11.0_CNL113500_PRI.pdf" relativeURI="doc/MAP_v6.11.0_CNL113500_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v6.11.0_CNL113500_UG.pdf" relativeURI="doc/MAP_v6.11.0_CNL113500_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ST_DataTypes.asn" relativeURI="src/MAP_ST_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SecureTransportOperations.asn" relativeURI="src/MAP_SecureTransportOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileDomainDefinitions.asn" relativeURI="src/MobileDomainDefinitions.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v6.11.0_CNL113500</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MobileDomainDefinitions.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v6.3.0_CNL113366.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v6.3.0_CNL113366.tpd
new file mode 100644
index 000000000..00b69250a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v6.3.0_CNL113366.tpd
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v6.3.0_CNL113366.tpd
+   Description:        tpd project file
+   Rev:                R5A01
+   Prodnr:             CNL 113 366
+   Updated:            2012-02-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v6.3.0_CNL113366</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_v6.3.0_CNL113366_FS.pdf" relativeURI="doc/MAP_v6.3.0_CNL113366_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v6.3.0_CNL113366_PRI.pdf" relativeURI="doc/MAP_v6.3.0_CNL113366_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v6.3.0_CNL113366_UG.pdf" relativeURI="doc/MAP_v6.3.0_CNL113366_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ST_DataTypes.asn" relativeURI="src/MAP_ST_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SecureTransportOperations.asn" relativeURI="src/MAP_SecureTransportOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v6.3.0_CNL113366</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635.tpd
new file mode 100644
index 000000000..3a9804a1e
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635.tpd
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v7.12.0_CNL113635.tpd
+   Description:        tpd project file
+   Rev:                R5A
+   Prodnr:             CNL 113 635
+   Updated:            2013-03-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v7.12.0_CNL113635</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_EncDec_v123.cc" relativeURI="src/MAP_EncDec_v123.cc"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes_NumberPortability.asn" relativeURI="src/MAP_ExtensionDataTypes_NumberPortability.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDC_Operations.asn" relativeURI="src/MAP_PDC_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs_v123.asn" relativeURI="src/MAP_PDU_Defs_v123.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MAP_Types_v123.ttcn" relativeURI="src/MAP_Types_v123.ttcn"/>
+    <FileResource projectRelativePath="src/MAPv123_v7.12.0_ProtocolModule.grp" relativeURI="src/MAPv123_v7.12.0_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAPv123_v7.12.0_with_NumberPortability_ProtocolModule.grp" relativeURI="src/MAPv123_v7.12.0_with_NumberPortability_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAPv3_v7.12.0_ProtocolModule.grp" relativeURI="src/MAPv3_v7.12.0_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/MAPv3_v7.12.0_with_NumberPortability_ProtocolModule.grp" relativeURI="src/MAPv3_v7.12.0_with_NumberPortability_ProtocolModule.grp"/>
+  </Files>
+  <ActiveConfiguration>NumberPortability</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_v7.12.0_CNL113635</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MAP_EncDec_v123.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_ExtensionDataTypes_NumberPortability.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_PDU_Defs_v123.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Types_v123.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAPv3_v7.12.0_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAPv3_v7.12.0_with_NumberPortability_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="NumberPortability">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/MAP_v7.12.0_CNL113635</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/MAP_EncDec_v123.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_ExtensionDataTypes.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_PDU_Defs_v123.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAP_Types_v123.ttcn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAPv123_v7.12.0_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAPv123_v7.12.0_with_NumberPortability_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAPv3_v7.12.0_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/MAPv3_v7.12.0_with_NumberPortability_ProtocolModule.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635_v123.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635_v123.tpd
new file mode 100644
index 000000000..e2542160b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.12.0_CNL113635_v123.tpd
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v7.12.0_CNL113635_v123.tpd
+   Description:        tpd project file
+   Rev:                R5A
+   Prodnr:             CNL 113 635
+   Updated:            2013-03-21
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v7.12.0_CNL113635_v123</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Ericsson_MAP_v2_CNL113725" projectLocationURI="../Ericsson_MAP_v2_CNL113725/Ericsson_MAP_v2_CNL113725.tpd"/>
+    <ReferencedProject name="MAP_v1_CNL113431" projectLocationURI="../MAP_v1_CNL113431/MAP_v1_CNL113431.tpd"/>
+    <ReferencedProject name="MAP_v2_CNL113432" projectLocationURI="../MAP_v2_CNL113432/MAP_v2_CNL113432.tpd"/>
+    <ReferencedProject name="MAP_v7.12.0_CNL113635" projectLocationURI="MAP_v7.12.0_CNL113635.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="MAP_EncDec_v123.cc" relativeURI="src/MAP_EncDec_v123.cc"/>
+    <FileResource projectRelativePath="MAP_PDU_Defs_v123.asn" relativeURI="src/MAP_PDU_Defs_v123.asn"/>
+    <FileResource projectRelativePath="MAP_Types_v123.ttcn" relativeURI="src/MAP_Types_v123.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v7.12.0_CNL113635_v123</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.8.0_CNL113569.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.8.0_CNL113569.tpd
new file mode 100644
index 000000000..5b6b36916
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v7.8.0_CNL113569.tpd
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v7.8.0_CNL113569.tpd
+   Description:        tpd project file
+   Rev:                R3A03
+   Prodnr:             CNL 113 569
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v7.8.0_CNL113569</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_v7.8.0_CNL113569_FS.pdf" relativeURI="doc/MAP_v7.8.0_CNL113569_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v7.8.0_CNL113569_PRI.pdf" relativeURI="doc/MAP_v7.8.0_CNL113569_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v7.8.0_CNL113569_UG.pdf" relativeURI="doc/MAP_v7.8.0_CNL113569_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v7.8.0_CNL113569</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MAP_v9.3.0_CNL113710.tpd b/regression_test/XML/tpdValidTest/tpdTest/MAP_v9.3.0_CNL113710.tpd
new file mode 100644
index 000000000..50cc6a264
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MAP_v9.3.0_CNL113710.tpd
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MAP_v9.3.0_CNL113710.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 710
+   Updated:            2012-01-13
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MAP_v9.3.0_CNL113710</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MAP_v9.3.0_CNL113710_FS.pdf" relativeURI="doc/MAP_v9.3.0_CNL113710_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v9.3.0_CNL113710_PRI.pdf" relativeURI="doc/MAP_v9.3.0_CNL113710_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MAP_v9.3.0_CNL113710_UG.pdf" relativeURI="doc/MAP_v9.3.0_CNL113710_UG.pdf"/>
+    <FileResource projectRelativePath="src/MAP_ApplicationContexts.asn" relativeURI="src/MAP_ApplicationContexts.asn"/>
+    <FileResource projectRelativePath="src/MAP_BS_Code.asn" relativeURI="src/MAP_BS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_CH_DataTypes.asn" relativeURI="src/MAP_CH_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_CallHandlingOperations.asn" relativeURI="src/MAP_CallHandlingOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_CommonDataTypes.asn" relativeURI="src/MAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_DialogueInformation.asn" relativeURI="src/MAP_DialogueInformation.asn"/>
+    <FileResource projectRelativePath="src/MAP_ER_DataTypes.asn" relativeURI="src/MAP_ER_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_EncDec.cc" relativeURI="src/MAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MAP_Errors.asn" relativeURI="src/MAP_Errors.asn"/>
+    <FileResource projectRelativePath="src/MAP_ExtensionDataTypes.asn" relativeURI="src/MAP_ExtensionDataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_GR_DataTypes.asn" relativeURI="src/MAP_GR_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_Group_Call_Operations.asn" relativeURI="src/MAP_Group_Call_Operations.asn"/>
+    <FileResource projectRelativePath="src/MAP_LCS_DataTypes.asn" relativeURI="src/MAP_LCS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_LocationServiceOperations.asn" relativeURI="src/MAP_LocationServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_MS_DataTypes.asn" relativeURI="src/MAP_MS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_MobileServiceOperations.asn" relativeURI="src/MAP_MobileServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_OM_DataTypes.asn" relativeURI="src/MAP_OM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_OperationAndMaintenanceOperations.asn" relativeURI="src/MAP_OperationAndMaintenanceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_PDU_Defs.asn" relativeURI="src/MAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/MAP_Protocol.asn" relativeURI="src/MAP_Protocol.asn"/>
+    <FileResource projectRelativePath="src/MAP_SM_DataTypes.asn" relativeURI="src/MAP_SM_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_Code.asn" relativeURI="src/MAP_SS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_SS_DataTypes.asn" relativeURI="src/MAP_SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/MAP_ShortMessageServiceOperations.asn" relativeURI="src/MAP_ShortMessageServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_SupplementaryServiceOperations.asn" relativeURI="src/MAP_SupplementaryServiceOperations.asn"/>
+    <FileResource projectRelativePath="src/MAP_TS_Code.asn" relativeURI="src/MAP_TS_Code.asn"/>
+    <FileResource projectRelativePath="src/MAP_Types.ttcn" relativeURI="src/MAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MAP_v9.3.0_CNL113710</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MIME_CNL113352.tpd b/regression_test/XML/tpdValidTest/tpdTest/MIME_CNL113352.tpd
new file mode 100644
index 000000000..b3a069e7a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MIME_CNL113352.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MIME_CNL113352.tpd
+   Description:        tpd project file
+   Rev:                R4B01
+   Prodnr:             CNL 113 352
+   Updated:            2012-05-22
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MIME_CNL113352</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="MIME_EncDec.cc" relativeURI="src/MIME_EncDec.cc"/>
+    <FileResource projectRelativePath="MIME_Types.ttcn" relativeURI="src/MIME_Types.ttcn"/>
+    <FileResource projectRelativePath="MIME_parse.h" relativeURI="src/MIME_parse.h"/>
+    <FileResource projectRelativePath="MIME_parse_.tab.c" relativeURI="src/MIME_parse_.tab.c"/>
+    <FileResource projectRelativePath="MIME_parse_.tab.h" relativeURI="src/MIME_parse_.tab.h"/>
+    <FileResource projectRelativePath="lex.MIME_parse_.c" relativeURI="src/lex.MIME_parse_.c"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MIME_CNL113352</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MLSIMPLUSasp_CNL113749.tpd b/regression_test/XML/tpdValidTest/tpdTest/MLSIMPLUSasp_CNL113749.tpd
new file mode 100644
index 000000000..9697fd6a0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MLSIMPLUSasp_CNL113749.tpd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MLSIMPLUSasp_CNL113749.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 749
+   Updated:            2012-10-16
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MLSIMPLUSasp_CNL113749</ProjectName>
+  <ReferencedProjects>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MLSIMPLUSasp_CNL113749_FS.pdf" relativeURI="doc/MLSIMPLUSasp_CNL113749_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MLSIMPLUSasp_CNL113749_PRI.pdf" relativeURI="doc/MLSIMPLUSasp_CNL113749_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MLSIMPLUSasp_CNL113749_UG.pdf" relativeURI="doc/MLSIMPLUSasp_CNL113749_UG.pdf"/>
+    <FileResource projectRelativePath="src/MLSIMPLUSasp_PT.cc" relativeURI="src/MLSIMPLUSasp_PT.cc"/>
+    <FileResource projectRelativePath="src/MLSIMPLUSasp_PT.hh" relativeURI="src/MLSIMPLUSasp_PT.hh"/>
+    <FileResource projectRelativePath="src/MLSIMPLUSasp_PortType.ttcn" relativeURI="src/MLSIMPLUSasp_PortType.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/MLSIMPLUSasp_CNL113749</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MLSIMasp_CNL113538.tpd b/regression_test/XML/tpdValidTest/tpdTest/MLSIMasp_CNL113538.tpd
new file mode 100644
index 000000000..979e0cc99
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MLSIMasp_CNL113538.tpd
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MLSIMasp_CNL113538.tpd
+   Description:        tpd project file
+   Rev:                R11A01
+   Prodnr:             CNL 113 538
+   Updated:            2012-04-04
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MLSIMasp_CNL113538</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="MLSIMasp_PT.cc" relativeURI="src/MLSIMasp_PT.cc"/>
+    <FileResource projectRelativePath="MLSIMasp_PT.hh" relativeURI="src/MLSIMasp_PT.hh"/>
+    <FileResource projectRelativePath="MLSIMasp_PortType.ttcn" relativeURI="src/MLSIMasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="MLSIMasp_Types.ttcn" relativeURI="src/MLSIMasp_Types.ttcn"/>
+    <FileResource projectRelativePath="MLSIMasp_functions.ttcn" relativeURI="src/MLSIMasp_functions.ttcn"/>
+    <FileResource projectRelativePath="MLSIMasp_functionsDef.cc" relativeURI="src/MLSIMasp_functionsDef.cc"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MLSIMasp_CNL113538</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MLSIMasp_CNL113538</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[MLSIMDIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>mlsim</listItem>
+            <listItem>ccrtp1</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[MLSIMDIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MLSIMasp_CNL113538</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[MLSIMDIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>mlsim</listItem>
+            <listItem>ccrtp1</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[MLSIMDIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MMLasp_CNL113490.tpd b/regression_test/XML/tpdValidTest/tpdTest/MMLasp_CNL113490.tpd
new file mode 100644
index 000000000..2e3b7c7c7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MMLasp_CNL113490.tpd
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MMLasp_CNL113490.tpd
+   Description:        tpd project file
+   Rev:                R4C01
+   Prodnr:             CNL 113 490
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MMLasp_CNL113490</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MMLasp_CNL113490_FS.pdf" relativeURI="doc/MMLasp_CNL113490_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MMLasp_CNL113490_PRI.pdf" relativeURI="doc/MMLasp_CNL113490_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MMLasp_CNL113490_UG.pdf" relativeURI="doc/MMLasp_CNL113490_UG.pdf"/>
+    <FileResource projectRelativePath="src/MMLasp_PT.cc" relativeURI="src/MMLasp_PT.cc"/>
+    <FileResource projectRelativePath="src/MMLasp_PT.hh" relativeURI="src/MMLasp_PT.hh"/>
+    <FileResource projectRelativePath="src/MMLasp_PortType.ttcn" relativeURI="src/MMLasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/MMLasp_Types.ttcn" relativeURI="src/MMLasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>TARGET_TEST</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MMLasp_CNL113490</targetExecutable>
+          <preprocessorDefines>
+            <listItem>TARGET_MML_TEST</listItem>
+          </preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+    <Configuration name="TARGET_TEST">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MMLasp_CNL113490</targetExecutable>
+          <preprocessorDefines>
+            <listItem>TARGET_MML_TEST</listItem>
+          </preprocessorDefines>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MSRP_CNL113467.tpd b/regression_test/XML/tpdValidTest/tpdTest/MSRP_CNL113467.tpd
new file mode 100644
index 000000000..b9c696bdd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MSRP_CNL113467.tpd
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MSRP_CNL113467.tpd
+   Description:        tpd project file
+   Rev:                R7A
+   Prodnr:             CNL 113 467
+   Updated:            2013-04-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MSRP_CNL113467</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="MSRP.l" relativeURI="src/MSRP.l"/>
+    <FileResource projectRelativePath="MSRP.y" relativeURI="src/MSRP.y"/>
+    <FileResource projectRelativePath="MSRP_EncDec.cc" relativeURI="src/MSRP_EncDec.cc"/>
+    <FileResource projectRelativePath="MSRP_Templates.ttcn" relativeURI="src/MSRP_Templates.ttcn"/>
+    <FileResource projectRelativePath="MSRP_Types.ttcn" relativeURI="src/MSRP_Types.ttcn"/>
+    <FileResource projectRelativePath="MSRP_parse.h" relativeURI="src/MSRP_parse.h"/>
+    <FileResource projectRelativePath="MSRP_parse_.tab.c" relativeURI="src/MSRP_parse_.tab.c"/>
+    <FileResource projectRelativePath="MSRP_parse_.tab.h" relativeURI="src/MSRP_parse_.tab.h"/>
+    <FileResource projectRelativePath="doc/MSRP_CNL113467_FS.pdf" relativeURI="doc/MSRP_CNL113467_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MSRP_CNL113467_PRI.pdf" relativeURI="doc/MSRP_CNL113467_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MSRP_CNL113467_UG.pdf" relativeURI="doc/MSRP_CNL113467_UG.pdf"/>
+    <FileResource projectRelativePath="lex.MSRP_parse_.c" relativeURI="src/lex.MSRP_parse_.c"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MSRP_CNL113467</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>f_.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <localVariableTemplate>.*</localVariableTemplate>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>MSRP.l</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>MSRP.y</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MTP3asp_CNL113337.tpd b/regression_test/XML/tpdValidTest/tpdTest/MTP3asp_CNL113337.tpd
new file mode 100644
index 000000000..a20c08bab
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MTP3asp_CNL113337.tpd
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MTP3asp_CNL113337.tpd
+   Description:        tpd project file
+   Rev:                R11A01
+   Prodnr:             CNL 113 337
+   Updated:            2012-11-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MTP3asp_CNL113337</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MTP3asp_CNL113337_FS.pdf" relativeURI="doc/MTP3asp_CNL113337_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MTP3asp_CNL113337_PRI.pdf" relativeURI="doc/MTP3asp_CNL113337_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MTP3asp_CNL113337_UG.pdf" relativeURI="doc/MTP3asp_CNL113337_UG.pdf"/>
+    <FileResource projectRelativePath="src/MTP3asp_EncDec.cc" relativeURI="src/MTP3asp_EncDec.cc"/>
+    <FileResource projectRelativePath="src/MTP3asp_PT.cc" relativeURI="src/MTP3asp_PT.cc"/>
+    <FileResource projectRelativePath="src/MTP3asp_PT.hh" relativeURI="src/MTP3asp_PT.hh"/>
+    <FileResource projectRelativePath="src/MTP3asp_PortType.ttcn" relativeURI="src/MTP3asp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/MTP3asp_Types.ttcn" relativeURI="src/MTP3asp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>TARGET_TEST</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MTP3asp_CNL113337</targetExecutable>
+          <preprocessorDefines>
+            <listItem>TARGET_TEST</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="TARGET_TEST">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MTP3asp_CNL113337</targetExecutable>
+          <preprocessorDefines>
+            <listItem>TARGET_TEST</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="NO TARGET_TEST">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MTP3asp_CNL113337</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MTP3asp_EIN_CNL113421.tpd b/regression_test/XML/tpdValidTest/tpdTest/MTP3asp_EIN_CNL113421.tpd
new file mode 100644
index 000000000..be66eb755
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MTP3asp_EIN_CNL113421.tpd
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MTP3asp_EIN_CNL113421.tpd
+   Description:        tpd project file
+   Rev:                R3C01
+   Prodnr:             CNL 113 421
+   Updated:            2012-10-29
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MTP3asp_EIN_CNL113421</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="SS7Common_CNL113755" projectLocationURI="../Common_Components/SS7Common_CNL113755/SS7Common_CNL113755.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="MTP3asp_EIN_CNL113421.tpd" relativeURI="MTP3asp_EIN_CNL113421.tpd"/>
+    <FileResource projectRelativePath="doc/MTP3asp_EIN_CNL113421_FS.pdf" relativeURI="doc/MTP3asp_EIN_CNL113421_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MTP3asp_EIN_CNL113421_PRI.pdf" relativeURI="doc/MTP3asp_EIN_CNL113421_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MTP3asp_EIN_CNL113421_UG.pdf" relativeURI="doc/MTP3asp_EIN_CNL113421_UG.pdf"/>
+    <FileResource projectRelativePath="src/MTP3asp_EIN_PT.cc" relativeURI="src/MTP3asp_EIN_PT.cc"/>
+    <FileResource projectRelativePath="src/MTP3asp_EIN_PT.hh" relativeURI="src/MTP3asp_EIN_PT.hh"/>
+    <FileResource projectRelativePath="src/MTP3asp_EIN_PortType.ttcn" relativeURI="src/MTP3asp_EIN_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/MTP3asp_EIN_Types.ttcn" relativeURI="src/MTP3asp_EIN_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MTP3asp_EIN_CNL113421</targetExecutable>
+          <preprocessorDefines>
+            <listItem>CP_R12A30</listItem>
+            <listItem>EINSS7_THREADSAFE</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[SS7_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>einss7_n_r</listItem>
+            <listItem>pthread</listItem>
+            <listItem>util</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[SS7_DIR]/lib64</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MobileL3_v10.5.0_CNL113758.tpd b/regression_test/XML/tpdValidTest/tpdTest/MobileL3_v10.5.0_CNL113758.tpd
new file mode 100644
index 000000000..a2e5fe097
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MobileL3_v10.5.0_CNL113758.tpd
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MobileL3_v10.5.0_CNL113758.tpd
+   Description:        tpd project file
+   Rev:                R1B02
+   Prodnr:             CNL 113 758
+   Updated:            2013-01-22
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MobileL3_v10.5.0_CNL113758</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.12.0_CNL113635" projectLocationURI="../MAP_v7.12.0_CNL113635/MAP_v7.12.0_CNL113635.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MobileL3_v10.5.0_CNL113758_FS.pdf" relativeURI="doc/MobileL3_v10.5.0_CNL113758_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MobileL3_v10.5.0_CNL113758_PRI.pdf" relativeURI="doc/MobileL3_v10.5.0_CNL113758_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MobileL3_v10.5.0_CNL113758_UG.pdf" relativeURI="doc/MobileL3_v10.5.0_CNL113758_UG.pdf"/>
+    <FileResource projectRelativePath="src/MobileL3_CC_Types.ttcn" relativeURI="src/MobileL3_CC_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_CommonIE_Types.ttcn" relativeURI="src/MobileL3_CommonIE_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_GMM_SM_Types.ttcn" relativeURI="src/MobileL3_GMM_SM_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_MM_Types.ttcn" relativeURI="src/MobileL3_MM_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_RRM_Types.ttcn" relativeURI="src/MobileL3_RRM_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_SMS_Types.ttcn" relativeURI="src/MobileL3_SMS_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_SS_Types.ttcn" relativeURI="src/MobileL3_SS_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_Types.ttcn" relativeURI="src/MobileL3_Types.ttcn"/>
+    <FileResource projectRelativePath="src/SS_DataTypes.asn" relativeURI="src/SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/SS_Errors.asn" relativeURI="src/SS_Errors.asn"/>
+    <FileResource projectRelativePath="src/SS_Operations.asn" relativeURI="src/SS_Operations.asn"/>
+    <FileResource projectRelativePath="src/SS_PDU_Defs.asn" relativeURI="src/SS_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/SS_Protocol.asn" relativeURI="src/SS_Protocol.asn"/>
+    <FileResource projectRelativePath="src/SS_Types.ttcn" relativeURI="src/SS_Types.ttcn"/>  
+    <FileResource projectRelativePath="src/SS_EncDec.cc" relativeURI="src/SS_EncDec.cc"/>        
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MobileL3_v10.5.0_CNL113758</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/MobileL3_v9.5.0_CNL113719.tpd b/regression_test/XML/tpdValidTest/tpdTest/MobileL3_v9.5.0_CNL113719.tpd
new file mode 100644
index 000000000..ce35f0ef0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/MobileL3_v9.5.0_CNL113719.tpd
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               MobileL3_v9.5.0_CNL113719.tpd
+   Description:        tpd project file
+   Rev:                R2D01
+   Prodnr:             CNL 113 719
+   Updated:            2012-10-01
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>MobileL3_v9.5.0_CNL113719</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MAP_v7.12.0_CNL113635" projectLocationURI="../MAP_v7.12.0_CNL113635/MAP_v7.12.0_CNL113635.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/MobileL3_v9.5.0_CNL113719_FS.pdf" relativeURI="doc/MobileL3_v9.5.0_CNL113719_FS.pdf"/>
+    <FileResource projectRelativePath="doc/MobileL3_v9.5.0_CNL113719_PRI.pdf" relativeURI="doc/MobileL3_v9.5.0_CNL113719_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/MobileL3_v9.5.0_CNL113719_UG.pdf" relativeURI="doc/MobileL3_v9.5.0_CNL113719_UG.pdf"/>
+    <FileResource projectRelativePath="src/MobileL3_CC_Types.ttcn" relativeURI="src/MobileL3_CC_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_CommonIE_Types.ttcn" relativeURI="src/MobileL3_CommonIE_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_GMM_SM_Types.ttcn" relativeURI="src/MobileL3_GMM_SM_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_MM_Types.ttcn" relativeURI="src/MobileL3_MM_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_RRM_Types.ttcn" relativeURI="src/MobileL3_RRM_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_SMS_Types.ttcn" relativeURI="src/MobileL3_SMS_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_SS_Types.ttcn" relativeURI="src/MobileL3_SS_Types.ttcn"/>
+    <FileResource projectRelativePath="src/MobileL3_Types.ttcn" relativeURI="src/MobileL3_Types.ttcn"/>
+    <FileResource projectRelativePath="src/SS_DataTypes.asn" relativeURI="src/SS_DataTypes.asn"/>
+    <FileResource projectRelativePath="src/SS_EncDec.cc" relativeURI="src/SS_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SS_Errors.asn" relativeURI="src/SS_Errors.asn"/>
+    <FileResource projectRelativePath="src/SS_Operations.asn" relativeURI="src/SS_Operations.asn"/>
+    <FileResource projectRelativePath="src/SS_PDU_Defs.asn" relativeURI="src/SS_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/SS_Protocol.asn" relativeURI="src/SS_Protocol.asn"/>
+    <FileResource projectRelativePath="src/SS_Types.ttcn" relativeURI="src/SS_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/MobileL3</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v10.6.1_CNL113746.tpd b/regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v10.6.1_CNL113746.tpd
new file mode 100644
index 000000000..7db3abbf6
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v10.6.1_CNL113746.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               NAS_EPS_v10.6.1_CNL113746.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 746
+   Updated:            2012-07-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>NAS_EPS_v10.6.1_CNL113746</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/NAS_EPS_v10.6.1_CNL113746_FS.pdf" relativeURI="doc/NAS_EPS_v10.6.1_CNL113746_FS.pdf"/>
+    <FileResource projectRelativePath="doc/NAS_EPS_v10.6.1_CNL113746_PRI.pdf" relativeURI="doc/NAS_EPS_v10.6.1_CNL113746_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/NAS_EPS_v10.6.1_CNL113746_UG.pdf" relativeURI="doc/NAS_EPS_v10.6.1_CNL113746_UG.pdf"/>
+    <FileResource projectRelativePath="src/NAS_EPS_vA61.ttcn" relativeURI="src/NAS_EPS_vA61.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/NAS_EPS_v10.6.1_CNL113746</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v9.7.0_CNL113729.tpd b/regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v9.7.0_CNL113729.tpd
new file mode 100644
index 000000000..73fdd0c14
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/NAS_EPS_v9.7.0_CNL113729.tpd
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               NAS_EPS_v9.7.0_CNL113729.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 729
+   Updated:            2012-01-16
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>NAS_EPS_v9.7.0_CNL113729</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/NAS_EPS_v9.7.0_CNL113729_FS.pdf" relativeURI="doc/NAS_EPS_v9.7.0_CNL113729_FS.pdf"/>
+    <FileResource projectRelativePath="doc/NAS_EPS_v9.7.0_CNL113729_PRI.pdf" relativeURI="doc/NAS_EPS_v9.7.0_CNL113729_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/NAS_EPS_v9.7.0_CNL113729_UG.pdf" relativeURI="doc/NAS_EPS_v9.7.0_CNL113729_UG.pdf"/>
+    <FileResource projectRelativePath="src/NAS_EPS_v970.ttcn" relativeURI="src/NAS_EPS_v970.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/NAS_EPS_v9.7.0_CNL113729</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/PIM_CNL113733.tpd b/regression_test/XML/tpdValidTest/tpdTest/PIM_CNL113733.tpd
new file mode 100644
index 000000000..a443fefd4
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/PIM_CNL113733.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               PIM_CNL113733.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 733
+   Updated:            2012-01-17
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>PIM_CNL113733</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/PIM_CNL113733_FS.pdf" relativeURI="doc/PIM_CNL113733_FS.pdf"/>
+    <FileResource projectRelativePath="doc/PIM_CNL113733_PRI.pdf" relativeURI="doc/PIM_CNL113733_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/PIM_CNL113733_UG.pdf" relativeURI="doc/PIM_CNL113733_UG.pdf"/>
+    <FileResource projectRelativePath="src/PIM_EncDec.cc" relativeURI="src/PIM_EncDec.cc"/>
+    <FileResource projectRelativePath="src/PIM_Types.ttcn" relativeURI="src/PIM_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/PIM_CNL113733</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/PIPEasp_CNL113334.tpd b/regression_test/XML/tpdValidTest/tpdTest/PIPEasp_CNL113334.tpd
new file mode 100644
index 000000000..335f97cc1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/PIPEasp_CNL113334.tpd
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               PIPEasp_CNL113334.tpd
+   Description:        tpd project file
+   Rev:                R5A
+   Prodnr:             CNL 113 334
+   Updated:            2013-02-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>PIPEasp_CNL113334</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/PIPEasp_CNL113334_FS.pdf" relativeURI="doc/PIPEasp_CNL113334_FS.pdf"/>
+    <FileResource projectRelativePath="doc/PIPEasp_CNL113334_PRI.pdf" relativeURI="doc/PIPEasp_CNL113334_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/PIPEasp_CNL113334_UG.pdf" relativeURI="doc/PIPEasp_CNL113334_UG.pdf"/>
+    <FileResource projectRelativePath="src/PIPE.grp" relativeURI="src/PIPE.grp"/>
+    <FileResource projectRelativePath="src/PIPEasp_PT.cc" relativeURI="src/PIPEasp_PT.cc"/>
+    <FileResource projectRelativePath="src/PIPEasp_PT.hh" relativeURI="src/PIPEasp_PT.hh"/>
+    <FileResource projectRelativePath="src/PIPEasp_PortType.ttcn" relativeURI="src/PIPEasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/PIPEasp_Types.ttcn" relativeURI="src/PIPEasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/PIPEasp_CNL113334</targetExecutable>
+          <linkerLibraries>
+            <listItem>util</listItem>
+          </linkerLibraries>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/PIPE.grp</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/PMIP_v10.5.0_CNL113759.tpd b/regression_test/XML/tpdValidTest/tpdTest/PMIP_v10.5.0_CNL113759.tpd
new file mode 100644
index 000000000..11f416063
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/PMIP_v10.5.0_CNL113759.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               PMIP_v10.5.0_CNL113759.tpd
+   Description:        tpd project file
+   Rev:                R2A
+   Prodnr:             CNL 113 759
+   Updated:            2013-02-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>PMIP_v10.5.0_CNL113759</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/PMIP_v10.5.0_CNL113759_FS.pdf" relativeURI="doc/PMIP_v10.5.0_CNL113759_FS.pdf"/>
+    <FileResource projectRelativePath="doc/PMIP_v10.5.0_CNL113759_PRI.pdf" relativeURI="doc/PMIP_v10.5.0_CNL113759_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/PMIP_v10.5.0_CNL113759_UG.pdf" relativeURI="doc/PMIP_v10.5.0_CNL113759_UG.pdf"/>
+    <FileResource projectRelativePath="src/PMIP_EncDec.cc" relativeURI="src/PMIP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/PMIP_Types.ttcn" relativeURI="src/PMIP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/PMIP_v10.5.0_CNL113759</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/PMIP_v8.5.0_CNL113704.tpd b/regression_test/XML/tpdValidTest/tpdTest/PMIP_v8.5.0_CNL113704.tpd
new file mode 100644
index 000000000..c50ac1f27
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/PMIP_v8.5.0_CNL113704.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               PMIP_v8.5.0_CNL113704.tpd
+   Description:        tpd project file
+   Rev:                R1C01
+   Prodnr:             CNL 113 704
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>PMIP_v8.5.0_CNL113704</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/PMIP_v8.5.0_CNL113704_FS.pdf" relativeURI="doc/PMIP_v8.5.0_CNL113704_FS.pdf"/>
+    <FileResource projectRelativePath="doc/PMIP_v8.5.0_CNL113704_PRI.pdf" relativeURI="doc/PMIP_v8.5.0_CNL113704_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/PMIP_v8.5.0_CNL113704_UG.pdf" relativeURI="doc/PMIP_v8.5.0_CNL113704_UG.pdf"/>
+    <FileResource projectRelativePath="src/PMIP_EncDec.cc" relativeURI="src/PMIP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/PMIP_Types.ttcn" relativeURI="src/PMIP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/PMIP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ParlayX_CNL113540.tpd b/regression_test/XML/tpdValidTest/tpdTest/ParlayX_CNL113540.tpd
new file mode 100644
index 000000000..efba17890
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ParlayX_CNL113540.tpd
@@ -0,0 +1,264 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ParlayX_CNL113540.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 540
+   Updated:            2012-06-22
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ParlayX_CNL113540</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="AmountCharging.asn" relativeURI="src/AmountCharging.asn"/>
+    <FileResource projectRelativePath="CommonTypes.asn" relativeURI="src/CommonTypes.asn"/>
+    <FileResource projectRelativePath="PaymentTypes.asn" relativeURI="src/PaymentTypes.asn"/>
+    <FileResource projectRelativePath="ReserveAmountCharging.asn" relativeURI="src/ReserveAmountCharging.asn"/>
+    <FileResource projectRelativePath="ReserveVolumeCharging.asn" relativeURI="src/ReserveVolumeCharging.asn"/>
+    <FileResource projectRelativePath="SOAP.asn" relativeURI="src/SOAP.asn"/>
+    <FileResource projectRelativePath="SOAP_EncDec.cc" relativeURI="src/SOAP_EncDec.cc"/>
+    <FileResource projectRelativePath="SOAP_Types.ttcn" relativeURI="src/SOAP_Types.ttcn"/>
+    <FileResource projectRelativePath="SOAP_linux.c" relativeURI="src/SOAP_linux.c"/>
+    <FileResource projectRelativePath="SOAP_linux64bit.c" relativeURI="src/SOAP_linux64bit.c"/>
+    <FileResource projectRelativePath="SOAP_oss.c" relativeURI="src/SOAP_oss.c"/>
+    <FileResource projectRelativePath="SOAP_oss.h" relativeURI="src/SOAP_oss.h"/>
+    <FileResource projectRelativePath="SOAP_solarisx86.c" relativeURI="src/SOAP_solarisx86.c"/>
+    <FileResource projectRelativePath="VolumeCharging.asn" relativeURI="src/VolumeCharging.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ParlayX_CNL113540</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ParlayX_CNL113540</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIX_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ParlayX_CNL113540</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ParlayX_CNL113540</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>SOAP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ParlayX_CNL113540</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ProtocolModules_Common.tpd b/regression_test/XML/tpdValidTest/tpdTest/ProtocolModules_Common.tpd
new file mode 100644
index 000000000..9ba2500fe
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ProtocolModules_Common.tpd
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ProtocolModules_Common</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="General_Types.ttcn" relativeURI="src/General_Types.ttcn"/>
+    <FileResource projectRelativePath="MobileDomainDefinitions.asn" relativeURI="src/MobileDomainDefinitions.asn"/>
+    <FileResource projectRelativePath="general_typedefs.ttcn" relativeURI="src/general_typedefs.ttcn"/>
+    <FileResource projectRelativePath="XSD.ttcn" relativeURI="src/XSD.ttcn"/>
+    <FileResource projectRelativePath="UsefulTtcn3Types.ttcn" relativeURI="src/UsefulTtcn3Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/ProtocolModules_Common</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/RANAP_v10.4.0_CNL113742.tpd b/regression_test/XML/tpdValidTest/tpdTest/RANAP_v10.4.0_CNL113742.tpd
new file mode 100644
index 000000000..9d86f0d1d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/RANAP_v10.4.0_CNL113742.tpd
@@ -0,0 +1,302 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               RANAP_v10.4.0_CNL113742.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 742
+   Updated:            2012-10-19
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>RANAP_v10.4.0_CNL113742</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/RANAP_v10.4.0_CNL113742_FS.pdf" relativeURI="doc/RANAP_v10.4.0_CNL113742_FS.pdf"/>
+    <FileResource projectRelativePath="doc/RANAP_v10.4.0_CNL113742_PRI.pdf" relativeURI="doc/RANAP_v10.4.0_CNL113742_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/RANAP_v10.4.0_CNL113742_UG.pdf" relativeURI="doc/RANAP_v10.4.0_CNL113742_UG.pdf"/>
+    <FileResource projectRelativePath="src/RANAP_CommonDataTypes.asn" relativeURI="src/RANAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/RANAP_Constants.asn" relativeURI="src/RANAP_Constants.asn"/>
+    <FileResource projectRelativePath="src/RANAP_Containers.asn" relativeURI="src/RANAP_Containers.asn"/>
+    <FileResource projectRelativePath="src/RANAP_TransparentContainers.asn" relativeURI="src/RANAP_TransparentContainers.asn"/>
+    <FileResource projectRelativePath="src/RANAP_EncDec.cc" relativeURI="src/RANAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/RANAP_IEs.asn" relativeURI="src/RANAP_IEs.asn"/>
+    <FileResource projectRelativePath="src/RANAP_PDU_Contents.asn" relativeURI="src/RANAP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/RANAP_PDU_Descriptions.asn" relativeURI="src/RANAP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/RANAP_Types.ttcn" relativeURI="src/RANAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/ranap_class.c" relativeURI="src/ranap_class.c"/>
+    <FileResource projectRelativePath="src/ranap_class.h" relativeURI="src/ranap_class.h"/>
+    <FileResource projectRelativePath="src/ranap_class_linux.c" relativeURI="src/ranap_class_linux.c"/>
+    <FileResource projectRelativePath="src/ranap_class_linux64bit.c" relativeURI="src/ranap_class_linux64bit.c"/>
+    <FileResource projectRelativePath="src/ranap_class_solarisx86.c" relativeURI="src/ranap_class_solarisx86.c"/>    
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v10.4.0_CNL113742</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>	
+        <FileResource>
+          <FilePath>src/ranap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>				
+      </FileProperties>
+    </Configuration>        
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v10.4.0_CNL113742</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>	
+        <FileResource>
+          <FilePath>src/ranap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>		
+      </FileProperties>
+    </Configuration>            
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v10.4.0_CNL113742</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>	
+        <FileResource>
+          <FilePath>src/ranap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>						
+      </FileProperties>
+    </Configuration>                
+    <Configuration name="SPARC_SOLARIS">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v10.4.0_CNL113742</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>							
+      </FileProperties>
+    </Configuration>           
+    <Configuration name="SOLARIS_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v10.4.0_CNL113742</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>				
+      </FileProperties>
+    </Configuration>      
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718.tpd b/regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718.tpd
new file mode 100644
index 000000000..888819bd3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718.tpd
@@ -0,0 +1,226 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               RANAP_v9.5.0_CNL113718.tpd
+   Description:        tpd project file
+   Rev:                R3C01
+   Prodnr:             CNL 113 718
+   Updated:            2012-10-19
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>RANAP_v9.5.0_CNL113718</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/RANAP_v9.5.0_CNL113718_FS.pdf" relativeURI="doc/RANAP_v9.5.0_CNL113718_FS.pdf"/>
+    <FileResource projectRelativePath="doc/RANAP_v9.5.0_CNL113718_PRI.pdf" relativeURI="doc/RANAP_v9.5.0_CNL113718_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/RANAP_v9.5.0_CNL113718_UG.pdf" relativeURI="doc/RANAP_v9.5.0_CNL113718_UG.pdf"/>
+    <FileResource projectRelativePath="src/RANAP_CommonDataTypes.asn" relativeURI="src/RANAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/RANAP_Constants.asn" relativeURI="src/RANAP_Constants.asn"/>
+    <FileResource projectRelativePath="src/RANAP_Containers.asn" relativeURI="src/RANAP_Containers.asn"/>
+    <FileResource projectRelativePath="src/RANAP_TransparentContainers.asn" relativeURI="src/RANAP_TransparentContainers.asn"/>
+    <FileResource projectRelativePath="src/RANAP_EncDec.cc" relativeURI="src/RANAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/RANAP_IEs.asn" relativeURI="src/RANAP_IEs.asn"/>
+    <FileResource projectRelativePath="src/RANAP_PDU_Contents.asn" relativeURI="src/RANAP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/RANAP_PDU_Descriptions.asn" relativeURI="src/RANAP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/RANAP_Types.ttcn" relativeURI="src/RANAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/ranap_class.c" relativeURI="src/ranap_class.c"/>
+    <FileResource projectRelativePath="src/ranap_class.h" relativeURI="src/ranap_class.h"/>
+    <FileResource projectRelativePath="src/ranap_class_linux.c" relativeURI="src/ranap_class_linux.c"/>
+    <FileResource projectRelativePath="src/ranap_class_linux64bit.c" relativeURI="src/ranap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SPARC_SOLARIS">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC.tpd b/regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC.tpd
new file mode 100644
index 000000000..aaa404882
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC.tpd
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="RANAP_CommonDataTypes.asn" relativeURI="../../src/RANAP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="RANAP_Constants.asn" relativeURI="../../src/RANAP_Constants.asn"/>
+    <FileResource projectRelativePath="RANAP_Containers.asn" relativeURI="../../src/RANAP_Containers.asn"/>
+    <FileResource projectRelativePath="RANAP_EncDec.cc" relativeURI="../../src/RANAP_EncDec.cc"/>
+    <FileResource projectRelativePath="RANAP_IEs.asn" relativeURI="../../src/RANAP_IEs.asn"/>
+    <FileResource projectRelativePath="RANAP_PDU_Contents.asn" relativeURI="../../src/RANAP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="RANAP_PDU_Descriptions.asn" relativeURI="../../src/RANAP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="RANAP_TransparentContainers.asn" relativeURI="RANAP_TransparentContainers.asn"/>
+    <FileResource projectRelativePath="RANAP_Types.ttcn" relativeURI="../../src/RANAP_Types.ttcn"/>
+    <FileResource projectRelativePath="ranap_class.c" relativeURI="ranap_class.c"/>
+    <FileResource projectRelativePath="ranap_class.h" relativeURI="ranap_class.h"/>
+    <FileResource projectRelativePath="ranap_class_linux.c" relativeURI="ranap_class_linux.c"/>
+    <FileResource projectRelativePath="ranap_class_linux64bit.c" relativeURI="ranap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>ranap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SPARC_SOLARIS">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RANAP_v9.5.0_CNL113718_demo_RNC_to_RNC</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>ranap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>ranap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/ROSE_CNL113369.tpd b/regression_test/XML/tpdValidTest/tpdTest/ROSE_CNL113369.tpd
new file mode 100644
index 000000000..799ed2fb7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/ROSE_CNL113369.tpd
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               ROSE_CNL113369.tpd
+   Description:        tpd project file
+   Rev:                R1D01
+   Prodnr:             CNL 113 369
+   Updated:            2011-11-16
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>ROSE_CNL113369</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/ROSE_CNL113369_PRI.pdf" relativeURI="doc/ROSE_CNL113369_PRI.pdf"/>
+    <FileResource projectRelativePath="src/Remote_Operations_Generic_ROS_PDUs.asn" relativeURI="src/Remote_Operations_Generic_ROS_PDUs.asn"/>
+    <FileResource projectRelativePath="src/Remote_Operations_Information_Objects.asn" relativeURI="src/Remote_Operations_Information_Objects.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/ROSE_CNL113369</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/RTP_CNL113392.tpd b/regression_test/XML/tpdValidTest/tpdTest/RTP_CNL113392.tpd
new file mode 100644
index 000000000..629c23fbd
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/RTP_CNL113392.tpd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               RTP_CNL113392.tpd
+   Description:        tpd project file
+   Rev:                R3B
+   Prodnr:             CNL 113 392
+   Updated:            2013-04-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>RTP_CNL113392</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RTP_CNL113392</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>f_.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/RTSP_CNL113588.tpd b/regression_test/XML/tpdValidTest/tpdTest/RTSP_CNL113588.tpd
new file mode 100644
index 000000000..9649550c9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/RTSP_CNL113588.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               RTSP_CNL113588.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 588
+   Updated:            2012-05-16
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>RTSP_CNL113588</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/RTSP_CNL113588_FS.pdf" relativeURI="doc/RTSP_CNL113588_FS.pdf"/>
+    <FileResource projectRelativePath="doc/RTSP_CNL113588_PRI.pdf" relativeURI="doc/RTSP_CNL113588_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/RTSP_CNL113588_UG.pdf" relativeURI="doc/RTSP_CNL113588_UG.pdf"/>
+    <FileResource projectRelativePath="src/RTSP_EncDec.cc" relativeURI="src/RTSP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/RTSP_Types.ttcn" relativeURI="src/RTSP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/RTSP_CNL113588</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/S1AP_v10.6.0_CNL113756.tpd b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v10.6.0_CNL113756.tpd
new file mode 100644
index 000000000..6c04b7b1b
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v10.6.0_CNL113756.tpd
@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               S1AP_v10.6.0_CNL113756.tpd
+   Description:        tpd project file
+   Rev:                R1B
+   Prodnr:             CNL 113 756
+   Updated:            2013-03-26
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>S1AP_v10.6.0_CNL113756</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/S1AP_CommonDataTypes.asn" relativeURI="src/S1AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Constants.asn" relativeURI="src/S1AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Containers.asn" relativeURI="src/S1AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/S1AP_EncDec.cc" relativeURI="src/S1AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/S1AP_IEs.asn" relativeURI="src/S1AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Contents.asn" relativeURI="src/S1AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Descriptions.asn" relativeURI="src/S1AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Types.ttcn" relativeURI="src/S1AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/S1AP_v10.6.0_CNL113756.grp" relativeURI="src/S1AP_v10.6.0_CNL113756.grp"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/s1ap_class.c" relativeURI="src/s1ap_class.c"/>
+    <FileResource projectRelativePath="src/s1ap_class.h" relativeURI="src/s1ap_class.h"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux.c" relativeURI="src/s1ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux64bit.c" relativeURI="src/s1ap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v10.6.0_CNL113756</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v10.6.0_CNL113756</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v10.6.0_CNL113756</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v10.6.0_CNL113756</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/S1AP_v8.7.0_CNL113672.tpd b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v8.7.0_CNL113672.tpd
new file mode 100644
index 000000000..281f0d960
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v8.7.0_CNL113672.tpd
@@ -0,0 +1,321 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               S1AP_v8.7.0_CNL113672.tpd
+   Description:        tpd project file
+   Rev:                R1A03
+   Prodnr:             CNL 113 672
+   Updated:            2012-01-26
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>S1AP_v8.7.0_CNL113672</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/S1AP_v8.7.0_CNL113672_FS.pdf" relativeURI="doc/S1AP_v8.7.0_CNL113672_FS.pdf"/>
+    <FileResource projectRelativePath="doc/S1AP_v8.7.0_CNL113672_PRI.pdf" relativeURI="doc/S1AP_v8.7.0_CNL113672_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/S1AP_v8.7.0_CNL113672_UG.pdf" relativeURI="doc/S1AP_v8.7.0_CNL113672_UG.pdf"/>
+    <FileResource projectRelativePath="src/S1AP_CommonDataTypes.asn" relativeURI="src/S1AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Constants.asn" relativeURI="src/S1AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Containers.asn" relativeURI="src/S1AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/S1AP_EncDec.cc" relativeURI="src/S1AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/S1AP_IEs.asn" relativeURI="src/S1AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Contents.asn" relativeURI="src/S1AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Descriptions.asn" relativeURI="src/S1AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Types.ttcn" relativeURI="src/S1AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/s1ap_class.c" relativeURI="src/s1ap_class.c"/>
+    <FileResource projectRelativePath="src/s1ap_class.h" relativeURI="src/s1ap_class.h"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux.c" relativeURI="src/s1ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux64bit.c" relativeURI="src/s1ap_class_linux64bit.c"/>
+    <FileResource projectRelativePath="src/s1ap_class_solarisx86.c" relativeURI="src/s1ap_class_solarisx86.c"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v8.7.0_CNL113672</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v8.7.0_CNL113672</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v8.7.0_CNL113672</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v8.7.0_CNL113672</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v8.7.0_CNL113672</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.4.0_CNL113717.tpd b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.4.0_CNL113717.tpd
new file mode 100644
index 000000000..2148085cb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.4.0_CNL113717.tpd
@@ -0,0 +1,246 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               S1AP_v9.4.0_CNL113717.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 717
+   Updated:            2012-10-19
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>S1AP_v9.4.0_CNL113717</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/S1AP_v9.4.0_CNL113717_FS.pdf" relativeURI="doc/S1AP_v9.4.0_CNL113717_FS.pdf"/>
+    <FileResource projectRelativePath="doc/S1AP_v9.4.0_CNL113717_PRI.pdf" relativeURI="doc/S1AP_v9.4.0_CNL113717_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/S1AP_v9.4.0_CNL113717_UG.pdf" relativeURI="doc/S1AP_v9.4.0_CNL113717_UG.pdf"/>
+    <FileResource projectRelativePath="src/S1AP_CommonDataTypes.asn" relativeURI="src/S1AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Constants.asn" relativeURI="src/S1AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Containers.asn" relativeURI="src/S1AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/S1AP_EncDec.cc" relativeURI="src/S1AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/S1AP_IEs.asn" relativeURI="src/S1AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Contents.asn" relativeURI="src/S1AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Descriptions.asn" relativeURI="src/S1AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Types.ttcn" relativeURI="src/S1AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/s1ap_class.c" relativeURI="src/s1ap_class.c"/>
+    <FileResource projectRelativePath="src/s1ap_class.h" relativeURI="src/s1ap_class.h"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux.c" relativeURI="src/s1ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux64bit.c" relativeURI="src/s1ap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.4.0_CNL113717</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.4.0_CNL113717</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.4.0_CNL113717</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.4.0_CNL113717</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.7.0_CNL113732.tpd b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.7.0_CNL113732.tpd
new file mode 100644
index 000000000..e7697dfb7
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/S1AP_v9.7.0_CNL113732.tpd
@@ -0,0 +1,222 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               S1AP_v9.7.0_CNL113732.tpd
+   Description:        tpd project file
+   Rev:                R2B01
+   Prodnr:             CNL 113 732
+   Updated:            2012-10-19
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>S1AP_v9.7.0_CNL113732</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/S1AP_v9.7.0_CNL113732_FS.pdf" relativeURI="doc/S1AP_v9.7.0_CNL113732_FS.pdf"/>
+    <FileResource projectRelativePath="doc/S1AP_v9.7.0_CNL113732_PRI.pdf" relativeURI="doc/S1AP_v9.7.0_CNL113732_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/S1AP_v9.7.0_CNL113732_UG.pdf" relativeURI="doc/S1AP_v9.7.0_CNL113732_UG.pdf"/>
+    <FileResource projectRelativePath="src/S1AP_CommonDataTypes.asn" relativeURI="src/S1AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Constants.asn" relativeURI="src/S1AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Containers.asn" relativeURI="src/S1AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/S1AP_EncDec.cc" relativeURI="src/S1AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/S1AP_IEs.asn" relativeURI="src/S1AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Contents.asn" relativeURI="src/S1AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/S1AP_PDU_Descriptions.asn" relativeURI="src/S1AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/S1AP_Types.ttcn" relativeURI="src/S1AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/s1ap_class.c" relativeURI="src/s1ap_class.c"/>
+    <FileResource projectRelativePath="src/s1ap_class.h" relativeURI="src/s1ap_class.h"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux.c" relativeURI="src/s1ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/s1ap_class_linux64bit.c" relativeURI="src/s1ap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.7.0_CNL113732</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.7.0_CNL113732</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.7.0_CNL113732</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/S1AP_v9.7.0_CNL113732</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/s1ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/s1ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v10.0.0_CNL113734.tpd b/regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v10.0.0_CNL113734.tpd
new file mode 100644
index 000000000..30d9d4dff
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v10.0.0_CNL113734.tpd
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SBC_AP_v10.0.0_CNL113734.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 734
+   Updated:            2011-12-12
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SBC_AP_v10.0.0_CNL113734</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SBC_AP_v10.0.0_CNL113734_FS.pdf" relativeURI="doc/SBC_AP_v10.0.0_CNL113734_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SBC_AP_v10.0.0_CNL113734_PRI.pdf" relativeURI="doc/SBC_AP_v10.0.0_CNL113734_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SBC_AP_v10.0.0_CNL113734_UG.pdf" relativeURI="doc/SBC_AP_v10.0.0_CNL113734_UG.pdf"/>
+    <FileResource projectRelativePath="src/SBC_AP_CommonDataTypes.asn" relativeURI="src/SBC_AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_Constants.asn" relativeURI="src/SBC_AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_Containers.asn" relativeURI="src/SBC_AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_EncDec.cc" relativeURI="src/SBC_AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SBC_AP_IEs.asn" relativeURI="src/SBC_AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_PDU_Contents.asn" relativeURI="src/SBC_AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_PDU_Descriptions.asn" relativeURI="src/SBC_AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_Types.ttcn" relativeURI="src/SBC_AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/sbc_ap_class.c" relativeURI="src/sbc_ap_class.c"/>
+    <FileResource projectRelativePath="src/sbc_ap_class.h" relativeURI="src/sbc_ap_class.h"/>
+    <FileResource projectRelativePath="src/sbc_ap_class_linux.c" relativeURI="src/sbc_ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/sbc_ap_class_linux64bit.c" relativeURI="src/sbc_ap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v10.0.0_CNL113734</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v10.0.0_CNL113734</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v10.0.0_CNL113734</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v10.0.0_CNL113734</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v9.3.0_CNL113731.tpd b/regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v9.3.0_CNL113731.tpd
new file mode 100644
index 000000000..726902c38
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SBC_AP_v9.3.0_CNL113731.tpd
@@ -0,0 +1,238 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SBC_AP_v9.3.0_CNL113731.tpd
+   Description:        tpd project file
+   Rev:                R1A02
+   Prodnr:             CNL 113 731
+   Updated:            2011-11-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SBC_AP_v9.3.0_CNL113731</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SBC_AP_v9.3.0_CNL113731_FS.pdf" relativeURI="doc/SBC_AP_v9.3.0_CNL113731_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SBC_AP_v9.3.0_CNL113731_PRI.pdf" relativeURI="doc/SBC_AP_v9.3.0_CNL113731_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SBC_AP_v9.3.0_CNL113731_UG.pdf" relativeURI="doc/SBC_AP_v9.3.0_CNL113731_UG.pdf"/>
+    <FileResource projectRelativePath="src/SBC_AP_CommonDataTypes.asn" relativeURI="src/SBC_AP_CommonDataTypes.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_Constants.asn" relativeURI="src/SBC_AP_Constants.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_Containers.asn" relativeURI="src/SBC_AP_Containers.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_EncDec.cc" relativeURI="src/SBC_AP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SBC_AP_IEs.asn" relativeURI="src/SBC_AP_IEs.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_PDU_Contents.asn" relativeURI="src/SBC_AP_PDU_Contents.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_PDU_Descriptions.asn" relativeURI="src/SBC_AP_PDU_Descriptions.asn"/>
+    <FileResource projectRelativePath="src/SBC_AP_Types.ttcn" relativeURI="src/SBC_AP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+    <FileResource projectRelativePath="src/sbc_ap_class.c" relativeURI="src/sbc_ap_class.c"/>
+    <FileResource projectRelativePath="src/sbc_ap_class.h" relativeURI="src/sbc_ap_class.h"/>
+    <FileResource projectRelativePath="src/sbc_ap_class_linux.c" relativeURI="src/sbc_ap_class_linux.c"/>
+    <FileResource projectRelativePath="src/sbc_ap_class_linux64bit.c" relativeURI="src/sbc_ap_class_linux64bit.c"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v9.3.0_CNL113731</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v9.3.0_CNL113731</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v9.3.0_CNL113731</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SBC_AP_v9.3.0_CNL113731</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <moduleParameter>tsp.*</moduleParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/sbc_ap_class.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/sbc_ap_class_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SCCP_CNL113341.tpd b/regression_test/XML/tpdValidTest/tpdTest/SCCP_CNL113341.tpd
new file mode 100644
index 000000000..174280822
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SCCP_CNL113341.tpd
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SCCP_CNL113341.tpd
+   Description:        tpd project file
+   Rev:                R6A05
+   Prodnr:             CNL 113 341
+   Updated:            2012-11-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SCCP_CNL113341</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="MTP3asp_CNL113337" projectLocationURI="../../TestPorts/MTP3asp_CNL113337/MTP3asp_CNL113337.tpd"/>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SCCP_CNL113341_FS.pdf" relativeURI="doc/SCCP_CNL113341_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SCCP_CNL113341_PRI.pdf" relativeURI="doc/SCCP_CNL113341_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SCCP_CNL113341_UG.pdf" relativeURI="doc/SCCP_CNL113341_UG.pdf"/>
+    <FileResource projectRelativePath="src/SCCP_Emulation.ttcn" relativeURI="src/SCCP_Emulation.ttcn"/>
+    <FileResource projectRelativePath="src/SCCP_EncDec.cc" relativeURI="src/SCCP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SCCP_Mapping.ttcnpp" relativeURI="src/SCCP_Mapping.ttcnpp"/>
+    <FileResource projectRelativePath="src/SCCP_Types.ttcn" relativeURI="src/SCCP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/SCCPasp_Types.ttcn" relativeURI="src/SCCPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>USE_MTP3_DISTRIBUTOR</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCCP_CNL113341</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="USE_MTP3_DISTRIBUTOR">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCCP_CNL113341</targetExecutable>
+          <TTCN3preprocessorDefines>
+            <listItem>USE_MTP3_DISTRIBUTOR</listItem>
+          </TTCN3preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="NO USE_MTP3_DISTRIBUTOR">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCCP_CNL113341</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SCCPasp_CNL113348.tpd b/regression_test/XML/tpdValidTest/tpdTest/SCCPasp_CNL113348.tpd
new file mode 100644
index 000000000..2b1c2327f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SCCPasp_CNL113348.tpd
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SCCPasp_CNL113348.tpd
+   Description:        tpd project file
+   Rev:                R11A02
+   Prodnr:             CNL 113 348
+   Updated:            2012-09-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SCCPasp_CNL113348</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="SS7Common_CNL113755" projectLocationURI="../Common_Components/SS7Common_CNL113755/SS7Common_CNL113755.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SCCPasp_CNL113348_FS.pdf" relativeURI="doc/SCCPasp_CNL113348_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SCCPasp_CNL113348_PRI.pdf" relativeURI="doc/SCCPasp_CNL113348_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SCCPasp_CNL113348_UG.pdf" relativeURI="doc/SCCPasp_CNL113348_UG.pdf"/>
+    <FileResource projectRelativePath="src/SCCPasp_PT.cc" relativeURI="src/SCCPasp_PT.cc"/>
+    <FileResource projectRelativePath="src/SCCPasp_PT.hh" relativeURI="src/SCCPasp_PT.hh"/>
+    <FileResource projectRelativePath="src/SCCPasp_PT_Daemon_Interface.cc" relativeURI="src/SCCPasp_PT_Daemon_Interface.cc"/>
+    <FileResource projectRelativePath="src/SCCPasp_PT_Daemon_Interface.hh" relativeURI="src/SCCPasp_PT_Daemon_Interface.hh"/>
+    <FileResource projectRelativePath="src/SCCPasp_PT_EIN_Interface.cc" relativeURI="src/SCCPasp_PT_EIN_Interface.cc"/>
+    <FileResource projectRelativePath="src/SCCPasp_PT_EIN_Interface.hh" relativeURI="src/SCCPasp_PT_EIN_Interface.hh"/>
+    <FileResource projectRelativePath="src/SCCPasp_PortType.ttcn" relativeURI="src/SCCPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/SCCPasp_Types.ttcn" relativeURI="src/SCCPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCCPasp_CNL113348</targetExecutable>
+          <preprocessorDefines>
+            <listItem>EINSS7_THREADSAFE</listItem>
+            <listItem>SCCP_CAA901437_R12</listItem>
+            <listItem>CP_R12</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[SS7_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>einss7_n_r</listItem>
+            <listItem>pthread</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[SS7_DIR]/lib64</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SCCPasp_PT_Daemon_Interface.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SCCPasp_PT_Daemon_Interface.hh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="Load">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCCPasp_CNL113348</targetExecutable>
+          <preprocessorDefines>
+            <listItem>EINSS7_THREADSAFE</listItem>
+            <listItem>SCCP_CAA901437_R12</listItem>
+            <listItem>CP_R12</listItem>
+            <listItem>SCCP_TP_FOR_LOAD</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[SS7_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>einss7_n_r</listItem>
+            <listItem>pthread</listItem>
+            <listItem>util</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[SS7_DIR]/lib64</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SCCPasp_PT_Daemon_Interface.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SCCPasp_PT_Daemon_Interface.hh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_CNL113477.tpd b/regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_CNL113477.tpd
new file mode 100644
index 000000000..c6b43c50a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_CNL113477.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SCTP_Daemon_CNL113477.tpd
+   Description:        tpd project file
+   Rev:                R3A02
+   Prodnr:             CNL 113 477
+   Updated:            2012-05-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SCTP_Daemon_CNL113477</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SCTP_Daemon_CNL113477_FS.pdf" relativeURI="doc/SCTP_Daemon_CNL113477_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SCTP_Daemon_CNL113477_PRI.pdf" relativeURI="doc/SCTP_Daemon_CNL113477_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SCTP_Daemon_CNL113477_UG.pdf" relativeURI="doc/SCTP_Daemon_CNL113477_UG.pdf"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon.ttcn" relativeURI="src/SCTP_Daemon.ttcn"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_CTRL_EncDec.cc" relativeURI="src/SCTP_Daemon_CTRL_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Ctrl_Types.ttcn" relativeURI="src/SCTP_Daemon_Ctrl_Types.ttcn"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Externals.cc" relativeURI="src/SCTP_Daemon_Externals.cc"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCTP_Daemon_CNL113477</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_Dynamic_CNL113630.tpd b/regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_Dynamic_CNL113630.tpd
new file mode 100644
index 000000000..ebac25ca9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SCTP_Daemon_Dynamic_CNL113630.tpd
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SCTP_Daemon_Dynamic_CNL113630.tpd
+   Description:        tpd project file
+   Rev:                R1A05
+   Prodnr:             CNL 113 630
+   Updated:            2012-01-24
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SCTP_Daemon_Dynamic_CNL113630</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Common.tpd"/>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Interface" projectLocationURI="../../Libraries/TCCUsefulFunctions_CNL113472/TCCUsefulFunctions_CNL113472_Interface.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SCTP_Daemon_Dynamic_CNL113630_FS.pdf" relativeURI="doc/SCTP_Daemon_Dynamic_CNL113630_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SCTP_Daemon_Dynamic_CNL113630_PRI.pdf" relativeURI="doc/SCTP_Daemon_Dynamic_CNL113630_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SCTP_Daemon_Dynamic_CNL113630_UG.pdf" relativeURI="doc/SCTP_Daemon_Dynamic_CNL113630_UG.pdf"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Dynamic.ttcn" relativeURI="src/SCTP_Daemon_Dynamic.ttcn"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Dynamic_IPL4_CtrlFuncDef.cc" relativeURI="src/SCTP_Daemon_Dynamic_IPL4_CtrlFuncDef.cc"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Dynamic_IPL4_CtrlFunct.ttcn" relativeURI="src/SCTP_Daemon_Dynamic_IPL4_CtrlFunct.ttcn"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Dynamic_Interface_Definitions.ttcn" relativeURI="src/SCTP_Daemon_Dynamic_Interface_Definitions.ttcn"/>
+    <FileResource projectRelativePath="src/SCTP_Daemon_Dynamic_Types.ttcn" relativeURI="src/SCTP_Daemon_Dynamic_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCTP_Daemon_Dynamic_CNL113630</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SCTPasp_CNL113469.tpd b/regression_test/XML/tpdValidTest/tpdTest/SCTPasp_CNL113469.tpd
new file mode 100644
index 000000000..e634e94e1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SCTPasp_CNL113469.tpd
@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SCTPasp_CNL113469.tpd
+   Description:        tpd project file
+   Rev:                R9A02
+   Prodnr:             CNL 113 469
+   Updated:            2013-01-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SCTPasp_CNL113469</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/SCTPasp_PT.cc" relativeURI="src/SCTPasp_PT.cc"/>
+    <FileResource projectRelativePath="src/SCTPasp_PT.hh" relativeURI="src/SCTPasp_PT.hh"/>
+    <FileResource projectRelativePath="src/SCTPasp_PortType.ttcn" relativeURI="src/SCTPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/SCTPasp_Types.ttcn" relativeURI="src/SCTPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>LKSCTP_1_0_7</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCTPasp_CNL113469</targetExecutable>
+          <preprocessorDefines>
+            <listItem>LKSCTP_1_0_7</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="LKSCTP_1_0_7">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCTPasp_CNL113469</targetExecutable>
+          <preprocessorDefines>
+            <listItem>LKSCTP_1_0_7</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="NO LKSCTP_1_0_7">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCTPasp_CNL113469</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="LKSCTP_1_0_9">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SCTPasp_CNL113469</targetExecutable>
+          <preprocessorDefines>
+            <listItem>LKSCTP_1_0_9</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SDP_CNL113353.tpd b/regression_test/XML/tpdValidTest/tpdTest/SDP_CNL113353.tpd
new file mode 100644
index 000000000..925b785fe
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SDP_CNL113353.tpd
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SDP_CNL113353.tpd
+   Description:        tpd project file
+   Rev:                R9B01
+   Prodnr:             CNL 113 353
+   Updated:            2013-01-22
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SDP_CNL113353</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SDP_CNL113353_FS.pdf" relativeURI="doc/SDP_CNL113353_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SDP_CNL113353_PRI.pdf" relativeURI="doc/SDP_CNL113353_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SDP_CNL113353_UG.pdf" relativeURI="doc/SDP_CNL113353_UG.pdf"/>
+    <FileResource projectRelativePath="src/SDP_EncDec.cc" relativeURI="src/SDP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SDP_Types.ttcn" relativeURI="src/SDP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/SDP_parse_.tab.c" relativeURI="src/SDP_parse_.tab.c"/>
+    <FileResource projectRelativePath="src/SDP_parse_.tab.h" relativeURI="src/SDP_parse_.tab.h"/>
+    <FileResource projectRelativePath="src/SDP_parse_parser.h" relativeURI="src/SDP_parse_parser.h"/>
+    <FileResource projectRelativePath="src/SDP_parser.l" relativeURI="src/SDP_parser.l"/>
+    <FileResource projectRelativePath="src/SDP_parser.y" relativeURI="src/SDP_parser.y"/>
+    <FileResource projectRelativePath="src/lex.SDP_parse_.c" relativeURI="src/lex.SDP_parse_.c"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SDP_CNL113353</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SDP_parser.l</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SDP_parser.y</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SGsAP_v9.0.0_CNL113684.tpd b/regression_test/XML/tpdValidTest/tpdTest/SGsAP_v9.0.0_CNL113684.tpd
new file mode 100644
index 000000000..8e62d60fa
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SGsAP_v9.0.0_CNL113684.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SGsAP_v9.0.0_CNL113684.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 684
+   Updated:            2012-03-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SGsAP_v9.0.0_CNL113684</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SGsAP_v9.0.0_CNL113684_FS.pdf" relativeURI="doc/SGsAP_v9.0.0_CNL113684_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SGsAP_v9.0.0_CNL113684_PRI.pdf" relativeURI="doc/SGsAP_v9.0.0_CNL113684_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SGsAP_v9.0.0_CNL113684_UG.pdf" relativeURI="doc/SGsAP_v9.0.0_CNL113684_UG.pdf"/>
+    <FileResource projectRelativePath="src/SGsAP_Types.ttcn" relativeURI="src/SGsAP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SGsAP_v9.0.0_CNL113684</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SIPmsg_CNL113319.tpd b/regression_test/XML/tpdValidTest/tpdTest/SIPmsg_CNL113319.tpd
new file mode 100644
index 000000000..55947d3bb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SIPmsg_CNL113319.tpd
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SIPmsg_CNL113319.tpd
+   Description:        tpd project file
+   Rev:                R12A
+   Prodnr:             CNL 113 319
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SIPmsg_CNL113319</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SIPmsg_CNL113319_FS.pdf" relativeURI="doc/SIPmsg_CNL113319_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SIPmsg_CNL113319_PRI.pdf" relativeURI="doc/SIPmsg_CNL113319_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SIPmsg_CNL113319_UG.pdf" relativeURI="doc/SIPmsg_CNL113319_UG.pdf"/>
+    <FileResource projectRelativePath="src/SIP_parse.h" relativeURI="src/SIP_parse.h"/>
+    <FileResource projectRelativePath="src/SIP_parse.l" relativeURI="src/SIP_parse.l"/>
+    <FileResource projectRelativePath="src/SIP_parse.y" relativeURI="src/SIP_parse.y"/>
+    <FileResource projectRelativePath="src/SIP_parse_.tab.c" relativeURI="src/SIP_parse_.tab.c"/>
+    <FileResource projectRelativePath="src/SIP_parse_.tab.h" relativeURI="src/SIP_parse_.tab.h"/>
+    <FileResource projectRelativePath="src/SIPmsg_PT.cc" relativeURI="src/SIPmsg_PT.cc"/>
+    <FileResource projectRelativePath="src/SIPmsg_PT.hh" relativeURI="src/SIPmsg_PT.hh"/>
+    <FileResource projectRelativePath="src/SIPmsg_PortType.ttcn" relativeURI="src/SIPmsg_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/SIPmsg_Types.ttcn" relativeURI="src/SIPmsg_Types.ttcn"/>
+    <FileResource projectRelativePath="src/lex.SIP_parse_.c" relativeURI="src/lex.SIP_parse_.c"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SIPmsg_CNL113319</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c[g]?_.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SIP_parse.l</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SIP_parse.y</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SNMP_CNL113774.tpd b/regression_test/XML/tpdValidTest/tpdTest/SNMP_CNL113774.tpd
new file mode 100644
index 000000000..8e7cd5f24
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SNMP_CNL113774.tpd
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SNMP_CNL113774.tpd
+   Description:        tpd project file
+   Rev:                R1A
+   Prodnr:             CNL 113 774
+   Updated:            2013-03-29
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SNMP_CNL113774</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/SNMP.grp" relativeURI="src/SNMP.grp"/>
+    <FileResource projectRelativePath="src/SNMP_Functions.ttcn" relativeURI="src/SNMP_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/SNMP_Oi.cc" relativeURI="src/SNMP_Oi.cc"/>
+    <FileResource projectRelativePath="src/SNMP_USM.cc" relativeURI="src/SNMP_USM.cc"/>
+    <FileResource projectRelativePath="src/SNMPmsg_Types.asn" relativeURI="src/SNMPmsg_Types.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SNMP_CNL113774</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <altstep>.*</altstep>
+          <globalConstant>.*</globalConstant>
+          <externalConstant>.*</externalConstant>
+          <function>.*</function>
+          <externalFunction>.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <globalPort>.*</globalPort>
+          <globalTemplate>.*</globalTemplate>
+          <testcase>.*</testcase>
+          <globalTimer>.*</globalTimer>
+          <group>.*</group>
+          <localConstant>.*</localConstant>
+          <localVariable>.*</localVariable>
+          <localTemplate>.*</localTemplate>
+          <localVariableTemplate>.*</localVariableTemplate>
+          <localTimer>.*</localTimer>
+          <formalParameter>.*</formalParameter>
+          <componentConstant>.*</componentConstant>
+          <componentVariable>.*</componentVariable>
+          <componentTimer>.*</componentTimer>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SNMPmsg_CNL113344.tpd b/regression_test/XML/tpdValidTest/tpdTest/SNMPmsg_CNL113344.tpd
new file mode 100644
index 000000000..c18959a34
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SNMPmsg_CNL113344.tpd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SNMPmsg_CNL113344.tpd
+   Description:        tpd project file
+   Rev:                R4B01
+   Prodnr:             CNL 113 344
+   Updated:            2012-06-05
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SNMPmsg_CNL113344</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SNMPmsg_CNL113344_FS.pdf" relativeURI="doc/SNMPmsg_CNL113344_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SNMPmsg_CNL113344_PRI.pdf" relativeURI="doc/SNMPmsg_CNL113344_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SNMPmsg_CNL113344_UG.pdf" relativeURI="doc/SNMPmsg_CNL113344_UG.pdf"/>
+    <FileResource projectRelativePath="src/SNMP_Oi.cc" relativeURI="src/SNMP_Oi.cc"/>
+    <FileResource projectRelativePath="src/SNMP_Oi_Functions.ttcn" relativeURI="src/SNMP_Oi_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/SNMP_USM.cc" relativeURI="src/SNMP_USM.cc"/>
+    <FileResource projectRelativePath="src/SNMP_USM_Functions.ttcn" relativeURI="src/SNMP_USM_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/SNMPmsg_PT.cc" relativeURI="src/SNMPmsg_PT.cc"/>
+    <FileResource projectRelativePath="src/SNMPmsg_PT.hh" relativeURI="src/SNMPmsg_PT.hh"/>
+    <FileResource projectRelativePath="src/SNMPmsg_PortType.ttcn" relativeURI="src/SNMPmsg_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/SNMPmsg_Types.asn" relativeURI="src/SNMPmsg_Types.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SNMPmsg_CNL113344</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SQLasp_CNL113760.tpd b/regression_test/XML/tpdValidTest/tpdTest/SQLasp_CNL113760.tpd
new file mode 100644
index 000000000..8960b52f5
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SQLasp_CNL113760.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SQLasp_CNL113760.tpd
+   Description:        tpd project file
+   Rev:                R1A
+   Prodnr:             CNL 113 760
+   Updated:            2013-03-26
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SQLasp_CNL113760</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/SQL_MySQL_interface.cc" relativeURI="src/SQL_MySQL_interface.cc"/>
+    <FileResource projectRelativePath="src/SQL_PortTypes.ttcn" relativeURI="src/SQL_PortTypes.ttcn"/>
+    <FileResource projectRelativePath="src/SQL_SQLite_interface.cc" relativeURI="src/SQL_SQLite_interface.cc"/>
+    <FileResource projectRelativePath="src/SQL_interface.hh" relativeURI="src/SQL_interface.hh"/>
+    <FileResource projectRelativePath="src/SQLasp_PT.cc" relativeURI="src/SQLasp_PT.cc"/>
+    <FileResource projectRelativePath="src/SQLasp_PT.hh" relativeURI="src/SQLasp_PT.hh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SQLasp_CNL113760</targetExecutable>
+          <linkerLibraries>
+            <listItem>mysqlclient</listItem>
+            <listItem>z</listItem>
+            <listItem>sqlite3</listItem>
+          </linkerLibraries>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SRTP_CNL113769.tpd b/regression_test/XML/tpdValidTest/tpdTest/SRTP_CNL113769.tpd
new file mode 100644
index 000000000..bdbf36626
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SRTP_CNL113769.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SRTP_CNL113769.tpd
+   Description:        tpd project file
+   Rev:                R1A
+   Prodnr:             CNL 113 769
+   Updated:            2013-04-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SRTP_CNL113769</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="RTP_CNL113392" projectLocationURI="../RTP_CNL113392/RTP_CNL113392.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <useAbsolutePath>true</useAbsolutePath>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <singleMode>true</singleMode>
+          <targetExecutable>bin/SRTP_CNL113769</targetExecutable>
+          <preprocessorDefines>
+            <listItem>SRTP_LITTLE_ENDIAN</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SS7Common_CNL113755.tpd b/regression_test/XML/tpdValidTest/tpdTest/SS7Common_CNL113755.tpd
new file mode 100644
index 000000000..a70f80833
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SS7Common_CNL113755.tpd
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SS7Common_CNL113755.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 755
+   Updated:            2012-09-04
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SS7Common_CNL113755</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SS7Common_CNL113755_FS.pdf" relativeURI="doc/SS7Common_CNL113755_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SS7Common_CNL113755_PRI.pdf" relativeURI="doc/SS7Common_CNL113755_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SS7Common_CNL113755_UG.pdf" relativeURI="doc/SS7Common_CNL113755_UG.pdf"/>
+    <FileResource projectRelativePath="src/SS7Common.cc" relativeURI="src/SS7Common.cc"/>
+    <FileResource projectRelativePath="src/SS7Common.hh" relativeURI="src/SS7Common.hh"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SS7Common_CNL113755</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[SS7_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>einss7_n_r</listItem>
+            <listItem>pthread</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[SS7_DIR]/lib64</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SSHCLIENTasp_CNL113484.tpd b/regression_test/XML/tpdValidTest/tpdTest/SSHCLIENTasp_CNL113484.tpd
new file mode 100644
index 000000000..02a995517
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SSHCLIENTasp_CNL113484.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SSHCLIENTasp_CNL113484.tpd
+   Description:        tpd project file
+   Rev:                R3D01
+   Prodnr:             CNL 113 484
+   Updated:            2012-11-13
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SSHCLIENTasp_CNL113484</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SSHCLIENTasp_CNL113484_FS.pdf" relativeURI="doc/SSHCLIENTasp_CNL113484_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SSHCLIENTasp_CNL113484_PRI.pdf" relativeURI="doc/SSHCLIENTasp_CNL113484_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SSHCLIENTasp_CNL113484_UG.pdf" relativeURI="doc/SSHCLIENTasp_CNL113484_UG.pdf"/>
+    <FileResource projectRelativePath="src/SSHCLIENTasp_PT.cc" relativeURI="src/SSHCLIENTasp_PT.cc"/>
+    <FileResource projectRelativePath="src/SSHCLIENTasp_PT.hh" relativeURI="src/SSHCLIENTasp_PT.hh"/>
+    <FileResource projectRelativePath="src/SSHCLIENTasp_PortType.ttcn" relativeURI="src/SSHCLIENTasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/SSHCLIENTasp_Types.ttcn" relativeURI="src/SSHCLIENTasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SSHCLIENTasp_CNL113484</targetExecutable>
+          <linkerLibraries>
+            <listItem>util</listItem>
+          </linkerLibraries>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/STDINOUTmsg_CNL113642.tpd b/regression_test/XML/tpdValidTest/tpdTest/STDINOUTmsg_CNL113642.tpd
new file mode 100644
index 000000000..0b5071d07
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/STDINOUTmsg_CNL113642.tpd
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               STDINOUTmsg_CNL113642.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 642
+   Updated:            2012-10-31
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>STDINOUTmsg_CNL113642</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/STDINOUTmsg_CNL113642_FS.pdf" relativeURI="doc/STDINOUTmsg_CNL113642_FS.pdf"/>
+    <FileResource projectRelativePath="doc/STDINOUTmsg_CNL113642_PRI.pdf" relativeURI="doc/STDINOUTmsg_CNL113642_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/STDINOUTmsg_CNL113642_UG.pdf" relativeURI="doc/STDINOUTmsg_CNL113642_UG.pdf"/>
+    <FileResource projectRelativePath="src/STDINOUTmsg_PT.cc" relativeURI="src/STDINOUTmsg_PT.cc"/>
+    <FileResource projectRelativePath="src/STDINOUTmsg_PT.hh" relativeURI="src/STDINOUTmsg_PT.hh"/>
+    <FileResource projectRelativePath="src/STDINOUTmsg_PortType.ttcn" relativeURI="src/STDINOUTmsg_PortType.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/STDINOUTmsg_CNL113642</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/STUN_CNL113644.tpd b/regression_test/XML/tpdValidTest/tpdTest/STUN_CNL113644.tpd
new file mode 100644
index 000000000..b9fba2728
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/STUN_CNL113644.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               STUN_CNL113644.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 644
+   Updated:            2012-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>STUN_CNL113644</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/STUN_EncDec.cc" relativeURI="src/STUN_EncDec.cc"/>
+    <FileResource projectRelativePath="src/STUN_Functions.ttcn" relativeURI="src/STUN_Functions.ttcn"/>
+    <FileResource projectRelativePath="src/STUN_Types.ttcn" relativeURI="src/STUN_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/STUN_CNL113644</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SUA_CNL113478.tpd b/regression_test/XML/tpdValidTest/tpdTest/SUA_CNL113478.tpd
new file mode 100644
index 000000000..dca408024
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SUA_CNL113478.tpd
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SUA_CNL113478.tpd
+   Description:        tpd project file
+   Rev:                R4A01
+   Prodnr:             CNL 113 478
+   Updated:            2012-05-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SUA_CNL113478</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SUA_CNL113478_FS.pdf" relativeURI="doc/SUA_CNL113478_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SUA_CNL113478_PRI.pdf" relativeURI="doc/SUA_CNL113478_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SUA_CNL113478_UG.pdf" relativeURI="doc/SUA_CNL113478_UG.pdf"/>
+    <FileResource projectRelativePath="src/SUA_EncDec.cc" relativeURI="src/SUA_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SUA_Types.ttcn" relativeURI="src/SUA_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SUA_CNL113478</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SUA_Daemon_CNL113743.tpd b/regression_test/XML/tpdValidTest/tpdTest/SUA_Daemon_CNL113743.tpd
new file mode 100644
index 000000000..8d2ddab32
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SUA_Daemon_CNL113743.tpd
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SUA_Daemon_CNL113743.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 743
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SUA_Daemon_CNL113743</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="EPTF_CLL_HashMap" projectLocationURI="../../Libraries/EPTF_Core_Library_CNL113512/src/HashMap/EPTF_CLL_HashMap.tpd"/>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="SUAasp_CNL113516" projectLocationURI="../../TestPorts/SUAasp_CNL113516/SUAasp_CNL113516.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SUA_Daemon_CNL113743_FS.pdf" relativeURI="doc/SUA_Daemon_CNL113743_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SUA_Daemon_CNL113743_PRI.pdf" relativeURI="doc/SUA_Daemon_CNL113743_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SUA_Daemon_CNL113743_UG.pdf" relativeURI="doc/SUA_Daemon_CNL113743_UG.pdf"/>
+    <FileResource projectRelativePath="src/SUA_Daemon.ttcn" relativeURI="src/SUA_Daemon.ttcn"/>
+    <FileResource projectRelativePath="src/SUA_Daemon_Templates.ttcn" relativeURI="src/SUA_Daemon_Templates.ttcn"/>
+    <FileResource projectRelativePath="src/SUA_Daemon_Types.ttcn" relativeURI="src/SUA_Daemon_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SUA_Daemon_CNL113743</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SUAasp_CNL113516.tpd b/regression_test/XML/tpdValidTest/tpdTest/SUAasp_CNL113516.tpd
new file mode 100644
index 000000000..53c21d32c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SUAasp_CNL113516.tpd
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SUAasp_CNL113516.tpd
+   Description:        tpd project file
+   Rev:                R6A01
+   Prodnr:             CNL 113 516
+   Updated:            2012-05-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SUAasp_CNL113516</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="SUA_CNL113478" projectLocationURI="../../ProtocolModules/SUA_CNL113478/SUA_CNL113478.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SUAasp_CNL113516_FS.pdf" relativeURI="doc/SUAasp_CNL113516_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SUAasp_CNL113516_PRI.pdf" relativeURI="doc/SUAasp_CNL113516_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SUAasp_CNL113516_UG.pdf" relativeURI="doc/SUAasp_CNL113516_UG.pdf"/>
+    <FileResource projectRelativePath="src/SUAasp_EncDec.cc" relativeURI="src/SUAasp_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SUAasp_PT.cc" relativeURI="src/SUAasp_PT.cc"/>
+    <FileResource projectRelativePath="src/SUAasp_PT.hh" relativeURI="src/SUAasp_PT.hh"/>
+    <FileResource projectRelativePath="src/SUAasp_PortType.ttcn" relativeURI="src/SUAasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/SUAasp_Types.ttcn" relativeURI="src/SUAasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SUAasp_CNL113516</targetExecutable>
+          <preprocessorDefines>
+            <listItem>TARGET_TEST</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SUNRPCasp_CNL113493.tpd b/regression_test/XML/tpdValidTest/tpdTest/SUNRPCasp_CNL113493.tpd
new file mode 100644
index 000000000..e0ab925a0
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SUNRPCasp_CNL113493.tpd
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SUNRPCasp_CNL113493.tpd
+   Description:        tpd project file
+   Rev:                R4B01
+   Prodnr:             CNL 113 493
+   Updated:            2012-09-17
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SUNRPCasp_CNL113493</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="SunRPCasp_PT.cc" relativeURI="src/SunRPCasp_PT.cc"/>
+    <FileResource projectRelativePath="SunRPCasp_PT.hh" relativeURI="src/SunRPCasp_PT.hh"/>
+    <FileResource projectRelativePath="SunRPCasp_PortType.ttcn" relativeURI="src/SunRPCasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="SunRPCasp_Types.ttcn" relativeURI="src/SunRPCasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SUNRPCasp_CNL113493</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/Socket_API_CNL113686.tpd b/regression_test/XML/tpdValidTest/tpdTest/Socket_API_CNL113686.tpd
new file mode 100644
index 000000000..4468eb41a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/Socket_API_CNL113686.tpd
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               Socket_API_CNL113686.tpd
+   Description:        tpd project file
+   Rev:                R3A01
+   Prodnr:             CNL 113 686
+   Updated:            2012-09-20
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Socket_API_CNL113686</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="Socket_API_Definitions.ttcn" relativeURI="src/Socket_API_Definitions.ttcn"/>
+    <FileResource projectRelativePath="doc/Socket_API_CNL113686_FS.pdf" relativeURI="doc/Socket_API_CNL113686_FS.pdf"/>
+    <FileResource projectRelativePath="doc/Socket_API_CNL113686_PRI.pdf" relativeURI="doc/Socket_API_CNL113686_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/Socket_API_CNL113686_UG.pdf" relativeURI="doc/Socket_API_CNL113686_UG.pdf"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/Socket_API_CNL113686</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c[g]?_.*</globalConstant>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/SubscriptionHistoryProtocol_1.0_CNL113584.tpd b/regression_test/XML/tpdValidTest/tpdTest/SubscriptionHistoryProtocol_1.0_CNL113584.tpd
new file mode 100644
index 000000000..8a4fe6790
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/SubscriptionHistoryProtocol_1.0_CNL113584.tpd
@@ -0,0 +1,460 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               SubscriptionHistoryProtocol_1.0_CNL113584.tpd
+   Description:        tpd project file
+   Rev:                R1B01
+   Prodnr:             CNL 113 584
+   Updated:            2012-05-30
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>SubscriptionHistoryProtocol_1.0_CNL113584</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/SubscriptionHistoryProtocol_1.0_CNL113584_FS.pdf" relativeURI="doc/SubscriptionHistoryProtocol_1.0_CNL113584_FS.pdf"/>
+    <FileResource projectRelativePath="doc/SubscriptionHistoryProtocol_1.0_CNL113584_PRI.pdf" relativeURI="doc/SubscriptionHistoryProtocol_1.0_CNL113584_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/SubscriptionHistoryProtocol_1.0_CNL113584_UG.pdf" relativeURI="doc/SubscriptionHistoryProtocol_1.0_CNL113584_UG.pdf"/>
+    <FileResource projectRelativePath="src/SHPFunctions.ttcn" relativeURI="src/SHPFunctions.ttcn"/>
+    <FileResource projectRelativePath="src/SHP_EncDec.cc" relativeURI="src/SHP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SHP_linux.c" relativeURI="src/SHP_linux.c"/>
+    <FileResource projectRelativePath="src/SHP_linux64bit.c" relativeURI="src/SHP_linux64bit.c"/>
+    <FileResource projectRelativePath="src/SHP_oss.c" relativeURI="src/SHP_oss.c"/>
+    <FileResource projectRelativePath="src/SHP_oss.h" relativeURI="src/SHP_oss.h"/>
+    <FileResource projectRelativePath="src/SHP_solarisx86.c" relativeURI="src/SHP_solarisx86.c"/>
+    <FileResource projectRelativePath="src/SubscriptionHistoryProtocol.asn" relativeURI="src/SubscriptionHistoryProtocol.asn"/>
+    <FileResource projectRelativePath="src/SubscriptionHistoryProtocol_oss.asn" relativeURI="src/SubscriptionHistoryProtocol_oss.asn"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+  </Files>
+  <ActiveConfiguration>SOLARIS64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SubscriptionHistoryProtocol_1.0_CNL113584</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SHP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SubscriptionHistoryProtocol_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SubscriptionHistoryProtocol_1.0_CNL113584</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SHP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SubscriptionHistoryProtocol_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SubscriptionHistoryProtocol_1.0_CNL113584</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SHP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SubscriptionHistoryProtocol_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SubscriptionHistoryProtocol_1.0_CNL113584</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SHP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SubscriptionHistoryProtocol_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SubscriptionHistoryProtocol_1.0_CNL113584</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SHP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SubscriptionHistoryProtocol_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/SubscriptionHistoryProtocol_1.0_CNL113584</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/SHP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_oss.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SHP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SubscriptionHistoryProtocol_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCAP_CNL113342.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCAP_CNL113342.tpd
new file mode 100644
index 000000000..23a3a8df3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCAP_CNL113342.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCAP_CNL113342.tpd
+   Description:        tpd project file
+   Rev:                R5B02
+   Prodnr:             CNL 113 342
+   Updated:            2012-11-23
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCAP_CNL113342</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../../ProtocolModules/COMMON/ProtocolModules_Common.tpd"/>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="SCCP_CNL113341" projectLocationURI="../SCCP_CNL113341/SCCP_CNL113341.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/TCAP_CNL113342_FS.pdf" relativeURI="doc/TCAP_CNL113342_FS.pdf"/>
+    <FileResource projectRelativePath="doc/TCAP_CNL113342_PRI.pdf" relativeURI="doc/TCAP_CNL113342_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/TCAP_CNL113342_UG.pdf" relativeURI="doc/TCAP_CNL113342_UG.pdf"/>
+    <FileResource projectRelativePath="src/TCAP_ANSI_PDU_Defs.asn" relativeURI="src/TCAP_ANSI_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/TCAP_ANSIasp_Types.ttcn" relativeURI="src/TCAP_ANSIasp_Types.ttcn"/>
+    <FileResource projectRelativePath="src/TCAP_Emulation.ttcn" relativeURI="src/TCAP_Emulation.ttcn"/>
+    <FileResource projectRelativePath="src/TCAP_EncDec.cc" relativeURI="src/TCAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/TCAP_PDU_Defs.asn" relativeURI="src/TCAP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/TCAP_Types.ttcn" relativeURI="src/TCAP_Types.ttcn"/>
+    <FileResource projectRelativePath="src/TCAPasp_PortType.ttcn" relativeURI="src/TCAPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/TCAPasp_Templates.ttcn" relativeURI="src/TCAPasp_Templates.ttcn"/>
+    <FileResource projectRelativePath="src/TCAPasp_Types.ttcn" relativeURI="src/TCAPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCAP_CNL113342</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCAPasp_CNL113349.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCAPasp_CNL113349.tpd
new file mode 100644
index 000000000..1ff4a5da3
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCAPasp_CNL113349.tpd
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCAPasp_CNL113349.tpd
+   Description:        tpd project file
+   Rev:                R12A02
+   Prodnr:             CNL 113 349
+   Updated:            2012-09-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCAPasp_CNL113349</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ROSE_CNL113369" projectLocationURI="../../ProtocolModules/ROSE_CNL113369/ROSE_CNL113369.tpd"/>
+    <ReferencedProject name="SS7Common_CNL113755" projectLocationURI="../Common_Components/SS7Common_CNL113755/SS7Common_CNL113755.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/TCAPasp_CNL113349_FS.pdf" relativeURI="doc/TCAPasp_CNL113349_FS.pdf"/>
+    <FileResource projectRelativePath="doc/TCAPasp_CNL113349_PRI.pdf" relativeURI="doc/TCAPasp_CNL113349_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/TCAPasp_CNL113349_UG.pdf" relativeURI="doc/TCAPasp_CNL113349_UG.pdf"/>
+    <FileResource projectRelativePath="src/TCAPPackage.asn" relativeURI="src/TCAPPackage.asn"/>
+    <FileResource projectRelativePath="src/TCAPasp_PT.cc" relativeURI="src/TCAPasp_PT.cc"/>
+    <FileResource projectRelativePath="src/TCAPasp_PT.hh" relativeURI="src/TCAPasp_PT.hh"/>
+    <FileResource projectRelativePath="src/TCAPasp_PT_Daemon_Interface.cc" relativeURI="src/TCAPasp_PT_Daemon_Interface.cc"/>
+    <FileResource projectRelativePath="src/TCAPasp_PT_Daemon_Interface.hh" relativeURI="src/TCAPasp_PT_Daemon_Interface.hh"/>
+    <FileResource projectRelativePath="src/TCAPasp_PT_EIN_Interface.cc" relativeURI="src/TCAPasp_PT_EIN_Interface.cc"/>
+    <FileResource projectRelativePath="src/TCAPasp_PT_EIN_Interface.hh" relativeURI="src/TCAPasp_PT_EIN_Interface.hh"/>
+    <FileResource projectRelativePath="src/TCAPasp_PortType.ttcn" relativeURI="src/TCAPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/TCAPasp_Types.ttcn" relativeURI="src/TCAPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCAPasp_CNL113349</targetExecutable>
+          <preprocessorDefines>
+            <listItem>TCAP_CAA201694_R10</listItem>
+            <listItem>TCAP_CAA20118_R8</listItem>
+            <listItem>CP_R12A30</listItem>
+            <listItem>EINSS7_THREADSAFE</listItem>
+            <listItem>EINSS7_ADDR_IN_RESP</listItem>
+            <listItem>T_ADDRESS</listItem>
+          </preprocessorDefines>
+          <preprocessorIncludes>
+            <listItem>[SS7_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>einss7_n_r</listItem>
+            <listItem>pthread</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[SS7_DIR]/lib64</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/TCAPasp_PT_Daemon_Interface.cc</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/TCAPasp_PT_Daemon_Interface.hh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Common.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Common.tpd
new file mode 100644
index 000000000..dfb9e1776
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Common.tpd
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_Common.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Common</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCConversion.cc" relativeURI="src/TCCConversion.cc"/>
+    <FileResource projectRelativePath="TCCConversion_Functions.ttcn" relativeURI="src/TCCConversion_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCDateTime.cc" relativeURI="src/TCCDateTime.cc"/>
+    <FileResource projectRelativePath="TCCDateTime_Functions.ttcn" relativeURI="src/TCCDateTime_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCEncoding.cc" relativeURI="src/TCCEncoding.cc"/>
+    <FileResource projectRelativePath="TCCEncoding_Functions.ttcn" relativeURI="src/TCCEncoding_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCEnv.cc" relativeURI="src/TCCEnv.cc"/>
+    <FileResource projectRelativePath="TCCEnv_Functions.ttcn" relativeURI="src/TCCEnv_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCFileIO.cc" relativeURI="src/TCCFileIO.cc"/>
+    <FileResource projectRelativePath="TCCFileIO_Functions.ttcn" relativeURI="src/TCCFileIO_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCMessageHandling.cc" relativeURI="src/TCCMessageHandling.cc"/>
+    <FileResource projectRelativePath="TCCMessageHandling_Functions.ttcn" relativeURI="src/TCCMessageHandling_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCSystem.cc" relativeURI="src/TCCSystem.cc"/>
+    <FileResource projectRelativePath="TCCSystem_Functions.ttcn" relativeURI="src/TCCSystem_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCFileSystem.cc" relativeURI="src/TCCFileSystem.cc"/>
+    <FileResource projectRelativePath="TCCFileSystem_Functions.ttcn" relativeURI="src/TCCFileSystem_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCTitanMetadata.cc" relativeURI="src/TCCTitanMetadata.cc"/>
+    <FileResource projectRelativePath="TCCTitanMetadata_Functions.ttcn" relativeURI="src/TCCTitanMetadata_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Common</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_IPsec.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_IPsec.tpd
new file mode 100644
index 000000000..7d552c79d
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_IPsec.tpd
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_IPsec.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_IPsec</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCIPsec.cc" relativeURI="src/TCCIPsec.cc"/>
+    <FileResource projectRelativePath="TCCIPsec_Definitions.ttcn" relativeURI="src/TCCIPsec_Definitions.ttcn"/>
+    <FileResource projectRelativePath="TCCIPsec_Functions.ttcn" relativeURI="src/TCCIPsec_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>KAME_IPSEC</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_IPsec</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="IPSEC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_IPsec</targetExecutable>
+          <preprocessorDefines>
+            <listItem>USE_IPSEC</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+    <Configuration name="KAME_IPSEC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_IPsec</targetExecutable>
+          <preprocessorDefines>
+            <listItem>USE_KAME_IPSEC</listItem>
+          </preprocessorDefines>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Interface.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Interface.tpd
new file mode 100644
index 000000000..0202b67ac
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Interface.tpd
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_Interface.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Interface</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCInterface.cc" relativeURI="src/TCCInterface.cc"/>
+    <FileResource projectRelativePath="TCCInterface_Functions.ttcn" relativeURI="src/TCCInterface_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCInterface_ip.h" relativeURI="src/TCCInterface_ip.h"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Interface</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Maths.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Maths.tpd
new file mode 100644
index 000000000..79f91e78c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Maths.tpd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_Maths.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Maths</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCMaths.cc" relativeURI="src/TCCMaths.cc"/>
+    <FileResource projectRelativePath="TCCMaths_Functions.ttcn" relativeURI="src/TCCMaths_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCMaths_GenericTypes.ttcn" relativeURI="src/TCCMaths_GenericTypes.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Maths</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>.*</globalConstant>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Regexp.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Regexp.tpd
new file mode 100644
index 000000000..26f5a9ad1
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Regexp.tpd
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_Regexp.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Regexp</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCRegexp.cc" relativeURI="src/TCCRegexp.cc"/>
+    <FileResource projectRelativePath="TCCRegexp_Functions.ttcn" relativeURI="src/TCCRegexp_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Regexp</targetExecutable>
+          <linkerLibraries>
+            <listItem>pcre</listItem>
+          </linkerLibraries>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Security.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Security.tpd
new file mode 100644
index 000000000..62a0858e6
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_Security.tpd
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_Security.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_Security</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCSecurity.cc" relativeURI="src/TCCSecurity.cc"/>
+    <FileResource projectRelativePath="TCCSecurity_Functions.ttcn" relativeURI="src/TCCSecurity_Functions.ttcn"/>
+    <FileResource projectRelativePath="aka_algorythm_set.c" relativeURI="src/aka_algorythm_set.c"/>
+    <FileResource projectRelativePath="aka_algorythm_set.h" relativeURI="src/aka_algorythm_set.h"/>
+    <FileResource projectRelativePath="digcalc.c" relativeURI="src/digcalc.c"/>
+    <FileResource projectRelativePath="digcalc.h" relativeURI="src/digcalc.h"/>
+    <FileResource projectRelativePath="zuc.c" relativeURI="src/zuc.c"/>   
+    <FileResource projectRelativePath="zuc.h" relativeURI="src/zuc.h"/>   
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+	  <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+	  <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_Security</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_TitanSim.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_TitanSim.tpd
new file mode 100644
index 000000000..9b368983a
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_TitanSim.tpd
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_TitanSim.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_TitanSim</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="TCCUsefulFunctions_CNL113472_Common" projectLocationURI="TCCUsefulFunctions_CNL113472_Common.tpd"/>
+  </ReferencedProjects>
+  <Files>
+    <FileResource projectRelativePath="TCCAssertion.cc" relativeURI="src/TCCAssertion.cc"/>
+    <FileResource projectRelativePath="TCCAssertion_Functions.ttcn" relativeURI="src/TCCAssertion_Functions.ttcn"/>
+    <FileResource projectRelativePath="TCCTemplate_Functions.ttcn" relativeURI="src/TCCTemplate_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_TitanSim</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>[e]?f_.*</externalFunction>
+          <moduleParameter>.*</moduleParameter>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_XPath.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_XPath.tpd
new file mode 100644
index 000000000..f9bfacb42
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCCUsefulFunctions_CNL113472_XPath.tpd
@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCCUsefulFunctions_CNL113472_XPath.tpd
+   Description:        tpd project file
+   Rev:                R12B
+   Prodnr:             CNL 113 472
+   Updated:            2013-04-10
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCCUsefulFunctions_CNL113472_XPath</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="TCCXPathSupport.cc" relativeURI="src/TCCXPathSupport.cc"/>
+    <FileResource projectRelativePath="TCCXPathSupport_Functions.ttcn" relativeURI="src/TCCXPathSupport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TCCUsefulFunctions_CNL113472_XPath</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[TINY_XPATH_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>tinyxpath</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[TINY_XPATH_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCP_CNL113675.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCP_CNL113675.tpd
new file mode 100644
index 000000000..24677b85c
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCP_CNL113675.tpd
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCP_CNL113675.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 675
+   Updated:            2012-02-13
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCP_CNL113675</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/TCP_EncDec.cc" relativeURI="src/TCP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/TCP_Types.ttcn" relativeURI="src/TCP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/TCP_CNL113675</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TCPasp_CNL113347.tpd b/regression_test/XML/tpdValidTest/tpdTest/TCPasp_CNL113347.tpd
new file mode 100644
index 000000000..b357e4149
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TCPasp_CNL113347.tpd
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TCPasp_CNL113347.tpd
+   Description:        tpd project file
+   Rev:                R8B01
+   Prodnr:             CNL 113 347
+   Updated:            2012-11-19
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TCPasp_CNL113347</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/TCPasp_CNL113347_FS.pdf" relativeURI="doc/TCPasp_CNL113347_FS.pdf"/>
+    <FileResource projectRelativePath="doc/TCPasp_CNL113347_PRI.pdf" relativeURI="doc/TCPasp_CNL113347_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/TCPasp_CNL113347_UG.pdf" relativeURI="doc/TCPasp_CNL113347_UG.pdf"/>
+    <FileResource projectRelativePath="src/TCP.grp" relativeURI="src/TCP.grp"/>
+    <FileResource projectRelativePath="src/TCPasp_PT.cc" relativeURI="src/TCPasp_PT.cc"/>
+    <FileResource projectRelativePath="src/TCPasp_PT.hh" relativeURI="src/TCPasp_PT.hh"/>
+    <FileResource projectRelativePath="src/TCPasp_PortType.ttcn" relativeURI="src/TCPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/TCPasp_Types.ttcn" relativeURI="src/TCPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/TCPasp_CNL113347</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TELNET_Daemon_CNL113667.tpd b/regression_test/XML/tpdValidTest/tpdTest/TELNET_Daemon_CNL113667.tpd
new file mode 100644
index 000000000..f33f30896
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TELNET_Daemon_CNL113667.tpd
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TELNET_Daemon_CNL113667.tpd
+   Description:        tpd project file
+   Rev:                R2B01
+   Prodnr:             CNL 113 667
+   Updated:            2011-12-12
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TELNET_Daemon_CNL113667</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="IPL4asp_CNL113531" projectLocationURI="../../TestPorts/IPL4asp_CNL113531/IPL4asp_CNL113531.tpd"/>
+    <ReferencedProject name="TELNETasp_CNL113320" projectLocationURI="../../TestPorts/TELNETasp_CNL113320/TELNETasp_CNL113320.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/TELNET_Daemon_CNL113667_FS.pdf" relativeURI="doc/TELNET_Daemon_CNL113667_FS.pdf"/>
+    <FileResource projectRelativePath="doc/TELNET_Daemon_CNL113667_PRI.pdf" relativeURI="doc/TELNET_Daemon_CNL113667_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/TELNET_Daemon_CNL113667_UG.pdf" relativeURI="doc/TELNET_Daemon_CNL113667_UG.pdf"/>
+    <FileResource projectRelativePath="src/TELNET_Daemon.ttcn" relativeURI="src/TELNET_Daemon.ttcn"/>
+    <FileResource projectRelativePath="src/TELNET_Daemon_Types.ttcn" relativeURI="src/TELNET_Daemon_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TELNET_Daemon_CNL113667</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TELNETasp_CNL113320.tpd b/regression_test/XML/tpdValidTest/tpdTest/TELNETasp_CNL113320.tpd
new file mode 100644
index 000000000..41aa63ff2
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TELNETasp_CNL113320.tpd
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               TELNETasp_CNL113320.tpd
+   Description:        tpd project file
+   Rev:                R8C01
+   Prodnr:             CNL 113 320
+   Updated:            2012-08-08
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TELNETasp_CNL113320</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/TELNETasp_CNL113320_FS.pdf" relativeURI="doc/TELNETasp_CNL113320_FS.pdf"/>
+    <FileResource projectRelativePath="doc/TELNETasp_CNL113320_PRI.pdf" relativeURI="doc/TELNETasp_CNL113320_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/TELNETasp_CNL113320_UG.pdf" relativeURI="doc/TELNETasp_CNL113320_UG.pdf"/>
+    <FileResource projectRelativePath="src/TELNETasp_PT.cc" relativeURI="src/TELNETasp_PT.cc"/>
+    <FileResource projectRelativePath="src/TELNETasp_PT.hh" relativeURI="src/TELNETasp_PT.hh"/>
+    <FileResource projectRelativePath="src/TELNETasp_PortType.ttcn" relativeURI="src/TELNETasp_PortType.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/TELNETasp_CNL113320</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/Tariffing_v8.0.0_CNL113654.tpd b/regression_test/XML/tpdValidTest/tpdTest/Tariffing_v8.0.0_CNL113654.tpd
new file mode 100644
index 000000000..c8608c2ad
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/Tariffing_v8.0.0_CNL113654.tpd
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               Tariffing_v8.0.0_CNL113654.tpd
+   Description:        tpd project file
+   Rev:                R1A01
+   Prodnr:             CNL 113 654
+   Updated:            2012-10-26
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Tariffing_v8.0.0_CNL113654</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="SIP.xsd" relativeURI="src/SIP.xsd"/>
+    <FileResource projectRelativePath="UsefulTtcn3Types.ttcn" relativeURI="src/UsefulTtcn3Types.ttcn"/>
+    <FileResource projectRelativePath="XSD.ttcn" relativeURI="src/XSD.ttcn"/>
+    <FileResource projectRelativePath="uri_etsi_org_ngn_params_xml_simservs_sci.ttcn" relativeURI="src/uri_etsi_org_ngn_params_xml_simservs_sci.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <symboliclinklessBuild>true</symboliclinklessBuild>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Tariffing_v8.0.0_CNL113654</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/TitanSim_evolution_files.tpd b/regression_test/XML/tpdValidTest/tpdTest/TitanSim_evolution_files.tpd
new file mode 100644
index 000000000..7c583bdd6
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/TitanSim_evolution_files.tpd
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>TitanSim_evolution_files</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="IMS_Common.ttcn" relativeURI="../src/common/IMS_Common.ttcn"/>
+    <FileResource projectRelativePath="IMS_Common_Functions.ttcn" relativeURI="../src/common/IMS_Common_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Validation_Functions.ttcn" relativeURI="../src/common/IMS_Validation_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_CustomTestSteps_Definitions.ttcn" relativeURI="../src/tc/IMS_CustomTestSteps_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_CustomTestSteps_Functions.ttcn" relativeURI="../src/tc/IMS_CustomTestSteps_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_CustomTestSteps_UserCode.ttcn" relativeURI="../src/tc/IMS_CustomTestSteps_UserCode.ttcn"/>
+    <FileResource projectRelativePath="IMS_LGen_Definitions.ttcn" relativeURI="../src/tc/IMS_LGen_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_LGen_FsmDefinitions.ttcn" relativeURI="../src/tc/IMS_LGen_FsmDefinitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_LGen_Functions.ttcn" relativeURI="../src/tc/IMS_LGen_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_LGen_FsmFunctions.ttcn" relativeURI="../src/tc/IMS_LGen_FsmFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_MessageModify_Definitions.ttcn" relativeURI="../src/tc/IMS_MessageModify_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_MessageModify_Functions.ttcn" relativeURI="../src/tc/IMS_MessageModify_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_MessageSequence_Definitions.ttcn" relativeURI="../src/tc/IMS_MessageSequence_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_MessageSequence_Functions.ttcn" relativeURI="../src/tc/IMS_MessageSequence_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Presence_Definitions.ttcn" relativeURI="../src/tc/IMS_Presence_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Presence_Functions.ttcn" relativeURI="../src/tc/IMS_Presence_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Subscribe_Definitions.ttcn" relativeURI="../src/tc/IMS_SIP_Subscribe_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Subscribe_Functions.ttcn" relativeURI="../src/tc/IMS_SIP_Subscribe_Functions.ttcn"/> 
+    <FileResource projectRelativePath="IMS_TC_CallOrig_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_CallOrig_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_CallOrig_Functions.ttcn" relativeURI="../src/tc/IMS_TC_CallOrig_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_CallTerm_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_CallTerm_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_CallTerm_Functions.ttcn" relativeURI="../src/tc/IMS_TC_CallTerm_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_ConferenceCreator_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_ConferenceCreator_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_ConferenceCreator_Functions.ttcn" relativeURI="../src/tc/IMS_TC_ConferenceCreator_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Custom_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_Custom_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Custom_Functions.ttcn" relativeURI="../src/tc/IMS_TC_Custom_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Generic_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_Generic_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Generic_Functions.ttcn" relativeURI="../src/tc/IMS_TC_Generic_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_IMSNetSim_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_IMSNetSim_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_IMSNetSim_Functions.ttcn" relativeURI="../src/tc/IMS_TC_IMSNetSim_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_OptionsOrig_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_OptionsOrig_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_OptionsOrig_Functions.ttcn" relativeURI="../src/tc/IMS_TC_OptionsOrig_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_OptionsTerm_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_OptionsTerm_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_OptionsTerm_Functions.ttcn" relativeURI="../src/tc/IMS_TC_OptionsTerm_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Registration_Definitions.ttcn" relativeURI="../src/tc/IMS_TC_Registration_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Registration_Functions.ttcn" relativeURI="../src/tc/IMS_TC_Registration_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_CommonDefinitions.ttcn" relativeURI="../src/tcgeneric/IMS_TC_CommonDefinitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_CommonFunctions.ttcn" relativeURI="../src/tcgeneric/IMS_TC_CommonFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Definitions.ttcn" relativeURI="../src/tcgeneric/IMS_TC_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_FsmFunctions.ttcn" relativeURI="../src/tcgeneric/IMS_TC_FsmFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_Functions.ttcn" relativeURI="../src/tcgeneric/IMS_TC_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_VarGuiFunctions.ttcn" relativeURI="../src/tcgeneric/IMS_TC_VarGuiFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_EV_CommonDefinitions.ttcn" relativeURI="../src/ev/IMS_EV_CommonDefinitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_EV_Server_Definitions.ttcn" relativeURI="../src/ev/IMS_EV_Server_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_EV_Server_Functions.ttcn" relativeURI="../src/ev/IMS_EV_Server_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_EV_Client_Definitions.ttcn" relativeURI="../src/ev/IMS_EV_Client_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_EV_Client_Functions.ttcn" relativeURI="../src/ev/IMS_EV_Client_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_MainModule.ttcn" relativeURI="../src/main/IMS_MainModule.ttcn"/>
+    <FileResource projectRelativePath="IMS_Setup_ConfigDefinitions.ttcn" relativeURI="../src/main/IMS_Setup_ConfigDefinitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Setup_ConfigFunctions.ttcn" relativeURI="../src/main/IMS_Setup_ConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Setup_ExecConfigFunctions.ttcn" relativeURI="../src/main/IMS_Setup_ExecConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Setup_Definitions.ttcn" relativeURI="../src/main/IMS_Setup_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Setup_Functions.ttcn" relativeURI="../src/main/IMS_Setup_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Setup_GuiFunctions.ttcn" relativeURI="../src/main/IMS_Setup_GuiFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_CommonDefinitions.ttcn" relativeURI="../src/media/IMS_Media_CommonDefinitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_CommonFunctions.ttcn" relativeURI="../src/media/IMS_Media_CommonFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_ConfigFunctions.ttcn" relativeURI="../src/media/IMS_Media_ConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_Definitions.ttcn" relativeURI="../src/media/IMS_Media_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_FsmFunctions.ttcn" relativeURI="../src/media/IMS_Media_FsmFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_Functions.ttcn" relativeURI="../src/media/IMS_Media_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Media_GuiFunctions.ttcn" relativeURI="../src/media/IMS_Media_GuiFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GUI_Server_Definitions.ttcn" relativeURI="../src/gui/IMS_GUI_Server_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GUI_Server_Functions.ttcn" relativeURI="../src/gui/IMS_GUI_Server_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GUI_Client_Definitions.ttcn" relativeURI="../src/gui/IMS_GUI_Client_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GUI_Client_Functions.ttcn" relativeURI="../src/gui/IMS_GUI_Client_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GUI_DS_Definitions.ttcn" relativeURI="../src/gui/IMS_GUI_DS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GUI_DS_Functions.ttcn" relativeURI="../src/gui/IMS_GUI_DS_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Auth_Definitions.ttcn" relativeURI="../src/sip/IMS_SIP_Auth_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Auth_Functions.ttcn" relativeURI="../src/sip/IMS_SIP_Auth_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Call_Functions.ttcn" relativeURI="../src/sip/IMS_SIP_Call_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Definitions.ttcn" relativeURI="../src/sip/IMS_SIP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Functions.ttcn" relativeURI="../src/sip/IMS_SIP_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Options_Functions.ttcn" relativeURI="../src/sip/IMS_SIP_Options_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Register_Functions.ttcn" relativeURI="../src/sip/IMS_SIP_Register_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SIP_Steps.ttcn" relativeURI="../src/sip/IMS_SIP_Steps.ttcn"/>
+    <FileResource projectRelativePath="IMS_STUN_Definitions.ttcn" relativeURI="../src/sip/IMS_STUN_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_STUN_Functions.ttcn" relativeURI="../src/sip/IMS_STUN_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SimType_ConfigFunctions.ttcn" relativeURI="../src/sip/IMS_SimType_ConfigFunctions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SimType_Config_Definitions.ttcn" relativeURI="../src/sip/IMS_SimType_Config_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SimType_Definitions.ttcn" relativeURI="../src/sip/IMS_SimType_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SimType_Functions.ttcn" relativeURI="../src/sip/IMS_SimType_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SimType_ICS_Definitions.ttcn" relativeURI="../src/sip/IMS_SimType_ICS_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_SimType_ICS_Functions.ttcn" relativeURI="../src/sip/IMS_SimType_ICS_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_XCAP_Definitions.ttcn" relativeURI="../src/xcap/IMS_TC_XCAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_TC_XCAP_Functions.ttcn" relativeURI="../src/xcap/IMS_TC_XCAP_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_XCAP_Definitions.ttcn" relativeURI="../src/xcap/IMS_XCAP_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_XCAP_Functions.ttcn" relativeURI="../src/xcap/IMS_XCAP_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Logging_Definitions.ttcn" relativeURI="../src/logging/IMS_Logging_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Logging_Functions.ttcn" relativeURI="../src/logging/IMS_Logging_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Diameter_SbgRx_Definitions.ttcn" relativeURI="../src/diameter/IMS_Diameter_SbgRx_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_Diameter_SbgRx_Functions.ttcn" relativeURI="../src/diameter/IMS_Diameter_SbgRx_Functions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GenAppTransport_Definitions.ttcn" relativeURI="../src/genAppTransport/IMS_GenAppTransport_Definitions.ttcn"/>
+    <FileResource projectRelativePath="IMS_GenAppTransport_Functions.ttcn" relativeURI="../src/genAppTransport/IMS_GenAppTransport_Functions.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>build/titansim</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>build</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/Trigger_HSS4.2_CNL113583.tpd b/regression_test/XML/tpdValidTest/tpdTest/Trigger_HSS4.2_CNL113583.tpd
new file mode 100644
index 000000000..c9459c800
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/Trigger_HSS4.2_CNL113583.tpd
@@ -0,0 +1,518 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               Trigger_HSS4.2_CNL113583.tpd
+   Description:        tpd project file
+   Rev:                R2A01
+   Prodnr:             CNL 113 583
+   Updated:            2012-07-09
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>Trigger_HSS4.2_CNL113583</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/TOED" relativeURI="src/TOED"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/Trigger_HSS4.2_CNL113583_FS.pdf" relativeURI="doc/Trigger_HSS4.2_CNL113583_FS.pdf"/>
+    <FileResource projectRelativePath="doc/Trigger_HSS4.2_CNL113583_PRI.pdf" relativeURI="doc/Trigger_HSS4.2_CNL113583_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/Trigger_HSS4.2_CNL113583_UG.pdf" relativeURI="doc/Trigger_HSS4.2_CNL113583_UG.pdf"/>
+    <FileResource projectRelativePath="src/Provisioning.asn" relativeURI="src/Provisioning.asn"/>
+    <FileResource projectRelativePath="src/Provisioning2.asn" relativeURI="src/Provisioning2.asn"/>
+    <FileResource projectRelativePath="src/Provisioning2_oss.asn" relativeURI="src/Provisioning2_oss.asn"/>
+    <FileResource projectRelativePath="src/Provisioning_oss.asn" relativeURI="src/Provisioning_oss.asn"/>
+    <FileResource projectRelativePath="src/SOAP.asn" relativeURI="src/SOAP.asn"/>
+    <FileResource projectRelativePath="src/SOAPTypes.ttcn" relativeURI="src/SOAPTypes.ttcn"/>
+    <FileResource projectRelativePath="src/SOAP_EncDec.cc" relativeURI="src/SOAP_EncDec.cc"/>
+    <FileResource projectRelativePath="src/SOAP_linux.c" relativeURI="src/SOAP_linux.c"/>
+    <FileResource projectRelativePath="src/SOAP_linux64bit.c" relativeURI="src/SOAP_linux64bit.c"/>
+    <FileResource projectRelativePath="src/SOAP_oss.asn" relativeURI="src/SOAP_oss.asn"/>
+    <FileResource projectRelativePath="src/SOAP_oss.h" relativeURI="src/SOAP_oss.h"/>
+    <FileResource projectRelativePath="src/SOAP_solaris.c" relativeURI="src/SOAP_solaris.c"/>
+    <FileResource projectRelativePath="src/SOAP_solarisx86.c" relativeURI="src/SOAP_solarisx86.c"/>
+    <FileResource projectRelativePath="src/SoapProvisioning.wsdl" relativeURI="src/SoapProvisioning.wsdl"/>
+    <FileResource projectRelativePath="src/SoapProvisioning2.wdsl" relativeURI="src/SoapProvisioning2.wdsl"/>
+    <FileResource projectRelativePath="src/TOED/SOAP_linux.c" relativeURI="src/TOED/SOAP_linux.c"/>
+    <FileResource projectRelativePath="src/TOED/SOAP_linux64bit.c" relativeURI="src/TOED/SOAP_linux64bit.c"/>
+    <FileResource projectRelativePath="src/TOED/SOAP_oss.h" relativeURI="src/TOED/SOAP_oss.h"/>
+    <FileResource projectRelativePath="src/TOED/SOAP_solaris.c" relativeURI="src/TOED/SOAP_solaris.c"/>
+    <FileResource projectRelativePath="src/TOED/SOAP_solarisx86.c" relativeURI="src/TOED/SOAP_solarisx86.c"/>
+    <FileResource projectRelativePath="src/gen.sh" relativeURI="src/gen.sh"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Trigger_HSS4.2_CNL113583</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/TOED</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/Provisioning2_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/Provisioning_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning.wsdl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning2.wdsl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Trigger_HSS4.2_CNL113583</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/TOED</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/Provisioning2_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/Provisioning_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning.wsdl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning2.wdsl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Trigger_HSS4.2_CNL113583</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/TOED</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/Provisioning2_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/Provisioning_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning.wsdl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning2.wdsl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Trigger_HSS4.2_CNL113583</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/TOED</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/Provisioning2_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/Provisioning_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning.wsdl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning2.wdsl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_X86">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/Trigger_HSS4.2_CNL113583</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>asn1code</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/TOED</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/Provisioning2_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/Provisioning_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SOAP_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning.wsdl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/SoapProvisioning2.wdsl</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/gen.sh</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/UDP_CNL113420.tpd b/regression_test/XML/tpdValidTest/tpdTest/UDP_CNL113420.tpd
new file mode 100644
index 000000000..dae999879
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/UDP_CNL113420.tpd
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               UDP_CNL113420.tpd
+   Description:        tpd project file
+   Rev:                R3B01
+   Prodnr:             CNL 113 420
+   Updated:            2012-06-13
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>UDP_CNL113420</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="UDP_EncDec.cc" relativeURI="src/UDP_EncDec.cc"/>
+    <FileResource projectRelativePath="UDP_Types.ttcn" relativeURI="src/UDP_Types.ttcn"/>
+    <FileResource projectRelativePath="doc/UDP_CNL113420_FS.pdf" relativeURI="doc/UDP_CNL113420_FS.pdf"/>
+    <FileResource projectRelativePath="doc/UDP_CNL113420_PRI.pdf" relativeURI="doc/UDP_CNL113420_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/UDP_CNL113420_UG.pdf" relativeURI="doc/UDP_CNL113420_UG.pdf"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/UDP_CNL113420</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/UDPasp_CNL113346.tpd b/regression_test/XML/tpdValidTest/tpdTest/UDPasp_CNL113346.tpd
new file mode 100644
index 000000000..e74e599ee
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/UDPasp_CNL113346.tpd
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               UDPasp_CNL113346.tpd
+   Description:        tpd project file
+   Rev:                R7A01
+   Prodnr:             CNL 113 346
+   Updated:            2012-04-02
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>UDPasp_CNL113346</ProjectName>
+  <ReferencedProjects>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/UDPasp_CNL113346_FS.pdf" relativeURI="doc/UDPasp_CNL113346_FS.pdf"/>
+    <FileResource projectRelativePath="doc/UDPasp_CNL113346_PRI.pdf" relativeURI="doc/UDPasp_CNL113346_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/UDPasp_CNL113346_UG.pdf" relativeURI="doc/UDPasp_CNL113346_UG.pdf"/>
+    <FileResource projectRelativePath="src/UDPasp_PT.cc" relativeURI="src/UDPasp_PT.cc"/>
+    <FileResource projectRelativePath="src/UDPasp_PT.hh" relativeURI="src/UDPasp_PT.hh"/>
+    <FileResource projectRelativePath="src/UDPasp_PortType.ttcn" relativeURI="src/UDPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/UDPasp_Types.ttcn" relativeURI="src/UDPasp_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <targetExecutable>bin/UDPasp_CNL113346</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/UPloadCP_CNL113633.tpd b/regression_test/XML/tpdValidTest/tpdTest/UPloadCP_CNL113633.tpd
new file mode 100644
index 000000000..dbe0752eb
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/UPloadCP_CNL113633.tpd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               UPloadCP_CNL113633.tpd
+   Description:        tpd project file
+   Rev:                R3A01
+   Prodnr:             CNL 113 633
+   Updated:            2012-07-27
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>UPloadCP_CNL113633</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/UPloadCP_CNL113633_FS.pdf" relativeURI="doc/UPloadCP_CNL113633_FS.pdf"/>
+    <FileResource projectRelativePath="doc/UPloadCP_CNL113633_PRI.pdf" relativeURI="doc/UPloadCP_CNL113633_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/UPloadCP_CNL113633_UG.pdf" relativeURI="doc/UPloadCP_CNL113633_UG.pdf"/>
+    <FileResource projectRelativePath="src/UPloadCP_ProtocolModule.grp" relativeURI="src/UPloadCP_ProtocolModule.grp"/>
+    <FileResource projectRelativePath="src/UPloadCP_Types.ttcn" relativeURI="src/UPloadCP_Types.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/UPloadCP_CNL113633</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/XML_RPC_CNL113488.tpd b/regression_test/XML/tpdValidTest/tpdTest/XML_RPC_CNL113488.tpd
new file mode 100644
index 000000000..961c32a17
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/XML_RPC_CNL113488.tpd
@@ -0,0 +1,388 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               XML_RPC_CNL113488.tpd
+   Description:        tpd project file
+   Rev:                R3C01
+   Prodnr:             CNL 113 488
+   Updated:            2012-03-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>XML_RPC_CNL113488</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+    <FolderResource projectRelativePath="src/ref" relativeURI="src/ref"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/XML_RPC_CNL113488_FS.pdf" relativeURI="doc/XML_RPC_CNL113488_FS.pdf"/>
+    <FileResource projectRelativePath="doc/XML_RPC_CNL113488_PRI.pdf" relativeURI="doc/XML_RPC_CNL113488_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/XML_RPC_CNL113488_UG.pdf" relativeURI="doc/XML_RPC_CNL113488_UG.pdf"/>
+    <FileResource projectRelativePath="src/XML_RPC.asn" relativeURI="src/XML_RPC.asn"/>
+    <FileResource projectRelativePath="src/XML_RPC_EncDec.cc" relativeURI="src/XML_RPC_EncDec.cc"/>
+    <FileResource projectRelativePath="src/XML_RPC_ExternalFunctions.ttcn" relativeURI="src/XML_RPC_ExternalFunctions.ttcn"/>
+    <FileResource projectRelativePath="src/XML_RPC_linux.c" relativeURI="src/XML_RPC_linux.c"/>
+    <FileResource projectRelativePath="src/XML_RPC_linux64bit.c" relativeURI="src/XML_RPC_linux64bit.c"/>
+    <FileResource projectRelativePath="src/XML_RPC_oss.h" relativeURI="src/XML_RPC_oss.h"/>
+    <FileResource projectRelativePath="src/XML_RPC_solaris.c" relativeURI="src/XML_RPC_solaris.c"/>
+    <FileResource projectRelativePath="src/XML_RPC_solarisx86.c" relativeURI="src/XML_RPC_solarisx86.c"/>
+    <FileResource projectRelativePath="src/ref/XML-RPC.xsd" relativeURI="src/ref/XML-RPC.xsd"/>
+    <FileResource projectRelativePath="src/ref/XML_RPC_oss.asn" relativeURI="src/ref/XML_RPC_oss.asn"/>
+    <FileResource projectRelativePath="src/ref/gen.sh" relativeURI="src/ref/gen.sh"/>
+  </Files>
+  <ActiveConfiguration>LINUX64</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XML_RPC_CNL113488</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD_ASN</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/ref</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX64">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XML_RPC_CNL113488</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD_ASN</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/ref</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="LINUX">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XML_RPC_CNL113488</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD_ASN</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/ref</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_SPARC">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XML_RPC_CNL113488</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD_ASN</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/ref</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solarisx86.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="SOLARIS_INTEL">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XML_RPC_CNL113488</targetExecutable>
+          <preprocessorIncludes>
+            <listItem>[OSS_DIR]/include</listItem>
+          </preprocessorIncludes>
+          <linkerLibraries>
+            <listItem>osstoed</listItem>
+          </linkerLibraries>
+          <linkerLibrarySearchPath>
+            <listItem>[OSS_DIR]/lib</listItem>
+          </linkerLibrarySearchPath>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <externalFunction>.*</externalFunction>
+          <localVariable>.*</localVariable>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+        <ConfigurationRequirements>
+          <configurationRequirement>
+            <projectName>XSDASN_CNL113474</projectName>
+            <rerquiredConfiguration>XSD_ASN</rerquiredConfiguration>
+          </configurationRequirement>
+        </ConfigurationRequirements>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+        <FolderResource>
+          <FolderPath>src/ref</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_linux64bit.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XML_RPC_solaris.c</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/XSDASN_CNL113474.tpd b/regression_test/XML/tpdValidTest/tpdTest/XSDASN_CNL113474.tpd
new file mode 100644
index 000000000..47eb14744
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/XSDASN_CNL113474.tpd
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               XSDASN_CNL113474.tpd
+   Description:        tpd project file
+   Rev:                R4A01
+   Prodnr:             CNL 113 474
+   Updated:            2012-02-07
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>XSDASN_CNL113474</ProjectName>
+  <Folders>
+    <FolderResource projectRelativePath="doc" relativeURI="doc"/>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="doc/XSDASN_CNL113474_FS.pdf" relativeURI="doc/XSDASN_CNL113474_FS.pdf"/>
+    <FileResource projectRelativePath="doc/XSDASN_CNL113474_PRI.pdf" relativeURI="doc/XSDASN_CNL113474_PRI.pdf"/>
+    <FileResource projectRelativePath="doc/XSDASN_CNL113474_UG.pdf" relativeURI="doc/XSDASN_CNL113474_UG.pdf"/>
+    <FileResource projectRelativePath="src/XSD.asn" relativeURI="src/XSD.asn"/>
+    <FileResource projectRelativePath="src/XSD_ASN.asn" relativeURI="src/XSD_ASN.asn"/>
+    <FileResource projectRelativePath="src/XSD_oss.asn" relativeURI="src/XSD_oss.asn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XSDASN_CNL113474</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XSD.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XSD_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="XSD_ASN">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XSDASN_CNL113474</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XSD.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XSD_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+    <Configuration name="XSD">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XSDASN_CNL113474</targetExecutable>
+          <buildLevel>Level 3 - Creating object files with dependency update</buildLevel>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+      <FolderProperties>
+        <FolderResource>
+          <FolderPath>doc</FolderPath>
+          <FolderProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FolderProperties>
+        </FolderResource>
+      </FolderProperties>
+      <FileProperties>
+        <FileResource>
+          <FilePath>src/XSD_ASN.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+        <FileResource>
+          <FilePath>src/XSD_oss.asn</FilePath>
+          <FileProperties>
+            <ExcludeFromBuild>true</ExcludeFromBuild>
+          </FileProperties>
+        </FileResource>
+      </FileProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/XTDP_CNL113663.tpd b/regression_test/XML/tpdValidTest/tpdTest/XTDP_CNL113663.tpd
new file mode 100644
index 000000000..11a09e97f
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/XTDP_CNL113663.tpd
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               XTDP_CNL113663.tpd
+   Description:        tpd project file
+   Rev:                R7A02
+   Prodnr:             CNL 113 663
+   Updated:            2013-03-25
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>XTDP_CNL113663</ProjectName>
+  <Files>
+    <FileResource projectRelativePath="UsefulTtcn3Types.ttcn" relativeURI="src/generated_files/UsefulTtcn3Types.ttcn"/>
+    <FileResource projectRelativePath="XSD.ttcn" relativeURI="src/generated_files/XSD.ttcn"/>
+    <FileResource projectRelativePath="XTDP_EncDecFunctions.ttcn" relativeURI="src/XTDP_EncDecFunctions.ttcn"/>
+    <FileResource projectRelativePath="ttcn_ericsson_se_protocolModules_xtdp_xtdl.ttcn" relativeURI="src/generated_files/ttcn_ericsson_se_protocolModules_xtdp_xtdl.ttcn"/>
+    <FileResource projectRelativePath="ttcn_ericsson_se_protocolModules_xtdp_xtdp.ttcn" relativeURI="src/generated_files/ttcn_ericsson_se_protocolModules_xtdp_xtdp.ttcn"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <targetExecutable>bin/XTDP</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdTest/XTDPasp_CNL113494.tpd b/regression_test/XML/tpdValidTest/tpdTest/XTDPasp_CNL113494.tpd
new file mode 100644
index 000000000..7d97196f9
--- /dev/null
+++ b/regression_test/XML/tpdValidTest/tpdTest/XTDPasp_CNL113494.tpd
@@ -0,0 +1,64 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ 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
+
+
+   File:               XTDPasp_CNL113494.tpd
+   Description:        tpd project file
+   Rev:                R7A01
+   Prodnr:             CNL 113 494
+   Updated:            2012-03-06
+   Contact:            http://ttcn.ericsson.se
+
+ -->
+<TITAN_Project_File_Information version="1.0">
+  <ProjectName>XTDPasp_CNL113494</ProjectName>
+  <ReferencedProjects>
+    <ReferencedProject name="Abstract_Socket_CNL113384" projectLocationURI="../Common_Components/Abstract_Socket_CNL113384/Abstract_Socket_CNL113384.tpd"/>
+    <ReferencedProject name="XSDASN_CNL113474" projectLocationURI="../../ProtocolModules/XSDASN_CNL113474/XSDASN_CNL113474.tpd"/>
+  </ReferencedProjects>
+  <Folders>
+    <FolderResource projectRelativePath="src" relativeURI="src"/>
+  </Folders>
+  <Files>
+    <FileResource projectRelativePath="src/README.txt" relativeURI="src/README.txt"/>
+    <FileResource projectRelativePath="src/XTDP-EXER-EncDec.cc" relativeURI="src/XTDP-EXER-EncDec.cc"/>
+    <FileResource projectRelativePath="src/XTDP_Images.ttcn" relativeURI="src/XTDP_Images.ttcn"/>
+    <FileResource projectRelativePath="src/XTDP_PDU_Defs.asn" relativeURI="src/XTDP_PDU_Defs.asn"/>
+    <FileResource projectRelativePath="src/XTDPasp.grp" relativeURI="src/XTDPasp.grp"/>
+    <FileResource projectRelativePath="src/XTDPasp_PT.cc" relativeURI="src/XTDPasp_PT.cc"/>
+    <FileResource projectRelativePath="src/XTDPasp_PT.hh" relativeURI="src/XTDPasp_PT.hh"/>
+    <FileResource projectRelativePath="src/XTDPasp_PortType.ttcn" relativeURI="src/XTDPasp_PortType.ttcn"/>
+    <FileResource projectRelativePath="src/XTDPasp_Types.ttcn" relativeURI="src/XTDPasp_Types.ttcn"/>
+    <FileResource projectRelativePath="src/XUL_XTDL.asn" relativeURI="src/XUL_XTDL.asn"/>
+    <FileResource projectRelativePath="src/lex.xtdp.c" relativeURI="src/lex.xtdp.c"/>
+    <FileResource projectRelativePath="src/xtdp.l" relativeURI="src/xtdp.l"/>
+  </Files>
+  <ActiveConfiguration>Default</ActiveConfiguration>
+  <Configurations>
+    <Configuration name="Default">
+      <ProjectProperties>
+        <MakefileSettings>
+          <generateInternalMakefile>true</generateInternalMakefile>
+          <GNUMake>true</GNUMake>
+          <incrementalDependencyRefresh>true</incrementalDependencyRefresh>
+          <targetExecutable>bin/XTDPasp_CNL113494</targetExecutable>
+        </MakefileSettings>
+        <LocalBuildSettings>
+          <workingDirectory>bin</workingDirectory>
+        </LocalBuildSettings>
+        <NamingCoventions>
+          <enableProjectSpecificSettings>true</enableProjectSpecificSettings>
+          <globalConstant>c[g]?_.*</globalConstant>
+          <externalFunction>.*</externalFunction>
+          <formalParameter>.*</formalParameter>
+        </NamingCoventions>
+      </ProjectProperties>
+    </Configuration>
+  </Configurations>
+</TITAN_Project_File_Information>
diff --git a/regression_test/XML/tpdValidTest/tpdValidTest.sh b/regression_test/XML/tpdValidTest/tpdValidTest.sh
index e5876700a..22640f719 100755
--- a/regression_test/XML/tpdValidTest/tpdValidTest.sh
+++ b/regression_test/XML/tpdValidTest/tpdValidTest.sh
@@ -1,13 +1,13 @@
 #!/bin/bash
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
 ###############################################################################
 
-TPD_DIR="$WORKSPACE/titan_eclipse/Semantic_Analizer_Tests/tpdTest/"
+TPD_DIR="./tpdTest/"
 XSD_DIR="$TTCN3_DIR/etc/xsd/"
 XSD="TPD.xsd"
 
diff --git a/regression_test/XML/xsdConverter/Examples/Example1.xsd b/regression_test/XML/xsdConverter/Examples/Example1.xsd
index a3232a72d..6aee03c09 100644
--- a/regression_test/XML/xsdConverter/Examples/Example1.xsd
+++ b/regression_test/XML/xsdConverter/Examples/Example1.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/Example2.xsd b/regression_test/XML/xsdConverter/Examples/Example2.xsd
index 7a3a711f1..890015240 100644
--- a/regression_test/XML/xsdConverter/Examples/Example2.xsd
+++ b/regression_test/XML/xsdConverter/Examples/Example2.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/Example3.xsd b/regression_test/XML/xsdConverter/Examples/Example3.xsd
index c5eaf79d0..a9852e6ab 100644
--- a/regression_test/XML/xsdConverter/Examples/Example3.xsd
+++ b/regression_test/XML/xsdConverter/Examples/Example3.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/Example4.xsd b/regression_test/XML/xsdConverter/Examples/Example4.xsd
index 4334c9d72..dfbb72472 100644
--- a/regression_test/XML/xsdConverter/Examples/Example4.xsd
+++ b/regression_test/XML/xsdConverter/Examples/Example4.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/Examples.ttcn b/regression_test/XML/xsdConverter/Examples/Examples.ttcn
index 45acd7bdd..a40e53d93 100644
--- a/regression_test/XML/xsdConverter/Examples/Examples.ttcn
+++ b/regression_test/XML/xsdConverter/Examples/Examples.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/Examples/Makefile b/regression_test/XML/xsdConverter/Examples/Makefile
index cea7c8cb5..ad425fbdf 100644
--- a/regression_test/XML/xsdConverter/Examples/Makefile
+++ b/regression_test/XML/xsdConverter/Examples/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_1_1.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_1_1.xsd
index 7dc6b6850..39c912175 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_1_1.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_1_1.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_1_2.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_1_2.xsd
index accae66ec..1956abe67 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_1_2.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_1_2.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_1_3.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_1_3.xsd
index ac4b397b3..4959823aa 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_1_3.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_1_3.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_1_4.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_1_4.xsd
index ff71fce71..d355f3b24 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_1_4.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_1_4.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_1_5.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_1_5.xsd
index bbbfd39d0..b07de7790 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_1_5.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_1_5.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_1_6.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_1_6.xsd
index dd1fa9e90..33f6f5317 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_1_6.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_1_6.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_2_1.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_2_1.xsd
index 933b6d7ae..7c0e7064c 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_2_1.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_2_1.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_2_2.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_2_2.xsd
index daa9b348c..45b4f54c4 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_2_2.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_2_2.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_5_2_3.xsd b/regression_test/XML/xsdConverter/Examples/chapter_5_2_3.xsd
index 32bde2689..e3623c1c1 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_5_2_3.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_5_2_3.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_6.xsd b/regression_test/XML/xsdConverter/Examples/chapter_6.xsd
index f1197553a..bd6eef51c 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_6.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_6.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_1.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_1.xsd
index e3ed7c85d..bc6dec38a 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_1.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_1.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_3.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_3.xsd
index 2950f5430..2bea0880d 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_3.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_3.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_4.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_4.xsd
index 34b06d99e..a05541f4d 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_4.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_4.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_5.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_5.xsd
index d6687ca99..c7c9c40d9 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_5.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_5.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_6.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_6.xsd
index 3334a7d33..b2c0744bc 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_6.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_6.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_7.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_7.xsd
index 650827115..5842dfe90 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_7.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_7.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_8.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_8.xsd
index 578a23505..befd076f4 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_8.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_8.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/chapter_7_9.xsd b/regression_test/XML/xsdConverter/Examples/chapter_7_9.xsd
index 7bee010ad..3e9a83b71 100644
--- a/regression_test/XML/xsdConverter/Examples/chapter_7_9.xsd
+++ b/regression_test/XML/xsdConverter/Examples/chapter_7_9.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Examples/config.cfg b/regression_test/XML/xsdConverter/Examples/config.cfg
index 2b7a4c289..b2fd09a33 100644
--- a/regression_test/XML/xsdConverter/Examples/config.cfg
+++ b/regression_test/XML/xsdConverter/Examples/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HN21072/HN21072Test.ttcn b/regression_test/XML/xsdConverter/HN21072/HN21072Test.ttcn
index ae7c395b2..e8704358a 100644
--- a/regression_test/XML/xsdConverter/HN21072/HN21072Test.ttcn
+++ b/regression_test/XML/xsdConverter/HN21072/HN21072Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/HN21072/Makefile b/regression_test/XML/xsdConverter/HN21072/Makefile
index 28b317563..5f61fbadd 100644
--- a/regression_test/XML/xsdConverter/HN21072/Makefile
+++ b/regression_test/XML/xsdConverter/HN21072/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HN21072/W3-WSDL-chop.xsd b/regression_test/XML/xsdConverter/HN21072/W3-WSDL-chop.xsd
index 06a964374..856843cc4 100644
--- a/regression_test/XML/xsdConverter/HN21072/W3-WSDL-chop.xsd
+++ b/regression_test/XML/xsdConverter/HN21072/W3-WSDL-chop.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HN21072/log2xml.pl b/regression_test/XML/xsdConverter/HN21072/log2xml.pl
index 94e71e162..7da89d233 100644
--- a/regression_test/XML/xsdConverter/HN21072/log2xml.pl
+++ b/regression_test/XML/xsdConverter/HN21072/log2xml.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -wln
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HN65402/Makefile b/regression_test/XML/xsdConverter/HN65402/Makefile
index 06b7b4389..8f72a4001 100644
--- a/regression_test/XML/xsdConverter/HN65402/Makefile
+++ b/regression_test/XML/xsdConverter/HN65402/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HN65402/jellystone.ttcn b/regression_test/XML/xsdConverter/HN65402/jellystone.ttcn
index 114010c02..c570255e3 100644
--- a/regression_test/XML/xsdConverter/HN65402/jellystone.ttcn
+++ b/regression_test/XML/xsdConverter/HN65402/jellystone.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/HN65402/jellystone.xsd b/regression_test/XML/xsdConverter/HN65402/jellystone.xsd
index 23d4c291a..3f13f0b03 100644
--- a/regression_test/XML/xsdConverter/HN65402/jellystone.xsd
+++ b/regression_test/XML/xsdConverter/HN65402/jellystone.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HO12250/HO12250.xsd b/regression_test/XML/xsdConverter/HO12250/HO12250.xsd
index d03fb25c2..ba9402725 100644
--- a/regression_test/XML/xsdConverter/HO12250/HO12250.xsd
+++ b/regression_test/XML/xsdConverter/HO12250/HO12250.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HO12250/Makefile b/regression_test/XML/xsdConverter/HO12250/Makefile
index 2244b6a04..5b0aa8aa9 100644
--- a/regression_test/XML/xsdConverter/HO12250/Makefile
+++ b/regression_test/XML/xsdConverter/HO12250/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HO16426/Makefile b/regression_test/XML/xsdConverter/HO16426/Makefile
index 6f085fb9f..a52b60351 100644
--- a/regression_test/XML/xsdConverter/HO16426/Makefile
+++ b/regression_test/XML/xsdConverter/HO16426/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HO16426/diversion.ttcn b/regression_test/XML/xsdConverter/HO16426/diversion.ttcn
index 7e31fe52b..4cea6c679 100644
--- a/regression_test/XML/xsdConverter/HO16426/diversion.ttcn
+++ b/regression_test/XML/xsdConverter/HO16426/diversion.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/HO16426/diversion.xsd b/regression_test/XML/xsdConverter/HO16426/diversion.xsd
index f42894e16..9b1f65e36 100644
--- a/regression_test/XML/xsdConverter/HO16426/diversion.xsd
+++ b/regression_test/XML/xsdConverter/HO16426/diversion.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HO18151/HO18151.ttcn b/regression_test/XML/xsdConverter/HO18151/HO18151.ttcn
index 7b722ee1e..bdcbb0d48 100644
--- a/regression_test/XML/xsdConverter/HO18151/HO18151.ttcn
+++ b/regression_test/XML/xsdConverter/HO18151/HO18151.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/HO18151/HO18151.xsd b/regression_test/XML/xsdConverter/HO18151/HO18151.xsd
index 6dca64e87..5139f4214 100644
--- a/regression_test/XML/xsdConverter/HO18151/HO18151.xsd
+++ b/regression_test/XML/xsdConverter/HO18151/HO18151.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HO18151/Makefile b/regression_test/XML/xsdConverter/HO18151/Makefile
index 6b79abeb4..2bbba257a 100644
--- a/regression_test/XML/xsdConverter/HO18151/Makefile
+++ b/regression_test/XML/xsdConverter/HO18151/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HO21968/HO21968.ttcn b/regression_test/XML/xsdConverter/HO21968/HO21968.ttcn
index 13bc7372f..4b6bb03d1 100644
--- a/regression_test/XML/xsdConverter/HO21968/HO21968.ttcn
+++ b/regression_test/XML/xsdConverter/HO21968/HO21968.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/HO21968/HO21968noprefix.xsd b/regression_test/XML/xsdConverter/HO21968/HO21968noprefix.xsd
index 56fd80b68..af7dad6c2 100644
--- a/regression_test/XML/xsdConverter/HO21968/HO21968noprefix.xsd
+++ b/regression_test/XML/xsdConverter/HO21968/HO21968noprefix.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HO21968/HO21968prefix.xsd b/regression_test/XML/xsdConverter/HO21968/HO21968prefix.xsd
index 6d0bf5f54..4e1ca2947 100644
--- a/regression_test/XML/xsdConverter/HO21968/HO21968prefix.xsd
+++ b/regression_test/XML/xsdConverter/HO21968/HO21968prefix.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/HO21968/Makefile b/regression_test/XML/xsdConverter/HO21968/Makefile
index 24dd6f7c2..c4fb57391 100644
--- a/regression_test/XML/xsdConverter/HO21968/Makefile
+++ b/regression_test/XML/xsdConverter/HO21968/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HQ48576/HQ48576Test.ttcn b/regression_test/XML/xsdConverter/HQ48576/HQ48576Test.ttcn
index 7f77db3a2..ff6f35947 100644
--- a/regression_test/XML/xsdConverter/HQ48576/HQ48576Test.ttcn
+++ b/regression_test/XML/xsdConverter/HQ48576/HQ48576Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/XML/xsdConverter/HQ48576/Makefile b/regression_test/XML/xsdConverter/HQ48576/Makefile
index efb95b352..8a9d9857a 100644
--- a/regression_test/XML/xsdConverter/HQ48576/Makefile
+++ b/regression_test/XML/xsdConverter/HQ48576/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/HQ48576/hlrla_types.xsd b/regression_test/XML/xsdConverter/HQ48576/hlrla_types.xsd
index 31942e8ed..af55f9eed 100644
--- a/regression_test/XML/xsdConverter/HQ48576/hlrla_types.xsd
+++ b/regression_test/XML/xsdConverter/HQ48576/hlrla_types.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/XML/xsdConverter/Makefile b/regression_test/XML/xsdConverter/Makefile
index a66f4ccae..d904c8b98 100644
--- a/regression_test/XML/xsdConverter/Makefile
+++ b/regression_test/XML/xsdConverter/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/XML/xsdConverter/Makefile.converter b/regression_test/XML/xsdConverter/Makefile.converter
index 5b8d81e08..a91f7f88b 100644
--- a/regression_test/XML/xsdConverter/Makefile.converter
+++ b/regression_test/XML/xsdConverter/Makefile.converter
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/acceptance_test/Fibonacci/Fibonacci.cfg b/regression_test/acceptance_test/Fibonacci/Fibonacci.cfg
index cd262f031..6eff89065 100644
--- a/regression_test/acceptance_test/Fibonacci/Fibonacci.cfg
+++ b/regression_test/acceptance_test/Fibonacci/Fibonacci.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/acceptance_test/Fibonacci/Fibonacci.ttcn b/regression_test/acceptance_test/Fibonacci/Fibonacci.ttcn
index 7a9269e68..fea5ab43f 100644
--- a/regression_test/acceptance_test/Fibonacci/Fibonacci.ttcn
+++ b/regression_test/acceptance_test/Fibonacci/Fibonacci.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/acceptance_test/Fibonacci/Makefile b/regression_test/acceptance_test/Fibonacci/Makefile
index 6bb7c9cd4..d1562ea1a 100644
--- a/regression_test/acceptance_test/Fibonacci/Makefile
+++ b/regression_test/acceptance_test/Fibonacci/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/acceptance_test/chinese/Makefile b/regression_test/acceptance_test/chinese/Makefile
index 69c962773..2772c5182 100644
--- a/regression_test/acceptance_test/chinese/Makefile
+++ b/regression_test/acceptance_test/chinese/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/acceptance_test/chinese/chinese.ttcn b/regression_test/acceptance_test/chinese/chinese.ttcn
index 08e8155c1..aa886a3aa 100644
--- a/regression_test/acceptance_test/chinese/chinese.ttcn
+++ b/regression_test/acceptance_test/chinese/chinese.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/acceptance_test/comptest/Makefile b/regression_test/acceptance_test/comptest/Makefile
index e853439f4..b39d2fcd8 100644
--- a/regression_test/acceptance_test/comptest/Makefile
+++ b/regression_test/acceptance_test/comptest/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/acceptance_test/comptest/comptest.ttcn b/regression_test/acceptance_test/comptest/comptest.ttcn
index c26c99fb1..9cc69437b 100644
--- a/regression_test/acceptance_test/comptest/comptest.ttcn
+++ b/regression_test/acceptance_test/comptest/comptest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/acceptance_test/testerlanc/Makefile b/regression_test/acceptance_test/testerlanc/Makefile
index 9e222b814..72bd5233c 100644
--- a/regression_test/acceptance_test/testerlanc/Makefile
+++ b/regression_test/acceptance_test/testerlanc/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/acceptance_test/testerlanc/testerlanc.ttcn b/regression_test/acceptance_test/testerlanc/testerlanc.ttcn
index bef46a78d..1de319f85 100644
--- a/regression_test/acceptance_test/testerlanc/testerlanc.ttcn
+++ b/regression_test/acceptance_test/testerlanc/testerlanc.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/Makefile b/regression_test/all_from/Makefile
index c41f4b497..1720c4ca0 100644
--- a/regression_test/all_from/Makefile
+++ b/regression_test/all_from/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/all_from/all_from.ttcn b/regression_test/all_from/all_from.ttcn
index 66a05deee..a372bfda9 100644
--- a/regression_test/all_from/all_from.ttcn
+++ b/regression_test/all_from/all_from.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/all_from_complement.ttcn b/regression_test/all_from/all_from_complement.ttcn
index 54bb0564d..706e7694c 100644
--- a/regression_test/all_from/all_from_complement.ttcn
+++ b/regression_test/all_from/all_from_complement.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/all_from_permutation.ttcn b/regression_test/all_from/all_from_permutation.ttcn
index 68bbffeb7..5fbf5dd08 100644
--- a/regression_test/all_from/all_from_permutation.ttcn
+++ b/regression_test/all_from/all_from_permutation.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/all_from_subrefs.ttcn b/regression_test/all_from/all_from_subrefs.ttcn
new file mode 100644
index 000000000..e08b91c3f
--- /dev/null
+++ b/regression_test/all_from/all_from_subrefs.ttcn
@@ -0,0 +1,284 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+module all_from_subrefs {
+
+// in these tests the targets of 'all from' contain subreferences (array indexes and/or fields names)
+
+import from types all;
+
+// source templates and constants
+template MyRecord t_rec := { i := omit, roi := { 1, 3, 5 }, soi := { 2, 4, 6 } };
+template RoRoI t_roroi := { { 1, 2, 3 }, { 4, 5 }, { 6, 7, 8 } };
+template RoSoI t_rosoi(in integer x) := { { 10, 20, 30 }, { x, x * 2 } };
+const RoMyRec c_rorec := { { i := omit, roi := { -1, -3, -5 }, soi := { -2, -4, -6 } }, { i := 0, roi := omit, soi := { -10, -20, -30 } } };
+const RoMyUnion c_rouni := { { roi := { 11, 22, 33 } }, { soi := { -11, -22, -33 } } };
+const MyUnion c_uni := { roi := { 7, 77, 777 } };
+
+// just 'all from'
+template integer t_sr1 := ( 0, all from t_rec.soi, 8, 10 );
+template integer t_sr1_exp := ( 0, 2, 4, 6, 8, 10 );
+
+template integer t_sr2 := ( all from t_rec.roi, all from t_roroi[2] );
+template integer t_sr2_exp := ( 1, 3, 5, 6, 7, 8 );
+
+template integer t_sr3 := ( all from t_rosoi(100)[0], all from c_rorec[1].soi );
+template integer t_sr3_exp := ( 10, 20, 30, -10, -20, -30 );
+
+template integer t_sr4 := ( 0, all from c_rouni[0].roi, 44 );
+template integer t_sr4_exp := ( 0, 11, 22, 33, 44 );
+
+template integer t_sr5 := ( all from c_uni.roi );
+template integer t_sr5_exp := ( 7, 77, 777 );
+
+testcase tc_all_from_subrefs() runs on A
+{
+  if (log2str(t_sr1) != log2str(t_sr1_exp)) {
+    setverdict(fail, "Expected: ", t_sr1_exp, ", got: ", t_sr1);
+  }
+  if (log2str(t_sr2) != log2str(t_sr2_exp)) {
+    setverdict(fail, "Expected: ", t_sr2_exp, ", got: ", t_sr2);
+  }
+  if (log2str(t_sr3) != log2str(t_sr3_exp)) {
+    setverdict(fail, "Expected: ", t_sr3_exp, ", got: ", t_sr3);
+  }
+  if (log2str(t_sr4) != log2str(t_sr4_exp)) {
+    setverdict(fail, "Expected: ", t_sr4_exp, ", got: ", t_sr4);
+  }
+  if (log2str(t_sr5) != log2str(t_sr5_exp)) {
+    setverdict(fail, "Expected: ", t_sr5_exp, ", got: ", t_sr5);
+  }
+  setverdict(pass);
+}
+
+// permutation + all from
+template RoI t_sr_perm1 := { permutation ( all from t_rec.roi ) };
+template RoI t_sr_perm1_exp := { permutation ( 1, 3, 5 ) };
+
+template RoI t_sr_perm2 := { permutation ( 3, all from t_roroi[1], all from t_roroi[2] ) };
+template RoI t_sr_perm2_exp := { permutation ( 3, 4, 5, 6, 7, 8 ) };
+
+template RoI t_sr_perm3 := { permutation ( all from c_rorec[0].roi, all from c_rorec[0].soi ) };
+template RoI t_sr_perm3_exp := { permutation ( -1, -3, -5, -2, -4, -6 ) };
+
+testcase tc_all_from_subrefs_permutation() runs on A
+{
+  if (log2str(t_sr_perm1) != log2str(t_sr_perm1_exp)) {
+    setverdict(fail, "Expected: ", t_sr_perm1_exp, ", got: ", t_sr_perm1);
+  }
+  if (log2str(t_sr_perm2) != log2str(t_sr_perm2_exp)) {
+    setverdict(fail, "Expected: ", t_sr_perm2_exp, ", got: ", t_sr_perm2);
+  }
+  if (log2str(t_sr_perm3) != log2str(t_sr_perm3_exp)) {
+    setverdict(fail, "Expected: ", t_sr_perm3_exp, ", got: ", t_sr_perm3);
+  }
+  setverdict(pass);
+}
+
+// subset + all from
+template SoI t_sr_sub1 := subset ( all from c_rouni[1].soi );
+template SoI t_sr_sub1_exp := subset ( -11, -22, -33 );
+
+template SoI t_sr_sub2 := subset ( all from t_rec.soi, 2, all from t_roroi[0] );
+template SoI t_sr_sub2_exp := subset ( 2, 4, 6, 2, 1, 2, 3 );
+
+template SoI t_sr_sub3 := subset ( all from t_rosoi(100)[1], all from c_rorec[0].roi, all from c_rorec[0].roi );
+template SoI t_sr_sub3_exp := subset ( 100, 200, -1, -3, -5, -1, -3, -5 );
+
+testcase tc_all_from_subrefs_subset() runs on A
+{
+  if (log2str(t_sr_sub1) != log2str(t_sr_sub1_exp)) {
+    setverdict(fail, "Expected: ", t_sr_sub1_exp, ", got: ", t_sr_sub1);
+  }
+  if (log2str(t_sr_sub2) != log2str(t_sr_sub2_exp)) {
+    setverdict(fail, "Expected: ", t_sr_sub2_exp, ", got: ", t_sr_sub2);
+  }
+  if (log2str(t_sr_sub3) != log2str(t_sr_sub3_exp)) {
+    setverdict(fail, "Expected: ", t_sr_sub3_exp, ", got: ", t_sr_sub3);
+  }
+  setverdict(pass);
+}
+
+// superset + all from
+template SoI t_sr_super1 := superset ( all from c_rouni[0].roi );
+template SoI t_sr_super1_exp := superset ( 11, 22, 33 );
+
+template SoI t_sr_super2 := superset ( all from t_rec.roi, 2, all from t_roroi[1] );
+template SoI t_sr_super2_exp := superset ( 1, 3, 5, 2, 4, 5 );
+
+template SoI t_sr_super3 := superset ( all from t_rosoi(100)[0], all from c_rorec[1].soi, all from c_rorec[1].soi );
+template SoI t_sr_super3_exp := superset ( 10, 20, 30, -10, -20, -30, -10, -20, -30 );
+
+testcase tc_all_from_subrefs_superset() runs on A
+{
+  if (log2str(t_sr_super1) != log2str(t_sr_super1_exp)) {
+    setverdict(fail, "Expected: ", t_sr_super1_exp, ", got: ", t_sr_super1);
+  }
+  if (log2str(t_sr_super2) != log2str(t_sr_super2_exp)) {
+    setverdict(fail, "Expected: ", t_sr_super2_exp, ", got: ", t_sr_super2);
+  }
+  if (log2str(t_sr_super3) != log2str(t_sr_super3_exp)) {
+    setverdict(fail, "Expected: ", t_sr_super3_exp, ", got: ", t_sr_super3);
+  }
+  setverdict(pass);
+}
+
+// all from + variables / template variables
+testcase tc_all_from_subrefs_var() runs on A
+{
+  // source variables
+  var MyRecord v_rec := { i := omit, roi := { 2, 1, 0 }, soi := { 7, 1, 5 } };
+  var RoSoI v_rosoi := { { 2, 4, 8, 16 } };
+  var template RoMyUnion vt_rouni := { { soi := { 1, 1, 1 } }, { soi := { -1, -3, -5 } } };
+  var template RoRoI vt_roroi := { { 10, 11 }, { 20, 26, 29 }, { 31, 33 } };
+  
+  // templates with 'all from'
+  var template integer vt_sr := ( 0, all from v_rec.soi, all from vt_roroi[1] );
+  var template integer vt_sr_exp := ( 0, 7, 1, 5, 20, 26, 29 );
+  var template RoI vt_sr_perm := { permutation ( 3, all from v_rec.roi, all from vt_rouni[1].soi ) };
+  var template RoI vt_sr_perm_exp := { permutation ( 3, 2, 1, 0, -1, -3, -5 ) };
+  var template SoI vt_sr_sub := subset ( all from v_rosoi[0], 6, all from vt_roroi[0] );
+  var template SoI vt_sr_sub_exp := subset ( 2, 4, 8, 16, 6, 10, 11 );
+  var template SoI vt_sr_super := superset ( all from vt_rouni[0].soi, all from vt_rouni[0].soi );
+  var template SoI vt_sr_super_exp := superset ( 1, 1, 1, 1, 1, 1 );
+  
+  // test templates with 'all from' against the expected templates
+  if (log2str(vt_sr) != log2str(vt_sr_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_exp, ", got: ", vt_sr);
+  }
+  if (log2str(vt_sr_perm) != log2str(vt_sr_perm_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_perm_exp, ", got: ", vt_sr_perm);
+  }
+  if (log2str(vt_sr_sub) != log2str(vt_sr_sub_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_sub_exp, ", got: ", vt_sr_sub);
+  }
+  if (log2str(vt_sr_super) != log2str(vt_sr_super_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_super_exp, ", got: ", vt_sr_super);
+  }
+  setverdict(pass);
+}
+
+// all from + module parameters
+modulepar MyRecord mp_rec := { i := omit, roi := { 2, 1, 0 }, soi := { 7, 1, 5 } };
+modulepar RoSoI mp_rosoi := { { 2, 4, 8, 16 } };
+modulepar template RoMyUnion mpt_rouni := { { soi := { 1, 1, 1 } }, { soi := { -1, -3, -5 } } };
+modulepar template RoRoI mpt_roroi := { { 10, 11 }, { 20, 26, 29 }, { 31, 33 } };
+
+testcase tc_all_from_subrefs_modulepar() runs on A
+{
+  // templates with 'all from'
+  var template integer vt_sr := ( 0, all from mp_rec.soi, all from mpt_roroi[1] );
+  var template integer vt_sr_exp := ( 0, 7, 1, 5, 20, 26, 29 );
+  var template RoI vt_sr_perm := { permutation ( 3, all from mp_rec.roi, all from mpt_rouni[1].soi ) };
+  var template RoI vt_sr_perm_exp := { permutation ( 3, 2, 1, 0, -1, -3, -5 ) };
+  var template SoI vt_sr_sub := subset ( all from mp_rosoi[0], 6, all from mpt_roroi[0] );
+  var template SoI vt_sr_sub_exp := subset ( 2, 4, 8, 16, 6, 10, 11 );
+  var template SoI vt_sr_super := superset ( all from mpt_rouni[0].soi, all from mpt_rouni[0].soi );
+  var template SoI vt_sr_super_exp := superset ( 1, 1, 1, 1, 1, 1 );
+
+  // test templates with 'all from' against the expected templates
+  if (log2str(vt_sr) != log2str(vt_sr_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_exp, ", got: ", vt_sr);
+  }
+  if (log2str(vt_sr_perm) != log2str(vt_sr_perm_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_perm_exp, ", got: ", vt_sr_perm);
+  }
+  if (log2str(vt_sr_sub) != log2str(vt_sr_sub_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_sub_exp, ", got: ", vt_sr_sub);
+  }
+  if (log2str(vt_sr_super) != log2str(vt_sr_super_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_super_exp, ", got: ", vt_sr_super);
+  }
+  setverdict(pass);
+}
+
+// all from + function parameters
+function f_test_all_from_param(RoMyRec p_rorec, in RoMyUnion p_rouni, inout MyUnion p_uni,
+  template RoSoI pt_rosoi, in template RoRoI pt_roroi, inout template MyRecord pt_rec)
+{
+  // templates with 'all from'
+  var template integer vt_sr := ( all from p_rorec[0].roi, 0, all from pt_rec.roi );
+  var template integer vt_sr_exp := ( -1, -3, -5, 0, 1, 3, 5 );
+  var template RoI vt_sr_perm := { permutation ( all from pt_rosoi[0], all from p_rouni[0].roi ) };
+  var template RoI vt_sr_perm_exp := { permutation ( 10, 20, 30, 11, 22, 33 ) };
+  var template SoI vt_sr_sub := subset ( all from p_uni.roi, all from p_uni.roi );
+  var template SoI vt_sr_sub_exp := subset ( 7, 77, 777, 7, 77, 777 );
+  var template SoI vt_sr_super := superset ( 0, all from pt_roroi[0], all from pt_roroi[1] );
+  var template SoI vt_sr_super_exp := superset ( 0, 1, 2, 3, 4, 5 );
+
+  // test templates with 'all from' against the expected templates
+  if (log2str(vt_sr) != log2str(vt_sr_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_exp, ", got: ", vt_sr);
+  }
+  if (log2str(vt_sr_perm) != log2str(vt_sr_perm_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_perm_exp, ", got: ", vt_sr_perm);
+  }
+  if (log2str(vt_sr_sub) != log2str(vt_sr_sub_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_sub_exp, ", got: ", vt_sr_sub);
+  }
+  if (log2str(vt_sr_super) != log2str(vt_sr_super_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_super_exp, ", got: ", vt_sr_super);
+  }
+  setverdict(pass);
+}
+
+testcase tc_all_from_subrefs_param() runs on A
+{
+  var MyUnion v_uni := c_uni;
+  var template MyRecord vt_rec := t_rec;
+  f_test_all_from_param(c_rorec, c_rouni, v_uni, t_rosoi(100), t_roroi, vt_rec);
+}
+
+// all from + function calls
+function f_rorec() return RoMyRec { return c_rorec; }
+function f_rouni() return RoMyUnion { return c_rouni; }
+function f_uni() return MyUnion { return c_uni; }
+function f_rosoi(in integer x) return template RoSoI { return t_rosoi(x); }
+function f_roroi() return template RoRoI { return t_roroi; }
+function f_rec() return template MyRecord { return t_rec; }
+
+testcase tc_all_from_subrefs_function() runs on A
+{
+  // templates with 'all from'
+  var template integer vt_sr := ( all from f_rorec()[0].roi, 0, all from f_rec().roi );
+  var template integer vt_sr_exp := ( -1, -3, -5, 0, 1, 3, 5 );
+  var template RoI vt_sr_perm := { permutation ( all from f_rosoi(100)[0], all from f_rouni()[0].roi ) };
+  var template RoI vt_sr_perm_exp := { permutation ( 10, 20, 30, 11, 22, 33 ) };
+  var template SoI vt_sr_sub := subset ( all from f_uni().roi, all from f_uni().roi );
+  var template SoI vt_sr_sub_exp := subset ( 7, 77, 777, 7, 77, 777 );
+  var template SoI vt_sr_super := superset ( 0, all from f_roroi()[0], all from f_roroi()[1] );
+  var template SoI vt_sr_super_exp := superset ( 0, 1, 2, 3, 4, 5 );
+
+  // test templates with 'all from' against the expected templates
+  if (log2str(vt_sr) != log2str(vt_sr_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_exp, ", got: ", vt_sr);
+  }
+  if (log2str(vt_sr_perm) != log2str(vt_sr_perm_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_perm_exp, ", got: ", vt_sr_perm);
+  }
+  if (log2str(vt_sr_sub) != log2str(vt_sr_sub_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_sub_exp, ", got: ", vt_sr_sub);
+  }
+  if (log2str(vt_sr_super) != log2str(vt_sr_super_exp)) {
+    setverdict(fail, "Expected: ", vt_sr_super_exp, ", got: ", vt_sr_super);
+  }
+  setverdict(pass);
+}
+
+control {
+  execute(tc_all_from_subrefs());
+  execute(tc_all_from_subrefs_permutation());
+  execute(tc_all_from_subrefs_subset());
+  execute(tc_all_from_subrefs_superset());
+  execute(tc_all_from_subrefs_var());
+  execute(tc_all_from_subrefs_modulepar());
+  execute(tc_all_from_subrefs_param());
+  execute(tc_all_from_subrefs_function());
+}
+
+}
diff --git a/regression_test/all_from/all_from_subset.ttcn b/regression_test/all_from/all_from_subset.ttcn
index 3affecd48..37d82c27b 100644
--- a/regression_test/all_from/all_from_subset.ttcn
+++ b/regression_test/all_from/all_from_subset.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/all_from_superset.ttcn b/regression_test/all_from/all_from_superset.ttcn
index 76585c4ae..166b519fe 100644
--- a/regression_test/all_from/all_from_superset.ttcn
+++ b/regression_test/all_from/all_from_superset.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/all_from_var.ttcn b/regression_test/all_from/all_from_var.ttcn
index a0c2c04b6..23517ad8f 100644
--- a/regression_test/all_from/all_from_var.ttcn
+++ b/regression_test/all_from/all_from_var.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/all_from_with_functions.ttcn b/regression_test/all_from/all_from_with_functions.ttcn
index 5aaa17a6e..6bb7f6f7d 100644
--- a/regression_test/all_from/all_from_with_functions.ttcn
+++ b/regression_test/all_from/all_from_with_functions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/everything.ttcn b/regression_test/all_from/everything.ttcn
index 4f673df0e..0ae6a1118 100644
--- a/regression_test/all_from/everything.ttcn
+++ b/regression_test/all_from/everything.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/f_ext.cc b/regression_test/all_from/f_ext.cc
index 6c2c4fb1c..10228eafc 100644
--- a/regression_test/all_from/f_ext.cc
+++ b/regression_test/all_from/f_ext.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/all_from/f_ext.hh b/regression_test/all_from/f_ext.hh
index 90642fe5c..eaea97ff2 100644
--- a/regression_test/all_from/f_ext.hh
+++ b/regression_test/all_from/f_ext.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/all_from/functions.ttcn b/regression_test/all_from/functions.ttcn
index 29574561d..1dfab6a77 100644
--- a/regression_test/all_from/functions.ttcn
+++ b/regression_test/all_from/functions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/imported_templates.ttcn b/regression_test/all_from/imported_templates.ttcn
index 947e510f6..84dd3ad32 100644
--- a/regression_test/all_from/imported_templates.ttcn
+++ b/regression_test/all_from/imported_templates.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/sapc.ttcn b/regression_test/all_from/sapc.ttcn
index 7e65976ec..3396f47de 100644
--- a/regression_test/all_from/sapc.ttcn
+++ b/regression_test/all_from/sapc.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/all_from/types.ttcn b/regression_test/all_from/types.ttcn
index cc8c2e8c0..bd95c80ea 100644
--- a/regression_test/all_from/types.ttcn
+++ b/regression_test/all_from/types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytype/AnyUser.ttcnpp b/regression_test/anytype/AnyUser.ttcnpp
index b17271249..d22261ce3 100644
--- a/regression_test/anytype/AnyUser.ttcnpp
+++ b/regression_test/anytype/AnyUser.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytype/AnytypeTest.ttcnpp b/regression_test/anytype/AnytypeTest.ttcnpp
index 29166d5d5..47cd0fcfe 100644
--- a/regression_test/anytype/AnytypeTest.ttcnpp
+++ b/regression_test/anytype/AnytypeTest.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytype/Makefile b/regression_test/anytype/Makefile
index a65be3762..1a5553b17 100644
--- a/regression_test/anytype/Makefile
+++ b/regression_test/anytype/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/anytype/Supplier.asn b/regression_test/anytype/Supplier.asn
index 34d3b4c43..448c9553a 100644
--- a/regression_test/anytype/Supplier.asn
+++ b/regression_test/anytype/Supplier.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/anytype/config.cfg b/regression_test/anytype/config.cfg
index e8713b213..6078e4974 100644
--- a/regression_test/anytype/config.cfg
+++ b/regression_test/anytype/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/anytype/noany.ttcn b/regression_test/anytype/noany.ttcn
index ae5e8bd10..35f1fa2be 100644
--- a/regression_test/anytype/noany.ttcn
+++ b/regression_test/anytype/noany.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytype/smallany.ttcn b/regression_test/anytype/smallany.ttcn
index 4a6466d7f..a2f61bf3f 100644
--- a/regression_test/anytype/smallany.ttcn
+++ b/regression_test/anytype/smallany.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytypeOper/Makefile b/regression_test/anytypeOper/Makefile
index ea649e144..20efaeb6e 100644
--- a/regression_test/anytypeOper/Makefile
+++ b/regression_test/anytypeOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/anytypeOper/TanytypeOper.ttcn b/regression_test/anytypeOper/TanytypeOper.ttcn
index 4d97faea8..6c4509cc6 100644
--- a/regression_test/anytypeOper/TanytypeOper.ttcn
+++ b/regression_test/anytypeOper/TanytypeOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytypeOper/TanytypeWrapOper.ttcn b/regression_test/anytypeOper/TanytypeWrapOper.ttcn
index 830244b4a..fd144a654 100644
--- a/regression_test/anytypeOper/TanytypeWrapOper.ttcn
+++ b/regression_test/anytypeOper/TanytypeWrapOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/anytypeOper/config.cfg b/regression_test/anytypeOper/config.cfg
index e9cc5da4b..9a6698802 100644
--- a/regression_test/anytypeOper/config.cfg
+++ b/regression_test/anytypeOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/arrayOper/Makefile b/regression_test/arrayOper/Makefile
index 3fba5279d..86ebf08e8 100644
--- a/regression_test/arrayOper/Makefile
+++ b/regression_test/arrayOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/arrayOper/TarrayOper.ttcn b/regression_test/arrayOper/TarrayOper.ttcn
index 6d3e4f31f..e8d91e49c 100644
--- a/regression_test/arrayOper/TarrayOper.ttcn
+++ b/regression_test/arrayOper/TarrayOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/arrayOper/config.cfg b/regression_test/arrayOper/config.cfg
index 52f1b0439..fd2190ef7 100644
--- a/regression_test/arrayOper/config.cfg
+++ b/regression_test/arrayOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/assignmentNotation/Makefile b/regression_test/assignmentNotation/Makefile
index f4e35fffd..e1f7ad1de 100644
--- a/regression_test/assignmentNotation/Makefile
+++ b/regression_test/assignmentNotation/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/assignmentNotation/TassignmentNotation.asn b/regression_test/assignmentNotation/TassignmentNotation.asn
index 94c678800..3a14fb0e3 100644
--- a/regression_test/assignmentNotation/TassignmentNotation.asn
+++ b/regression_test/assignmentNotation/TassignmentNotation.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/assignmentNotation/TassignmentNotation.cfg b/regression_test/assignmentNotation/TassignmentNotation.cfg
index 7c560048e..9ced67faf 100755
--- a/regression_test/assignmentNotation/TassignmentNotation.cfg
+++ b/regression_test/assignmentNotation/TassignmentNotation.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/assignmentNotation/TassignmentNotation.ttcn b/regression_test/assignmentNotation/TassignmentNotation.ttcn
index c5f0d87cd..70d9524aa 100644
--- a/regression_test/assignmentNotation/TassignmentNotation.ttcn
+++ b/regression_test/assignmentNotation/TassignmentNotation.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/assignmentNotation/TassignmentNotation_First.cfg b/regression_test/assignmentNotation/TassignmentNotation_First.cfg
index 21b5c15d3..a796a68ad 100755
--- a/regression_test/assignmentNotation/TassignmentNotation_First.cfg
+++ b/regression_test/assignmentNotation/TassignmentNotation_First.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/assignmentNotation/TassignmentNotation_Second.cfg b/regression_test/assignmentNotation/TassignmentNotation_Second.cfg
index e69f3f5b2..5bbdd8b6f 100755
--- a/regression_test/assignmentNotation/TassignmentNotation_Second.cfg
+++ b/regression_test/assignmentNotation/TassignmentNotation_Second.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/assignmentNotation/TassignmentNotation_Third.cfg b/regression_test/assignmentNotation/TassignmentNotation_Third.cfg
index c31b2ec4b..cc51bec90 100755
--- a/regression_test/assignmentNotation/TassignmentNotation_Third.cfg
+++ b/regression_test/assignmentNotation/TassignmentNotation_Third.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/basicStatem/Makefile b/regression_test/basicStatem/Makefile
index 043884c68..842741b0d 100644
--- a/regression_test/basicStatem/Makefile
+++ b/regression_test/basicStatem/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/basicStatem/TbasicStatem.ttcn b/regression_test/basicStatem/TbasicStatem.ttcn
index 9de29825b..585da2d3c 100644
--- a/regression_test/basicStatem/TbasicStatem.ttcn
+++ b/regression_test/basicStatem/TbasicStatem.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/basicStatem/config.cfg b/regression_test/basicStatem/config.cfg
index 2c04ad11e..15c368fe9 100644
--- a/regression_test/basicStatem/config.cfg
+++ b/regression_test/basicStatem/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/bitstrOper/Makefile b/regression_test/bitstrOper/Makefile
index 0fc1db5fc..6eea88080 100644
--- a/regression_test/bitstrOper/Makefile
+++ b/regression_test/bitstrOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/bitstrOper/TbitstrOper.ttcn b/regression_test/bitstrOper/TbitstrOper.ttcn
index b0e3611e8..7af42c41a 100644
--- a/regression_test/bitstrOper/TbitstrOper.ttcn
+++ b/regression_test/bitstrOper/TbitstrOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -427,7 +427,6 @@ testcase bitstrXor_str_el() runs on bitstrOper_comptype
      else {setverdict(fail);}
   if (x5=='1'B) {setverdict(pass);}	//"1" xor "0"
      else {setverdict(fail);}
-     log(x6);
   if (x6=='0'B) {setverdict(pass);}	//"1" xor "1"
      else {setverdict(fail);}
 }
diff --git a/regression_test/bitstrOper/config.cfg b/regression_test/bitstrOper/config.cfg
index 8c32b6f94..4f69f869a 100644
--- a/regression_test/bitstrOper/config.cfg
+++ b/regression_test/bitstrOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/boolOper/Makefile b/regression_test/boolOper/Makefile
index d671c562b..265fa260a 100644
--- a/regression_test/boolOper/Makefile
+++ b/regression_test/boolOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/boolOper/TboolOper.ttcn b/regression_test/boolOper/TboolOper.ttcn
index dabf6b61b..5e26d6101 100644
--- a/regression_test/boolOper/TboolOper.ttcn
+++ b/regression_test/boolOper/TboolOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/boolOper/config.cfg b/regression_test/boolOper/config.cfg
index 21d90c5f4..b46fabccb 100644
--- a/regression_test/boolOper/config.cfg
+++ b/regression_test/boolOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/Makefile b/regression_test/cfgFile/Makefile
index dbfc31ab3..4d8f1f054 100644
--- a/regression_test/cfgFile/Makefile
+++ b/regression_test/cfgFile/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/define/Makefile b/regression_test/cfgFile/define/Makefile
index 23c25eba9..2c3d5a07c 100644
--- a/regression_test/cfgFile/define/Makefile
+++ b/regression_test/cfgFile/define/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/define/macro_reference/Makefile b/regression_test/cfgFile/define/macro_reference/Makefile
index 30560c9cc..74cb3b4b3 100644
--- a/regression_test/cfgFile/define/macro_reference/Makefile
+++ b/regression_test/cfgFile/define/macro_reference/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -20,6 +20,11 @@ DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL)
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 # List of fake targets:
 .PHONY: all clean run run_single run_parallel runall
 
@@ -28,12 +33,12 @@ all: $(GENERATED_DIRS)
 $(DIR_SINGLE):
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s ./* && $(MAKE_PROG)
 
 $(DIR_PARALLEL):
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) ./* && $(MAKE_PROG)
 
 run: $(GENERATED_DIRS)
 	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
diff --git a/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_main.cfg b/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_main.cfg
index 56bb9f508..004cae592 100644
--- a/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_main.cfg
+++ b/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_main.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_testcases.ttcn b/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_testcases.ttcn
index 503a76546..67d6b2fc9 100644
--- a/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_testcases.ttcn
+++ b/regression_test/cfgFile/define/macro_reference/TSTM_macro_test_testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfgFile/define/structured/Makefile b/regression_test/cfgFile/define/structured/Makefile
index 0273c0f4b..81eaae162 100644
--- a/regression_test/cfgFile/define/structured/Makefile
+++ b/regression_test/cfgFile/define/structured/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -20,6 +20,11 @@ DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL) 
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 # List of fake targets:
 .PHONY: all clean run run_single run_parallel runall
 
@@ -28,12 +33,12 @@ all: $(GENERATED_DIRS)
 $(DIR_SINGLE):
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s ./* && $(MAKE_PROG) 'CXXFLAGS=$(CXXFLAGS)' 'LDFLAGS=$(LDFLAGS)'
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s ./* && $(MAKE_PROG) 'CXXFLAGS=$(CXXFLAGS)' 'LDFLAGS=$(LDFLAGS)'
 	
 $(DIR_PARALLEL):
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen ./* && $(MAKE_PROG) 'CXXFLAGS=$(CXXFLAGS)' 'LDFLAGS=$(LDFLAGS)'
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) ./* && $(MAKE_PROG) 'CXXFLAGS=$(CXXFLAGS)' 'LDFLAGS=$(LDFLAGS)'
 
 run: $(GENERATED_DIRS)
 	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
diff --git a/regression_test/cfgFile/define/structured/structured.cfg b/regression_test/cfgFile/define/structured/structured.cfg
index e15391d6c..f9f386ccf 100644
--- a/regression_test/cfgFile/define/structured/structured.cfg
+++ b/regression_test/cfgFile/define/structured/structured.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/define/structured/structured.ttcn b/regression_test/cfgFile/define/structured/structured.ttcn
index d293d8881..39562b177 100644
--- a/regression_test/cfgFile/define/structured/structured.ttcn
+++ b/regression_test/cfgFile/define/structured/structured.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfgFile/module_parameters/Makefile b/regression_test/cfgFile/module_parameters/Makefile
index d5f2ecf5e..496b3c76a 100644
--- a/regression_test/cfgFile/module_parameters/Makefile
+++ b/regression_test/cfgFile/module_parameters/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -10,7 +10,7 @@ include $(TOPDIR)/Makefile.regression
 unexport ABS_SRC
 unexport SRCDIR
 
-DIRS := assignment concat
+DIRS := assignment concat references
 
 # List of fake targets:
 .PHONY: all dep clean run $(DIRS) $(addsuffix /, $(DIRS)) profile
diff --git a/regression_test/cfgFile/module_parameters/assignment/Makefile b/regression_test/cfgFile/module_parameters/assignment/Makefile
index b8ba4b00f..46145fbcc 100644
--- a/regression_test/cfgFile/module_parameters/assignment/Makefile
+++ b/regression_test/cfgFile/module_parameters/assignment/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -15,6 +15,11 @@ DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL)
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 MAKE_PROG := $(MAKE)
 
 # List of fake targets:
@@ -25,12 +30,12 @@ all: $(GENERATED_DIRS)
 dir_single_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s ./* && $(MAKE_PROG)
 	
 dir_parallel_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) ./* && $(MAKE_PROG)
 
 run: $(GENERATED_DIRS)
 	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
diff --git a/regression_test/cfgFile/module_parameters/assignment/assignment.cfg b/regression_test/cfgFile/module_parameters/assignment/assignment.cfg
index 46e7995c8..19a183963 100644
--- a/regression_test/cfgFile/module_parameters/assignment/assignment.cfg
+++ b/regression_test/cfgFile/module_parameters/assignment/assignment.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -19,7 +19,7 @@ tsp_float_2 := 4.2e+1
 tsp_float_2_init := 4.3e+1
 
 // Boolean
-tsp_boolean_false := false
+tsp_boolean_false := false;
 *.tsp_boolean_false_init := false
 tsp_boolean_true := true
 tsp_boolean_true_init := true
diff --git a/regression_test/cfgFile/module_parameters/assignment/assignment.ttcn b/regression_test/cfgFile/module_parameters/assignment/assignment.ttcn
index 69d68421d..1cc43929b 100644
--- a/regression_test/cfgFile/module_parameters/assignment/assignment.ttcn
+++ b/regression_test/cfgFile/module_parameters/assignment/assignment.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfgFile/module_parameters/concat/Makefile b/regression_test/cfgFile/module_parameters/concat/Makefile
index aa51af65f..1af1598dd 100644
--- a/regression_test/cfgFile/module_parameters/concat/Makefile
+++ b/regression_test/cfgFile/module_parameters/concat/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -15,6 +15,11 @@ DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL) 
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 MAKE_PROG := $(MAKE)
 
 # List of fake targets:
@@ -25,12 +30,12 @@ all: $(GENERATED_DIRS)
 dir_single_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s ./* && $(MAKE_PROG)
 	
 dir_parallel_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) ./* && $(MAKE_PROG)
 
 run: $(GENERATED_DIRS)
 	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
diff --git a/regression_test/cfgFile/module_parameters/concat/concat.cfg b/regression_test/cfgFile/module_parameters/concat/concat.cfg
index 916a20aae..90307d991 100644
--- a/regression_test/cfgFile/module_parameters/concat/concat.cfg
+++ b/regression_test/cfgFile/module_parameters/concat/concat.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/module_parameters/concat/concat.ttcn b/regression_test/cfgFile/module_parameters/concat/concat.ttcn
index 9cb4776ea..900e8987c 100644
--- a/regression_test/cfgFile/module_parameters/concat/concat.ttcn
+++ b/regression_test/cfgFile/module_parameters/concat/concat.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfgFile/module_parameters/references/Makefile b/regression_test/cfgFile/module_parameters/references/Makefile
new file mode 100644
index 000000000..a8e97be69
--- /dev/null
+++ b/regression_test/cfgFile/module_parameters/references/Makefile
@@ -0,0 +1,53 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ../../../
+include   $(TOPDIR)/Makefile.regression
+
+FILES := references.ttcn references.cfg
+RUNNABLE := references
+CFG := references.cfg
+DIR_SINGLE := dir_single_mode
+DIR_PARALLEL := dir_parallel_mode
+GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL) 
+
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
+MAKE_PROG := $(MAKE)
+
+# List of fake targets:
+.PHONY: all clean run run_single run_parallel runall
+
+all: $(GENERATED_DIRS)
+
+dir_single_mode:
+	mkdir $@
+	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s ./* && $(MAKE_PROG)
+	
+dir_parallel_mode:
+	mkdir $@
+	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) ./* && $(MAKE_PROG)
+
+run: $(GENERATED_DIRS)
+	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
+	cd $(DIR_PARALLEL) && $(TTCN3_DIR)/bin/ttcn3_start $(RUNNABLE) $(CFG) 
+
+# To run all tests, possibly in parallel
+run_single: $(DIR_SINGLE) 
+	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
+run_parallel: $(DIR_PARALLEL) 
+	cd $(DIR_PARALLEL) && $(TTCN3_DIR)/bin/ttcn3_start $(RUNNABLE) $(CFG) 
+runall: run_single run_parallel 
+
+clean distclean:
+	rm -rf $(GENERATED_DIRS)
+
diff --git a/regression_test/cfgFile/module_parameters/references/references.cfg b/regression_test/cfgFile/module_parameters/references/references.cfg
new file mode 100644
index 000000000..6a20c3c82
--- /dev/null
+++ b/regression_test/cfgFile/module_parameters/references/references.cfg
@@ -0,0 +1,175 @@
+###############################################################################
+# 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
+###############################################################################
+
+[DEFINE]
+MACRO_CS := "macro"
+MACRO_INT := 1
+
+[MODULE_PARAMETERS]
+
+# integer
+mp1 := +1;
+mp1 := mp1 + 1;
+mp2 := mp1 - mp2 + 10 / mp1;
+mp3 := (mp1 + 2) * 5;
+mp3 := mp3 + mplist2[mp1 - 1 - ${MACRO_INT, integer}];
+
+# float
+mp4 := -3.0;
+mp5 := +mp4 / 0.5 - 1.5 * (mp5 + 1.0);
+
+# bitstring
+mpbs1 &= '1101'B & mpbs2 & '01'B;
+mpbs2 := mpbs2 & mpbs1;
+mpbs1 &= mpbs2;
+
+# hexstring
+mphs1 := '77FF'H & mphs1 & mphs2;
+mphs2 &= 'EE'H;
+
+# octetstring
+mpos1 := 'DEAD'O;
+mpos2 := 'A22C'O & mpos1 & 'C22A'O;
+
+# charstring
+mpcs1 &= mpcs2;
+mpcs1 := mpcs1 & "ghi";
+mpcs2 := "xx" & mpcs1 & "xx" & mpcs2;
+mpcs3 := mpucs1 & "xx";
+
+# universal charstring
+mpucs1 := "a" & mpucs2;
+mpucs2 := "űrhajó" & mpcs1 & char(mp1 + 1, 5, mp1 * 5, 5) & "x";
+
+# boolean
+mpb1 := mpb2;
+mpb2 := mpuni2.bval;
+
+# objid
+mpobjid2 := mpobjid1;
+
+# verdicttype
+mpvt2 := mpvt1;
+
+# component
+mpcomp2 := mpcomp1;
+
+# default
+mpdef2 := mpdef1;
+
+# enumerated
+mpenum2 := references.mpenum1;
+mpenum1 := Large;
+
+# record of
+mplist1 := mplist2;
+mplist2 := { [mp1 / 2] := 3, [0] := mprec1.num };
+mplist2 &= mplist1;
+
+# record
+mprec3 := mprec1;
+mprec1 := mprec2;
+mprec2 := mprec3;
+mprec3 := { mplist1[0], mpcs1 };
+
+# empty record
+mpemptyrec2 := mpemptyrec1;
+
+# union
+mpuni3 := mpuni1;
+mpuni1 := mpuni2;
+mpuni2 := mpuni3;
+mpuni3 := { osval := mpos1 & mpos2 };
+
+# array
+mparray1 := { mparray2[0], mpcs1 & "xx" };
+mparray2 := mparray1;
+
+# integer template
+mptint1 := mptint2;
+mptint2 := (mp1 + 6, mp2, - mp3, - ${MACRO_INT, integer});
+
+# float template
+mptf1 := mptf2 ifpresent;
+mptf2 := (mp4 / 2.0, mp5 * 1.5);
+
+# charstring template
+mptcs1 := mptcs1 length(2 .. mp2 - 1);
+mptcs2 := "xx" & mptcs2 & "xx" ifpresent;
+mptcs3 := mptcs3 & "d" & mptarray2[1];
+
+# universal charstring template
+mptucs3 := (mptucs1, ("a".."z"));
+mptucs2 := "zz" & mpucs2 & "zz";
+mptucs1 := pattern "a??b" & ${MACRO_CS} & char(1, 2, 3, 4) & mpucs1;
+
+# bitstring template
+mptbs1 := '110'B & mpbs1 & '011'B;
+mptbs2 := mptbs2 ifpresent;
+mptbs3 := mptbs3;
+
+# hexstring template
+mpths1 := 'AB'H & mphs1 & 'BA'H;
+mpths2 := mpths2;
+mpths3 := mpths3 length (7..infinity);
+
+# octetstring template
+mptos1 := '01'O & mpos1 & '10'O;
+mptos2 := mptos2;
+mptos3 := mptos3;
+
+# boolean template
+mptb1 := (mptb1, mptb2);
+mptb2 := mptuni3.bval;
+
+# component template
+mptcomp2 := mptcomp1;
+
+# default template
+mptdef2 := mptdef1;
+
+# verdicttype template
+mptvt1 := mptvt2;
+mptvt2 := mpvt2;
+mptvt3 := inconc;
+
+# enumerated template
+mptenum1 = mptenum2;
+mptenum2 := mpenum2;
+mptenum3 := Medium;
+
+# objid template
+mptobjid1 := mptobjid2;
+mptobjid2 := mpobjid1;
+
+# record template
+mptrec1 := mptrec2;
+mptrec2 := { num := mptrec2.num, str := mptcs1 };
+mptrec3 := ( mptrec3, mprec1, mprec2, mprec3 );
+
+# empty record template
+mptemptyrec1 := mptemptyrec2;
+mptemptyrec2 := mpemptyrec1;
+
+# record of template
+mptlist1 := { [2] := mptlist2[0], [1] := mptlist2[1], [0] := mptlist2[2] } length (1..4);
+mptlist2 := mptlist3;
+mptlist3 := complement ( mptlist2, mplist1, mplist2 );
+
+# union template
+mptuni1 := mptuni2;
+mptuni2 := { ival := mptint2 };
+mptuni3 := ( mpuni1, mpuni2, mpuni3 );
+
+# array template
+mptarray1 := mptarray2 ifpresent;
+mptarray2 := mptarray3;
+mptarray3 := mparray1;
+
+[EXECUTE]
+references.control
diff --git a/regression_test/cfgFile/module_parameters/references/references.ttcn b/regression_test/cfgFile/module_parameters/references/references.ttcn
new file mode 100644
index 000000000..01af23747
--- /dev/null
+++ b/regression_test/cfgFile/module_parameters/references/references.ttcn
@@ -0,0 +1,701 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+module references {
+// This module contains tests for referencing other (or the same) module parameters
+// in module parameter initialization (in the configuration file)
+
+/******** Types ********/
+type record Rec {
+  integer num,
+  charstring str optional
+}
+
+type record EmptyRec {};
+
+type union Uni {
+  integer ival,
+  boolean bval,
+  octetstring osval
+}
+
+type enumerated Size { Small, Medium, Large };
+
+type component CT {};
+
+type record of integer IntList;
+
+type record of charstring TwoStrings;
+
+/******** Module parameters ********/
+modulepar integer mp1 := 0;
+modulepar integer mp2 := 0;
+modulepar integer mp3 := 0;
+
+modulepar float mp4 := 0.0;
+modulepar float mp5 := 1.0;
+
+modulepar bitstring mpbs1 := '110'B;
+modulepar bitstring mpbs2 := '1'B;
+
+modulepar hexstring mphs1 := '3CC'H;
+modulepar hexstring mphs2 := '12AA'H;
+
+modulepar octetstring mpos1 := 'A0A0'O;
+modulepar octetstring mpos2 := '7FFF'O;
+
+modulepar charstring mpcs1 := "abc";
+modulepar charstring mpcs2 := "def";
+modulepar charstring mpcs3 := "ghi";
+
+modulepar universal charstring mpucs1 := "noquads";
+modulepar universal charstring mpucs2 := "x" & char(0, 0, 1, 113) & "x" & char(0, 0, 1, 97) & "x";
+
+modulepar boolean mpb1 := true;
+modulepar boolean mpb2 := false;
+
+modulepar objid mpobjid1 := objid { 1 1 7 };
+modulepar objid mpobjid2;
+
+modulepar verdicttype mpvt1 := pass;
+modulepar verdicttype mpvt2 := fail;
+
+modulepar CT mpcomp1 := null;
+modulepar CT mpcomp2;
+
+modulepar default mpdef1 := null;
+modulepar default mpdef2;
+
+modulepar Size mpenum1 := Small;
+modulepar Size mpenum2;
+
+modulepar IntList mplist1 := { };
+modulepar IntList mplist2 := { 1, 2 };
+
+modulepar Rec mprec1 := { 10, "yyyy" };
+modulepar Rec mprec2 := { num := 3, str := omit };
+modulepar Rec mprec3;
+
+modulepar EmptyRec mpemptyrec1 := {};
+modulepar EmptyRec mpemptyrec2;
+
+modulepar Uni mpuni1 := { ival := 2 };
+modulepar Uni mpuni2 := { bval := true };
+modulepar Uni mpuni3;
+
+modulepar TwoStrings mparray1 := { "abc", "def" };
+modulepar TwoStrings mparray2 := { "xy", "yx" };
+
+modulepar template integer mptint1 := 7;
+modulepar template integer mptint2 := (3..6) ifpresent;
+
+modulepar template float mptf1 := 33.33;
+modulepar template float mptf2 := (33.0..66.0);
+
+modulepar template charstring mptcs1 := ("a".."z");
+modulepar template charstring mptcs2 := "abc";
+modulepar template charstring mptcs3 := pattern "ab???x";
+
+modulepar template universal charstring mptucs1 := (char(0,0,1,97)..char(0,0,1,113)) length (2);
+modulepar template universal charstring mptucs2 := "abc" & char(0,0,1,113) & "cba";
+modulepar template universal charstring mptucs3;
+
+modulepar template bitstring mptbs1 := '1010'B;
+modulepar template bitstring mptbs2 := * length (3..6);
+modulepar template bitstring mptbs3 := '11??00'B;
+
+modulepar template hexstring mpths1 := 'AB21'H;
+modulepar template hexstring mpths2 := ? length (8);
+modulepar template hexstring mpths3 := 'DE*555'H;
+
+modulepar template octetstring mptos1 := '00'O;
+modulepar template octetstring mptos2 := omit;
+modulepar template octetstring mptos3 := 'A0*'O length (1..5);
+
+modulepar template boolean mptb1 := true;
+modulepar template boolean mptb2 := false;
+
+modulepar template CT mptcomp1 := (null, mtc, system);
+modulepar template CT mptcomp2;
+
+modulepar template default mptdef1 := null;
+modulepar template default mptdef2;
+
+modulepar template verdicttype mptvt1 := none;
+modulepar template verdicttype mptvt2 := (pass, fail, error);
+modulepar template verdicttype mptvt3;
+
+modulepar template Size mptenum1 := *;
+modulepar template Size mptenum2 := (Small, Large);
+modulepar template Size mptenum3;
+
+modulepar template objid mptobjid1 := ?;
+modulepar template objid mptobjid2 := (objid { 1 2 3 }, objid { 0 0 0 1 });
+
+modulepar template Rec mptrec1 := ?;
+modulepar template Rec mptrec2 := { ?, * };
+modulepar template Rec mptrec3 := { num := 6, str := omit };
+
+modulepar template EmptyRec mptemptyrec1;
+modulepar template EmptyRec mptemptyrec2 := {};
+
+modulepar template IntList mptlist1 := omit;
+modulepar template IntList mptlist2 := { 1, 2, * };
+modulepar template IntList mptlist3 := { [0] := 0, [1] := 1, [2] := 0 };
+
+modulepar template Uni mptuni1;
+modulepar template Uni mptuni2 := complement ( { osval := '0000'O }, { ival := 31 } );
+modulepar template Uni mptuni3 := { bval := false };
+
+modulepar template TwoStrings mptarray1;
+modulepar template TwoStrings mptarray2 := { "one", "two" };
+modulepar template TwoStrings mptarray3 := { [1] := ?, [0] := "x" };
+
+/******** Test cases (for values) ********/
+testcase tc_ref_integer() runs on CT
+{
+  template integer t_mp1 := 2;
+  template integer t_mp2 := 7;
+  template integer t_mp3 := 21;
+  if (not match(mp1, t_mp1)) {
+    setverdict(fail, "Expected(mp1): ", t_mp1, ", got: ", mp1);
+  }
+  if (not match(mp2, t_mp2)) {
+    setverdict(fail, "Expected(mp2): ", t_mp2, ", got: ", mp2);
+  }
+  if (not match(mp3, t_mp3)) {
+    setverdict(fail, "Expected(mp3): ", t_mp3, ", got: ", mp3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_float() runs on CT
+{
+  template float t_mp4 := -3.0;
+  template float t_mp5 := -9.0;
+  if (not match(mp4, t_mp4)) {
+    setverdict(fail, "Expected(mp4): ", t_mp4, ", got: ", mp4);
+  }
+  if (not match(mp5, t_mp5)) {
+    setverdict(fail, "Expected(mp5): ", t_mp5, ", got: ", mp5);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_bitstring() runs on CT
+{
+  template bitstring t_mpbs1 := '110110110111101101101'B;
+  template bitstring t_mpbs2 := '11101101101'B;
+  if (not match(mpbs1, t_mpbs1)) {
+    setverdict(fail, "Expected(mpbs1): ", t_mpbs1, ", got: ", mpbs1);
+  }
+  if (not match(mpbs2, t_mpbs2)) {
+    setverdict(fail, "Expected(mpbs2): ", t_mpbs2, ", got: ", mpbs2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_hexstring() runs on CT
+{
+  template hexstring t_mphs1 := '77FF3CC12AA'H;
+  template hexstring t_mphs2 := '12AAEE'H;
+  if (not match(mphs1, t_mphs1)) {
+    setverdict(fail, "Expected(mphs1): ", t_mphs1, ", got: ", mphs1);
+  }
+  if (not match(mphs2, t_mphs2)) {
+    setverdict(fail, "Expected(mphs2): ", t_mphs2, ", got: ", mphs2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_octetstring() runs on CT
+{
+  template octetstring t_mpos1 := 'DEAD'O;
+  template octetstring t_mpos2 := 'A22CDEADC22A'O;
+  if (not match(mpos1, t_mpos1)) {
+    setverdict(fail, "Expected(mpos1): ", t_mpos1, ", got: ", mpos1);
+  }
+  if (not match(mpos2, t_mpos2)) {
+    setverdict(fail, "Expected(mpos2): ", t_mpos2, ", got: ", mpos2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_charstring() runs on CT
+{
+  template charstring t_mpcs1 := "abcdefghi";
+  template charstring t_mpcs2 := "xxabcdefghixxdef";
+  template charstring t_mpcs3 := "noquadsxx";
+  if (not match(mpcs1, t_mpcs1)) {
+    setverdict(fail, "Expected(mpcs1): ", t_mpcs1, ", got: ", mpcs1);
+  }
+  if (not match(mpcs2, t_mpcs2)) {
+    setverdict(fail, "Expected(mpcs2): ", t_mpcs2, ", got: ", mpcs2);
+  }
+  if (not match(mpcs3, t_mpcs3)) {
+    setverdict(fail, "Expected(mpcs3): ", t_mpcs3, ", got: ", mpcs3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_universal_charstring() runs on CT
+{
+  template universal charstring t_mpucs1 := "ax" & char(0, 0, 1, 113) & "x" & char(0, 0, 1, 97) & "x";
+  template universal charstring t_mpucs2 := char(0, 0, 1, 113) & "rhaj" & char(0, 0, 0, 243) & "abcdefghi" & char(3, 5, 10, 5) & "x";
+  if (not match(mpucs1, t_mpucs1)) {
+    setverdict(fail, "Expected(mpucs1): ", t_mpucs1, ", got: ", mpucs1);
+  }
+  if (not match(mpucs2, t_mpucs2)) {
+    setverdict(fail, "Expected(mpucs2): ", t_mpucs2, ", got: ", mpucs2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_boolean() runs on CT
+{
+  template boolean t_mpb1 := false;
+  template boolean t_mpb2 := true;
+  if (not match(mpb1, t_mpb1)) {
+    setverdict(fail, "Expected(mpb1): ", t_mpb1, ", got: ", mpb1);
+  }
+  if (not match(mpb2, t_mpb2)) {
+    setverdict(fail, "Expected(mpb2): ", t_mpb2, ", got: ", mpb2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_objid() runs on CT
+{
+  template objid t_mpobjid2 := objid { 1 1 7 };
+  if (not match(mpobjid2, t_mpobjid2)) {
+    setverdict(fail, "Expected(mpobjid2): ", t_mpobjid2, ", got: ", mpobjid2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_verdicttype() runs on CT
+{
+  template verdicttype t_mpvt2 := pass;
+  if (not match(mpvt2, t_mpvt2)) {
+    setverdict(fail, "Expected(mpvt2): ", t_mpvt2, ", got: ", mpvt2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_component() runs on CT
+{
+  template CT t_mpcomp2 := null;
+  if (not match(mpcomp2, t_mpcomp2)) {
+    setverdict(fail, "Expected(mpcomp2): ", t_mpcomp2, ", got: ", mpcomp2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_default() runs on CT
+{
+  template default t_mpdef2 := null;
+  if (not match(mpdef2, t_mpdef2)) {
+    setverdict(fail, "Expected(mpdef2): ", t_mpdef2, ", got: ", mpdef2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_enumerated() runs on CT
+{
+  template Size t_mpenum1 := Large;
+  template Size t_mpenum2 := Small;
+  if (not match(mpenum1, t_mpenum1)) {
+    setverdict(fail, "Expected(mpenum1): ", t_mpenum1, ", got: ", mpenum1);
+  }
+  if (not match(mpenum2, t_mpenum2)) {
+    setverdict(fail, "Expected(mpenum2): ", t_mpenum2, ", got: ", mpenum2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_record_of() runs on CT
+{
+  template IntList t_mplist1 := { 1, 2 };
+  template IntList t_mplist2 := { 10, 3, 1, 2 };
+  if (not match(mplist1, t_mplist1)) {
+    setverdict(fail, "Expected(mplist1): ", t_mplist1, ", got: ", mplist1);
+  }
+  if (not match(mplist2, t_mplist2)) {
+    setverdict(fail, "Expected(mplist2): ", t_mplist2, ", got: ", mplist2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_record() runs on CT
+{
+  template Rec t_mprec1 := { num := 3, str := omit };
+  template Rec t_mprec2 := { num := 10, str := "yyyy" };
+  template Rec t_mprec3 := { num := 1, str := "abcdefghi" };
+  if (not match(mprec1, t_mprec1)) {
+    setverdict(fail, "Expected(mprec1): ", t_mprec1, ", got: ", mprec1);
+  }
+  if (not match(mprec2, t_mprec2)) {
+    setverdict(fail, "Expected(mprec2): ", t_mprec2, ", got: ", mprec2);
+  }
+  if (not match(mprec3, t_mprec3)) {
+    setverdict(fail, "Expected(mprec3): ", t_mprec3, ", got: ", mprec3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_empty_record() runs on CT
+{
+  template EmptyRec t_mpemptyrec2 := { };
+  if (not match(mpemptyrec2, t_mpemptyrec2)) {
+    setverdict(fail, "Expected(mpemptyrec2): ", t_mpemptyrec2, ", got: ", mpemptyrec2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_union() runs on CT
+{
+  template Uni t_mpuni1 := { bval := true };
+  template Uni t_mpuni2 := { ival := 2 };
+  template Uni t_mpuni3 := { osval := 'DEADA22CDEADC22A'O };
+  if (not match(mpuni1, t_mpuni1)) {
+    setverdict(fail, "Expected(mpuni1): ", t_mpuni1, ", got: ", mpuni1);
+  }
+  if (not match(mpuni2, t_mpuni2)) {
+    setverdict(fail, "Expected(mpuni2): ", t_mpuni2, ", got: ", mpuni2);
+  }
+  if (not match(mpuni3, t_mpuni3)) {
+    setverdict(fail, "Expected(mpuni3): ", t_mpuni3, ", got: ", mpuni3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_array() runs on CT
+{
+  template TwoStrings t_mparray1 := { "xy", "abcdefghixx" };
+  template TwoStrings t_mparray2 := { "xy", "abcdefghixx" };
+  if (not match(mparray1, t_mparray1)) {
+    setverdict(fail, "Expected(mparray1): ", t_mparray1, ", got: ", mparray1);
+  }
+  if (not match(mparray2, t_mparray2)) {
+    setverdict(fail, "Expected(mparray2): ", t_mparray2, ", got: ", mparray2);
+  }
+  setverdict(pass);
+}
+
+/******** Test cases (for templates) ********/
+
+testcase tc_ref_integer_template() runs on CT
+{
+  template integer mptint1_exp := (3 .. 6) ifpresent;
+  template integer mptint2_exp := (8, 7, -21, -1);
+  if (log2str(mptint1) != log2str(mptint1_exp)) {
+    setverdict(fail, "Expected(mptint1): ", mptint1_exp, ", got: ", mptint1);
+  }
+  if (log2str(mptint2) != log2str(mptint2_exp)) {
+    setverdict(fail, "Expected(mptint2): ", mptint2_exp, ", got: ", mptint2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_float_template() runs on CT
+{
+  template float mptf1_exp := (33.000000 .. 66.000000) ifpresent;
+  template float mptf2_exp := (-1.500000, -13.500000);
+  if (log2str(mptf1) != log2str(mptf1_exp)) {
+    setverdict(fail, "Expected(mptf1): ", mptf1_exp, ", got: ", mptf1);
+  }
+  if (log2str(mptf2) != log2str(mptf2_exp)) {
+    setverdict(fail, "Expected(mptf2): ", mptf2_exp, ", got: ", mptf2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_bitstring_template() runs on CT
+{
+  template bitstring mptbs1_exp := '110110110110111101101101011'B;
+  template bitstring mptbs2_exp := * length (3 .. 6) ifpresent;
+  template bitstring mptbs3_exp := '11??00'B;
+  if (log2str(mptbs1) != log2str(mptbs1_exp)) {
+    setverdict(fail, "Expected(mptbs1): ", mptbs1_exp, ", got: ", mptbs1);
+  }
+  if (log2str(mptbs2) != log2str(mptbs2_exp)) {
+    setverdict(fail, "Expected(mptbs2): ", mptbs2_exp, ", got: ", mptbs2);
+  }
+  if (log2str(mptbs3) != log2str(mptbs3_exp)) {
+    setverdict(fail, "Expected(mptbs3): ", mptbs3_exp, ", got: ", mptbs3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_hexstring_template() runs on CT
+{
+  template hexstring mpths1_exp := 'AB77FF3CC12AABA'H;
+  template hexstring mpths2_exp := ? length (8);
+  template hexstring mpths3_exp := 'DE*555'H length (7 .. infinity);
+  if (log2str(mpths1) != log2str(mpths1_exp)) {
+    setverdict(fail, "Expected(mpths1): ", mpths1_exp, ", got: ", mpths1);
+  }
+  if (log2str(mpths2) != log2str(mpths2_exp)) {
+    setverdict(fail, "Expected(mpths2): ", mpths2_exp, ", got: ", mpths2);
+  }
+  if (log2str(mpths3) != log2str(mpths3_exp)) {
+    setverdict(fail, "Expected(mpths3): ", mpths3_exp, ", got: ", mpths3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_octetstring_template() runs on CT
+{
+  template octetstring mptos1_exp := '01DEAD10'O;
+  template octetstring mptos2_exp := omit;
+  template octetstring mptos3_exp := 'A0*'O length (1 .. 5);
+  if (log2str(mptos1) != log2str(mptos1_exp)) {
+    setverdict(fail, "Expected(mptos1): ", mptos1_exp, ", got: ", mptos1);
+  }
+  if (log2str(mptos2) != log2str(mptos2_exp)) {
+    setverdict(fail, "Expected(mptos2): ", mptos2_exp, ", got: ", mptos2);
+  }
+  if (log2str(mptos3) != log2str(mptos3_exp)) {
+    setverdict(fail, "Expected(mptos3): ", mptos3_exp, ", got: ", mptos3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_charstring_template() runs on CT
+{
+  template charstring mptcs1_exp := ("a" .. "z") length (2 .. 6);
+  template charstring mptcs2_exp := "xxabcxx" ifpresent;
+  template charstring mptcs3_exp := pattern "ab???xdtwo";
+  if (log2str(mptcs1) != log2str(mptcs1_exp)) {
+    setverdict(fail, "Expected(mptcs1): ", mptcs1_exp, ", got: ", mptcs1);
+  }
+  if (log2str(mptcs2) != log2str(mptcs2_exp)) {
+    setverdict(fail, "Expected(mptcs2): ", mptcs2_exp, ", got: ", mptcs2);
+  }
+  if (log2str(mptcs3) != log2str(mptcs3_exp)) {
+    setverdict(fail, "Expected(mptcs3): ", mptcs3_exp, ", got: ", mptcs3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_universal_charstring_template() runs on CT
+{
+  template universal charstring mptucs1_exp := pattern "a??bmacro\q{1,2,3,4}ax\q{0,0,1,113}x\q{0,0,1,97}x";
+  template universal charstring mptucs2_exp := "zz" & char(0, 0, 1, 113) & "rhaj" & char(0, 0, 0, 243) & "abcdefghi" & char(3, 5, 10, 5) & "xzz";
+  template universal charstring mptucs3_exp := ((char(0, 0, 1, 97) .. char(0, 0, 1, 113)) length (2), ("a" .. "z"));
+  if (log2str(mptucs1) != log2str(mptucs1_exp)) {
+    setverdict(fail, "Expected(mptucs1): ", mptucs1_exp, ", got: ", mptucs1);
+  }
+  if (log2str(mptucs2) != log2str(mptucs2_exp)) {
+    setverdict(fail, "Expected(mptucs2): ", mptucs2_exp, ", got: ", mptucs2);
+  }
+  if (log2str(mptucs3) != log2str(mptucs3_exp)) {
+    setverdict(fail, "Expected(mptucs3): ", mptucs3_exp, ", got: ", mptucs3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_boolean_template() runs on CT
+{
+  template boolean mptb1_exp := (true, false);
+  template boolean mptb2_exp := false;
+  if (log2str(mptb1) != log2str(mptb1_exp)) {
+    setverdict(fail, "Expected(mptb1): ", mptb1_exp, ", got: ", mptb1);
+  }
+  if (log2str(mptb2) != log2str(mptb2_exp)) {
+    setverdict(fail, "Expected(mptb2): ", mptb2_exp, ", got: ", mptb2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_objid_template() runs on CT
+{
+  template objid mptobjid1_exp := (objid { 1 2 3 }, objid { 0 0 0 1 });
+  template objid mptobjid2_exp := objid { 1 1 7 };
+  if (log2str(mptobjid1) != log2str(mptobjid1_exp)) {
+    setverdict(fail, "Expected(mptobjid1): ", mptobjid1_exp, ", got: ", mptobjid1);
+  }
+  if (log2str(mptobjid2) != log2str(mptobjid2_exp)) {
+    setverdict(fail, "Expected(mptobjid2): ", mptobjid2_exp, ", got: ", mptobjid2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_verdicttype_template() runs on CT
+{
+  template verdicttype mptvt1_exp := (pass, fail, error);
+  template verdicttype mptvt2_exp := pass;
+  template verdicttype mptvt3_exp := inconc;
+  if (log2str(mptvt1) != log2str(mptvt1_exp)) {
+    setverdict(fail, "Expected(mptvt1): ", mptvt1_exp, ", got: ", mptvt1);
+  }
+  if (log2str(mptvt2) != log2str(mptvt2_exp)) {
+    setverdict(fail, "Expected(mptvt2): ", mptvt2_exp, ", got: ", mptvt2);
+  }
+  if (log2str(mptvt3) != log2str(mptvt3_exp)) {
+    setverdict(fail, "Expected(mptvt3): ", mptvt3_exp, ", got: ", mptvt3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_component_template() runs on CT
+{
+  template CT mptcomp2_exp := (null, mtc, system);
+  if (log2str(mptcomp2) != log2str(mptcomp2_exp)) {
+    setverdict(fail, "Expected(mptcomp2): ", mptcomp2_exp, ", got: ", mptcomp2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_default_template() runs on CT
+{
+  template default mptdef2_exp := null;
+  if (log2str(mptdef2) != log2str(mptdef2_exp)) {
+    setverdict(fail, "Expected(mptdef2): ", mptdef2_exp, ", got: ", mptdef2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_enumerated_template() runs on CT
+{
+  template Size mptenum1_exp := (Small, Large);
+  template Size mptenum2_exp := Small;
+  template Size mptenum3_exp := Medium;
+  if (log2str(mptenum1) != log2str(mptenum1_exp)) {
+    setverdict(fail, "Expected(mptenum1): ", mptenum1_exp, ", got: ", mptenum1);
+  }
+  if (log2str(mptenum2) != log2str(mptenum2_exp)) {
+    setverdict(fail, "Expected(mptenum2): ", mptenum2_exp, ", got: ", mptenum2);
+  }
+  if (log2str(mptenum3) != log2str(mptenum3_exp)) {
+    setverdict(fail, "Expected(mptenum3): ", mptenum3_exp, ", got: ", mptenum3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_record_of_template() runs on CT
+{
+  template IntList mptlist1_exp := { *, 2, 1 } length (1 .. 4);
+  template IntList mptlist2_exp := { 0, 1, 0 };
+  template IntList mptlist3_exp := complement({ 0, 1, 0 }, { 1, 2 }, { 10, 3, 1, 2 });
+  if (log2str(mptlist1) != log2str(mptlist1_exp)) {
+    setverdict(fail, "Expected(mptlist1): ", mptlist1_exp, ", got: ", mptlist1);
+  }
+  if (log2str(mptlist2) != log2str(mptlist2_exp)) {
+    setverdict(fail, "Expected(mptlist2): ", mptlist2_exp, ", got: ", mptlist2);
+  }
+  if (log2str(mptlist3) != log2str(mptlist3_exp)) {
+    setverdict(fail, "Expected(mptlist3): ", mptlist3_exp, ", got: ", mptlist3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_record_template() runs on CT
+{
+  template Rec mptrec1_exp := { num := ?, str := * };
+  template Rec mptrec2_exp := { num := ?, str := ("a" .. "z") length (2 .. 6) };
+  template Rec mptrec3_exp := ({ num := 6, str := omit }, { num := 3, str := omit }, { num := 10, str := "yyyy" }, { num := 1, str := "abcdefghi" });
+  if (log2str(mptrec1) != log2str(mptrec1_exp)) {
+    setverdict(fail, "Expected(mptrec1): ", mptrec1_exp, ", got: ", mptrec1);
+  }
+  if (log2str(mptrec2) != log2str(mptrec2_exp)) {
+    setverdict(fail, "Expected(mptrec2): ", mptrec2_exp, ", got: ", mptrec2);
+  }
+  if (log2str(mptrec3) != log2str(mptrec3_exp)) {
+    setverdict(fail, "Expected(mptrec3): ", mptrec3_exp, ", got: ", mptrec3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_empty_record_template() runs on CT
+{
+  template EmptyRec mptemptyrec1_exp := { };
+  template EmptyRec mptemptyrec2_exp := { };
+  if (log2str(mptemptyrec1) != log2str(mptemptyrec1_exp)) {
+    setverdict(fail, "Expected(mptemptyrec1): ", mptemptyrec1_exp, ", got: ", mptemptyrec1);
+  }
+  if (log2str(mptemptyrec2) != log2str(mptemptyrec2_exp)) {
+    setverdict(fail, "Expected(mptemptyrec2): ", mptemptyrec2_exp, ", got: ", mptemptyrec2);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_union_template() runs on CT
+{
+  template Uni mptuni1_exp := complement ({ osval := '0000'O }, { ival := 31 });
+  template Uni mptuni2_exp := { ival := (8, 7, -21, -1) };
+  template Uni mptuni3_exp := ({ bval := true }, { ival := 2 }, { osval := 'DEADA22CDEADC22A'O });
+  if (log2str(mptuni1) != log2str(mptuni1_exp)) {
+    setverdict(fail, "Expected(mptuni1): ", mptuni1_exp, ", got: ", mptuni1);
+  }
+  if (log2str(mptuni2) != log2str(mptuni2_exp)) {
+    setverdict(fail, "Expected(mptuni2): ", mptuni2_exp, ", got: ", mptuni2);
+  }
+  if (log2str(mptuni3) != log2str(mptuni3_exp)) {
+    setverdict(fail, "Expected(mptuni3): ", mptuni3_exp, ", got: ", mptuni3);
+  }
+  setverdict(pass);
+}
+
+testcase tc_ref_array_template() runs on CT
+{
+  template TwoStrings mptarray1_exp := { "one", "two" } ifpresent;
+  template TwoStrings mptarray2_exp := { "x", ? };
+  template TwoStrings mptarray3_exp := { "xy", "abcdefghixx" };
+  if (log2str(mptarray1) != log2str(mptarray1_exp)) {
+    setverdict(fail, "Expected(mptarray1): ", mptarray1_exp, ", got: ", mptarray1);
+  }
+  if (log2str(mptarray2) != log2str(mptarray2_exp)) {
+    setverdict(fail, "Expected(mptarray2): ", mptarray2_exp, ", got: ", mptarray2);
+  }
+  if (log2str(mptarray3) != log2str(mptarray3_exp)) {
+    setverdict(fail, "Expected(mptarray3): ", mptarray3_exp, ", got: ", mptarray3);
+  }
+  setverdict(pass);
+}
+
+control {
+  execute(tc_ref_integer());
+  execute(tc_ref_float());
+  execute(tc_ref_bitstring());
+  execute(tc_ref_hexstring());
+  execute(tc_ref_octetstring());
+  execute(tc_ref_charstring());
+  execute(tc_ref_universal_charstring());
+  execute(tc_ref_boolean());
+  execute(tc_ref_objid());
+  execute(tc_ref_verdicttype());
+  execute(tc_ref_component());
+  execute(tc_ref_default());
+  execute(tc_ref_enumerated());
+  execute(tc_ref_record_of());
+  execute(tc_ref_record());
+  execute(tc_ref_empty_record());
+  execute(tc_ref_union());
+  execute(tc_ref_array());
+  execute(tc_ref_integer_template());
+  execute(tc_ref_float_template());
+  execute(tc_ref_bitstring_template());
+  execute(tc_ref_hexstring_template());
+  execute(tc_ref_octetstring_template());
+  execute(tc_ref_charstring_template());
+  execute(tc_ref_universal_charstring_template());
+  execute(tc_ref_boolean_template());
+  execute(tc_ref_objid_template());
+  execute(tc_ref_verdicttype_template());
+  execute(tc_ref_component_template());
+  execute(tc_ref_default_template());
+  execute(tc_ref_enumerated_template());
+  execute(tc_ref_record_of_template());
+  execute(tc_ref_record_template());
+  execute(tc_ref_empty_record_template());
+  execute(tc_ref_union_template());
+  execute(tc_ref_array_template());
+}
+
+}
diff --git a/regression_test/cfgFile/ordered_include/Makefile b/regression_test/cfgFile/ordered_include/Makefile
index 90a786a91..2feeeb024 100644
--- a/regression_test/cfgFile/ordered_include/Makefile
+++ b/regression_test/cfgFile/ordered_include/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -18,6 +18,11 @@ DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL) 
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 MAKE_PROG := $(MAKE)
 
 # List of fake targets:
@@ -28,12 +33,12 @@ all: $(GENERATED_DIRS)
 dir_single_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s ./* && $(MAKE_PROG)
 	
 dir_parallel_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen ./* && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) ./* && $(MAKE_PROG)
 
 run: clean run_single run_parallel
 
diff --git a/regression_test/cfgFile/ordered_include/config_sub2/oi2_sub.cfg b/regression_test/cfgFile/ordered_include/config_sub2/oi2_sub.cfg
index 3eb6050b3..f9cefd121 100644
--- a/regression_test/cfgFile/ordered_include/config_sub2/oi2_sub.cfg
+++ b/regression_test/cfgFile/ordered_include/config_sub2/oi2_sub.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/configs_sub/oi1_subfolder1.cfg b/regression_test/cfgFile/ordered_include/configs_sub/oi1_subfolder1.cfg
index 7ad348726..c939ce8da 100644
--- a/regression_test/cfgFile/ordered_include/configs_sub/oi1_subfolder1.cfg
+++ b/regression_test/cfgFile/ordered_include/configs_sub/oi1_subfolder1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi.ttcn b/regression_test/cfgFile/ordered_include/oi.ttcn
index d48829d5a..7c57b4485 100644
--- a/regression_test/cfgFile/ordered_include/oi.ttcn
+++ b/regression_test/cfgFile/ordered_include/oi.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfgFile/ordered_include/oi1.cfg b/regression_test/cfgFile/ordered_include/oi1.cfg
index ca2db2387..67cf3b334 100644
--- a/regression_test/cfgFile/ordered_include/oi1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi1_after1.cfg b/regression_test/cfgFile/ordered_include/oi1_after1.cfg
index 01bec9a71..bc897f5ef 100644
--- a/regression_test/cfgFile/ordered_include/oi1_after1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1_after1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi1_after2.cfg b/regression_test/cfgFile/ordered_include/oi1_after2.cfg
index 038945def..7d6099597 100644
--- a/regression_test/cfgFile/ordered_include/oi1_after2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1_after2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi1_after3.cfg b/regression_test/cfgFile/ordered_include/oi1_after3.cfg
index c59af8468..04ae8e7ea 100644
--- a/regression_test/cfgFile/ordered_include/oi1_after3.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1_after3.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi1_before1.cfg b/regression_test/cfgFile/ordered_include/oi1_before1.cfg
index 21395e258..f19ba3de1 100644
--- a/regression_test/cfgFile/ordered_include/oi1_before1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1_before1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi1_before2.cfg b/regression_test/cfgFile/ordered_include/oi1_before2.cfg
index bbb90c252..d4ca64eb7 100644
--- a/regression_test/cfgFile/ordered_include/oi1_before2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1_before2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi1_before_include.cfg b/regression_test/cfgFile/ordered_include/oi1_before_include.cfg
index 7d8f1c176..6a7e90a62 100644
--- a/regression_test/cfgFile/ordered_include/oi1_before_include.cfg
+++ b/regression_test/cfgFile/ordered_include/oi1_before_include.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi2.cfg b/regression_test/cfgFile/ordered_include/oi2.cfg
index 5894cd7c5..e0ed29923 100644
--- a/regression_test/cfgFile/ordered_include/oi2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi22.cfg b/regression_test/cfgFile/ordered_include/oi22.cfg
index d362c01d2..1b50c37c1 100644
--- a/regression_test/cfgFile/ordered_include/oi22.cfg
+++ b/regression_test/cfgFile/ordered_include/oi22.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi23.cfg b/regression_test/cfgFile/ordered_include/oi23.cfg
index f448e9784..e7cc50902 100644
--- a/regression_test/cfgFile/ordered_include/oi23.cfg
+++ b/regression_test/cfgFile/ordered_include/oi23.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi2_nomacro.cfg b/regression_test/cfgFile/ordered_include/oi2_nomacro.cfg
index b8d030516..4dfcc237a 100644
--- a/regression_test/cfgFile/ordered_include/oi2_nomacro.cfg
+++ b/regression_test/cfgFile/ordered_include/oi2_nomacro.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_after1.cfg b/regression_test/cfgFile/ordered_include/oi_after1.cfg
index c2e416f7d..11e6f2849 100644
--- a/regression_test/cfgFile/ordered_include/oi_after1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_after1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_after2.cfg b/regression_test/cfgFile/ordered_include/oi_after2.cfg
index b6bf782c7..ea9a635b9 100644
--- a/regression_test/cfgFile/ordered_include/oi_after2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_after2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_after_list1.cfg b/regression_test/cfgFile/ordered_include/oi_after_list1.cfg
index 14be06f9c..d89cf1610 100644
--- a/regression_test/cfgFile/ordered_include/oi_after_list1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_after_list1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_after_list2.cfg b/regression_test/cfgFile/ordered_include/oi_after_list2.cfg
index 42c7fef8b..1cd50b427 100644
--- a/regression_test/cfgFile/ordered_include/oi_after_list2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_after_list2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_before1.cfg b/regression_test/cfgFile/ordered_include/oi_before1.cfg
index e55b64cde..4c97ee0f4 100644
--- a/regression_test/cfgFile/ordered_include/oi_before1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_before1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_before2.cfg b/regression_test/cfgFile/ordered_include/oi_before2.cfg
index 89118853f..3e592b56a 100644
--- a/regression_test/cfgFile/ordered_include/oi_before2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_before2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_before3.cfg b/regression_test/cfgFile/ordered_include/oi_before3.cfg
index e6c3169db..1d21240f7 100644
--- a/regression_test/cfgFile/ordered_include/oi_before3.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_before3.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_before4.cfg b/regression_test/cfgFile/ordered_include/oi_before4.cfg
index 400722e25..75243fddc 100644
--- a/regression_test/cfgFile/ordered_include/oi_before4.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_before4.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_before5.cfg b/regression_test/cfgFile/ordered_include/oi_before5.cfg
index 947f113ff..a78c93aac 100644
--- a/regression_test/cfgFile/ordered_include/oi_before5.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_before5.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_include_interference.cfg b/regression_test/cfgFile/ordered_include/oi_include_interference.cfg
index 76fde66b2..ada1118fd 100644
--- a/regression_test/cfgFile/ordered_include/oi_include_interference.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_include_interference.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_include_mix.cfg b/regression_test/cfgFile/ordered_include/oi_include_mix.cfg
index 9cce67977..8e31f4921 100644
--- a/regression_test/cfgFile/ordered_include/oi_include_mix.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_include_mix.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_last1.cfg b/regression_test/cfgFile/ordered_include/oi_last1.cfg
index 48e6487b2..6e1020656 100644
--- a/regression_test/cfgFile/ordered_include/oi_last1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_last1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_last2.cfg b/regression_test/cfgFile/ordered_include/oi_last2.cfg
index f89fd35cb..b07578a47 100644
--- a/regression_test/cfgFile/ordered_include/oi_last2.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_last2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_last3.cfg b/regression_test/cfgFile/ordered_include/oi_last3.cfg
index 728bc3395..60270caca 100644
--- a/regression_test/cfgFile/ordered_include/oi_last3.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_last3.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/ordered_include/oi_subfolder1.cfg b/regression_test/cfgFile/ordered_include/oi_subfolder1.cfg
index 3c605dd0e..21649c171 100644
--- a/regression_test/cfgFile/ordered_include/oi_subfolder1.cfg
+++ b/regression_test/cfgFile/ordered_include/oi_subfolder1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/testport_parameters/Makefile b/regression_test/cfgFile/testport_parameters/Makefile
index 2c63d3af3..96148757d 100644
--- a/regression_test/cfgFile/testport_parameters/Makefile
+++ b/regression_test/cfgFile/testport_parameters/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -17,6 +17,11 @@ DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL)
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 MAKE_PROG := $(MAKE)
 
 # List of fake targets:
@@ -27,12 +32,12 @@ all: $(GENERATED_DIRS)
 dir_single_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s $(TTCN_MODULE) $(PORT) && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s $(TTCN_MODULE) $(PORT) && $(MAKE_PROG)
 	
 dir_parallel_mode:
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(TTCN_MODULE) $(PORT) && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) $(TTCN_MODULE) $(PORT) && $(MAKE_PROG)
 
 run: $(GENERATED_DIRS)
 	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) 
diff --git a/regression_test/cfgFile/testport_parameters/PCOType.cc b/regression_test/cfgFile/testport_parameters/PCOType.cc
index cda54f14c..8ca509e3b 100644
--- a/regression_test/cfgFile/testport_parameters/PCOType.cc
+++ b/regression_test/cfgFile/testport_parameters/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/cfgFile/testport_parameters/PCOType.hh b/regression_test/cfgFile/testport_parameters/PCOType.hh
index 2e90bf42a..1bd416dd4 100644
--- a/regression_test/cfgFile/testport_parameters/PCOType.hh
+++ b/regression_test/cfgFile/testport_parameters/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/cfgFile/testport_parameters/array_index.cfg b/regression_test/cfgFile/testport_parameters/array_index.cfg
index 3b5630dde..1e5b5c5d7 100644
--- a/regression_test/cfgFile/testport_parameters/array_index.cfg
+++ b/regression_test/cfgFile/testport_parameters/array_index.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfgFile/testport_parameters/array_index.ttcn b/regression_test/cfgFile/testport_parameters/array_index.ttcn
index 081d477ed..d071a3563 100644
--- a/regression_test/cfgFile/testport_parameters/array_index.ttcn
+++ b/regression_test/cfgFile/testport_parameters/array_index.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfg_list_concat/Makefile b/regression_test/cfg_list_concat/Makefile
index 18729c4aa..a734dec64 100644
--- a/regression_test/cfg_list_concat/Makefile
+++ b/regression_test/cfg_list_concat/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfg_list_concat/concat.prj b/regression_test/cfg_list_concat/concat.prj
index 750a5cbfc..c66c70393 100644
--- a/regression_test/cfg_list_concat/concat.prj
+++ b/regression_test/cfg_list_concat/concat.prj
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/cfg_list_concat/concat.ttcn b/regression_test/cfg_list_concat/concat.ttcn
index d06e7d1e1..954740442 100644
--- a/regression_test/cfg_list_concat/concat.ttcn
+++ b/regression_test/cfg_list_concat/concat.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/cfg_list_concat/everything.cfg b/regression_test/cfg_list_concat/everything.cfg
index 48b699755..f30e4db83 100644
--- a/regression_test/cfg_list_concat/everything.cfg
+++ b/regression_test/cfg_list_concat/everything.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfg_list_concat/sub1.cfg b/regression_test/cfg_list_concat/sub1.cfg
index 1125829bd..c60e0476b 100644
--- a/regression_test/cfg_list_concat/sub1.cfg
+++ b/regression_test/cfg_list_concat/sub1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/cfg_list_concat/sub2.cfg b/regression_test/cfg_list_concat/sub2.cfg
index a39ca698c..b09086344 100644
--- a/regression_test/cfg_list_concat/sub2.cfg
+++ b/regression_test/cfg_list_concat/sub2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/charOper/Makefile b/regression_test/charOper/Makefile
index 60304038f..01f765098 100644
--- a/regression_test/charOper/Makefile
+++ b/regression_test/charOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/charOper/TcharOper.ttcn b/regression_test/charOper/TcharOper.ttcn
index fa9c80164..7051294c8 100644
--- a/regression_test/charOper/TcharOper.ttcn
+++ b/regression_test/charOper/TcharOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/charOper/config.cfg b/regression_test/charOper/config.cfg
index 00d2aa635..d116d6250 100644
--- a/regression_test/charOper/config.cfg
+++ b/regression_test/charOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/charstrOper/Makefile b/regression_test/charstrOper/Makefile
index 24ee9fab0..8d22a0a80 100644
--- a/regression_test/charstrOper/Makefile
+++ b/regression_test/charstrOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/charstrOper/TcharstrOper.ttcn b/regression_test/charstrOper/TcharstrOper.ttcn
index 3651da426..f35d373e1 100644
--- a/regression_test/charstrOper/TcharstrOper.ttcn
+++ b/regression_test/charstrOper/TcharstrOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/charstrOper/config.cfg b/regression_test/charstrOper/config.cfg
index 1f65f79e6..f15e309ce 100644
--- a/regression_test/charstrOper/config.cfg
+++ b/regression_test/charstrOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/commMessage/HS41022.ttcn b/regression_test/commMessage/HS41022.ttcn
index 440772e25..4943434ab 100644
--- a/regression_test/commMessage/HS41022.ttcn
+++ b/regression_test/commMessage/HS41022.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/commMessage/ImplMsgEncData.asn b/regression_test/commMessage/ImplMsgEncData.asn
index c0ddebaae..ca452a92b 100644
--- a/regression_test/commMessage/ImplMsgEncData.asn
+++ b/regression_test/commMessage/ImplMsgEncData.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/commMessage/Makefile b/regression_test/commMessage/Makefile
index af873eaf1..d1623005f 100644
--- a/regression_test/commMessage/Makefile
+++ b/regression_test/commMessage/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/commMessage/TcommMessage.ttcn b/regression_test/commMessage/TcommMessage.ttcn
index 59e58a619..8c8e9a47f 100644
--- a/regression_test/commMessage/TcommMessage.ttcn
+++ b/regression_test/commMessage/TcommMessage.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/commMessage/config.cfg b/regression_test/commMessage/config.cfg
index 2553fc92c..de2682c2d 100644
--- a/regression_test/commMessage/config.cfg
+++ b/regression_test/commMessage/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/commMessage/config_parallel.cfg b/regression_test/commMessage/config_parallel.cfg
index f41ea383d..432a11cac 100644
--- a/regression_test/commMessage/config_parallel.cfg
+++ b/regression_test/commMessage/config_parallel.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/commProcedure/ExtProcPort.cc b/regression_test/commProcedure/ExtProcPort.cc
index 5873216a9..bd83016b7 100644
--- a/regression_test/commProcedure/ExtProcPort.cc
+++ b/regression_test/commProcedure/ExtProcPort.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/commProcedure/ExtProcPort.hh b/regression_test/commProcedure/ExtProcPort.hh
index 81d26816a..b914e7548 100644
--- a/regression_test/commProcedure/ExtProcPort.hh
+++ b/regression_test/commProcedure/ExtProcPort.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/commProcedure/Makefile b/regression_test/commProcedure/Makefile
index 59560abdd..20d73f808 100644
--- a/regression_test/commProcedure/Makefile
+++ b/regression_test/commProcedure/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/commProcedure/PortAddress.cc b/regression_test/commProcedure/PortAddress.cc
index b3dc83ac3..4dafcfec2 100644
--- a/regression_test/commProcedure/PortAddress.cc
+++ b/regression_test/commProcedure/PortAddress.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/commProcedure/PortAddress.hh b/regression_test/commProcedure/PortAddress.hh
index 24e517aff..35fc1d386 100644
--- a/regression_test/commProcedure/PortAddress.hh
+++ b/regression_test/commProcedure/PortAddress.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/commProcedure/ProcPort.ttcn b/regression_test/commProcedure/ProcPort.ttcn
index f03a2b962..7f1a3cd33 100644
--- a/regression_test/commProcedure/ProcPort.ttcn
+++ b/regression_test/commProcedure/ProcPort.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -19,6 +19,7 @@ module ProcPort {
     signature MyProc5(in integer A, in integer B)
     	return float exception(charstring, MyRecord);
     signature s_StopPTC();
+    signature MyProc6(inout integer I);
 
     template s_StopPTC StopPTC := { }
 
@@ -118,6 +119,10 @@ module ProcPort {
 	out MyProc4;
 	in MyProc5;
     } with { extension "address" }
+    
+    type port ProcPort3 procedure {
+      inout MyProc6;
+    } with { extension "internal" }
 
     type component ProcComponent
     {
@@ -147,6 +152,10 @@ module ProcPort {
     {
 	port PortAddress P;
     }
+    
+    type component ProcComponent3 {
+      port ProcPort3 pt;
+    }
 
     function GetCall_behav1() runs on ProcComponent2 {
 	while(true) {
@@ -223,6 +232,27 @@ module ProcPort {
 	    }
 	}
     }
+    
+    // parameters values
+    const integer c_CallParam := 10;
+    const integer c_ReplyParam := 19;
+    
+    // error codes
+    template integer t_getCall_invalidValue := -1;
+    template integer t_getCall_timeout := -2;
+    
+    function GetCallParameters_behav() runs on ProcComponent3 {
+      var integer x := 0;
+      timer t := 1.0;
+      t.start;
+      alt {
+        [] pt.getcall(MyProc6:{?}) -> param (x) {
+          if (c_CallParam == x) { pt.reply(MyProc6:{c_ReplyParam}); }
+          else { pt.reply(MyProc6:{t_getCall_invalidValue}); }
+        }
+        [] t.timeout { pt.reply(MyProc6:{t_getCall_timeout}); }
+      }
+    }
 
     testcase Call_tc1() runs on ProcComponent {
 	/* Non-blocking calls */
@@ -594,6 +624,27 @@ function signatureEncode(template MyProc par1, template MyProc par2) runs on add
   log(par1, par2);
 }
 
+    // tests the 'param' directive in functions 'getcall' and 'getreply',
+    // specificly with signatures containing 'inout' parameters (HT93096)
+    testcase GetReplyParameters_tc() runs on ProcComponent3 {
+      var ProcComponent3 c := ProcComponent3.create;
+      connect(c:pt, self:pt);
+      c.start(GetCallParameters_behav());
+      
+      var integer x := 0;
+      pt.call(MyProc6:{c_CallParam}, 1.0) {
+        [] pt.getreply(MyProc6:{t_getCall_invalidValue}) { setverdict(fail, "invalid getcall parameter"); }
+        [] pt.getreply(MyProc6:{t_getCall_timeout}) { setverdict(fail, "getcall timed out"); }
+        [] pt.getreply(MyProc6:{?}) -> param (x) {
+          if (c_ReplyParam == x) { setverdict(pass); }
+          else { setverdict(fail, "invalid getreply parameter"); }
+        }
+        [] pt.catch(timeout) { setverdict(fail, "getreply timed out"); }
+      }
+      
+      c.done;
+    }
+
     control {
 	execute(Call_tc1());
 	execute(Call_tc2());
@@ -607,5 +658,6 @@ function signatureEncode(template MyProc par1, template MyProc par2) runs on add
 	execute(PortAddress_internal_usage());
 	execute(PortAddress_external_usage1());
 	execute(PortAddress_external_usage2());
+	execute(GetReplyParameters_tc());
     }
 }
diff --git a/regression_test/compileonly/Makefile b/regression_test/compileonly/Makefile
index 580e20c7a..e4b421d6f 100644
--- a/regression_test/compileonly/Makefile
+++ b/regression_test/compileonly/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -14,7 +14,7 @@ CODIRS := dynamicTemplate styleGuide topLevelPdu \
 	centralstorage mfgen-tpd \
 	openType optionalAssignCompare portConstructor \
 	isbound namedActualParameters assignmentNotation \
-	attribQualif HT48786 selectCase
+	attribQualif HT48786 selectCase openTypeNames
 
 all dep clean distclean:
 	for dir in $(CODIRS); do $(MAKE) -C $$dir $@ || exit; done
diff --git a/regression_test/compileonly/assignmentNotation/Makefile b/regression_test/compileonly/assignmentNotation/Makefile
index 4b28340df..877be3d65 100644
--- a/regression_test/compileonly/assignmentNotation/Makefile
+++ b/regression_test/compileonly/assignmentNotation/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/assignmentNotation/TassignmentNotation.ttcn b/regression_test/compileonly/assignmentNotation/TassignmentNotation.ttcn
index 050aa27bc..58ddea587 100644
--- a/regression_test/compileonly/assignmentNotation/TassignmentNotation.ttcn
+++ b/regression_test/compileonly/assignmentNotation/TassignmentNotation.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/attribQualif/Makefile b/regression_test/compileonly/attribQualif/Makefile
index d7b338ee0..1136916f3 100644
--- a/regression_test/compileonly/attribQualif/Makefile
+++ b/regression_test/compileonly/attribQualif/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/attribQualif/TattribQualif.ttcn b/regression_test/compileonly/attribQualif/TattribQualif.ttcn
index 1f8795018..78001709a 100644
--- a/regression_test/compileonly/attribQualif/TattribQualif.ttcn
+++ b/regression_test/compileonly/attribQualif/TattribQualif.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/Makefile b/regression_test/compileonly/centralstorage/Makefile
index d8c91f33f..a3a87963e 100644
--- a/regression_test/compileonly/centralstorage/Makefile
+++ b/regression_test/compileonly/centralstorage/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/centralstorage/base_asn/Base_asn.asn b/regression_test/compileonly/centralstorage/base_asn/Base_asn.asn
index a39a63771..44f25eebb 100644
--- a/regression_test/compileonly/centralstorage/base_asn/Base_asn.asn
+++ b/regression_test/compileonly/centralstorage/base_asn/Base_asn.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/centralstorage/base_mixed/Base_mixed_asn.asn b/regression_test/compileonly/centralstorage/base_mixed/Base_mixed_asn.asn
index 99ddc7b1a..be00cbc4c 100644
--- a/regression_test/compileonly/centralstorage/base_mixed/Base_mixed_asn.asn
+++ b/regression_test/compileonly/centralstorage/base_mixed/Base_mixed_asn.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.cc b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.cc
index bd9ff4c91..dd4f95f98 100644
--- a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.cc
+++ b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.hh b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.hh
index 9d04672e6..8daa98408 100644
--- a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.hh
+++ b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_PT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcn.ttcn b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcn.ttcn
index 920d6abd0..cbf3bacb2 100644
--- a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcn.ttcn
+++ b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcn.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcnpp.ttcnpp b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcnpp.ttcnpp
index 5a5b05090..11e43eae3 100644
--- a/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcnpp.ttcnpp
+++ b/regression_test/compileonly/centralstorage/base_mixed/base_mixed_ttcnpp.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/base_ttcn/base_PT.cc b/regression_test/compileonly/centralstorage/base_ttcn/base_PT.cc
index 3e06db682..2c32afb96 100644
--- a/regression_test/compileonly/centralstorage/base_ttcn/base_PT.cc
+++ b/regression_test/compileonly/centralstorage/base_ttcn/base_PT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/centralstorage/base_ttcn/base_PT.hh b/regression_test/compileonly/centralstorage/base_ttcn/base_PT.hh
index 877fac6f8..74ed796f8 100644
--- a/regression_test/compileonly/centralstorage/base_ttcn/base_PT.hh
+++ b/regression_test/compileonly/centralstorage/base_ttcn/base_PT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/centralstorage/base_ttcn/base_ttcn.ttcnpp b/regression_test/compileonly/centralstorage/base_ttcn/base_ttcn.ttcnpp
index aa4b14d71..41e719dca 100644
--- a/regression_test/compileonly/centralstorage/base_ttcn/base_ttcn.ttcnpp
+++ b/regression_test/compileonly/centralstorage/base_ttcn/base_ttcn.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcn.ttcn b/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcn.ttcn
index 2ad18389e..2817efd61 100644
--- a/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcn.ttcn
+++ b/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcn.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcnpp.ttcnpp b/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcnpp.ttcnpp
index 150fe52f5..4a32e5d69 100644
--- a/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcnpp.ttcnpp
+++ b/regression_test/compileonly/centralstorage/extended_ttcn/extended_ttcnpp.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/separate_project/separate_PT.cc b/regression_test/compileonly/centralstorage/separate_project/separate_PT.cc
index df78a8afc..be439b04a 100644
--- a/regression_test/compileonly/centralstorage/separate_project/separate_PT.cc
+++ b/regression_test/compileonly/centralstorage/separate_project/separate_PT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/centralstorage/separate_project/separate_PT.hh b/regression_test/compileonly/centralstorage/separate_project/separate_PT.hh
index 52f192e31..ab28a50b4 100644
--- a/regression_test/compileonly/centralstorage/separate_project/separate_PT.hh
+++ b/regression_test/compileonly/centralstorage/separate_project/separate_PT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/centralstorage/separate_project/separate_ttcn.ttcn b/regression_test/compileonly/centralstorage/separate_project/separate_ttcn.ttcn
index 9ea1826c0..37af7d9d2 100644
--- a/regression_test/compileonly/centralstorage/separate_project/separate_ttcn.ttcn
+++ b/regression_test/compileonly/centralstorage/separate_project/separate_ttcn.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/separate_project/separate_ttcnpp.ttcnpp b/regression_test/compileonly/centralstorage/separate_project/separate_ttcnpp.ttcnpp
index cc050c8bb..dd01dda15 100644
--- a/regression_test/compileonly/centralstorage/separate_project/separate_ttcnpp.ttcnpp
+++ b/regression_test/compileonly/centralstorage/separate_project/separate_ttcnpp.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/separate_user/config.cfg b/regression_test/compileonly/centralstorage/separate_user/config.cfg
index f7cf2224c..c95a5c87c 100644
--- a/regression_test/compileonly/centralstorage/separate_user/config.cfg
+++ b/regression_test/compileonly/centralstorage/separate_user/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/centralstorage/separate_user/separate_user.ttcn b/regression_test/compileonly/centralstorage/separate_user/separate_user.ttcn
index 59582da5a..8e07356cb 100644
--- a/regression_test/compileonly/centralstorage/separate_user/separate_user.ttcn
+++ b/regression_test/compileonly/centralstorage/separate_user/separate_user.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/user_all_bases/user_all_bases.ttcn b/regression_test/compileonly/centralstorage/user_all_bases/user_all_bases.ttcn
index f0c24e2ad..2e858d163 100644
--- a/regression_test/compileonly/centralstorage/user_all_bases/user_all_bases.ttcn
+++ b/regression_test/compileonly/centralstorage/user_all_bases/user_all_bases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/user_ttcn/fake.ttcnpp b/regression_test/compileonly/centralstorage/user_ttcn/fake.ttcnpp
index b0f8aa428..21f8704e0 100644
--- a/regression_test/compileonly/centralstorage/user_ttcn/fake.ttcnpp
+++ b/regression_test/compileonly/centralstorage/user_ttcn/fake.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/centralstorage/user_ttcn/user_ttcn.ttcn b/regression_test/compileonly/centralstorage/user_ttcn/user_ttcn.ttcn
index 989c6e3a7..794163090 100644
--- a/regression_test/compileonly/centralstorage/user_ttcn/user_ttcn.ttcn
+++ b/regression_test/compileonly/centralstorage/user_ttcn/user_ttcn.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/circularImport/A.asn b/regression_test/compileonly/circularImport/A.asn
index 1955f4fbc..1abc41c0a 100644
--- a/regression_test/compileonly/circularImport/A.asn
+++ b/regression_test/compileonly/circularImport/A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/circularImport/B.asn b/regression_test/compileonly/circularImport/B.asn
index 1db5ab900..638b94bb2 100644
--- a/regression_test/compileonly/circularImport/B.asn
+++ b/regression_test/compileonly/circularImport/B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/circularImport/Makefile b/regression_test/compileonly/circularImport/Makefile
index 865dd917e..77a859825 100644
--- a/regression_test/compileonly/circularImport/Makefile
+++ b/regression_test/compileonly/circularImport/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/compareImported/A.ttcn b/regression_test/compileonly/compareImported/A.ttcn
index 2fceb859f..b1a74779e 100644
--- a/regression_test/compileonly/compareImported/A.ttcn
+++ b/regression_test/compileonly/compareImported/A.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/compareImported/B.ttcn b/regression_test/compileonly/compareImported/B.ttcn
index 064d93b69..5c5e4afb2 100644
--- a/regression_test/compileonly/compareImported/B.ttcn
+++ b/regression_test/compileonly/compareImported/B.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/compareImported/C.ttcn b/regression_test/compileonly/compareImported/C.ttcn
index 384c99beb..0ed2b3c0c 100644
--- a/regression_test/compileonly/compareImported/C.ttcn
+++ b/regression_test/compileonly/compareImported/C.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/compareImported/Makefile b/regression_test/compileonly/compareImported/Makefile
index 7d4a24096..a4f9610a4 100644
--- a/regression_test/compileonly/compareImported/Makefile
+++ b/regression_test/compileonly/compareImported/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/compoundif/Makefile b/regression_test/compileonly/compoundif/Makefile
index 12e484cb7..d76b906e8 100644
--- a/regression_test/compileonly/compoundif/Makefile
+++ b/regression_test/compileonly/compoundif/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/compoundif/Tcompoundif.ttcn b/regression_test/compileonly/compoundif/Tcompoundif.ttcn
index 564e71aa5..0190b8822 100644
--- a/regression_test/compileonly/compoundif/Tcompoundif.ttcn
+++ b/regression_test/compileonly/compoundif/Tcompoundif.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/dynamicTemplate/DynamicTemplate.ttcn b/regression_test/compileonly/dynamicTemplate/DynamicTemplate.ttcn
index e41a2345f..fbed702df 100644
--- a/regression_test/compileonly/dynamicTemplate/DynamicTemplate.ttcn
+++ b/regression_test/compileonly/dynamicTemplate/DynamicTemplate.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/dynamicTemplate/Makefile b/regression_test/compileonly/dynamicTemplate/Makefile
index 34671e7fc..f3aa74ba7 100644
--- a/regression_test/compileonly/dynamicTemplate/Makefile
+++ b/regression_test/compileonly/dynamicTemplate/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/dynamicTemplate/external.cc b/regression_test/compileonly/dynamicTemplate/external.cc
index efc42ea77..4a476189a 100644
--- a/regression_test/compileonly/dynamicTemplate/external.cc
+++ b/regression_test/compileonly/dynamicTemplate/external.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/isbound/Makefile b/regression_test/compileonly/isbound/Makefile
index 3002b83cc..5b1a36ea5 100644
--- a/regression_test/compileonly/isbound/Makefile
+++ b/regression_test/compileonly/isbound/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/isbound/bad_SE.ttcn b/regression_test/compileonly/isbound/bad_SE.ttcn
index 73d7db6f3..e7797067d 100644
--- a/regression_test/compileonly/isbound/bad_SE.ttcn
+++ b/regression_test/compileonly/isbound/bad_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/isbound/bogus_SY.ttcn b/regression_test/compileonly/isbound/bogus_SY.ttcn
index 732cbfbb6..a7ff36be7 100644
--- a/regression_test/compileonly/isbound/bogus_SY.ttcn
+++ b/regression_test/compileonly/isbound/bogus_SY.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/isbound/isbound_component_OK.ttcn b/regression_test/compileonly/isbound/isbound_component_OK.ttcn
index ed8d529e6..1e757fe6b 100644
--- a/regression_test/compileonly/isbound/isbound_component_OK.ttcn
+++ b/regression_test/compileonly/isbound/isbound_component_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/isbound/isbound_port_SE.ttcn b/regression_test/compileonly/isbound/isbound_port_SE.ttcn
index 5ef147634..34dece705 100644
--- a/regression_test/compileonly/isbound/isbound_port_SE.ttcn
+++ b/regression_test/compileonly/isbound/isbound_port_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/isbound/isbound_testcase_SE.ttcn b/regression_test/compileonly/isbound/isbound_testcase_SE.ttcn
index 757c7f4f0..6d1a9d110 100644
--- a/regression_test/compileonly/isbound/isbound_testcase_SE.ttcn
+++ b/regression_test/compileonly/isbound/isbound_testcase_SE.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/isbound/one_OK.ttcn b/regression_test/compileonly/isbound/one_OK.ttcn
index 5a2b6c110..9da4a4e77 100644
--- a/regression_test/compileonly/isbound/one_OK.ttcn
+++ b/regression_test/compileonly/isbound/one_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/COMMON/ProtocolModules_Common.tpd b/regression_test/compileonly/mfgen-tpd/COMMON/ProtocolModules_Common.tpd
index 90d7df23a..521397070 100644
--- a/regression_test/compileonly/mfgen-tpd/COMMON/ProtocolModules_Common.tpd
+++ b/regression_test/compileonly/mfgen-tpd/COMMON/ProtocolModules_Common.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/COMMON/src/General_Types.ttcn b/regression_test/compileonly/mfgen-tpd/COMMON/src/General_Types.ttcn
index 5cdee6fee..2d6036eaa 100644
--- a/regression_test/compileonly/mfgen-tpd/COMMON/src/General_Types.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/COMMON/src/General_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/COMMON/src/MobileDomainDefinitions.asn b/regression_test/compileonly/mfgen-tpd/COMMON/src/MobileDomainDefinitions.asn
index 4811c0f9e..4cead883b 100644
--- a/regression_test/compileonly/mfgen-tpd/COMMON/src/MobileDomainDefinitions.asn
+++ b/regression_test/compileonly/mfgen-tpd/COMMON/src/MobileDomainDefinitions.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/Hello000.tpd b/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/Hello000.tpd
index f140702b6..db032c2e4 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/Hello000.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/Hello000.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/src/MyExample0.ttcn b/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/src/MyExample0.ttcn
index e3fbd7c4e..6a778241e 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/src/MyExample0.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/Hello000/src/MyExample0.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/Hello123.tpd b/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/Hello123.tpd
index c2f70f118..6ec4db271 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/Hello123.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/Hello123.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/src/MyExample1.ttcn b/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/src/MyExample1.ttcn
index e4605e536..a987404ed 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/src/MyExample1.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/Hello123/src/MyExample1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/HelloTpd.tpd
index b93ff1685..dc8ae3d8c 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/src/MyExample.ttcn
index 0639438c6..378d27ab9 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HP79745/Makefile b/regression_test/compileonly/mfgen-tpd/HP79745/Makefile
index 57c6240eb..4e65db5e1 100644
--- a/regression_test/compileonly/mfgen-tpd/HP79745/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/HP79745/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56829/Makefile b/regression_test/compileonly/mfgen-tpd/HQ56829/Makefile
index 5d29dcb11..d3c25d3af 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56829/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/HQ56829/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56834/Makefile b/regression_test/compileonly/mfgen-tpd/HQ56834/Makefile
index 13e89ad70..fc8f1364c 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56834/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/HQ56834/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56834/counter.tpd b/regression_test/compileonly/mfgen-tpd/HQ56834/counter.tpd
index e41cd8ce8..d63532afd 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56834/counter.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HQ56834/counter.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56834/src/counter.ttcn b/regression_test/compileonly/mfgen-tpd/HQ56834/src/counter.ttcn
index a027f23e4..e4750b755 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56834/src/counter.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HQ56834/src/counter.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56848/Makefile b/regression_test/compileonly/mfgen-tpd/HQ56848/Makefile
index e427578be..1623513bd 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56848/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/HQ56848/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56848/counter.tpd b/regression_test/compileonly/mfgen-tpd/HQ56848/counter.tpd
index 369808f22..0e9f30a8c 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56848/counter.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HQ56848/counter.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ56848/src/counter.ttcn b/regression_test/compileonly/mfgen-tpd/HQ56848/src/counter.ttcn
index a027f23e4..e4750b755 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ56848/src/counter.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HQ56848/src/counter.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ60308/counter.tpd b/regression_test/compileonly/mfgen-tpd/HQ60308/counter.tpd
index 625a674a9..b550b2e86 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ60308/counter.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HQ60308/counter.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HQ60308/src/counter.ttcn b/regression_test/compileonly/mfgen-tpd/HQ60308/src/counter.ttcn
index a027f23e4..e4750b755 100644
--- a/regression_test/compileonly/mfgen-tpd/HQ60308/src/counter.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HQ60308/src/counter.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/Makefile b/regression_test/compileonly/mfgen-tpd/HR30356/Makefile
index 90644487d..ad02417d6 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30356/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/client/client.tpd b/regression_test/compileonly/mfgen-tpd/HR30356/client/client.tpd
index 251ceafce..a4d636fdf 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/client/client.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/client/client.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/client/src/client.ttcn b/regression_test/compileonly/mfgen-tpd/HR30356/client/src/client.ttcn
index 9666dd844..7575e789c 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/client/src/client.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/client/src/client.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/controller/controller.tpd b/regression_test/compileonly/mfgen-tpd/HR30356/controller/controller.tpd
index e7ccd0cee..49ecbf646 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/controller/controller.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/controller/controller.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/controller/src/controller.ttcn b/regression_test/compileonly/mfgen-tpd/HR30356/controller/src/controller.ttcn
index fd1b2ca3d..053cb739d 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/controller/src/controller.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/controller/src/controller.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/server/server.tpd b/regression_test/compileonly/mfgen-tpd/HR30356/server/server.tpd
index df04780f3..17f3d0125 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/server/server.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/server/server.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/server/src/server.ttcn b/regression_test/compileonly/mfgen-tpd/HR30356/server/src/server.ttcn
index f00bc21ca..c5c8dc9f2 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/server/src/server.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/server/src/server.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/testport/src/testport.ttcn b/regression_test/compileonly/mfgen-tpd/HR30356/testport/src/testport.ttcn
index e2ff27c6a..a8ee3ec88 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/testport/src/testport.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/testport/src/testport.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30356/testport/testport.tpd b/regression_test/compileonly/mfgen-tpd/HR30356/testport/testport.tpd
index ebc65dfb1..b726e29b0 100755
--- a/regression_test/compileonly/mfgen-tpd/HR30356/testport/testport.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30356/testport/testport.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/Hello000.tpd b/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/Hello000.tpd
index f140702b6..db032c2e4 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/Hello000.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/Hello000.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/src/MyExample0.ttcn b/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/src/MyExample0.ttcn
index e3fbd7c4e..6a778241e 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/src/MyExample0.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/Hello000/src/MyExample0.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/Hello123.tpd b/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/Hello123.tpd
index dee34f640..c1ddc59ff 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/Hello123.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/Hello123.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/src/MyExample1.ttcn b/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/src/MyExample1.ttcn
index e4605e536..a987404ed 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/src/MyExample1.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/Hello123/src/MyExample1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/HelloTpd.tpd
index b93ff1685..dc8ae3d8c 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/src/MyExample.ttcn
index 0639438c6..378d27ab9 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/HR30365/Makefile b/regression_test/compileonly/mfgen-tpd/HR30365/Makefile
index 628ea23ca..c898e5e95 100644
--- a/regression_test/compileonly/mfgen-tpd/HR30365/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/HR30365/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/Makefile b/regression_test/compileonly/mfgen-tpd/Makefile
index a5073b7c7..2a04889d7 100644
--- a/regression_test/compileonly/mfgen-tpd/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/NAS_EPS_v9.7.0_CNL113729.tpd b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/NAS_EPS_v9.7.0_CNL113729.tpd
index d1d4fed0f..02de4a232 100644
--- a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/NAS_EPS_v9.7.0_CNL113729.tpd
+++ b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/NAS_EPS_v9.7.0_CNL113729.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/src/NAS_EPS_v970.ttcn b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/src/NAS_EPS_v970.ttcn
index ead65efda..eb92a01d8 100644
--- a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/src/NAS_EPS_v970.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/src/NAS_EPS_v970.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.cfg b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.cfg
index d75fa526a..e90cc2d92 100644
--- a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.cfg
+++ b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.ttcn b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.ttcn
index b41bc4a2a..e6c162250 100644
--- a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_v9.7.0_CNL113729_test.tpd b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_v9.7.0_CNL113729_test.tpd
index 8d68176a6..a38547dbd 100644
--- a/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_v9.7.0_CNL113729_test.tpd
+++ b/regression_test/compileonly/mfgen-tpd/NAS_EPS_v9.7.0_CNL113729/test/NAS_EPS_v9.7.0_CNL113729_test.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/HelloTpd.tpd
index 82b0a414c..75ac386c2 100644
--- a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.cfg b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.cfg
index 797c9bf6f..48649fcfb 100644
--- a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.cfg
+++ b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.ttcn
index 1ad05b953..3478e00fd 100644
--- a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.cc b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.cc
index cd1234fce..29b13d7f6 100644
--- a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.cc
+++ b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.hh b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.hh
index b1990a792..60e22f2da 100644
--- a/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.hh
+++ b/regression_test/compileonly/mfgen-tpd/buildconfig_param/HelloTpd/src/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/buildconfig_param/Makefile b/regression_test/compileonly/mfgen-tpd/buildconfig_param/Makefile
index 88f349a20..9f7437158 100644
--- a/regression_test/compileonly/mfgen-tpd/buildconfig_param/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/buildconfig_param/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/consumer/consumer-ref-supplier-Default.tpd b/regression_test/compileonly/mfgen-tpd/consumer/consumer-ref-supplier-Default.tpd
index 77829eb11..487df8fc3 100644
--- a/regression_test/compileonly/mfgen-tpd/consumer/consumer-ref-supplier-Default.tpd
+++ b/regression_test/compileonly/mfgen-tpd/consumer/consumer-ref-supplier-Default.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/consumer/creator.ttcn b/regression_test/compileonly/mfgen-tpd/consumer/creator.ttcn
index 2010e3ef3..d0c90d3ec 100644
--- a/regression_test/compileonly/mfgen-tpd/consumer/creator.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/consumer/creator.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/consumer/src/consumer.ttcn b/regression_test/compileonly/mfgen-tpd/consumer/src/consumer.ttcn
index 8dc134b45..d4736c178 100644
--- a/regression_test/compileonly/mfgen-tpd/consumer/src/consumer.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/consumer/src/consumer.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/consumer/src/userfun.cc b/regression_test/compileonly/mfgen-tpd/consumer/src/userfun.cc
index 364633c3b..d30731cec 100644
--- a/regression_test/compileonly/mfgen-tpd/consumer/src/userfun.cc
+++ b/regression_test/compileonly/mfgen-tpd/consumer/src/userfun.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/Makefile b/regression_test/compileonly/mfgen-tpd/dependency_check/Makefile
index fa00fe94d..314509603 100644
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/client/client.tpd b/regression_test/compileonly/mfgen-tpd/dependency_check/client/client.tpd
index e89a1d082..af362be9d 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/client/client.tpd
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/client/client.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/client/src/client.ttcn b/regression_test/compileonly/mfgen-tpd/dependency_check/client/src/client.ttcn
index 9666dd844..7575e789c 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/client/src/client.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/client/src/client.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/controller/controller.tpd b/regression_test/compileonly/mfgen-tpd/dependency_check/controller/controller.tpd
index 3820628f2..121f7d227 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/controller/controller.tpd
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/controller/controller.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/controller/src/controller.ttcn b/regression_test/compileonly/mfgen-tpd/dependency_check/controller/src/controller.ttcn
index fd1b2ca3d..053cb739d 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/controller/src/controller.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/controller/src/controller.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/server/server.tpd b/regression_test/compileonly/mfgen-tpd/dependency_check/server/server.tpd
index b1e4c588e..6ba0ebaf6 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/server/server.tpd
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/server/server.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/server/src/server.ttcn b/regression_test/compileonly/mfgen-tpd/dependency_check/server/src/server.ttcn
index f00bc21ca..c5c8dc9f2 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/server/src/server.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/server/src/server.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/testport/src/testport.ttcn b/regression_test/compileonly/mfgen-tpd/dependency_check/testport/src/testport.ttcn
index e2ff27c6a..a8ee3ec88 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/testport/src/testport.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/testport/src/testport.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/dependency_check/testport/testport.tpd b/regression_test/compileonly/mfgen-tpd/dependency_check/testport/testport.tpd
index d182075ad..d8a63bc6b 100755
--- a/regression_test/compileonly/mfgen-tpd/dependency_check/testport/testport.tpd
+++ b/regression_test/compileonly/mfgen-tpd/dependency_check/testport/testport.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/Hello000.tpd b/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/Hello000.tpd
index f140702b6..db032c2e4 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/Hello000.tpd
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/Hello000.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/src/MyExample0.ttcn b/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/src/MyExample0.ttcn
index e3fbd7c4e..6a778241e 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/src/MyExample0.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/Hello000/src/MyExample0.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/Hello123.tpd b/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/Hello123.tpd
index c2f70f118..6ec4db271 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/Hello123.tpd
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/Hello123.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/src/MyExample1.ttcn b/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/src/MyExample1.ttcn
index e4605e536..a987404ed 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/src/MyExample1.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/Hello123/src/MyExample1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/HelloTpd.tpd
index b93ff1685..dc8ae3d8c 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/src/MyExample.ttcn
index 0639438c6..378d27ab9 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/HelloTpd2.tpd b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/HelloTpd2.tpd
index 0e243ca7f..76b5b8bd7 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/HelloTpd2.tpd
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/HelloTpd2.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/src/MyExample2.ttcn b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/src/MyExample2.ttcn
index 86401b914..ae2813a6c 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/src/MyExample2.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/HelloTpd2/src/MyExample2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/flagTest/Makefile b/regression_test/compileonly/mfgen-tpd/flagTest/Makefile
index 2e387c223..88e26cd3c 100644
--- a/regression_test/compileonly/mfgen-tpd/flagTest/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/flagTest/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/handmade.ttcn b/regression_test/compileonly/mfgen-tpd/handmade.ttcn
index 744ff5b4e..f9bc12b44 100644
--- a/regression_test/compileonly/mfgen-tpd/handmade.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/handmade.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/HelloTpd.tpd
index 82b0a414c..75ac386c2 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.cfg b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.cfg
index 797c9bf6f..48649fcfb 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.cfg
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.ttcn
index 1ad05b953..3478e00fd 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.cc b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.cc
index cd1234fce..29b13d7f6 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.cc
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.hh b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.hh
index b1990a792..60e22f2da 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.hh
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/HelloTpd/src/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile
index e98152720..4a02cc9f7 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_param/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/Hello000.tpd b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/Hello000.tpd
index 4a53971f7..fdebaf69c 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/Hello000.tpd
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/Hello000.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.cfg b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.cfg
index b4f9f9296..9a8c6a993 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.cfg
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.ttcn b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.ttcn
index fd38cf36f..4a319541a 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/MyExample0.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.cc b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.cc
index cd1234fce..29b13d7f6 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.cc
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.hh b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.hh
index b1990a792..60e22f2da 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.hh
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello000/src/PCOType0.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/Hello123.tpd b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/Hello123.tpd
index 0265fb014..1e6b74fe3 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/Hello123.tpd
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/Hello123.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.cfg b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.cfg
index 947f7bf30..e143238fa 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.cfg
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.ttcn b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.ttcn
index ca9b3f9bf..cca2ce035 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/MyExample1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.cc b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.cc
index cd1234fce..29b13d7f6 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.cc
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.hh b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.hh
index b1990a792..60e22f2da 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.hh
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Hello123/src/PCOType1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/HelloTpd.tpd
index 23980d176..90d3267da 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.cfg b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.cfg
index 797c9bf6f..48649fcfb 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.cfg
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.ttcn
index 1ad05b953..3478e00fd 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.cc b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.cc
index cd1234fce..29b13d7f6 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.cc
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.hh b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.hh
index b1990a792..60e22f2da 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.hh
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/HelloTpd/src/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile
index 0970fe692..e1fea8ac6 100644
--- a/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/invalid_buildconfig_tpd/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/HelloTpd.tpd
index a16a6f46f..3cbb78af3 100644
--- a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.cfg b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.cfg
index 797c9bf6f..48649fcfb 100644
--- a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.cfg
+++ b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.ttcn b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.ttcn
index 1ad05b953..3478e00fd 100644
--- a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/MyExample.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.cc b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.cc
index cd1234fce..29b13d7f6 100644
--- a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.cc
+++ b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.hh b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.hh
index b1990a792..60e22f2da 100644
--- a/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.hh
+++ b/regression_test/compileonly/mfgen-tpd/library/HelloTpd/src/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/HelloTpd2/HelloTpd.tpd b/regression_test/compileonly/mfgen-tpd/library/HelloTpd2/HelloTpd.tpd
index e45f8e36c..7ffdddf4c 100644
--- a/regression_test/compileonly/mfgen-tpd/library/HelloTpd2/HelloTpd.tpd
+++ b/regression_test/compileonly/mfgen-tpd/library/HelloTpd2/HelloTpd.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/Makefile b/regression_test/compileonly/mfgen-tpd/library/Makefile
index a4a5665c5..387894254 100644
--- a/regression_test/compileonly/mfgen-tpd/library/Makefile
+++ b/regression_test/compileonly/mfgen-tpd/library/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/a.ttcn b/regression_test/compileonly/mfgen-tpd/library/a.ttcn
index 2dd07dac7..4cb3652f1 100644
--- a/regression_test/compileonly/mfgen-tpd/library/a.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/library/a.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/b.ttcn b/regression_test/compileonly/mfgen-tpd/library/b.ttcn
index 4c71dfe65..8d023e333 100644
--- a/regression_test/compileonly/mfgen-tpd/library/b.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/library/b.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/library/central_storage/central.ttcn b/regression_test/compileonly/mfgen-tpd/library/central_storage/central.ttcn
index e7aaae1b3..d6411445e 100644
--- a/regression_test/compileonly/mfgen-tpd/library/central_storage/central.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/library/central_storage/central.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/outsider.ttcn b/regression_test/compileonly/mfgen-tpd/outsider.ttcn
index bb8f8abc6..445253b8c 100644
--- a/regression_test/compileonly/mfgen-tpd/outsider.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/outsider.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/runner.pl b/regression_test/compileonly/mfgen-tpd/runner.pl
index 4839f79f2..7c6d9de55 100644
--- a/regression_test/compileonly/mfgen-tpd/runner.pl
+++ b/regression_test/compileonly/mfgen-tpd/runner.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -wl
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/mfgen-tpd/subplier/src/subway.ttcn b/regression_test/compileonly/mfgen-tpd/subplier/src/subway.ttcn
index fff4ddbd6..98e48a46e 100644
--- a/regression_test/compileonly/mfgen-tpd/subplier/src/subway.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/subplier/src/subway.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/subplier/subplier.tpd b/regression_test/compileonly/mfgen-tpd/subplier/subplier.tpd
index 46f579a36..b7432af29 100644
--- a/regression_test/compileonly/mfgen-tpd/subplier/subplier.tpd
+++ b/regression_test/compileonly/mfgen-tpd/subplier/subplier.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/mfgen-tpd/supplier/src/supplier.ttcn b/regression_test/compileonly/mfgen-tpd/supplier/src/supplier.ttcn
index a5a941b14..f7d3d3b1c 100644
--- a/regression_test/compileonly/mfgen-tpd/supplier/src/supplier.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/supplier/src/supplier.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/supplier/src/supplier2.ttcn b/regression_test/compileonly/mfgen-tpd/supplier/src/supplier2.ttcn
index f0e309be8..c0a9332e2 100644
--- a/regression_test/compileonly/mfgen-tpd/supplier/src/supplier2.ttcn
+++ b/regression_test/compileonly/mfgen-tpd/supplier/src/supplier2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/mfgen-tpd/supplier/supplier24.tpd b/regression_test/compileonly/mfgen-tpd/supplier/supplier24.tpd
index 9e4bece7e..dfef5c9a7 100644
--- a/regression_test/compileonly/mfgen-tpd/supplier/supplier24.tpd
+++ b/regression_test/compileonly/mfgen-tpd/supplier/supplier24.tpd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/compileonly/namedActualParameters/Makefile b/regression_test/compileonly/namedActualParameters/Makefile
index f074d3de0..84e215275 100644
--- a/regression_test/compileonly/namedActualParameters/Makefile
+++ b/regression_test/compileonly/namedActualParameters/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/namedActualParameters/TnamedActualParameters.ttcn b/regression_test/compileonly/namedActualParameters/TnamedActualParameters.ttcn
index 8f9e1aad3..98989753d 100644
--- a/regression_test/compileonly/namedActualParameters/TnamedActualParameters.ttcn
+++ b/regression_test/compileonly/namedActualParameters/TnamedActualParameters.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/openType/Makefile b/regression_test/compileonly/openType/Makefile
index 05f321991..c6d9910ef 100644
--- a/regression_test/compileonly/openType/Makefile
+++ b/regression_test/compileonly/openType/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/openType/X.asn b/regression_test/compileonly/openType/X.asn
index 1082b17dd..6e7be3aac 100644
--- a/regression_test/compileonly/openType/X.asn
+++ b/regression_test/compileonly/openType/X.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/openTypeNames/IO_based_message.asn b/regression_test/compileonly/openTypeNames/IO_based_message.asn
new file mode 100644
index 000000000..56071bb48
--- /dev/null
+++ b/regression_test/compileonly/openTypeNames/IO_based_message.asn
@@ -0,0 +1,86 @@
+--*****************************************************************************
+-- 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
+--*****************************************************************************
+
+IO-based-message DEFINITIONS
+
+AUTOMATIC TAGS ::= 
+
+BEGIN
+
+--Types to be used in IO definitions
+MySeq ::= SEQUENCE {
+  field1 INTEGER,
+  field2 OCTET STRING OPTIONAL
+}
+
+MyEnum ::= ENUMERATED { first, second, third, fourth, fifth }
+
+--Defining IO class
+MY-CLASS ::=   CLASS {
+       &id    INTEGER    UNIQUE,  -- id to distinguish the different IO instances
+       &OpenTypeField             -- Open type field
+}
+WITH SYNTAX { ID &id TYPE &OpenTypeField }
+
+-- Defining the information objects
+myIo1 MY-CLASS ::= { ID 1 TYPE MySeq } -- defining the type MySeq for the open type field,
+                                       -- instances of the object shall contain a value of this type
+  
+myIo2 MY-CLASS ::= { ID 2 TYPE MyEnum }
+
+myIo3 MY-CLASS ::= { ID 3 TYPE INTEGER }
+
+-- Defining IO set to be used in message contraction
+
+MyIOSet MY-CLASS ::= { myIo1 | myIo2 | myIo3 }
+
+-- and now finally constructing the type
+
+MyMessage ::= SEQUENCE {
+  id MY-CLASS.&id ({MyIOSet}), -- integer field, values constrained to one of
+                               -- the value defined for an IO, member of the set
+  content MY-CLASS.&OpenTypeField ({MyIOSet} {@id})
+                       -- open type field constrainedto the types defined for
+                       -- the objects in the set; this is handled as an implicit
+                       -- union by Titan and should be an anytype, i.e. using the
+                       -- names of the types to select the given type.
+}
+
+-- Values
+a-message-id1-lower MyMessage ::= {
+  id 1,
+  content mySeq : { field1 23, field2 '1234'H }
+}
+
+a-message-id2-lower MyMessage ::= {
+  id 2,
+  content myEnum : third
+}
+
+a-message-id3-lower MyMessage ::= {
+  id 3,
+  content iNTEGER : 7
+}
+/*
+-- Not supported values
+a-message-id1-upper MyMessage ::= {
+  id 1,
+  content MySeq : { field1 23, field2 '1234'H }
+}
+
+a-message-id2-upper MyMessage ::= {
+  id 2,
+  content MyEnum : third
+}
+
+a-message-id3-upper MyMessage ::= {
+  id 3,
+  content INTEGER : 7
+}
+*/
+END
diff --git a/regression_test/compileonly/openTypeNames/Makefile b/regression_test/compileonly/openTypeNames/Makefile
new file mode 100644
index 000000000..275e59192
--- /dev/null
+++ b/regression_test/compileonly/openTypeNames/Makefile
@@ -0,0 +1,42 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ../..
+include $(TOPDIR)/Makefile.regression
+
+.PHONY: all clean dep
+
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
+
+TTCN3_MODULES = Open_type_use.ttcn
+ASN1_MODULES = IO_based_message.asn
+
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+ifdef CODE_SPLIT
+GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc  _seqof.cc _setof.cc _union.cc))
+endif
+
+OBJECTS = $(GENERATED_SOURCES:.cc=.o)
+
+TARGET = openTypeNames$(EXESUFFIX)
+
+all: $(TARGET)
+
+$(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES)
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) \
+	-L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS): $(TTCN3_MODULES) $(ASN1_MODULES)
+	$(TTCN3_COMPILER) $(COMPILER_FLAGS) $^
+
+clean distclean:
+	$(RM) $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) compile *.log
+
+dep: $(GENERATED_SOURCES)
+	makedepend $(CPPFLAGS) $(GENERATED_SOURCES)
diff --git a/regression_test/compileonly/openTypeNames/Open_type_use.ttcn b/regression_test/compileonly/openTypeNames/Open_type_use.ttcn
new file mode 100644
index 000000000..75f69379e
--- /dev/null
+++ b/regression_test/compileonly/openTypeNames/Open_type_use.ttcn
@@ -0,0 +1,212 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+// This module tests that the compiler allows both uppercase and lowercase
+// first letters for the name of an open type alternative
+module Open_type_use {
+
+import from IO_based_message language "ASN.1:2002" all;
+
+// Constants (lowercase first letter)
+const MyMessage c_message_id1_lower := {
+  id := 1,
+  content := { mySeq := { field1 := 42, field2 := omit }}
+}
+
+const MyMessage c_message_id2_lower := {
+  id := 2,
+  content := { myEnum := first}
+}
+
+const MyMessage c_message_id3_lower := {
+  id := 3,
+  content := { iNTEGER := 42 }
+}
+
+// Constants (uppercase first letter)
+const MyMessage c_message_id1_upper := {
+  id := 1,
+  content := { MySeq := { field1 := 42, field2 := omit }}
+}
+
+const MyMessage c_message_id2_upper := {
+  id := 2,
+  content := { MyEnum := first}
+}
+
+const MyMessage c_message_id3_upper := {
+  id := 3,
+  content := { INTEGER := 42 }
+}
+
+// Templates (lowercase first letter)
+template MyMessage t_message_id1_lower := {
+  id := 1,
+  content := { mySeq := { field1 := 42, field2 := omit }}
+}
+
+template MyMessage t_message_id2_lower := {
+  id := 2,
+  content := { myEnum := first}
+}
+
+template MyMessage t_message_id3_lower := {
+  id := 3,
+  content := { iNTEGER := 42 }
+}
+
+// Templates (uppercase first letter)
+template MyMessage t_message_id1_upper := {
+  id := 1,
+  content := { MySeq := { field1 := 42, field2 := omit }}
+}
+
+template MyMessage t_message_id2_upper := {
+  id := 2,
+  content := { MyEnum := first}
+}
+
+template MyMessage t_message_id3_upper := {
+  id := 3,
+  content := { INTEGER := 42 }
+}
+
+// Value list template (contains both lowercase and uppercase examples)
+template MyMessage t_message_value_list := (
+  { id := 1, content := { mySeq := { field1 := 42, field2 := omit }} },
+  { id := 2, content := { myEnum := first} },
+  { id := 3, content := { iNTEGER := 42 } },
+  { id := 1, content := { MySeq := { field1 := -42, field2 := omit }} },
+  { id := 2, content := { MyEnum := second} },
+  { id := 3, content := { INTEGER := -42 } }
+);
+
+// Dummy function to declare variables in
+function f_dummy() {
+  // Variables (lowercase first letter)
+  var MyMessage v_message_id1_lower := {
+    id := 1,
+    content := { mySeq := { field1 := 42, field2 := omit }}
+  }
+
+  var MyMessage v_message_id2_lower := {
+    id := 2,
+    content := { myEnum := first}
+  }
+  
+  var MyMessage v_message_id3_lower := {
+    id := 3,
+    content := { iNTEGER := 42 }
+  }
+
+  // Variables (uppercase first letter)
+  var MyMessage v_message_id1_upper := {
+    id := 1,
+    content := { MySeq := { field1 := 42, field2 := omit }}
+  }
+
+  var MyMessage v_message_id2_upper := {
+    id := 2,
+    content := { MyEnum := first}
+  }
+  
+  var MyMessage v_message_id3_upper := {
+    id := 3,
+    content := { INTEGER := 42 }
+  }
+
+  // Template variables (lowercase first letter)
+  var template MyMessage vt_message_id1_lower := {
+    id := 1,
+    content := { mySeq := { field1 := 42, field2 := omit }}
+  }
+
+  var template MyMessage vt_message_id2_lower := {
+    id := 2,
+    content := { myEnum := first}
+  }
+  
+  var template MyMessage vt_message_id3_lower := {
+    id := 3,
+    content := { iNTEGER := 42 }
+  }
+
+  // Template variables (uppercase first letter)
+  var template MyMessage vt_message_id1_upper := {
+    id := 1,
+    content := { MySeq := { field1 := 42, field2 := omit }}
+  }
+
+  var template MyMessage vt_message_id2_upper := {
+    id := 2,
+    content := { MyEnum := first}
+  }
+  
+  var template MyMessage vt_message_id3_upper := {
+    id := 3,
+    content := { INTEGER := 42 }
+  }
+  
+  // Value list template variable (contains both lowercase and uppercase examples)
+  var template MyMessage vt_message_value_list := (
+    { id := 1, content := { mySeq := { field1 := 42, field2 := omit }} },
+    { id := 2, content := { myEnum := first} },
+    { id := 3, content := { iNTEGER := 42 } },
+    { id := 1, content := { MySeq := { field1 := -42, field2 := omit }} },
+    { id := 2, content := { MyEnum := second} },
+    { id := 3, content := { INTEGER := -42 } }
+  );
+  
+  // Referencing fields of open types (contains both lowercase and uppercase examples)
+  v_message_id1_lower.content.mySeq := { field1 := 41, field2 := omit };
+  v_message_id1_upper.content.MySeq := { field1 := 41, field2 := omit };
+  v_message_id2_lower.content.myEnum := second;
+  v_message_id2_upper.content.MyEnum := second;
+  v_message_id3_lower.content.iNTEGER := 15;
+  v_message_id3_upper.content.INTEGER := 15;
+  vt_message_id1_lower.content.mySeq := { field1 := 41, field2 := omit };
+  vt_message_id1_upper.content.MySeq := { field1 := 41, field2 := omit };
+  vt_message_id2_lower.content.myEnum := second;
+  vt_message_id2_upper.content.MyEnum := second;
+  vt_message_id3_lower.content.iNTEGER := 15;
+  vt_message_id3_upper.content.INTEGER := 15;
+  if (c_message_id1_lower.content.mySeq == { field1 := 41, field2 := omit } and
+      c_message_id1_upper.content.MySeq == { field1 := 41, field2 := omit } and
+      c_message_id2_lower.content.myEnum == second and
+      c_message_id2_upper.content.MyEnum == second and
+      c_message_id3_lower.content.iNTEGER == 15 and
+      c_message_id3_upper.content.INTEGER == 15) {
+    log("a");
+  }
+  if (v_message_id1_lower.content.mySeq == { field1 := 41, field2 := omit } and
+      v_message_id1_upper.content.MySeq == { field1 := 41, field2 := omit } and
+      v_message_id2_lower.content.myEnum == second and
+      v_message_id2_upper.content.MyEnum == second and
+      v_message_id3_lower.content.iNTEGER == 15 and
+      v_message_id3_upper.content.INTEGER == 15) {
+    log("b");
+  }
+  if (match({ field1 := 41, field2 := omit }, t_message_id1_lower.content.mySeq) and
+      match({ field1 := 41, field2 := omit }, t_message_id1_lower.content.MySeq) and
+      match(second, t_message_id2_lower.content.myEnum) and
+      match(second, t_message_id2_lower.content.MyEnum) and
+      match(15, t_message_id3_lower.content.iNTEGER) and
+      match(15, t_message_id3_lower.content.INTEGER)) {
+    log("c");
+  }
+  if (match({ field1 := 41, field2 := omit }, vt_message_id1_upper.content.mySeq) and
+      match({ field1 := 41, field2 := omit }, vt_message_id1_upper.content.MySeq) and
+      match(second, vt_message_id2_upper.content.myEnum) and
+      match(second, vt_message_id2_upper.content.MyEnum) and
+      match(15, vt_message_id3_upper.content.iNTEGER) and
+      match(15, vt_message_id3_upper.content.INTEGER)) {
+    log("d");
+  }
+}
+
+}
diff --git a/regression_test/compileonly/optionalAssignCompare/Makefile b/regression_test/compileonly/optionalAssignCompare/Makefile
index 0340933f6..487946a8b 100644
--- a/regression_test/compileonly/optionalAssignCompare/Makefile
+++ b/regression_test/compileonly/optionalAssignCompare/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/optionalAssignCompare/ToptionalAssignCompare.ttcn b/regression_test/compileonly/optionalAssignCompare/ToptionalAssignCompare.ttcn
index ebb208024..f250aab03 100644
--- a/regression_test/compileonly/optionalAssignCompare/ToptionalAssignCompare.ttcn
+++ b/regression_test/compileonly/optionalAssignCompare/ToptionalAssignCompare.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/portConstructor/Makefile b/regression_test/compileonly/portConstructor/Makefile
index 8c370e0d1..91bb8e003 100644
--- a/regression_test/compileonly/portConstructor/Makefile
+++ b/regression_test/compileonly/portConstructor/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/portConstructor/x.ttcn b/regression_test/compileonly/portConstructor/x.ttcn
index a846ca9a9..8da3f8913 100644
--- a/regression_test/compileonly/portConstructor/x.ttcn
+++ b/regression_test/compileonly/portConstructor/x.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/styleGuide/Another_module.ttcn b/regression_test/compileonly/styleGuide/Another_module.ttcn
index b7ffef21c..e4a33b8f6 100644
--- a/regression_test/compileonly/styleGuide/Another_module.ttcn
+++ b/regression_test/compileonly/styleGuide/Another_module.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/styleGuide/Makefile b/regression_test/compileonly/styleGuide/Makefile
index 80567738e..e71bca836 100644
--- a/regression_test/compileonly/styleGuide/Makefile
+++ b/regression_test/compileonly/styleGuide/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/styleGuide/MyASN1_module.asn b/regression_test/compileonly/styleGuide/MyASN1_module.asn
index 3c526f432..f5c1b11fe 100644
--- a/regression_test/compileonly/styleGuide/MyASN1_module.asn
+++ b/regression_test/compileonly/styleGuide/MyASN1_module.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/styleGuide/MySample_module.ttcn b/regression_test/compileonly/styleGuide/MySample_module.ttcn
index 72b1492c4..f41e018fe 100644
--- a/regression_test/compileonly/styleGuide/MySample_module.ttcn
+++ b/regression_test/compileonly/styleGuide/MySample_module.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/compileonly/styleGuide/external.cc b/regression_test/compileonly/styleGuide/external.cc
index ab3f523e7..f2060d129 100644
--- a/regression_test/compileonly/styleGuide/external.cc
+++ b/regression_test/compileonly/styleGuide/external.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/compileonly/topLevelPdu/A.asn b/regression_test/compileonly/topLevelPdu/A.asn
index 04ea1df42..da8eeacb1 100644
--- a/regression_test/compileonly/topLevelPdu/A.asn
+++ b/regression_test/compileonly/topLevelPdu/A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/topLevelPdu/B.asn b/regression_test/compileonly/topLevelPdu/B.asn
index 6edc731c0..e8db4f059 100644
--- a/regression_test/compileonly/topLevelPdu/B.asn
+++ b/regression_test/compileonly/topLevelPdu/B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/topLevelPdu/Makefile b/regression_test/compileonly/topLevelPdu/Makefile
index 9971b18af..503b37f0a 100644
--- a/regression_test/compileonly/topLevelPdu/Makefile
+++ b/regression_test/compileonly/topLevelPdu/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/compileonly/typeInstantiation/A.asn b/regression_test/compileonly/typeInstantiation/A.asn
index ff5887e08..bfa11b0df 100644
--- a/regression_test/compileonly/typeInstantiation/A.asn
+++ b/regression_test/compileonly/typeInstantiation/A.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/typeInstantiation/B.asn b/regression_test/compileonly/typeInstantiation/B.asn
index 72030e276..af00773ac 100644
--- a/regression_test/compileonly/typeInstantiation/B.asn
+++ b/regression_test/compileonly/typeInstantiation/B.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/compileonly/typeInstantiation/Makefile b/regression_test/compileonly/typeInstantiation/Makefile
index 03c6c38e4..43599fc4c 100644
--- a/regression_test/compileonly/typeInstantiation/Makefile
+++ b/regression_test/compileonly/typeInstantiation/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/configOper/Makefile b/regression_test/configOper/Makefile
index 6035e7658..0d3af6c6c 100644
--- a/regression_test/configOper/Makefile
+++ b/regression_test/configOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/configOper/TconfigOper.ttcn b/regression_test/configOper/TconfigOper.ttcn
index 8c32d5578..634d6da2d 100644
--- a/regression_test/configOper/TconfigOper.ttcn
+++ b/regression_test/configOper/TconfigOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/controlTimer/Makefile b/regression_test/controlTimer/Makefile
index e5f08b269..79a92e734 100644
--- a/regression_test/controlTimer/Makefile
+++ b/regression_test/controlTimer/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/controlTimer/TcontrolTimer.ttcn b/regression_test/controlTimer/TcontrolTimer.ttcn
index ce3c85319..28dbc4eb5 100644
--- a/regression_test/controlTimer/TcontrolTimer.ttcn
+++ b/regression_test/controlTimer/TcontrolTimer.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/controlTimer/config.cfg b/regression_test/controlTimer/config.cfg
index d2ab8c9af..b084f8520 100644
--- a/regression_test/controlTimer/config.cfg
+++ b/regression_test/controlTimer/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/defaultOper/Makefile b/regression_test/defaultOper/Makefile
index 2ecb1ee5d..3a2cbdf17 100644
--- a/regression_test/defaultOper/Makefile
+++ b/regression_test/defaultOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/defaultOper/TdefaultOper.ttcn b/regression_test/defaultOper/TdefaultOper.ttcn
index ae34373a2..fa3d1f351 100644
--- a/regression_test/defaultOper/TdefaultOper.ttcn
+++ b/regression_test/defaultOper/TdefaultOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/defaultOper/config.cfg b/regression_test/defaultOper/config.cfg
index 2aef5be69..f83fdaf06 100644
--- a/regression_test/defaultOper/config.cfg
+++ b/regression_test/defaultOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/enumOper/Makefile b/regression_test/enumOper/Makefile
index 6a227f93b..805b01747 100644
--- a/regression_test/enumOper/Makefile
+++ b/regression_test/enumOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/enumOper/TenumOper.ttcn b/regression_test/enumOper/TenumOper.ttcn
index 50ac0e0b3..1b95f8592 100644
--- a/regression_test/enumOper/TenumOper.ttcn
+++ b/regression_test/enumOper/TenumOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -15,6 +15,14 @@ type enumerated myenum4 {xx9,xx10(3),xx11};	// partly with numbers
 
 type myenum1 myenumSubtype1 (xx1)
 type myenum1 myenumSubtype2
+
+type record myrecord {
+  myenum1 e1 optional,
+  myenum3 e3
+}
+
+type record of myenum4 myrecordof;
+
 // *************** Constanst ***********************
 const myenum1 cg_1:= xx2;
 const myenumSubtype1 cg_mye1 := xx1
@@ -259,6 +267,33 @@ testcase tc_enumIsvalue() runs on emptyComponent
   if ( isvalue(modifies subenum := xx2) ) { setverdict(pass); } else { setverdict(fail); };
 }
 
+testcase tc_int2enum() runs on emptyComponent
+{
+  var myenum1 e1 := xx1;
+  var myenum2 e2;
+  var integer i := 2;
+  var myrecord rec1 := { e1 := omit, e3 := xx7 };
+  var myrecord rec2;
+  var myrecordof recof1 := { xx10, xx11 };
+  var myrecordof recof2 := { xx9 };
+  
+  int2enum(1, e1);
+  int2enum(i, e2);
+  int2enum(5 - 3, rec1.e3);
+  int2enum(lengthof(recof1), rec1.e1);
+  int2enum(enum2int(cg_1), rec2.e3);
+  int2enum(1 + str2int("2"), recof1[1]);
+  int2enum(2 / 2, recof2[2]);
+  
+  if (e1 != xx2) { setverdict(fail, "e1 = ", e1); }
+  if (e2 != xx5) { setverdict(fail, "e2 = ", e2); }
+  if (rec1 != { e1 := xx3, e3 := xx6 }) { setverdict(fail, "rec1 = ", rec1) };
+  if (log2str(rec2) != "{ e1 := <unbound>, e3 := xx8 (1) }") { setverdict(fail, "rec2 = ", rec2); }
+  if (recof1 != { xx10, xx10 }) { setverdict(fail, "recof1 = ", recof1); }
+  if (log2str(recof2) != "{ xx9 (0), <unbound>, xx11 (1) }") { setverdict(fail, "recof2 = ", recof2); }
+  setverdict(pass);
+}
+
 control {
     const myenum1 cl_1 := xx1; // can constants be declared in the control part
     const myenum2 cl_2 := xx3;
@@ -282,5 +317,6 @@ control {
     execute(tc_enumNumb3());
     execute(tc_enumSubtypes());
     execute(tc_enumIsvalue());
+    execute(tc_int2enum());
 }
 }
diff --git a/regression_test/enumOper/config.cfg b/regression_test/enumOper/config.cfg
index 3a5f236ba..e98432485 100644
--- a/regression_test/enumOper/config.cfg
+++ b/regression_test/enumOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/floatOper/Makefile b/regression_test/floatOper/Makefile
index 69019a2c7..dc0676abb 100644
--- a/regression_test/floatOper/Makefile
+++ b/regression_test/floatOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/floatOper/TfloatOper.ttcn b/regression_test/floatOper/TfloatOper.ttcn
index c29cdc588..e39feb095 100644
--- a/regression_test/floatOper/TfloatOper.ttcn
+++ b/regression_test/floatOper/TfloatOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -419,7 +419,7 @@ testcase floatComparison() runs on floatOper_comptype {
   //----------------
 
   var float NaN := not_a_number;
-  if (NaN == not_a_number) { log("not_a_number==not_a_number:OK") } else { setverdict(fail, __LINE__, ": not_a_number==not_a_number:NotOK") }
+  if (NaN != not_a_number) { setverdict(fail, __LINE__, ": not_a_number==not_a_number:NotOK") }
 
 }
 
@@ -466,7 +466,7 @@ testcase constFloatComparison() runs on floatOper_comptype {
   //----------------
 
   const float NaN := not_a_number;
-  if (NaN == not_a_number) { log("not_a_number==not_a_number:OK") } else { setverdict(fail, __LINE__, ": not_a_number==not_a_number:NotOK") }
+  if (NaN != not_a_number) { setverdict(fail, __LINE__, ": not_a_number==not_a_number:NotOK") }
 
 }
 
diff --git a/regression_test/floatOper/config.cfg b/regression_test/floatOper/config.cfg
index 1aa467c9a..52ff1a332 100644
--- a/regression_test/floatOper/config.cfg
+++ b/regression_test/floatOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/functionReference/FuncRef.ttcn b/regression_test/functionReference/FuncRef.ttcn
index 974ba8053..75b46c32d 100644
--- a/regression_test/functionReference/FuncRef.ttcn
+++ b/regression_test/functionReference/FuncRef.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -64,8 +64,6 @@ testcase calculationTest() runs on FuncRef_comp
     { binary  := refers(add) } };
   var integer result_1 := calculate_expr(operands_1, operators_1);
   var integer result_2 := calculate_expr(operands_2, operators_2);
-  log("result 1 = ", result_1);
-  log("result 2 = ", result_2);
   if (result_1 == result_2) { setverdict(pass); }
   else { setverdict(fail); }
 }
@@ -76,9 +74,6 @@ template bin_oper bin_oper_tmpl3 := omit;
 
 testcase funcTemplateTest() runs on FuncRef_comp
 {
-  log(bin_oper_tmpl);
-  log(bin_oper_tmpl2);
-  log(bin_oper_tmpl3);
   var bin_oper a := refers(add);
   var bin_oper s := refers(sub);
   var bin_oper m := refers(mul);
@@ -166,7 +161,6 @@ type function fact_func_type(in integer num, inout integer steps,
 
 function factorial1(in integer num, inout integer steps) return integer
 {
-  //log("factorial1 called");
   steps := steps + 1;
   if (num<2) { return 1; }
   else { return num*factorial1(num-1,steps); }
@@ -176,7 +170,6 @@ function factorial1(in integer num, inout integer steps) return integer
 function factorial2(in integer num, inout integer steps, in fact_func_type ff)
 return integer
 {
-  //log("factorial2 called");
   steps := steps + 1;
   if (num<2) { return 1; }
   else { return num*ff.apply(num-1,steps,refers(factorial3)); }
@@ -185,7 +178,6 @@ return integer
 function factorial3(in integer num, inout integer steps, in fact_func_type ff)
 return integer
 {
-  //log("factorial3 called");
   steps := steps + 1;
   if (num<2) { return 1; }
   else { return num*ff.apply(num-1,steps,refers(factorial2)); }
diff --git a/regression_test/functionReference/Makefile b/regression_test/functionReference/Makefile
index f92acd83d..162db45de 100644
--- a/regression_test/functionReference/Makefile
+++ b/regression_test/functionReference/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/functionReference/config.cfg b/regression_test/functionReference/config.cfg
index 6481e8bbc..7917f7038 100644
--- a/regression_test/functionReference/config.cfg
+++ b/regression_test/functionReference/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/functionSubref/Makefile b/regression_test/functionSubref/Makefile
new file mode 100644
index 000000000..1ca723e64
--- /dev/null
+++ b/regression_test/functionSubref/Makefile
@@ -0,0 +1,54 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ..
+include $(TOPDIR)/Makefile.regression
+
+.SUFFIXES: .ttcn .hh
+.PHONY: all clean dep run
+
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
+
+TTCN3_MODULES = TfunctionSubref.ttcn TpardTemplateSubref.ttcn
+
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+ifdef CODE_SPLIT
+GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc  _seqof.cc _setof.cc _union.cc))
+endif
+USER_SOURCES =
+USER_HEADERS = $(USER_SOURCES:.cc=.hh)
+OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o)
+
+TARGET = TfunctionSubref$(EXESUFFIX)
+
+all: $(TARGET)
+
+$(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES)
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS): compile
+	@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+compile: $(TTCN3_MODULES)
+	$(filter-out -Nold -E, $(TTCN3_COMPILER)) $(COMPILER_FLAGS) $^ 
+	touch compile
+
+clean distclean:
+	-rm -f $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) *.log Makefile.bak
+
+dep: $(GENERATED_SOURCES)
+	makedepend $(CPPFLAGS) $(GENERATED_SOURCES)
+
+run: $(TARGET) config.cfg
+	./$^
+
+.NOTPARALLEL:
+
+vpath $(USER_SOURCES) $(ABS_SRC)
+
diff --git a/regression_test/functionSubref/TfunctionSubref.ttcn b/regression_test/functionSubref/TfunctionSubref.ttcn
new file mode 100644
index 000000000..1ff540fdb
--- /dev/null
+++ b/regression_test/functionSubref/TfunctionSubref.ttcn
@@ -0,0 +1,586 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+// This module contains tests for using subreferences (field names and array indexes) on the
+// return values of function calls.
+module TfunctionSubref {
+
+/* * * * Types * * * */
+type record Rec {
+  integer num,
+  charstring str
+}
+
+type record of integer RoI;
+
+type union Uni {
+  integer i,
+  float f,
+  boolean b,
+  bitstring bs,
+  hexstring hs,
+  octetstring os,
+  charstring cs,
+  universal charstring ucs,
+  verdicttype vt,
+  enumerated { Small, Medium, Large } size
+}
+
+type octetstring Arr[4];
+
+type record of Uni RoUni;
+
+type set Complex {
+  Rec rec,
+  RoI roi,
+  RoUni unis
+}
+
+type port PT message {
+  inout integer, octetstring
+}
+with { extension "internal" };
+
+type component CT {
+  timer t;
+  port PT pt;
+}
+
+/* * * * Tested functions * * * */
+function f_rec(in Rec x) return Rec { return x; }
+
+function f_roi(in RoI x) return RoI { return x; }
+
+function f_uni(in Uni x) return Uni { return x; }
+
+function f_arr(in Arr x) return Arr { return x; }
+
+function f_complex(in Complex x) return Complex { return x; }
+
+function f_rec_temp(in template Rec x) return template Rec { return x; }
+
+function f_roi_temp(in template RoI x) return template RoI { return x; }
+
+function f_uni_temp(in template Uni x) return template Uni { return x; }
+
+function f_arr_temp(in template Arr x) return template Arr { return x; }
+
+function f_complex_temp(in template Complex x) return template Complex { return x; }
+
+/* * * * Helper functions for certain test cases * * * */
+function f_test(in charstring p1, in integer p2, in boolean p3, in octetstring p4)
+{
+  if (p1 == c_rec.str) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_rec.str, ", got: ", p1); }
+  if (p2 == c_roi[0]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_roi[0], ", got: ", p2); }
+  if (p3 == c_unis[2].b) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[2].b, ", got: ", p3); }
+  if (p4 == c_arr[1]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_arr[1], ", got: ", p4); }
+}
+
+function f_test_temp(in template charstring p1, in template integer p2,
+  in template boolean p3, in template octetstring p4)
+{
+  if (log2str(p1) == log2str(t_rec.str)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_rec.str, ", got: ", p1); }
+  if (log2str(p2) == log2str(t_roi[0])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_roi[0], ", got: ", p2); }
+  if (log2str(p3) == log2str(t_unis[2].b)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_unis[2].b, ", got: ", p3); }
+  if (log2str(p4) == log2str(t_arr[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr[1], ", got: ", p4); }
+}
+
+external function ef_enc_int(in integer x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" };
+
+external function ef_enc_oct(in octetstring x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" };
+
+altstep as_ct() runs on CT
+{
+  var integer bad_int;
+  var octetstring bad_os;
+  [] pt.receive(integer:?) -> value bad_int {
+    setverdict(fail, "Expected octetstring value instead of ", bad_int);
+  }
+  [] pt.receive(octetstring:?) -> value bad_os {
+    setverdict(fail, "Expected integer value instead of ", bad_os);
+  }
+  [] t.timeout {
+    setverdict(inconc, "Receive timed out");
+  }
+}
+
+/* * * * Constants and templates * * * */
+const Rec c_rec := { num := 3, str := "a0" };
+const RoI c_roi := { 1, 2, 4, 8, 16 };
+const RoUni c_unis := { { i := -6 }, { f := 0.5 }, { b := true }, { bs := '1101'B }, { hs := '3D7'H },
+  { os := '44A1'O }, { cs := "abc" }, { ucs := "víz" }, { vt := error }, { size := Small } };
+const Arr c_arr := { '01'O, 'DE'O, 'ABBA'O, '1234EEFF'O };
+
+template Rec t_rec := { num := (0..100), str := pattern "a*b" };
+template RoI t_roi := { ?, 0, ((-10..-1), (1..10)) };
+template RoUni t_unis := { { i := (0..infinity) }, { f := (-1.0..1.0) }, { b := ? }, { bs := ? length (1..4) },
+  { hs := '12345FF'H }, { os := ('0000'O, 'FFFF'O) }, { cs := ("a".."z") length (5) }, { ucs := "víz" },
+  { vt := ? }, { size := (Small, Large) } };
+template Arr t_arr := { ? length (2), ?, 'FEFEFE'O, 'DEADBEEF'O };
+
+/* * * * Test cases * * * */
+testcase tc_func_subref_var_assign() runs on CT
+{
+  var integer x1 := f_rec(c_rec).num;
+  var integer x2 := f_roi(c_roi)[4];
+  var integer x3 := f_uni(c_unis[0]).i;
+  var charstring str1 := f_rec(c_rec).str;
+  var charstring str2 := f_uni(c_unis[6]).cs;
+  var octetstring os := f_arr(c_arr)[1];
+  if (x1 == c_rec.num) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_rec.num, ", got: ", x1); }
+  if (x2 == c_roi[4]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_roi[4], ", got: ", x2); }
+  if (x3 == c_unis[0].i) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[0].i, ", got: ", x3); }
+  if (str1 == c_rec.str) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_rec.str, ", got: ", str1); }
+  if (str2 == c_unis[6].cs) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[6].cs, ", got: ", str2); }
+  if (os == c_arr[1]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_roi[1], ", got: ", os); }
+}
+
+testcase tc_func_subref_equality() runs on CT
+{
+  if (f_rec(c_rec).str == c_rec.str) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_rec.str, ", got: ", f_rec(c_rec).str); }
+  if (f_roi(c_roi)[2] == c_roi[2]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_roi[2], ", got: ", f_roi(c_roi)[2]); }
+  if (f_uni(c_unis[3]).bs == c_unis[3].bs) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[3].bs, ", got: ", f_uni(c_unis[3]).bs); }
+  if (f_arr(c_arr)[3] == c_arr[3]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_arr[3], ", got: ", f_arr(c_arr)[3]); }
+  if (f_rec(c_rec).num != 100) { setverdict(pass); }
+  else { setverdict(fail, "Expected anything other than 100"); }
+  if (f_roi(c_roi)[1] != 16) { setverdict(pass); }
+  else { setverdict(fail, "Expected anything other than 16"); }
+  if (f_uni(c_unis[8]).vt != pass) { setverdict(pass); }
+  else { setverdict(fail, "Expected anything other than pass"); }
+  if (f_arr(c_arr)[0] != 'DE'O) { setverdict(pass); }
+  else { setverdict(fail, "Expected anything other than 'DE'O"); }
+}
+
+testcase tc_func_subref_bound_and_present() runs on CT
+{
+  if (isbound(f_rec(c_rec).str)) { setverdict(pass); }
+  else { setverdict(fail, "Expected bound record field"); }
+  if (isbound(f_roi(c_roi)[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected bound record of element"); }
+  if (isbound(f_uni(c_unis[2]).b)) { setverdict(pass); }
+  else { setverdict(fail, "Expected bound union alternative"); }
+  if (isbound(f_arr(c_arr)[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected bound array element"); }
+  if (ispresent(f_uni(c_unis[9]).size)) { setverdict(pass); }
+  else { setverdict(fail, "Expected present union alternative"); }
+}
+
+testcase tc_func_subref_math_expr() runs on CT
+{
+  var integer int_expr := -f_rec(c_rec).num + f_roi(c_roi)[3] * f_uni(c_unis[0]).i;
+  var integer int_expr_e := -c_rec.num + c_roi[3] * c_unis[0].i;
+  var float float_expr := 4.0 / f_uni(c_unis[1]).f;
+  var float float_expr_e := 4.0 / c_unis[1].f;
+  if (int_expr == int_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", int_expr_e, ", got: ", int_expr); }
+  if (float_expr == float_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", float_expr_e, ", got: ", float_expr); }
+}
+
+testcase tc_func_subref_bool_expr() runs on CT
+{
+  var boolean bool_expr := (not f_uni(c_unis[2]).b) or (f_rec(c_rec).num > 0 and
+    f_roi(c_roi)[2] < 10 xor f_uni(c_unis[9]).size >= Medium);
+  var boolean bool_expr_e := (not c_unis[2].b) or (c_rec.num > 0 and
+    c_roi[2] < 10 xor c_unis[9].size >= Medium);
+  if (bool_expr == bool_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", bool_expr_e, ", got: ", bool_expr); }
+}
+
+testcase tc_func_subref_binary_expr() runs on CT
+{
+  var bitstring bs_expr := f_uni(c_unis[3]).bs >> f_roi(c_roi)[1];
+  var bitstring bs_expr_e := c_unis[3].bs >> c_roi[1];
+  var hexstring hs_expr := f_uni(c_unis[4]).hs <@ f_rec(c_rec).num;
+  var hexstring hs_expr_e := c_unis[4].hs <@ c_rec.num;
+  var octetstring os_expr := f_uni(c_unis[5]).os and4b (not4b f_arr(c_arr)[2]);
+  var octetstring os_expr_e := c_unis[5].os and4b (not4b c_arr[2]);
+  if (bs_expr == bs_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", bs_expr_e, ", got: ", bs_expr); }
+  if (hs_expr == hs_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", hs_expr_e, ", got: ", hs_expr); }
+  if (os_expr == os_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", os_expr_e, ", got: ", os_expr); }
+}
+
+testcase tc_func_subref_str_concat() runs on CT
+{
+  var bitstring bs_expr := f_uni(c_unis[3]).bs & f_uni(c_unis[3]).bs;
+  var bitstring bs_expr_e := c_unis[3].bs & c_unis[3].bs;
+  var hexstring hs_expr := 'FF'H & f_uni(c_unis[4]).hs & 'FF'H;
+  var hexstring hs_expr_e := 'FF'H & c_unis[4].hs & 'FF'H;
+  var octetstring os_expr := f_uni(c_unis[5]).os & f_arr(c_arr)[3];
+  var octetstring os_expr_e := c_unis[5].os & c_arr[3];
+  var charstring cs_expr := f_uni(c_unis[6]).cs & " " & f_rec(c_rec).str;
+  var charstring cs_expr_e := c_unis[6].cs & " " & c_rec.str;
+  var universal charstring ucs_expr := "x" & f_uni(c_unis[7]).ucs & "x";
+  var universal charstring ucs_expr_e := "x" & c_unis[7].ucs & "x";
+  if (bs_expr == bs_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", bs_expr_e, ", got: ", bs_expr); }
+  if (hs_expr == hs_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", hs_expr_e, ", got: ", hs_expr); }
+  if (os_expr == os_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", os_expr_e, ", got: ", os_expr); }
+  if (cs_expr == cs_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", cs_expr_e, ", got: ", cs_expr); }
+  if (ucs_expr == ucs_expr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", ucs_expr_e, ", got: ", ucs_expr); }
+}
+
+testcase tc_func_subref_str_length() runs on CT
+{
+  if (lengthof(f_uni(c_unis[3]).bs) == lengthof(c_unis[3].bs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_unis[3].bs), ", got: ", lengthof(f_uni(c_unis[3]).bs)); }
+  if (lengthof(f_uni(c_unis[4]).hs) == lengthof(c_unis[4].hs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_unis[4].hs), ", got: ", lengthof(f_uni(c_unis[4]).hs)); }
+  if (lengthof(f_uni(c_unis[5]).os) == lengthof(c_unis[5].os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_unis[5].os), ", got: ", lengthof(f_uni(c_unis[5]).os)); }
+  if (lengthof(f_arr(c_arr)[1]) == lengthof(c_arr[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_arr[1]), ", got: ", lengthof(f_arr(c_arr)[1])); }
+  if (lengthof(f_uni(c_unis[6]).cs) == lengthof(c_unis[6].cs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_unis[6].cs), ", got: ", lengthof(f_uni(c_unis[6]).cs)); }
+  if (lengthof(f_rec(c_rec).str) == lengthof(c_rec.str)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_rec.str), ", got: ", lengthof(f_rec(c_rec).str)); }
+  if (lengthof(f_uni(c_unis[7]).ucs) == lengthof(c_unis[7].ucs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", lengthof(c_unis[7].ucs), ", got: ", lengthof(f_uni(c_unis[7]).ucs)); }
+}
+
+testcase tc_func_subref_str_index() runs on CT
+{
+  if (f_uni(c_unis[3]).bs[2] == c_unis[3].bs[2]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[3].bs[2], ", got: ", f_uni(c_unis[3]).bs[2]); }
+  if (f_uni(c_unis[4]).hs[2] == c_unis[4].hs[2]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[4].hs[2], ", got: ", f_uni(c_unis[4]).hs[2]); }
+  if (f_uni(c_unis[5]).os[1] == c_unis[5].os[1]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[5].os[1], ", got: ", f_uni(c_unis[5]).os[1]); }
+  if (f_arr(c_arr)[2][1] == c_arr[2][1]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_arr[2][1], ", got: ", f_arr(c_arr)[2][1]); }
+  if (f_uni(c_unis[6]).cs[2] == c_unis[6].cs[2]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[6].cs[2], ", got: ", f_uni(c_unis[6]).cs[2]); }
+  if (f_rec(c_rec).str[0] == c_rec.str[0]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_rec.str[0], ", got: ", f_rec(c_rec).str[0]); }
+  if (f_uni(c_unis[7]).ucs[2] == c_unis[7].ucs[2]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[7].ucs[2], ", got: ", f_uni(c_unis[7]).ucs[2]); }
+}
+
+testcase tc_func_subref_log() runs on CT
+{
+  var charstring sep := " | ";
+  var charstring log_str := log2str(f_rec(c_rec).str, sep, f_roi(c_roi)[3], sep, f_uni(c_unis[9]).size,
+    sep, f_arr(c_arr)[0]);
+  var charstring log_str_e := log2str(c_rec.str, sep, c_roi[3], sep, c_unis[9].size, sep, c_arr[0]);
+  if (log_str == log_str_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", log_str_e, ", got: ", log_str); }
+  log(f_rec(c_rec).str,f_roi(c_roi)[3], f_uni(c_unis[9]).size, f_arr(c_arr)[0]);
+}
+
+testcase tc_func_subref_structure() runs on CT
+{
+  var Rec rec1 := { num := f_rec(c_rec).num, str := f_rec(c_rec).str }; // == c_rec
+  var Rec rec2 := { f_roi(c_roi)[1], f_uni(c_unis[6]).cs };
+  var Rec rec2_e := { c_roi[1], c_unis[6].cs };
+  var RoI roi := { f_uni(c_unis[0]).i, 91, f_roi(c_roi)[3], 0 };
+  var RoI roi_e := { c_unis[0].i, 91, c_roi[3], 0 };
+  var Uni uni := { vt := f_uni(c_unis[8]).vt }; // == c_unis[8]
+  var Arr arr := { [0] := f_arr(c_arr)[0], [1] := f_arr(c_arr)[1],
+    [2] := f_arr(c_arr)[2], [3] := f_arr(c_arr)[3] }; // == c_arr
+  if (rec1 == c_rec) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_rec, ", got: ", rec1); }
+  if (rec2 == rec2_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", rec2_e, ", got: ", rec2); }
+  if (roi == roi_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", roi_e, ", got: ", roi); }
+  if (uni == c_unis[8]) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_unis[8], ", got: ", uni); }
+  if (arr == c_arr) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_arr, ", got: ", arr); }
+}
+
+testcase tc_func_subref_convert() runs on CT
+{
+  var integer int_res := hex2int(f_uni(c_unis[4]).hs) + oct2int(f_arr(c_arr)[3]);
+  var integer int_res_e := hex2int(c_unis[4].hs) + oct2int(c_arr[3]);
+  var Arr arr_res := { int2oct(f_roi(c_roi)[3], 2), str2oct(f_rec(c_rec).str),
+    char2oct(f_uni(c_unis[6]).cs), unichar2oct(f_uni(c_unis[7]).ucs, "UTF-8") };
+  var Arr arr_res_e := { int2oct(c_roi[3], 2), str2oct(c_rec.str),
+    char2oct(c_unis[6].cs), unichar2oct(c_unis[7].ucs, "UTF-8") };
+  if (int_res == int_res_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", int_res_e, ", got: ", int_res); }
+  if (arr_res == arr_res_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", arr_res_e, ", got: ", arr_res); }
+}
+
+testcase tc_func_subref_parameter() runs on CT
+{
+  f_test(f_rec(c_rec).str, f_roi(c_roi)[0], f_uni(c_unis[2]).b, f_arr(c_arr)[1]);
+  var Arr enc_arr := { ef_enc_int(f_rec(c_rec).num), ef_enc_int(f_roi(c_roi)[2]),
+    ef_enc_oct(f_uni(c_unis[5]).os), ef_enc_oct(f_arr(c_arr)[3]) };
+  var Arr enc_arr_e := { ef_enc_int(c_rec.num), ef_enc_int(c_roi[2]),
+    ef_enc_oct(c_unis[5].os), ef_enc_oct(c_arr[3]) };
+  if (enc_arr == enc_arr_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", enc_arr_e, ", got: ", enc_arr); }
+}
+
+testcase tc_func_subref_send() runs on CT
+{
+  connect(mtc:pt, mtc:pt);
+  pt.send(f_rec(c_rec).num);
+  pt.send(f_roi(c_roi)[1]);
+  pt.send(f_uni(c_unis[0]).i);
+  pt.send(f_arr(c_arr)[2]);
+  var default def := activate(as_ct());
+  var integer bad_int;
+  var octetstring bad_os;
+  t.start(1.0);
+  alt {
+    [] pt.receive(c_rec.num) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", c_rec.num, ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(c_roi[1]) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", c_roi[1], ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(c_unis[0].i) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", c_unis[0].i, ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(c_arr[2]) { setverdict(pass); }
+    [] pt.receive(octetstring:?) -> value bad_os 
+      { setverdict(fail, "Expected: ", c_arr[2], ", got: ", bad_os); }
+  }
+  deactivate(def);
+}
+
+testcase tc_func_subref_complex() runs on CT
+{
+  var Complex x := { rec := c_rec, roi := c_roi, unis := c_unis };
+  var RoI roi_res := { f_complex(x).rec.num, 3 * f_complex(x).roi[2],
+    float2int(f_complex(x).unis[1].f) - lengthof(f_complex(x).roi) };
+  var RoI roi_res_e := { x.rec.num, 3 * x.roi[2], 
+    float2int(x.unis[1].f) - lengthof(x.roi) };
+  if (roi_res == roi_res_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", roi_res_e, ", got: ", roi_res); }
+  if (f_complex(x).unis[9].size == x.unis[9].size) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", x.unis[9].size, ", got: ", f_complex(x).unis[9].size); }
+  if (isbound(f_complex(x).rec)) { setverdict(pass); }
+  else { setverdict(fail, "Expected bound record field"); }
+}
+
+testcase tc_func_subref_ttcn2string() runs on CT
+{
+  var charstring str1 := ttcn2string(f_rec(c_rec).str);
+  var charstring str1_e := ttcn2string(c_rec.str);
+  var charstring str2 := ttcn2string(f_roi(c_roi)[1]);
+  var charstring str2_e := ttcn2string(c_roi[1]);
+  var charstring str3 := ttcn2string(f_uni(c_unis[7]).ucs);
+  var charstring str3_e := ttcn2string(c_unis[7].ucs);
+  var charstring str4 := ttcn2string(f_arr(c_arr)[2]);
+  var charstring str4_e := ttcn2string(c_arr[2]);
+  if (str1 == str1_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", str1_e, ", got: ", str1); }
+  if (str2 == str2_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", str2_e, ", got: ", str2); }
+  if (str3 == str3_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", str3_e, ", got: ", str3); }
+  if (str4 == str4_e) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", str4_e, ", got: ", str4); }
+}
+
+testcase tc_func_subref_temp_var_assign() runs on CT
+{
+  var template charstring vt1 := f_rec_temp(t_rec).str;
+  var template integer vt2 := f_roi_temp(t_roi)[0];
+  var template verdicttype vt3 := f_uni_temp(t_unis[8]).vt;
+  var template octetstring vt4 := f_arr_temp(t_arr)[3];
+  if (log2str(vt1) == log2str(t_rec.str)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_rec.str, ", got: ", vt1); }
+  if (log2str(vt2) == log2str(t_roi[0])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_roi[0], ", got: ", vt2); }
+  if (log2str(vt3) == log2str(t_unis[8].vt)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_unis[8].vt, ", got: ", vt3); }
+  if (log2str(vt4) == log2str(t_arr[3])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr[3], ", got: ", vt4); }
+}
+
+testcase tc_func_subref_temp_match() runs on CT
+{
+  var charstring v_good1 := "affx_Y1b";
+  var integer v_good2 := -19;
+  var float v_good3 := 0.6;
+  var octetstring v_good4 := '12EF'O;
+  var integer v_bad1 := 331;
+  var integer v_bad2 := -20;
+  var bitstring v_bad3 := '110111'B;
+  var octetstring v_bad4 := 'ABCDEF'O;
+  if (match(v_good1, f_rec_temp(t_rec).str)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good1, " to match ", f_rec_temp(t_rec).str); }
+  if (match(v_good2, f_roi_temp(t_roi)[0])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good2, " to match ", f_roi_temp(t_roi)[0]); }
+  if (match(v_good3, f_uni_temp(t_unis[1]).f)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good3, " to match ", f_uni_temp(t_unis[1]).f); }
+  if (match(v_good4, f_arr_temp(t_arr)[0])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good4, " to match ", f_arr_temp(t_arr)[0]); }
+  if (not match(v_bad1, f_rec_temp(t_rec).num)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad1, " not to match ", f_rec_temp(t_rec).num); }
+  if (not match(v_bad2, f_roi_temp(t_roi)[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad2, " not to match ", f_roi_temp(t_roi)[2]); }
+  if (not match(v_bad3, f_uni_temp(t_unis[3]).bs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad3, " not to match ", f_uni_temp(t_unis[3]).bs); }
+  if (not match(v_bad4, f_arr_temp(t_arr)[3])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad4, " not to match ", f_arr_temp(t_arr)[3]); }
+}
+
+testcase tc_func_subref_temp_value() runs on CT
+{
+  if (not isvalue(f_rec_temp(t_rec).num)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", f_rec_temp(t_rec).num, " to not be a value."); }
+  if (isvalue(f_roi_temp(t_roi)[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", f_roi_temp(t_roi)[1], " to be a value."); }
+  if (isvalue(f_uni_temp(t_unis[4]).hs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", f_uni_temp(t_unis[4]).hs, " to be a value."); }
+  if (isvalue(f_arr_temp(t_arr)[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", f_arr_temp(t_arr)[2], " to be a value."); }
+  if (valueof(f_roi_temp(t_roi)[1]) == valueof(t_roi[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_roi[1], ", got: ", f_roi_temp(t_roi)[1]); }
+  if (valueof(f_uni_temp(t_unis[7]).ucs) == valueof(t_unis[7].ucs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_unis[7].ucs, ", got: ", f_uni_temp(t_unis[7]).ucs); }
+  if (valueof(f_arr_temp(t_arr)[3]) == valueof(t_arr[3])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr[3], ", got: ", f_arr_temp(t_arr)[3]); }
+}
+
+testcase tc_func_subref_temp_structure() runs on CT
+{
+  var template Rec rec1 := { num := f_rec_temp(t_rec).num, str := f_rec_temp(t_rec).str }; // == t_rec
+  var template Rec rec2 := { f_roi_temp(t_roi)[1], f_uni_temp(t_unis[6]).cs };
+  var template Rec rec2_e := { t_roi[1], t_unis[6].cs };
+  var template RoI roi := { f_uni_temp(t_unis[0]).i, 91, f_roi_temp(t_roi)[2], (0..infinity) };
+  var template RoI roi_e := { t_unis[0].i, 91, t_roi[2], (0..infinity) };
+  var template Uni uni := { vt := f_uni_temp(t_unis[8]).vt }; // == t_unis[8]
+  var template Arr arr := { [3] := f_arr_temp(t_arr)[3], [2] := f_arr_temp(t_arr)[2],
+    [1] := f_arr_temp(t_arr)[1], [0] := f_arr_temp(t_arr)[0] }; // == t_arr
+  if (log2str(rec1) == log2str(t_rec)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_rec, ", got: ", rec1); }
+  if (log2str(rec2) == log2str(rec2_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", rec2_e, ", got: ", rec2); }
+  if (log2str(roi) == log2str(roi_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", roi_e, ", got: ", roi); }
+  if (log2str(uni) == log2str(t_unis[8])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_unis[8], ", got: ", uni); }
+  if (log2str(arr) == log2str(t_arr)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr, ", got: ", arr); }
+}
+
+testcase tc_func_subref_temp_parameter() runs on CT
+{
+  f_test_temp(f_rec_temp(t_rec).str, f_roi_temp(t_roi)[0],
+    f_uni_temp(t_unis[2]).b, f_arr_temp(t_arr)[1]);
+}
+
+testcase tc_func_subref_temp_send_receive() runs on CT
+{
+  connect(mtc:pt, mtc:pt);
+  pt.send(17);
+  pt.send(f_roi_temp(t_roi)[1]);
+  pt.send(123456789101112);
+  pt.send(f_arr_temp(t_arr)[2]);
+  var default def := activate(as_ct());
+  var integer bad_int;
+  var octetstring bad_os;
+  t.start(1.0);
+  alt {
+    [] pt.receive(f_rec_temp(t_rec).num) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", f_rec_temp(t_rec).num, ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(f_roi_temp(t_roi)[1]) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", f_roi_temp(t_roi)[1], ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(f_uni_temp(t_unis[0]).i) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", f_uni_temp(t_unis[0]).i, ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(f_arr_temp(t_arr)[2]) { setverdict(pass); }
+    [] pt.receive(octetstring:?) -> value bad_os 
+      { setverdict(fail, "Expected: ", f_arr_temp(t_arr)[2], ", got: ", bad_os); }
+  }
+  deactivate(def);
+}
+
+testcase tc_func_subref_temp_complex() runs on CT
+{
+  var template Complex x := { rec := t_rec, roi := t_roi, unis := t_unis };
+  var template RoI roi_res := { f_complex_temp(x).rec.num, f_complex_temp(x).roi[2],
+    f_complex_temp(x).unis[0].i };
+  var template RoI roi_res_e := { x.rec.num, x.roi[2], x.unis[0].i };
+  if (log2str(roi_res) == log2str(roi_res_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", roi_res_e, ", got: ", roi_res); }
+  if (match(valueof(x.unis[7].ucs), f_complex_temp(x).unis[7].ucs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", x.unis[7].ucs, " to match ", f_complex_temp(x).unis[7].ucs); }
+  if (not isvalue(f_complex_temp(x).rec)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", f_complex_temp(x).rec, " not to be a value"); }
+}
+
+/* * * * Control part * * * */
+control {
+  // test cases for functions returning values
+  execute(tc_func_subref_var_assign());
+  execute(tc_func_subref_equality());
+  execute(tc_func_subref_bound_and_present());
+  execute(tc_func_subref_math_expr());
+  execute(tc_func_subref_bool_expr());
+  execute(tc_func_subref_binary_expr());
+  execute(tc_func_subref_str_concat());
+  execute(tc_func_subref_str_length());
+  execute(tc_func_subref_str_index());
+  execute(tc_func_subref_log());
+  execute(tc_func_subref_structure());
+  execute(tc_func_subref_convert());
+  execute(tc_func_subref_parameter());
+  execute(tc_func_subref_send());
+  execute(tc_func_subref_complex());
+  execute(tc_func_subref_ttcn2string());
+
+  // test cases for functions returning templates
+  execute(tc_func_subref_temp_var_assign());
+  execute(tc_func_subref_temp_match());
+  execute(tc_func_subref_temp_value());
+  execute(tc_func_subref_temp_structure());
+  execute(tc_func_subref_temp_parameter());
+  execute(tc_func_subref_temp_send_receive());
+  execute(tc_func_subref_temp_complex());
+}
+
+}
diff --git a/regression_test/functionSubref/TpardTemplateSubref.ttcn b/regression_test/functionSubref/TpardTemplateSubref.ttcn
new file mode 100644
index 000000000..0c9a4d6a1
--- /dev/null
+++ b/regression_test/functionSubref/TpardTemplateSubref.ttcn
@@ -0,0 +1,205 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+// This module contains tests for using subreferences (field names and array indexes) on 
+// parameterized templates.
+module TpardTemplateSubref {
+
+import from TfunctionSubref all;
+
+/* * * * Parameterized templates * * * */
+template Rec t_pard_rec(in template integer p_num, in template charstring p_str) := 
+  { num := p_num, str := p_str };
+
+template RoI t_pard_roi(in integer p_init, in integer p_mul) :=
+  { p_init, p_init * p_mul, p_init * p_mul * p_mul };
+
+template Uni t_pard_uni(in template octetstring p_val) :=
+  { os := p_val };
+
+template Arr t_pard_arr(in template Arr p_val) :=
+  { p_val[3], p_val[2], p_val[1], p_val[0] };
+
+template Complex t_pard_complex(in template Rec p_rec, in template RoI p_roi) :=
+  { rec := p_rec, roi := p_roi, unis := { { os := t_os }, { i := c_init } } };
+
+/* * * * Constants and templates * * * */
+template integer t_int := 10;
+template charstring t_cs := ? length(1..4);
+const integer c_init := 6;
+const integer c_mul := 2;
+template octetstring t_os := ('00'O, '11'O, '22'O, '33'O);
+
+/* * * * Helper function * * * */
+function f_test_pard_temp(in template charstring p1, in template integer p2,
+  in template octetstring p3, in template octetstring p4)
+{
+  if (log2str(p1) == log2str(t_cs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_cs, ", got: ", p1); }
+  if (log2str(p2) == log2str(c_init)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_init, ", got: ", p2); }
+  if (log2str(p3) == log2str(t_os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_os, ", got: ", p3); }
+  if (log2str(p4) == log2str(t_arr[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr[1], ", got: ", p4); }
+}
+
+/* * * * Test cases * * * */
+testcase tc_pard_temp_var_assign() runs on CT
+{
+  var template charstring vt1 := t_pard_rec(t_int, t_cs).str;
+  var template integer vt2 := t_pard_roi(c_init, c_mul)[0];
+  var template octetstring vt3 := t_pard_uni(t_os).os;
+  var template octetstring vt4 := t_pard_arr(t_arr)[3];
+  if (log2str(vt1) == log2str(t_cs)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_cs, ", got: ", vt1); }
+  if (log2str(vt2) == log2str(c_init)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_init, ", got: ", vt2); }
+  if (log2str(vt3) == log2str(t_os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_os, ", got: ", vt3); }
+  if (log2str(vt4) == log2str(t_arr[0])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr[0], ", got: ", vt4); }
+}
+
+testcase tc_pard_temp_match() runs on CT
+{
+  var charstring v_good1 := "rT.8";
+  var integer v_good2 := 12;
+  var octetstring v_good3 := '22'O;
+  var octetstring v_good4 := '12EF'O;
+  var integer v_bad1 := 331;
+  var integer v_bad2 := 7;
+  var octetstring v_bad3 := '44'O;
+  var octetstring v_bad4 := 'ABCDEF'O;
+  if (match(v_good1, t_pard_rec(t_int, t_cs).str)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good1, " to match ", t_pard_rec(t_int, t_cs).str); }
+  if (match(v_good2, t_pard_roi(c_init, c_mul)[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good2, " to match ", t_pard_roi(c_init, c_mul)[1]); }
+  if (match(v_good3, t_pard_uni(t_os).os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good3, " to match ", t_pard_uni(t_os).os); }
+  if (match(v_good4, t_pard_arr(t_arr)[3])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_good4, " to match ", t_pard_arr(t_arr)[3]); }
+  if (not match(v_bad1, t_pard_rec(t_int, t_cs).num)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad1, " not to match ", t_pard_rec(t_int, t_cs).num); }
+  if (not match(v_bad2, t_pard_roi(c_init, c_mul)[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad2, " not to match ", t_pard_roi(c_init, c_mul)[2]); }
+  if (not match(v_bad3, t_pard_uni(t_os).os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad3, " not to match ", t_pard_uni(t_os).os); }
+  if (not match(v_bad4, t_pard_arr(t_arr)[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", v_bad4, " not to match ", t_pard_arr(t_arr)[1]); }
+}
+
+testcase tc_pard_temp_value() runs on CT
+{
+  if (isvalue(t_pard_rec(t_int, t_cs).num)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", t_pard_rec(t_int, t_cs).num, " to be a value."); }
+  if (isvalue(t_pard_roi(c_init, c_mul)[1])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", t_pard_roi(c_init, c_mul)[1], " to be a value."); }
+  if (not isvalue(t_pard_uni(t_os).os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", t_pard_uni(t_os).os, " to not be a value."); }
+  if (isvalue(t_pard_arr(t_arr)[0])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", t_pard_arr(t_arr)[0], " to be a value."); }
+  if (valueof(t_pard_rec(t_int, t_cs).num) == valueof(t_int)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_int, ", got: ", t_pard_rec(t_int, t_cs).num); }
+  if (valueof(t_pard_roi(c_init, c_mul)[0]) == c_init) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", c_init, ", got: ", t_pard_roi(c_init, c_mul)[0]); }
+  if (valueof(t_pard_arr(t_arr)[1]) == valueof(t_arr[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr[2], ", got: ", t_pard_arr(t_arr)[1]); }
+}
+
+testcase tc_pard_temp_structure() runs on CT
+{
+  var template Rec rec1 := { num := t_pard_rec(t_int, t_cs).num, str := t_pard_rec(t_int, t_cs).str };
+  var template Rec rec1_e := { num := t_int, str := t_cs };
+  var template Rec rec2 := { t_pard_roi(c_init, c_mul)[1], "abc" };
+  var template Rec rec2_e := { c_init * c_mul, "abc" };
+  var template RoI roi := { t_pard_roi(c_init, c_mul)[2], (0..infinity) };
+  var template RoI roi_e := { c_init * c_mul * c_mul, (0..infinity) };
+  var template Uni uni := { os := t_pard_uni(t_os).os };
+  var template Uni uni_e := { os := t_os };
+  var template Arr arr := { [0] := t_pard_arr(t_arr)[3], [1] := t_pard_arr(t_arr)[2],
+    [2] := t_pard_arr(t_arr)[1], [3] := t_pard_arr(t_arr)[0] }; // == t_arr
+  if (log2str(rec1) == log2str(rec1_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", rec1_e, ", got: ", rec1); }
+  if (log2str(rec2) == log2str(rec2_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", rec2_e, ", got: ", rec2); }
+  if (log2str(roi) == log2str(roi_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", roi_e, ", got: ", roi); }
+  if (log2str(uni) == log2str(uni_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", uni_e, ", got: ", uni); }
+  if (log2str(arr) == log2str(t_arr)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", t_arr, ", got: ", arr); }
+}
+
+testcase tc_pard_temp_parameter() runs on CT
+{
+  f_test_pard_temp(t_pard_rec(t_int, t_cs).str, t_pard_roi(c_init, c_mul)[0],
+    t_pard_uni(t_os).os, t_pard_arr(t_arr)[2]);
+}
+
+testcase tc_pard_temp_send_receive() runs on CT
+{
+  connect(mtc:pt, mtc:pt);
+  pt.send(t_pard_rec(t_int, t_cs).num);
+  pt.send(t_pard_roi(c_init, c_mul)[1]);
+  pt.send('11'O);
+  pt.send(t_pard_arr(t_arr)[0]);
+  var default def := activate(as_ct());
+  var integer bad_int;
+  var octetstring bad_os;
+  t.start(1.0);
+  alt {
+    [] pt.receive(t_pard_rec(t_int, t_cs).num) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", t_pard_rec(t_int, t_cs).num, ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(t_pard_roi(c_init, c_mul)[1]) { setverdict(pass); }
+    [] pt.receive(integer:?) -> value bad_int 
+      { setverdict(fail, "Expected: ", t_pard_roi(c_init, c_mul)[1], ", got: ", bad_int); }
+  }
+  alt {
+    [] pt.receive(t_pard_uni(t_os).os) { setverdict(pass); }
+    [] pt.receive(octetstring:?) -> value bad_os 
+      { setverdict(fail, "Expected: ", t_pard_uni(t_os).os, ", got: ", bad_os); }
+  }
+  alt {
+    [] pt.receive(t_pard_arr(t_arr)[0]) { setverdict(pass); }
+    [] pt.receive(octetstring:?) -> value bad_os 
+      { setverdict(fail, "Expected: ", t_pard_arr(t_arr)[0], ", got: ", bad_os); }
+  }
+  deactivate(def);
+}
+
+testcase tc_pard_temp_complex() runs on CT
+{
+  var template Rec rec := { t_int, t_cs };
+  var template RoI roi := { 1, 2, 3 };
+  var template RoI roi_res := { t_pard_complex(rec, roi).rec.num, t_pard_complex(rec, roi).roi[2],
+    t_pard_complex(rec, roi).unis[1].i };
+  var template RoI roi_res_e := { rec.num, roi[2], c_init };
+  if (log2str(roi_res) == log2str(roi_res_e)) { setverdict(pass); }
+  else { setverdict(fail, "Expected: ", roi_res_e, ", got: ", roi_res); }
+  if (match('00'O, t_pard_complex(rec, {}).unis[0].os)) { setverdict(pass); }
+  else { setverdict(fail, "Expected '00'O to match ", t_pard_complex(rec, {}).unis[0].os); }
+  if (isvalue(t_pard_complex(t_pard_rec(t_int, t_cs), t_pard_roi(c_init, c_mul)).roi[2])) { setverdict(pass); }
+  else { setverdict(fail, "Expected ", t_pard_complex(t_pard_rec(t_int, t_cs), t_pard_roi(c_init, c_mul)).roi[2], " to be a value"); }
+}
+
+/* * * * Control part * * * */
+control {
+  execute(tc_pard_temp_var_assign());
+  execute(tc_pard_temp_match());
+  execute(tc_pard_temp_value());
+  execute(tc_pard_temp_structure());
+  execute(tc_pard_temp_parameter());
+  execute(tc_pard_temp_send_receive());
+  execute(tc_pard_temp_complex());
+}
+
+}
diff --git a/regression_test/functionSubref/config.cfg b/regression_test/functionSubref/config.cfg
new file mode 100644
index 000000000..ee68ab69a
--- /dev/null
+++ b/regression_test/functionSubref/config.cfg
@@ -0,0 +1,15 @@
+###############################################################################
+# 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
+###############################################################################
+[MODULE_PARAMETERS]
+[LOGGING]
+Logfile := "functionSubref.log"
+FileMask := LOG_ALL
+ConsoleMask := TTCN_WARNING | TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS
+[EXECUTE]
+TfunctionSubref
+TpardTemplateSubref
diff --git a/regression_test/hexstrOper/Makefile b/regression_test/hexstrOper/Makefile
index 8d800150a..bfa16ab56 100644
--- a/regression_test/hexstrOper/Makefile
+++ b/regression_test/hexstrOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/hexstrOper/ThexstrOper.ttcn b/regression_test/hexstrOper/ThexstrOper.ttcn
index 9503f6076..8f882fe69 100644
--- a/regression_test/hexstrOper/ThexstrOper.ttcn
+++ b/regression_test/hexstrOper/ThexstrOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/hexstrOper/config.cfg b/regression_test/hexstrOper/config.cfg
index 2bd98ead0..2634ae405 100644
--- a/regression_test/hexstrOper/config.cfg
+++ b/regression_test/hexstrOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/iconv/Makefile b/regression_test/iconv/Makefile
index 7efb02c6c..212309ce3 100644
--- a/regression_test/iconv/Makefile
+++ b/regression_test/iconv/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/iconv/config.cfg b/regression_test/iconv/config.cfg
index 746e0326f..1a18090c0 100644
--- a/regression_test/iconv/config.cfg
+++ b/regression_test/iconv/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/iconv/converter.ttcn b/regression_test/iconv/converter.ttcn
index b5f6d9d75..4e8ccc458 100644
--- a/regression_test/iconv/converter.ttcn
+++ b/regression_test/iconv/converter.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/iconv/convertest.ttcn b/regression_test/iconv/convertest.ttcn
index 7bc3328fd..dcb4fa2f3 100644
--- a/regression_test/iconv/convertest.ttcn
+++ b/regression_test/iconv/convertest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -69,9 +69,8 @@ testcase tc_o2u() runs on C
     errno := o2u("US-ASCII", input, output);
     if (errno != 0) { setverdict(fail, "conversion failed: ", errno); }
 
-    log(output);
     if (output == "31415") {setverdict(pass);}
-    else {setverdict(fail);}
+    else {setverdict(fail, "output is ", output);}
     {
         var universal charstring rez;
         errno := o2u("UTF-16LE", nagy_utf16le, rez);
@@ -130,10 +129,9 @@ testcase tc_u2o() runs on C
 
     errno := u2o("UTF-8", input, output);
     if (errno != 0) { setverdict(fail, "conversion failed: ", errno); }
-    log(output);
 
     if (output == '323731383238'O) {setverdict(pass);}
-    else {setverdict(fail);}
+    else {setverdict(fail, "output is ", output);}
 
         /*
         var octetstring rez := u2o("UTF-16LE", nagy_arvizturo);
diff --git a/regression_test/iconv/iconver.cc b/regression_test/iconv/iconver.cc
index e53b818c0..689318d7f 100644
--- a/regression_test/iconv/iconver.cc
+++ b/regression_test/iconv/iconver.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/implicitMsgEncoding/Makefile b/regression_test/implicitMsgEncoding/Makefile
index cd5abe455..aaea797fd 100644
--- a/regression_test/implicitMsgEncoding/Makefile
+++ b/regression_test/implicitMsgEncoding/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/implicitMsgEncoding/PCOType.cc b/regression_test/implicitMsgEncoding/PCOType.cc
index 547dc68ea..75619d3a7 100644
--- a/regression_test/implicitMsgEncoding/PCOType.cc
+++ b/regression_test/implicitMsgEncoding/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/implicitMsgEncoding/PCOType.hh b/regression_test/implicitMsgEncoding/PCOType.hh
index 8fb4c1b74..d80d5f4d1 100644
--- a/regression_test/implicitMsgEncoding/PCOType.hh
+++ b/regression_test/implicitMsgEncoding/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/implicitMsgEncoding/TimplicitEnc.ttcn b/regression_test/implicitMsgEncoding/TimplicitEnc.ttcn
index 85efa8250..9ddb8a9e2 100644
--- a/regression_test/implicitMsgEncoding/TimplicitEnc.ttcn
+++ b/regression_test/implicitMsgEncoding/TimplicitEnc.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/implicitMsgEncoding/config.cfg b/regression_test/implicitMsgEncoding/config.cfg
index 7417a917a..120207417 100644
--- a/regression_test/implicitMsgEncoding/config.cfg
+++ b/regression_test/implicitMsgEncoding/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/implicitOmit/Makefile b/regression_test/implicitOmit/Makefile
index 4412748ba..a892b09fd 100644
--- a/regression_test/implicitOmit/Makefile
+++ b/regression_test/implicitOmit/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/implicitOmit/config.cfg b/regression_test/implicitOmit/config.cfg
index 294dda61f..d86e3a182 100644
--- a/regression_test/implicitOmit/config.cfg
+++ b/regression_test/implicitOmit/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/implicitOmit/io.ttcn b/regression_test/implicitOmit/io.ttcn
index e58a0616f..f326c6d11 100644
--- a/regression_test/implicitOmit/io.ttcn
+++ b/regression_test/implicitOmit/io.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/intOper/Makefile b/regression_test/intOper/Makefile
index 79ff67ddc..0f89c286d 100644
--- a/regression_test/intOper/Makefile
+++ b/regression_test/intOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/intOper/PCOType.cc b/regression_test/intOper/PCOType.cc
index 21692f0cc..19febd853 100644
--- a/regression_test/intOper/PCOType.cc
+++ b/regression_test/intOper/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/intOper/PCOType.hh b/regression_test/intOper/PCOType.hh
index b65cb74bd..bbfa05fdc 100644
--- a/regression_test/intOper/PCOType.hh
+++ b/regression_test/intOper/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/intOper/TintOper.ttcn b/regression_test/intOper/TintOper.ttcn
index 263b0ec75..0a212fedf 100644
--- a/regression_test/intOper/TintOper.ttcn
+++ b/regression_test/intOper/TintOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -606,68 +606,68 @@ testcase bigIntLogicalOps() runs on bigIntOper_comptype
   {
   // Only Cond2/Cond4/Cond6/Cond7/Cond10/Cond11/Cond15/Cond17/Cond18 should
   // stay.  Test for conditional operators and CP on big integers.
-  if (12345678910111213141516 < 0)  { log("Cond1"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 > 0)  { log("Cond2"); setverdict(pass) }
-  if (12345678910111213141516 == 0) { log("Cond3"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 != 0) { log("Cond4"); setverdict(pass) }
-  if (12345678910111213141516 <= 0) { log("Cond5"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 >= 0) { log("Cond6"); setverdict(pass) }
-  if (0 < 12345678910111213141516)  { log("Cond7"); setverdict(pass) }
-  if (0 > 12345678910111213141516)  { log("Cond8"); setverdict(fail) }  // Removed by CP.
-  if (0 == 12345678910111213141516) { log("Cond9"); setverdict(fail) }  // Removed by CP.
-  if (0 != 12345678910111213141516) { log("Cond10"); setverdict(pass) }
-  if (0 <= 12345678910111213141516) { log("Cond11"); setverdict(pass) }
-  if (0 >= 12345678910111213141516) { log("Cond12"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 < 12345678910111213141516)  { log("Cond13"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 > 12345678910111213141516)  { log("Cond14"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 == 12345678910111213141516) { log("Cond15"); setverdict(pass) }
-  if (12345678910111213141516 != 12345678910111213141516) { log("Cond16"); setverdict(fail) }  // Removed by CP.
-  if (12345678910111213141516 <= 12345678910111213141516) { log("Cond17"); setverdict(pass) }
-  if (12345678910111213141516 >= 12345678910111213141516) { log("Cond18"); setverdict(pass) }
+  if (12345678910111213141516 < 0)  { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 > 0)  { setverdict(pass) }
+  if (12345678910111213141516 == 0) { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 != 0) { setverdict(pass) }
+  if (12345678910111213141516 <= 0) { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 >= 0) { setverdict(pass) }
+  if (0 < 12345678910111213141516)  { setverdict(pass) }
+  if (0 > 12345678910111213141516)  { setverdict(fail) }  // Removed by CP.
+  if (0 == 12345678910111213141516) { setverdict(fail) }  // Removed by CP.
+  if (0 != 12345678910111213141516) { setverdict(pass) }
+  if (0 <= 12345678910111213141516) { setverdict(pass) }
+  if (0 >= 12345678910111213141516) { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 < 12345678910111213141516)  { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 > 12345678910111213141516)  { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 == 12345678910111213141516) { setverdict(pass) }
+  if (12345678910111213141516 != 12345678910111213141516) { setverdict(fail) }  // Removed by CP.
+  if (12345678910111213141516 <= 12345678910111213141516) { setverdict(pass) }
+  if (12345678910111213141516 >= 12345678910111213141516) { setverdict(pass) }
   }
   {
   // With a constant.  Same as the previous.
   const integer i := 0, j := 12345678910111213141516
-  if (j < i)  { log("Cond19"); setverdict(fail) }  // Removed by CP.
-  if (j > i)  { log("Cond20"); setverdict(pass) }
-  if (j == i) { log("Cond21"); setverdict(fail) }  // Removed by CP.
-  if (j != i) { log("Cond22"); setverdict(pass) }
-  if (j <= i) { log("Cond23"); setverdict(fail) }  // Removed by CP.
-  if (j >= i) { log("Cond24"); setverdict(pass) }
-  if (i < j)  { log("Cond25"); setverdict(pass) }
-  if (i > j)  { log("Cond26"); setverdict(fail) }  // Removed by CP.
-  if (i == j) { log("Cond27"); setverdict(fail) }  // Removed by CP.
-  if (i != j) { log("Cond28"); setverdict(pass) }
-  if (i <= j) { log("Cond29"); setverdict(pass) }
-  if (i >= j) { log("Cond30"); setverdict(fail) }  // Removed by CP.
-  if (j < j)  { log("Cond31"); setverdict(fail) }  // Removed by CP.
-  if (j > j)  { log("Cond32"); setverdict(fail) }  // Removed by CP.
-  if (j == j) { log("Cond33"); setverdict(pass) }
-  if (j != j) { log("Cond34"); setverdict(fail) }  // Removed by CP.
-  if (j <= j) { log("Cond35"); setverdict(pass) }
-  if (j >= j) { log("Cond36"); setverdict(pass) }
+  if (j < i)  { setverdict(fail) }  // Removed by CP.
+  if (j > i)  { setverdict(pass) }
+  if (j == i) { setverdict(fail) }  // Removed by CP.
+  if (j != i) { setverdict(pass) }
+  if (j <= i) { setverdict(fail) }  // Removed by CP.
+  if (j >= i) { setverdict(pass) }
+  if (i < j)  { setverdict(pass) }
+  if (i > j)  { setverdict(fail) }  // Removed by CP.
+  if (i == j) { setverdict(fail) }  // Removed by CP.
+  if (i != j) { setverdict(pass) }
+  if (i <= j) { setverdict(pass) }
+  if (i >= j) { setverdict(fail) }  // Removed by CP.
+  if (j < j)  { setverdict(fail) }  // Removed by CP.
+  if (j > j)  { setverdict(fail) }  // Removed by CP.
+  if (j == j) { setverdict(pass) }
+  if (j != j) { setverdict(fail) }  // Removed by CP.
+  if (j <= j) { setverdict(pass) }
+  if (j >= j) { setverdict(pass) }
   }
   {
   // With variable operands.  No CP.
   var integer i := 0, j := 12345678910111213141516, result := 0
-  if (12345678910111213141516 < i)  { log("Cond37"); result := result + 1 }
-  if (12345678910111213141516 > i)  { log("Cond38"); result := result + 1 }
-  if (12345678910111213141516 == i) { log("Cond39"); result := result + 1 }
-  if (12345678910111213141516 != i) { log("Cond40"); result := result + 1 }
-  if (12345678910111213141516 <= i) { log("Cond41"); result := result + 1 }
-  if (12345678910111213141516 >= i) { log("Cond42"); result := result + 1 }
-  if (i < 12345678910111213141516)  { log("Cond43"); result := result + 1 }
-  if (i > 12345678910111213141516)  { log("Cond44"); result := result + 1 }
-  if (i == 12345678910111213141516) { log("Cond45"); result := result + 1 }
-  if (i != 12345678910111213141516) { log("Cond46"); result := result + 1 }
-  if (i <= 12345678910111213141516) { log("Cond47"); result := result + 1 }
-  if (i >= 12345678910111213141516) { log("Cond48"); result := result + 1 }
-  if (12345678910111213141516 < j)  { log("Cond49"); result := result + 1 }
-  if (j > 12345678910111213141516)  { log("Cond50"); result := result + 1 }
-  if (12345678910111213141516 == j) { log("Cond51"); result := result + 1 }
-  if (j != 12345678910111213141516) { log("Cond52"); result := result + 1 }
-  if (12345678910111213141516 <= j) { log("Cond53"); result := result + 1 }
-  if (j >= 12345678910111213141516) { log("Cond54"); result := result + 1 }
+  if (12345678910111213141516 < i)  { result := result + 1 }
+  if (12345678910111213141516 > i)  { result := result + 1 }
+  if (12345678910111213141516 == i) { result := result + 1 }
+  if (12345678910111213141516 != i) { result := result + 1 }
+  if (12345678910111213141516 <= i) { result := result + 1 }
+  if (12345678910111213141516 >= i) { result := result + 1 }
+  if (i < 12345678910111213141516)  { result := result + 1 }
+  if (i > 12345678910111213141516)  { result := result + 1 }
+  if (i == 12345678910111213141516) { result := result + 1 }
+  if (i != 12345678910111213141516) { result := result + 1 }
+  if (i <= 12345678910111213141516) { result := result + 1 }
+  if (i >= 12345678910111213141516) { result := result + 1 }
+  if (12345678910111213141516 < j)  { result := result + 1 }
+  if (j > 12345678910111213141516)  { result := result + 1 }
+  if (12345678910111213141516 == j) { result := result + 1 }
+  if (j != 12345678910111213141516) { result := result + 1 }
+  if (12345678910111213141516 <= j) { result := result + 1 }
+  if (j >= 12345678910111213141516) { result := result + 1 }
   if (result == 9) { setverdict(pass) }  // Number of branches executed.
   else { setverdict(fail) }
   }
diff --git a/regression_test/intOper/config.cfg b/regression_test/intOper/config.cfg
index 10f0baebb..e2e611256 100644
--- a/regression_test/intOper/config.cfg
+++ b/regression_test/intOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/Makefile b/regression_test/ipv6/Makefile
index 9efcac8fd..fd69ecec8 100644
--- a/regression_test/ipv6/Makefile
+++ b/regression_test/ipv6/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/host_ipv6_global.cfg b/regression_test/ipv6/host_ipv6_global.cfg
index 5e7a85dcf..74390e72d 100644
--- a/regression_test/ipv6/host_ipv6_global.cfg
+++ b/regression_test/ipv6/host_ipv6_global.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/host_link_local.cfg b/regression_test/ipv6/host_link_local.cfg
index 5d4d6da50..8574b40c3 100644
--- a/regression_test/ipv6/host_link_local.cfg
+++ b/regression_test/ipv6/host_link_local.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/invalid_global_ipv6.cfg b/regression_test/ipv6/invalid_global_ipv6.cfg
index 431e3b853..5a8a396f2 100644
--- a/regression_test/ipv6/invalid_global_ipv6.cfg
+++ b/regression_test/ipv6/invalid_global_ipv6.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/invalid_global_ipv6_long.cfg b/regression_test/ipv6/invalid_global_ipv6_long.cfg
index c365e6944..9d339aff3 100644
--- a/regression_test/ipv6/invalid_global_ipv6_long.cfg
+++ b/regression_test/ipv6/invalid_global_ipv6_long.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/ip_create_on_host.cfg b/regression_test/ipv6/ip_create_on_host.cfg
index f9cb14fd4..15d3665d6 100644
--- a/regression_test/ipv6/ip_create_on_host.cfg
+++ b/regression_test/ipv6/ip_create_on_host.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/ipv6.ttcn b/regression_test/ipv6/ipv6.ttcn
index 39f99715f..91591d09e 100644
--- a/regression_test/ipv6/ipv6.ttcn
+++ b/regression_test/ipv6/ipv6.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ipv6/ipv6_all_global.cfg b/regression_test/ipv6/ipv6_all_global.cfg
index 9cabe2136..22733f362 100644
--- a/regression_test/ipv6/ipv6_all_global.cfg
+++ b/regression_test/ipv6/ipv6_all_global.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/ipv6_long_short_global.cfg b/regression_test/ipv6/ipv6_long_short_global.cfg
index 923c173fb..351d4b5f8 100644
--- a/regression_test/ipv6/ipv6_long_short_global.cfg
+++ b/regression_test/ipv6/ipv6_long_short_global.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/ipv_hostname_macro.cfg b/regression_test/ipv6/ipv_hostname_macro.cfg
index 9a11521ed..116246df4 100644
--- a/regression_test/ipv6/ipv_hostname_macro.cfg
+++ b/regression_test/ipv6/ipv_hostname_macro.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/link_local_ipv6.cfg b/regression_test/ipv6/link_local_ipv6.cfg
index a409e5d00..489166b3d 100644
--- a/regression_test/ipv6/link_local_ipv6.cfg
+++ b/regression_test/ipv6/link_local_ipv6.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/localhost_create_on_host.cfg b/regression_test/ipv6/localhost_create_on_host.cfg
index 9ecb4fe03..d2a356987 100644
--- a/regression_test/ipv6/localhost_create_on_host.cfg
+++ b/regression_test/ipv6/localhost_create_on_host.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/localhost_ip_create_on_host.cfg b/regression_test/ipv6/localhost_ip_create_on_host.cfg
index 780179d43..841731eec 100644
--- a/regression_test/ipv6/localhost_ip_create_on_host.cfg
+++ b/regression_test/ipv6/localhost_ip_create_on_host.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/long_host_ipv6_global.cfg b/regression_test/ipv6/long_host_ipv6_global.cfg
index 22768bfa3..be60cf1d6 100644
--- a/regression_test/ipv6/long_host_ipv6_global.cfg
+++ b/regression_test/ipv6/long_host_ipv6_global.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/long_ipv6_global.cfg b/regression_test/ipv6/long_ipv6_global.cfg
index fc3c98790..b3f25a8be 100644
--- a/regression_test/ipv6/long_ipv6_global.cfg
+++ b/regression_test/ipv6/long_ipv6_global.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/no_full_syntax_check_link_local.cfg b/regression_test/ipv6/no_full_syntax_check_link_local.cfg
index 98c29c110..e1cf94c4c 100644
--- a/regression_test/ipv6/no_full_syntax_check_link_local.cfg
+++ b/regression_test/ipv6/no_full_syntax_check_link_local.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/no_full_syntax_check_link_local_long.cfg b/regression_test/ipv6/no_full_syntax_check_link_local_long.cfg
index e2102eaf4..bcb52d6d9 100644
--- a/regression_test/ipv6/no_full_syntax_check_link_local_long.cfg
+++ b/regression_test/ipv6/no_full_syntax_check_link_local_long.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/total_link_local.cfg b/regression_test/ipv6/total_link_local.cfg
index 8baeef121..85992d3c9 100644
--- a/regression_test/ipv6/total_link_local.cfg
+++ b/regression_test/ipv6/total_link_local.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ipv6/valid_global_ipv6.cfg b/regression_test/ipv6/valid_global_ipv6.cfg
index ee0cf8d60..909dd955b 100644
--- a/regression_test/ipv6/valid_global_ipv6.cfg
+++ b/regression_test/ipv6/valid_global_ipv6.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ispresent/IsPresent_Test.cfg b/regression_test/ispresent/IsPresent_Test.cfg
index 34b7b274a..5236bf050 100644
--- a/regression_test/ispresent/IsPresent_Test.cfg
+++ b/regression_test/ispresent/IsPresent_Test.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ispresent/IsPresent_Test.ttcn b/regression_test/ispresent/IsPresent_Test.ttcn
index b89eb0ce5..999bc58b6 100644
--- a/regression_test/ispresent/IsPresent_Test.ttcn
+++ b/regression_test/ispresent/IsPresent_Test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -181,7 +181,6 @@ type record of MyRec2 MyRecOf
   };
 
   function f_empty() runs on MTC_CT {
-    log("f_empty called");
   }
 
   testcase tc_special_default_value_unbound() runs on MTC_CT {
@@ -195,23 +194,19 @@ type record of MyRec2 MyRecOf
   }
   testcase tc_special_default_value_isvalue() runs on MTC_CT {
     var default vl_default := activate(as_empty());
-    //log("default altstep after activate:", vl_default);
     if(ispresent(vl_default)){setverdict(pass)}else {setverdict(fail)};
 
     deactivate(vl_default);
-    //log("default altstep after deactivate:", vl_default);
     if(ispresent(vl_default)){setverdict(pass)}else {setverdict(fail)};
   }
 
   testcase tc_special_compref_unbound() runs on MTC_CT {
     var MTC_CT vc_myComp;
-    log("vc_myComp before create:", vc_myComp);
     if(ispresent(vc_myComp)){setverdict(fail)}else {setverdict(pass)};
   }
 
   testcase tc_special_compref_isvalue() runs on MTC_CT {
     var MTC_CT vc_myComp:= MTC_CT.create("hali");
-    log("vc_myComp after create:", vc_myComp);
     if(ispresent(vc_myComp)){setverdict(pass)}else {setverdict(fail)};
 
     vc_myComp.start(f_empty());
@@ -238,7 +233,6 @@ type record of MyRec2 MyRecOf
     if(ispresent(vl_u.roi)){setverdict(fail)}else {setverdict(pass)}
     if(ispresent(vl_u.roi[0])){setverdict(fail)}else {setverdict(pass)}
     if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
-    log(vl_u.roc);
   }
 
   testcase tc_unionOfRecordOfs2() runs on MTC_CT {
@@ -291,7 +285,6 @@ type record of MyRec2 MyRecOf
     if(ispresent(vl_u.roi)){setverdict(fail)}
     if(ispresent(vl_u.roi[0])){setverdict(fail)}
     if(ispresent(vl_u.roi[1])){setverdict(fail)} else {setverdict(pass)}
-    log(vl_u.roc);
   }
   //expected:error
   testcase tc_sideeffect1() runs on MTC_CT {
@@ -314,7 +307,6 @@ type record of MyRec2 MyRecOf
     if(ispresent(vl_u.roc[4])) {setverdict(fail)}else {setverdict(pass)}
     vl_newsize:=sizeof(vl_u.roc);
     if(vl_newsize == vl_oldsize) {setverdict(pass)}else {setverdict(fail)}
-    //log(vl_u.i);
   }
 
   //====== DEEP 2-3 ===============
@@ -464,7 +456,6 @@ type record of MyRec2 MyRecOf
   testcase tc_union_OneOption_WithWildcard() runs on MTC_CT {
     var template MyRec4 vtl_rec:=?
     if(ispresent(vtl_rec)){setverdict(pass)}else {setverdict(fail)};
-    //log(vtl_rec.u);
     log("DTE is expected in the next line")
     if(ispresent(vtl_rec.u.i)){setverdict(fail)};
   }
@@ -667,7 +658,7 @@ type record of MyRec2 MyRecOf
     vtl_rec2:={
       u := ?
     }
-    //log("The value of the record:",vtl_rec2.u);
+
     if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else{setverdict(pass)}; //pass
   }
 
@@ -676,8 +667,7 @@ type record of MyRec2 MyRecOf
     vtl_rec2:={
       u := ?
     }
-    //log("The value of the record:",vtl_rec2.u.i); <== This line would modify the verdict for "pass", see next testcase
-    log("The value of the record:",vtl_rec2.u);
+
     if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else{setverdict(pass)}; //pass
   }
 
@@ -686,7 +676,6 @@ type record of MyRec2 MyRecOf
     vtl_rec2:={
       u := ?
     }
-    log("The value of the record:",vtl_rec2.u.i);
 
     if(ispresent(vtl_rec2.u.i)){setverdict(fail)}else {setverdict(pass)}; //fail
   }
diff --git a/regression_test/ispresent/Makefile b/regression_test/ispresent/Makefile
index ec65b9dde..424445420 100644
--- a/regression_test/ispresent/Makefile
+++ b/regression_test/ispresent/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/json/AttributeTestcases.ttcn b/regression_test/json/AttributeTestcases.ttcn
index c5d6383f0..2c529e67f 100755
--- a/regression_test/json/AttributeTestcases.ttcn
+++ b/regression_test/json/AttributeTestcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -181,8 +181,126 @@ testcase tc_attribute_default() runs on MTC {
   f_bool2verdict( match(f_dec_def(os), d) );
 }
 
+// Encoding a few values of ASN.1 types with the coding instruction "as value"
+// Results are the same as with the TTCN-3 types
+testcase tc_attribute_as_value_asn() runs on MTC {
+  var AsnStuff stuff := { { nval := NULL }, { ival := -10 }, { anyval := 'DCBA'O }, { vsval := "something" }, { pardval := { id := 0, priority := low, val := { iNTEGER := -10 } } } };
+  var octetstring os := char2oct("[null,-10,\"DCBA\",\"something\",{\"id\":0,\"priority\":\"low\",\"val\":{\"iNTEGER\":-10}}]");
+  f_check_encoding(encoded := f_enc_asn_stuff(stuff), expected := os);
+  f_bool2verdict( match(f_dec_asn_stuff(f_enc_asn_stuff(stuff)), stuff) );
+}
+
+// Encoding a record with 2 optional union fields encoded as JSON values (attribute 'as value')
+// and as the 'null' value when omitted (attribute 'omit as null').
+// One of the unions ('uniAsn') can decode the JSON value 'null' (field 'nval'), thus omitting
+// the union and setting this field have the same encoding, and decoding 'null' always sets the
+// field instead of omitting the union.
+// The other union ('uniTtcn') cannot decode the JSON value 'null', thus decoding 'null' omits
+// the union.
+testcase tc_attribute_optional_as_value() runs on MTC {
+  var OptionalUnions val1 := { dummy := "nothing", uniTtcn := omit, uniAsn := omit };
+  var OptionalUnions val2 := { dummy := "nothing", uniTtcn := omit, uniAsn := { nval := NULL } };
+  var octetstring os := char2oct("{\"dummy\":\"nothing\",\"uniTtcn\":null,\"uniAsn\":null}");
+  f_check_encoding(encoded := f_enc_opt_uni(val1), expected := os);
+  f_check_encoding(encoded := f_enc_opt_uni(val2), expected := os);
+  f_bool2verdict( match(f_dec_opt_uni(os), val2) );
+}
+
+// Encoding records and sets with unbound fields with meta info (attribute 'metainfo for unbound')
+// The unbound fields will have the 'null' value and an extra (meta info) field will be inserted
+// into the JSON document (after the current field) to specify that the field is unbound.
+testcase tc_attribute_metainfo_for_unbound() runs on MTC {
+  // regular encoding and decoding tests
+  var MetainfoRecord r := { num := 6 };
+  var octetstring os := char2oct("{\"num\":6,\"str\":null,\"metainfo str\":\"unbound\"}");
+  f_check_encoding(encoded := f_enc_meta_rec(r), expected := os);
+  f_bool2verdict( log2str(f_dec_meta_rec(os)) == log2str(r) );
+  
+  var MetainfoSet s := { str := "abc" };
+  os := char2oct("{\"int\":null,\"metainfo int\":\"unbound\",\"str\":\"abc\",\"octets\":null,\"metainfo octets\":\"unbound\"}");
+  f_check_encoding(encoded := f_enc_meta_set(s), expected := os);
+  f_bool2verdict( log2str(f_dec_meta_set(os)) == log2str(s) );
+  
+  // positive decoding tests (these cannot be produced by the encoder, but are still accepted by the decoder)
+  os := char2oct("{ \"int\" : 3, \"str\" : \"abc\", \"octets\" : \"1234\", \"metainfo int\" : \"unbound\" }");
+  var MetainfoSet res := { str := "abc", octets := '1234'O };
+  f_bool2verdict( log2str(f_dec_meta_set(os)) == log2str(res) );
+  
+  os := char2oct("{ \"metainfo int\" : \"unbound\", \"int\" : null, \"str\" : \"abc\", \"octets\" : \"1234\" }");
+  f_bool2verdict( log2str(f_dec_meta_set(os)) == log2str(res) ); // same expected result
+}
 
-//set
+// Negative tests for decoding with the unbound meta info attribute
+testcase tc_attribute_metainfo_for_unbound_negtest() runs on MTC {
+  var octetstring os := char2oct("{ \"metainfo num\" : \"unbound\", \"num\" : 6, \"str\" : \"qwe\" }");
+  var MetainfoRecord dummyRec;
+  @try {
+    dummyRec := f_dec_meta_rec(os);
+    setverdict(fail, "Expected error when decoding ", os);
+  }
+  @catch (msg) {
+    if (not match (msg, pattern "*Meta info not applicable to field 'num'")) {
+      setverdict(fail, "Unexpected error message when decoding ", os, " (msg: ", msg, ")");
+    }
+  }
+  
+  os := char2oct("{ \"metainfo dummy\" : \"unbound\", \"num\" : 6, \"str\" : \"qwe\" }");
+  @try {
+    dummyRec := f_dec_meta_rec(os);
+    setverdict(fail, "Expected error when decoding ", os);
+  }
+  @catch (msg) {
+    if (not match (msg, pattern "*Meta info provided for non-existent field 'dummy'")) {
+      setverdict(fail, "Unexpected error message when decoding ", os, " (msg: ", msg, ")");
+    }
+  }
+  
+  os := char2oct("{ \"int\" : 3, \"str\" : \"abc\", \"octets\" : \"1234\", \"metainfo int\" : \"bound\" }");
+  var MetainfoSet dummySet;
+  @try {
+    dummySet := f_dec_meta_set(os);
+    setverdict(fail, "Expected error when decoding ", os);
+  }
+  @catch (msg) {
+    if (not match (msg, pattern "*Invalid meta info for field 'num'")) {
+      setverdict(fail, "Unexpected error message when decoding ", os, " (msg: ", msg, ")");
+    }
+  }
+  
+  os := char2oct("{ \"int\" : 3, \"str\" : \"abc\", \"octets\" : \"1234\", \"metainfo int\" : 88 }");
+  @try {
+    dummySet := f_dec_meta_set(os);
+    setverdict(fail, "Expected error when decoding ", os);
+  }
+  @catch (msg) {
+    if (not match (msg, pattern "*Invalid meta info for field 'num'")) {
+      setverdict(fail, "Unexpected error message when decoding ", os, " (msg: ", msg, ")");
+    }
+  }
+  
+  os := char2oct("{ \"int\" : null, \"str\" : \"abc\", \"octets\" : \"1234\" }");
+  @try {
+    dummySet := f_dec_meta_set(os);
+    setverdict(fail, "Expected error when decoding ", os);
+  }
+  @catch (msg) {
+    if (not match (msg, pattern "*Invalid JSON token found while decoding field 'num'")) {
+      setverdict(fail, "Unexpected error message when decoding ", os, " (msg: ", msg, ")");
+    }
+  }
+  
+  os := char2oct("{ \"metainfo int\" : \"unbound\", \"int\" : [ 1, 3 ], \"str\" : \"abc\", \"octets\" : \"1234\" }");
+  @try {
+    dummySet := f_dec_meta_set(os);
+    setverdict(fail, "Expected error when decoding ", os);
+  }
+  @catch (msg) {
+    if (not match (msg, pattern "*Invalid JSON token found while decoding field 'num'")) {
+      setverdict(fail, "Unexpected error message when decoding ", os, " (msg: ", msg, ")");
+    }
+  }
+  setverdict(pass);
+}
 
 
 control {
@@ -197,5 +315,9 @@ control {
   execute(tc_attribute_union());
   execute(tc_attribute_as_value());
   //execute(tc_attribute_default());
+  execute(tc_attribute_as_value_asn());
+  execute(tc_attribute_optional_as_value());
+  execute(tc_attribute_metainfo_for_unbound());
+  execute(tc_attribute_metainfo_for_unbound_negtest());
 }
 }
diff --git a/regression_test/json/Functions.ttcn b/regression_test/json/Functions.ttcn
index 6064b6269..912df569b 100755
--- a/regression_test/json/Functions.ttcn
+++ b/regression_test/json/Functions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -62,7 +62,6 @@ external function f_enc_A(in A u) return octetstring
 external function f_enc_ER(in EmptyRec u) return octetstring
   with { extension "prototype(convert)"; extension "encode(JSON)"; }
   
-  
 external function f_enc_roi(in RoI u) return octetstring
   with { extension "prototype(convert)"; extension "encode(JSON)"; }
   
@@ -105,6 +104,18 @@ external function f_enc_stuff(in Stuff x) return octetstring
 external function f_enc_hpt(in HasPardType x) return octetstring
   with { extension "prototype(convert) encode(JSON)" }
 
+external function f_enc_asn_stuff(in AsnStuff x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+  
+external function f_enc_opt_uni(in OptionalUnions x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+  
+external function f_enc_meta_rec(in MetainfoRecord x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+  
+external function f_enc_meta_set(in MetainfoSet x) return octetstring
+  with { extension "prototype(convert) encode(JSON)" }
+
 // for ASN.1 types
 external function f_enc_seqofint(in SeqOfInt x) return octetstring
   with { extension "prototype(convert) encode(JSON)" }
@@ -211,6 +222,18 @@ external function f_dec_def(in octetstring x) return RecDef
 external function f_dec_hpt(in octetstring x) return HasPardType
   with { extension "prototype(convert) decode(JSON)" }
 
+external function f_dec_asn_stuff(in octetstring x) return AsnStuff
+  with { extension "prototype(convert) decode(JSON)" }
+
+external function f_dec_opt_uni(in octetstring x) return OptionalUnions
+  with { extension "prototype(convert) decode(JSON)" }
+  
+external function f_dec_meta_rec(in octetstring x) return MetainfoRecord
+  with { extension "prototype(convert) decode(JSON)" }
+  
+external function f_dec_meta_set(in octetstring x) return MetainfoSet
+  with { extension "prototype(convert) decode(JSON)" }
+
 // for ASN.1 types
 external function f_dec_seqofint(in octetstring x) return SeqOfInt
   with { extension "prototype(convert) decode(JSON)" }
diff --git a/regression_test/json/JSON.cfg b/regression_test/json/JSON.cfg
index ab0d13edc..a64455aa2 100755
--- a/regression_test/json/JSON.cfg
+++ b/regression_test/json/JSON.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/json/JsonData.asn b/regression_test/json/JsonData.asn
index 962186e5f..212017686 100644
--- a/regression_test/json/JsonData.asn
+++ b/regression_test/json/JsonData.asn
@@ -1,5 +1,5 @@
 --*****************************************************************************
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
@@ -138,6 +138,12 @@ HasNull ::= SEQUENCE
   theNull NULL OPTIONAL
 }
 
+-- Renaming basic ASN.1 types for use in TTCN-3
+AsnNull ::= NULL
+AsnInt ::= INTEGER
+AsnVisibleString ::= VisibleString
+AsnAny ::= ANY
+
 
 -- Values and their encoding --
 -------------------------------
diff --git a/regression_test/json/Makefile b/regression_test/json/Makefile
index 33a75adec..091d8653d 100755
--- a/regression_test/json/Makefile
+++ b/regression_test/json/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/json/SemanticCheck.ttcn b/regression_test/json/SemanticCheck.ttcn
index 271074d98..9ecb78df3 100644
--- a/regression_test/json/SemanticCheck.ttcn
+++ b/regression_test/json/SemanticCheck.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/json/Testcases.ttcn b/regression_test/json/Testcases.ttcn
index e452ecc24..f72993ec8 100755
--- a/regression_test/json/Testcases.ttcn
+++ b/regression_test/json/Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/json/Types.ttcn b/regression_test/json/Types.ttcn
index 21eef2829..b3ed9a21a 100755
--- a/regression_test/json/Types.ttcn
+++ b/regression_test/json/Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -164,6 +164,45 @@ type record HasPardType {
   Price price
 }
 
+type union AsnThing {
+  AsnNull nval,
+  AsnInt ival,
+  AsnAny anyval,
+  AsnVisibleString vsval,
+  ProtocolElem_Field1 pardval
+} with {
+  variant "JSON: as value";
+}
+
+type record of AsnThing AsnStuff;
+
+type record OptionalUnions {
+  charstring dummy,
+  Thing uniTtcn optional,
+  AsnThing uniAsn optional
+} with {
+  variant(uniTtcn) "JSON: omit as null";
+  variant(uniAsn) " JSON: omit as null ";
+}
+
+type record MetainfoRecord {
+  integer num,
+  charstring str
+}
+with {
+  variant(str) "JSON: metainfo for unbound";
+}
+
+type set MetainfoSet {
+  integer num,
+  charstring str,
+  octetstring octets optional
+}
+with {
+  variant " JSON : metainfo for unbound ";
+  variant (num) " JSON : name as int ";
+}
+
 } with {
   encode "JSON";
 }
diff --git a/regression_test/junitlogger/Makefile b/regression_test/junitlogger/Makefile
index 9a271bcbc..151ec63e9 100644
--- a/regression_test/junitlogger/Makefile
+++ b/regression_test/junitlogger/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/junitlogger/main1.cfg b/regression_test/junitlogger/main1.cfg
index 0b79d8a46..d8ae97e0f 100644
--- a/regression_test/junitlogger/main1.cfg
+++ b/regression_test/junitlogger/main1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/junitlogger/main1.ttcn b/regression_test/junitlogger/main1.ttcn
index 3a41eb785..be9dbea75 100644
--- a/regression_test/junitlogger/main1.ttcn
+++ b/regression_test/junitlogger/main1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/junitlogger/test_junitlog.pl b/regression_test/junitlogger/test_junitlog.pl
index 26035b999..835139938 100755
--- a/regression_test/junitlogger/test_junitlog.pl
+++ b/regression_test/junitlogger/test_junitlog.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/junitlogger/test_junitlog.sh b/regression_test/junitlogger/test_junitlog.sh
index ebe783d23..909d8217c 100755
--- a/regression_test/junitlogger/test_junitlog.sh
+++ b/regression_test/junitlogger/test_junitlog.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/lazyEval/LazyASNTypes.asn b/regression_test/lazyEval/LazyASNTypes.asn
index f81464aa3..aa4aff468 100644
--- a/regression_test/lazyEval/LazyASNTypes.asn
+++ b/regression_test/lazyEval/LazyASNTypes.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/lazyEval/Makefile b/regression_test/lazyEval/Makefile
index df2df37eb..5a4e5cee3 100644
--- a/regression_test/lazyEval/Makefile
+++ b/regression_test/lazyEval/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -22,6 +22,11 @@ RUNNABLE := $(TTCN_FILE:.ttcn=)
 #RUNNABLE += .exe
 #endif
 
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
 DIR_SINGLE := dir_single_mode
 DIR_PARALLEL := dir_parallel_mode
 GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL)
@@ -34,12 +39,12 @@ all: $(GENERATED_DIRS)
 $(DIR_SINGLE):
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s -e $(RUNNABLE) ./*  && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -s -e $(RUNNABLE) ./*  && $(MAKE_PROG)
 
 $(DIR_PARALLEL):
 	mkdir $@
 	cd $@ && for file in $(FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -e $(RUNNABLE) ./*  && $(MAKE_PROG)
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -e $(RUNNABLE) ./*  && $(MAKE_PROG)
 
 run: $(GENERATED_DIRS)
 	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(CFG) && grep "Overall verdict: pass" *.log
diff --git a/regression_test/lazyEval/lazy.cfg b/regression_test/lazyEval/lazy.cfg
index 709057a59..9eecaf8d9 100644
--- a/regression_test/lazyEval/lazy.cfg
+++ b/regression_test/lazyEval/lazy.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/lazyEval/lazy_A.ttcn b/regression_test/lazyEval/lazy_A.ttcn
index a84a5328b..847f864c0 100644
--- a/regression_test/lazyEval/lazy_A.ttcn
+++ b/regression_test/lazyEval/lazy_A.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/lazyEval/lazy_B.ttcn b/regression_test/lazyEval/lazy_B.ttcn
index 727c0d38b..19eaad6b2 100644
--- a/regression_test/lazyEval/lazy_B.ttcn
+++ b/regression_test/lazyEval/lazy_B.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/lazyEval/lazy_defs.ttcn b/regression_test/lazyEval/lazy_defs.ttcn
index 883608446..42ed59607 100644
--- a/regression_test/lazyEval/lazy_defs.ttcn
+++ b/regression_test/lazyEval/lazy_defs.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/lazyEval/lazy_main.ttcn b/regression_test/lazyEval/lazy_main.ttcn
index 01c3b3b44..dca97ad1d 100644
--- a/regression_test/lazyEval/lazy_main.ttcn
+++ b/regression_test/lazyEval/lazy_main.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logFiles/CommonStuff.ttcn b/regression_test/logFiles/CommonStuff.ttcn
index 887d4f587..1fe9152e5 100644
--- a/regression_test/logFiles/CommonStuff.ttcn
+++ b/regression_test/logFiles/CommonStuff.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logFiles/LogFiles.cfg b/regression_test/logFiles/LogFiles.cfg
index e98003300..6e18e7033 100755
--- a/regression_test/logFiles/LogFiles.cfg
+++ b/regression_test/logFiles/LogFiles.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logFiles/LogFiles.ttcn b/regression_test/logFiles/LogFiles.ttcn
index 0ca33cdd2..cec8c5944 100755
--- a/regression_test/logFiles/LogFiles.ttcn
+++ b/regression_test/logFiles/LogFiles.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logFiles/LogFiles2.cfg b/regression_test/logFiles/LogFiles2.cfg
index ba22061e9..a6f2096ff 100755
--- a/regression_test/logFiles/LogFiles2.cfg
+++ b/regression_test/logFiles/LogFiles2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logFiles/LogFilesInc.cfg b/regression_test/logFiles/LogFilesInc.cfg
index aedaa0158..e4b62b6fa 100755
--- a/regression_test/logFiles/LogFilesInc.cfg
+++ b/regression_test/logFiles/LogFilesInc.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logFiles/LogFilesProc.cfg b/regression_test/logFiles/LogFilesProc.cfg
index 2fc24e79f..2cbbb8351 100755
--- a/regression_test/logFiles/LogFilesProc.cfg
+++ b/regression_test/logFiles/LogFilesProc.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logFiles/Makefile b/regression_test/logFiles/Makefile
index a036f9bfe..f654dfdda 100755
--- a/regression_test/logFiles/Makefile
+++ b/regression_test/logFiles/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -70,6 +70,7 @@ dep: $(GENERATED_SOURCES)
 	makedepend $(CPPFLAGS) $(GENERATED_SOURCES) extfunc.cc
 
 run: $(TARGET)
+	./logfilter.sh
 	$(TTCN3_DIR)/bin/ttcn3_start $(TARGET) LogFiles.cfg
 	$(TTCN3_DIR)/bin/ttcn3_start $(TARGET) LogFiles2.cfg
 	$(TTCN3_DIR)/bin/ttcn3_start $(TARGET) LogFilesProc.cfg
diff --git a/regression_test/logFiles/TitanLogTest.cfg b/regression_test/logFiles/TitanLogTest.cfg
index 70ad6ab45..c440a77bf 100644
--- a/regression_test/logFiles/TitanLogTest.cfg
+++ b/regression_test/logFiles/TitanLogTest.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logFiles/TitanLogTest.ttcn b/regression_test/logFiles/TitanLogTest.ttcn
index e0ba12848..91a5955e5 100644
--- a/regression_test/logFiles/TitanLogTest.ttcn
+++ b/regression_test/logFiles/TitanLogTest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logFiles/extfunc.cc b/regression_test/logFiles/extfunc.cc
index b54148742..339cf7d58 100755
--- a/regression_test/logFiles/extfunc.cc
+++ b/regression_test/logFiles/extfunc.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/logFiles/filtered_e.log2 b/regression_test/logFiles/filtered_e.log2
new file mode 100644
index 000000000..cc834ae62
--- /dev/null
+++ b/regression_test/logFiles/filtered_e.log2
@@ -0,0 +1,2 @@
+2015/Sep/07 06:45:07.380293 MATCHING - TTCN Logger v2.2 options: TimeStampFormat:=DateTime; LogEntityName:=Yes; LogEventTypes:=Yes; SourceInfoFormat:=Stack; *.FileMask:=LOG_ALL DEBUG; *.ConsoleMask:=ACTION | MATCHING | DEBUG_UNQUALIFIED; LogFileSize:=0; LogFileNumber:=1; DiskFullAction:=Error
+10:57:32.676034 PARALLEL Component type MyExample.MTCType was initialized.
diff --git a/regression_test/logFiles/lfilter.log2 b/regression_test/logFiles/lfilter.log2
new file mode 100644
index 000000000..e5cf64d15
--- /dev/null
+++ b/regression_test/logFiles/lfilter.log2
@@ -0,0 +1,4 @@
+2015/Sep/07 06:45:07.380293 EXECUTOR - TTCN Logger v2.2 options: TimeStampFormat:=DateTime; LogEntityName:=Yes; LogEventTypes:=Yes; SourceInfoFormat:=Stack; *.FileMask:=LOG_ALL | MATCHING | DEBUG; *.ConsoleMask:=ACTION | MATCHING | PARALLEL | DEBUG_UNQUALIFIED; LogFileSize:=0; LogFileNumber:=1; DiskFullAction:=Error
+2015/Sep/07 06:45:07.380293 MATCHING - TTCN Logger v2.2 options: TimeStampFormat:=DateTime; LogEntityName:=Yes; LogEventTypes:=Yes; SourceInfoFormat:=Stack; *.FileMask:=LOG_ALL DEBUG; *.ConsoleMask:=ACTION | MATCHING | DEBUG_UNQUALIFIED; LogFileSize:=0; LogFileNumber:=1; DiskFullAction:=Error
+10:57:32.676016 PORTEVENT Port MyPCO was started.
+10:57:32.676034 PARALLEL Component type MyExample.MTCType was initialized.
diff --git a/regression_test/logFiles/logFiles_doc.script b/regression_test/logFiles/logFiles_doc.script
index f092054e9..71d8e1e02 100755
--- a/regression_test/logFiles/logFiles_doc.script
+++ b/regression_test/logFiles/logFiles_doc.script
@@ -1,5 +1,5 @@
 .******************************************************************************
-.* Copyright (c) 2000-2014 Ericsson Telecom AB
+.* 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
diff --git a/regression_test/logFiles/logfilter.sh b/regression_test/logFiles/logfilter.sh
new file mode 100755
index 000000000..33e571a98
--- /dev/null
+++ b/regression_test/logFiles/logfilter.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+###############################################################################
+# 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
+###############################################################################
+
+LOGFILE="lfilter.log2"
+FILTERED_LOG_FILE="filtered.log"
+EXPECTED_LOG_FILE="filtered_e.log2"
+
+ttcn3_logfilter -o $FILTERED_LOG_FILE $LOGFILE MATCHING+ PARALLEL+
+diff $FILTERED_LOG_FILE $EXPECTED_LOG_FILE
+if [ $? -ne 0 ]; then
+  echo "Logfilter test failed! Overall verdict: fail"
+  exit 1
+else
+  echo "Logfilter test valid! Overall verdict: pass"
+  exit 0
+fi
diff --git a/regression_test/logger/Makefile b/regression_test/logger/Makefile
index 0b7520664..95f6d4f20 100644
--- a/regression_test/logger/Makefile
+++ b/regression_test/logger/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/Console_N.txt b/regression_test/logger/emergency_logging/Console_N.txt
index 836785c58..aa7d8883f 100644
--- a/regression_test/logger/emergency_logging/Console_N.txt
+++ b/regression_test/logger/emergency_logging/Console_N.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/Console_O.txt b/regression_test/logger/emergency_logging/Console_O.txt
index df9240138..39448dce5 100644
--- a/regression_test/logger/emergency_logging/Console_O.txt
+++ b/regression_test/logger/emergency_logging/Console_O.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_1.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_1.cfg
index d14d588fa..d77b7c0ca 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_1.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_10.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_10.cfg
index 167c74785..53b75b7b1 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_10.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_10.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_11.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_11.cfg
index 8badf6c3c..cf11add7b 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_11.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_11.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_12.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_12.cfg
index d84d42ed8..76da758dd 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_12.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_12.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_13.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_13.cfg
index c718a663e..13c3ef725 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_13.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_13.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_1_NOEL.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_1_NOEL.cfg
index 9fda012ac..377b51ee3 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_1_NOEL.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_1_NOEL.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_2.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_2.cfg
index ca7deeeb6..523231bff 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_2.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_3.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_3.cfg
index a01504f7a..30ce99982 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_3.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_3.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_3_NOEL.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_3_NOEL.cfg
index 1b3c2658d..8a922c397 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_3_NOEL.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_3_NOEL.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_4.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_4.cfg
index 5ac2021b2..6901f0313 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_4.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_4.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_5.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_5.cfg
index d3429452f..ecdee716d 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_5.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_5.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_6.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_6.cfg
index 895da4a91..aed0471ad 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_6.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_6.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_7.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_7.cfg
index 5a752c41f..8447b6ee1 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_7.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_7.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_7A.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_7A.cfg
index 312ae6d75..2085bbb2b 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_7A.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_7A.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_8.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_8.cfg
index cb85e0417..e812348a8 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_8.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_8.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferAll_9.cfg b/regression_test/logger/emergency_logging/EL_BufferAll_9.cfg
index 0050e4e5f..656b18d50 100644
--- a/regression_test/logger/emergency_logging/EL_BufferAll_9.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferAll_9.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_1.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_1.cfg
index f062927a1..72391ee58 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_1.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_10.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_10.cfg
index f24f34d28..871198691 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_10.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_10.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_11.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_11.cfg
index 2372d4aa8..60c7356e8 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_11.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_11.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_12.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_12.cfg
index dd7053f58..77e857b69 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_12.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_12.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_13.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_13.cfg
index 8a1edab2e..9c2037568 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_13.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_13.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_2.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_2.cfg
index 7bb9fd5f6..48d287937 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_2.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_3.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_3.cfg
index 015381c96..739645074 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_3.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_3.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_4.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_4.cfg
index 69ca01870..ea377f414 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_4.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_4.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_5.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_5.cfg
index 00a12eaf5..616eb49b6 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_5.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_5.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_6.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_6.cfg
index 923eded3a..bd07fde5e 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_6.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_6.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_7.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_7.cfg
index 1bf975e67..e3c6d591d 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_7.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_7.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_8.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_8.cfg
index 9af4cfacb..5ce85d0e1 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_8.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_8.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EL_BufferMasked_9.cfg b/regression_test/logger/emergency_logging/EL_BufferMasked_9.cfg
index 30b711589..a84c7b596 100644
--- a/regression_test/logger/emergency_logging/EL_BufferMasked_9.cfg
+++ b/regression_test/logger/emergency_logging/EL_BufferMasked_9.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EmergencyLogTest.sh b/regression_test/logger/emergency_logging/EmergencyLogTest.sh
index b58613ef8..8790539a2 100755
--- a/regression_test/logger/emergency_logging/EmergencyLogTest.sh
+++ b/regression_test/logger/emergency_logging/EmergencyLogTest.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/EmergencyLoggingTest.ttcn b/regression_test/logger/emergency_logging/EmergencyLoggingTest.ttcn
index af80b65da..9833be9e2 100644
--- a/regression_test/logger/emergency_logging/EmergencyLoggingTest.ttcn
+++ b/regression_test/logger/emergency_logging/EmergencyLoggingTest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logger/emergency_logging/EmergencyLoggingTest_BuffMasked.cfg b/regression_test/logger/emergency_logging/EmergencyLoggingTest_BuffMasked.cfg
index 3e6fac24d..aab553400 100644
--- a/regression_test/logger/emergency_logging/EmergencyLoggingTest_BuffMasked.cfg
+++ b/regression_test/logger/emergency_logging/EmergencyLoggingTest_BuffMasked.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/Makefile b/regression_test/logger/emergency_logging/Makefile
index dae38e7ff..a68143973 100644
--- a/regression_test/logger/emergency_logging/Makefile
+++ b/regression_test/logger/emergency_logging/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/PCO_PT.cc b/regression_test/logger/emergency_logging/PCO_PT.cc
index b4bf5dbd7..99c6abb86 100644
--- a/regression_test/logger/emergency_logging/PCO_PT.cc
+++ b/regression_test/logger/emergency_logging/PCO_PT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/logger/emergency_logging/PCO_PT.hh b/regression_test/logger/emergency_logging/PCO_PT.hh
index b7b09cf02..f8f88919f 100644
--- a/regression_test/logger/emergency_logging/PCO_PT.hh
+++ b/regression_test/logger/emergency_logging/PCO_PT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/logger/emergency_logging/Titan_LogTest.ttcn b/regression_test/logger/emergency_logging/Titan_LogTest.ttcn
index 5d37d57b5..7e01af493 100644
--- a/regression_test/logger/emergency_logging/Titan_LogTest.ttcn
+++ b/regression_test/logger/emergency_logging/Titan_LogTest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logger/emergency_logging/Titan_LogTestDefinitions.ttcn b/regression_test/logger/emergency_logging/Titan_LogTestDefinitions.ttcn
index 90fbb2250..84d1e1c5e 100644
--- a/regression_test/logger/emergency_logging/Titan_LogTestDefinitions.ttcn
+++ b/regression_test/logger/emergency_logging/Titan_LogTestDefinitions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logger/emergency_logging/failed_testcases.txt b/regression_test/logger/emergency_logging/failed_testcases.txt
index 992a472a1..e9e69c0c9 100644
--- a/regression_test/logger/emergency_logging/failed_testcases.txt
+++ b/regression_test/logger/emergency_logging/failed_testcases.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/emergency_logging/runlog.txt b/regression_test/logger/emergency_logging/runlog.txt
index 956422869..890d8aad5 100644
--- a/regression_test/logger/emergency_logging/runlog.txt
+++ b/regression_test/logger/emergency_logging/runlog.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logcontrol/Makefile b/regression_test/logger/logcontrol/Makefile
index 90bd66c51..e5d1b21ad 100644
--- a/regression_test/logger/logcontrol/Makefile
+++ b/regression_test/logger/logcontrol/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logcontrol/Titan_LogControlTest.cfg b/regression_test/logger/logcontrol/Titan_LogControlTest.cfg
index 898c1eaa4..2fe8db476 100644
--- a/regression_test/logger/logcontrol/Titan_LogControlTest.cfg
+++ b/regression_test/logger/logcontrol/Titan_LogControlTest.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logcontrol/Titan_LogControlTest.ttcn b/regression_test/logger/logcontrol/Titan_LogControlTest.ttcn
index 23253cb5c..36e3ba29f 100644
--- a/regression_test/logger/logcontrol/Titan_LogControlTest.ttcn
+++ b/regression_test/logger/logcontrol/Titan_LogControlTest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logger/logtest/Console_original_merged_log.txt b/regression_test/logger/logtest/Console_original_merged_log.txt
index 562876687..9ca99029a 100644
--- a/regression_test/logger/logtest/Console_original_merged_log.txt
+++ b/regression_test/logger/logtest/Console_original_merged_log.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Makefile b/regression_test/logger/logtest/Makefile
index 39503c1b2..0fe29ee7a 100644
--- a/regression_test/logger/logtest/Makefile
+++ b/regression_test/logger/logtest/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/PCO_PT.cc b/regression_test/logger/logtest/PCO_PT.cc
index 21eef286f..e9f1420cf 100644
--- a/regression_test/logger/logtest/PCO_PT.cc
+++ b/regression_test/logger/logtest/PCO_PT.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/logger/logtest/PCO_PT.hh b/regression_test/logger/logtest/PCO_PT.hh
index b7b09cf02..f8f88919f 100644
--- a/regression_test/logger/logtest/PCO_PT.hh
+++ b/regression_test/logger/logtest/PCO_PT.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/logger/logtest/Titan_LogTest.cfg b/regression_test/logger/logtest/Titan_LogTest.cfg
index 0368316a2..1daededd6 100644
--- a/regression_test/logger/logtest/Titan_LogTest.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest.ttcn b/regression_test/logger/logtest/Titan_LogTest.ttcn
index 5d37d57b5..7e01af493 100644
--- a/regression_test/logger/logtest/Titan_LogTest.ttcn
+++ b/regression_test/logger/logtest/Titan_LogTest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logger/logtest/Titan_LogTestDefinitions.ttcn b/regression_test/logger/logtest/Titan_LogTestDefinitions.ttcn
index 90fbb2250..84d1e1c5e 100644
--- a/regression_test/logger/logtest/Titan_LogTestDefinitions.ttcn
+++ b/regression_test/logger/logtest/Titan_LogTestDefinitions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_ACTION.cfg b/regression_test/logger/logtest/Titan_LogTest_ACTION.cfg
index 76f884cda..077c6f4de 100644
--- a/regression_test/logger/logtest/Titan_LogTest_ACTION.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_ACTION.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_ACTIONplusEXECUTOR_RT.cfg b/regression_test/logger/logtest/Titan_LogTest_ACTIONplusEXECUTOR_RT.cfg
index 2fb0a63ed..1e8c2bef9 100644
--- a/regression_test/logger/logtest/Titan_LogTest_ACTIONplusEXECUTOR_RT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_ACTIONplusEXECUTOR_RT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_DEBUG.cfg b/regression_test/logger/logtest/Titan_LogTest_DEBUG.cfg
index 207c6ca2b..377f4ea34 100644
--- a/regression_test/logger/logtest/Titan_LogTest_DEBUG.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_DEBUG.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_DEFAULT_OPplusEXECUTOR_RT.cfg b/regression_test/logger/logtest/Titan_LogTest_DEFAULT_OPplusEXECUTOR_RT.cfg
index 40af07148..67cff25e9 100644
--- a/regression_test/logger/logtest/Titan_LogTest_DEFAULT_OPplusEXECUTOR_RT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_DEFAULT_OPplusEXECUTOR_RT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_ERRORplusRT.cfg b/regression_test/logger/logtest/Titan_LogTest_ERRORplusRT.cfg
index 3a7f3b501..73d5bf924 100644
--- a/regression_test/logger/logtest/Titan_LogTest_ERRORplusRT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_ERRORplusRT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_LOGOPT.cfg b/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_LOGOPT.cfg
index 4a61e5c17..9d290c7a1 100644
--- a/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_LOGOPT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_LOGOPT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusCOMP.cfg b/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusCOMP.cfg
index e3259ff32..797cb9781 100644
--- a/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusCOMP.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusCOMP.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusLOGOPT.cfg b/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusLOGOPT.cfg
index 343fda836..c63356ed5 100644
--- a/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusLOGOPT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_EXECUTOR_RTplusLOGOPT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_EXEC_RT.cfg b/regression_test/logger/logtest/Titan_LogTest_EXEC_RT.cfg
index 160890af6..3e7cedfd7 100644
--- a/regression_test/logger/logtest/Titan_LogTest_EXEC_RT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_EXEC_RT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_EX_UNQUAL.cfg b/regression_test/logger/logtest/Titan_LogTest_EX_UNQUAL.cfg
index a742e88a9..9adbe02be 100644
--- a/regression_test/logger/logtest/Titan_LogTest_EX_UNQUAL.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_EX_UNQUAL.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_E_RTplus_E_CONFIGDATA.cfg b/regression_test/logger/logtest/Titan_LogTest_E_RTplus_E_CONFIGDATA.cfg
index c5752ea6a..40cdf4975 100644
--- a/regression_test/logger/logtest/Titan_LogTest_E_RTplus_E_CONFIGDATA.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_E_RTplus_E_CONFIGDATA.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_FUNC.cfg b/regression_test/logger/logtest/Titan_LogTest_FUNC.cfg
index 0b0c301be..36cd230c6 100644
--- a/regression_test/logger/logtest/Titan_LogTest_FUNC.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_FUNC.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_MATCH.cfg b/regression_test/logger/logtest/Titan_LogTest_MATCH.cfg
index 595d73a24..65d5c1518 100644
--- a/regression_test/logger/logtest/Titan_LogTest_MATCH.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_MATCH.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_PARALLEL.cfg b/regression_test/logger/logtest/Titan_LogTest_PARALLEL.cfg
index d1a4f1df9..dd0423429 100644
--- a/regression_test/logger/logtest/Titan_LogTest_PARALLEL.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_PARALLEL.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_PORTEVENT.cfg b/regression_test/logger/logtest/Titan_LogTest_PORTEVENT.cfg
index 84c4d93da..53cb4bd34 100644
--- a/regression_test/logger/logtest/Titan_LogTest_PORTEVENT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_PORTEVENT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_STAT.cfg b/regression_test/logger/logtest/Titan_LogTest_STAT.cfg
index 4e5b5c46e..8840c6c75 100644
--- a/regression_test/logger/logtest/Titan_LogTest_STAT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_STAT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_TC.cfg b/regression_test/logger/logtest/Titan_LogTest_TC.cfg
index 7598c66bb..4e9515f6d 100644
--- a/regression_test/logger/logtest/Titan_LogTest_TC.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_TC.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_TIMER.cfg b/regression_test/logger/logtest/Titan_LogTest_TIMER.cfg
index 5c886d670..6f1bd8dd8 100644
--- a/regression_test/logger/logtest/Titan_LogTest_TIMER.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_TIMER.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_TTCN_ACTION.cfg b/regression_test/logger/logtest/Titan_LogTest_TTCN_ACTION.cfg
index 2d1b63f53..dcf8d16f6 100644
--- a/regression_test/logger/logtest/Titan_LogTest_TTCN_ACTION.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_TTCN_ACTION.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_USER.cfg b/regression_test/logger/logtest/Titan_LogTest_USER.cfg
index 02a6357a6..a9d14da3d 100644
--- a/regression_test/logger/logtest/Titan_LogTest_USER.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_USER.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_VERDICT.cfg b/regression_test/logger/logtest/Titan_LogTest_VERDICT.cfg
index ccb0d3ad5..a246c8ce5 100644
--- a/regression_test/logger/logtest/Titan_LogTest_VERDICT.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_VERDICT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/Titan_LogTest_WARNING.cfg b/regression_test/logger/logtest/Titan_LogTest_WARNING.cfg
index dfeaff2e5..bb8a1da66 100644
--- a/regression_test/logger/logtest/Titan_LogTest_WARNING.cfg
+++ b/regression_test/logger/logtest/Titan_LogTest_WARNING.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/logtest.sh b/regression_test/logger/logtest/logtest.sh
index 59d26ddfe..f629e0191 100755
--- a/regression_test/logger/logtest/logtest.sh
+++ b/regression_test/logger/logtest/logtest.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/original_merged_log.txt b/regression_test/logger/logtest/original_merged_log.txt
index d2c6885f8..f8c8f807c 100644
--- a/regression_test/logger/logtest/original_merged_log.txt
+++ b/regression_test/logger/logtest/original_merged_log.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger/logtest/original_merged_log_modified.txt b/regression_test/logger/logtest/original_merged_log_modified.txt
index 31a024994..df4319f9b 100644
--- a/regression_test/logger/logtest/original_merged_log_modified.txt
+++ b/regression_test/logger/logtest/original_merged_log_modified.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger_control/Makefile b/regression_test/logger_control/Makefile
index 3b08888eb..d73469f8c 100644
--- a/regression_test/logger_control/Makefile
+++ b/regression_test/logger_control/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger_control/config.cfg b/regression_test/logger_control/config.cfg
index 4c9d12710..fdb8da4a8 100644
--- a/regression_test/logger_control/config.cfg
+++ b/regression_test/logger_control/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/logger_control/logcontrol.ttcn b/regression_test/logger_control/logcontrol.ttcn
index 01a4474df..e8925cf1b 100644
--- a/regression_test/logger_control/logcontrol.ttcn
+++ b/regression_test/logger_control/logcontrol.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/loggerplugin/Makefile b/regression_test/loggerplugin/Makefile
index 43bc7810f..c583c6164 100644
--- a/regression_test/loggerplugin/Makefile
+++ b/regression_test/loggerplugin/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/loggerplugin/a.ttcn b/regression_test/loggerplugin/a.ttcn
index c8508cace..409df5f56 100644
--- a/regression_test/loggerplugin/a.ttcn
+++ b/regression_test/loggerplugin/a.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/loggerplugin/config.cfg b/regression_test/loggerplugin/config.cfg
index b3ff3ef64..6ed5a7fc7 100644
--- a/regression_test/loggerplugin/config.cfg
+++ b/regression_test/loggerplugin/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/lostTimer/Makefile b/regression_test/lostTimer/Makefile
index e82c9382d..2f9906684 100644
--- a/regression_test/lostTimer/Makefile
+++ b/regression_test/lostTimer/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/lostTimer/TlostTimer.ttcn b/regression_test/lostTimer/TlostTimer.ttcn
index 7180e6d7e..9aa6e5089 100644
--- a/regression_test/lostTimer/TlostTimer.ttcn
+++ b/regression_test/lostTimer/TlostTimer.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -13,14 +13,11 @@ type component CT {
 
 testcase tc1() runs on CT
 {
-  log(T1);
   T1.start;
   T2.start;
-  log(T2);
   T2.timeout;
   if (T1.read != 0.0) { setverdict(fail); }
   if (T1.running) { setverdict(fail); }
-  log(T1);
   alt {
     [] any timer.timeout { setverdict(pass); }
     [else] { setverdict(fail); }
diff --git a/regression_test/lostTimer/config.cfg b/regression_test/lostTimer/config.cfg
index e9cf294f7..afc9d2a1c 100644
--- a/regression_test/lostTimer/config.cfg
+++ b/regression_test/lostTimer/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/macros/Macros.ttcn b/regression_test/macros/Macros.ttcn
index f95d01825..54206f35f 100644
--- a/regression_test/macros/Macros.ttcn
+++ b/regression_test/macros/Macros.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/macros/Makefile b/regression_test/macros/Makefile
index 17e4fda72..af93ed160 100644
--- a/regression_test/macros/Makefile
+++ b/regression_test/macros/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/macros/config.cfg b/regression_test/macros/config.cfg
index bee48a503..7595556a6 100644
--- a/regression_test/macros/config.cfg
+++ b/regression_test/macros/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/modifiedTemplate/Makefile b/regression_test/modifiedTemplate/Makefile
index f2e159c7b..0035929ab 100644
--- a/regression_test/modifiedTemplate/Makefile
+++ b/regression_test/modifiedTemplate/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/modifiedTemplate/TmodifiedTemplate.ttcn b/regression_test/modifiedTemplate/TmodifiedTemplate.ttcn
index 115046921..0a9688b80 100644
--- a/regression_test/modifiedTemplate/TmodifiedTemplate.ttcn
+++ b/regression_test/modifiedTemplate/TmodifiedTemplate.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/modifiedTemplate/config.cfg b/regression_test/modifiedTemplate/config.cfg
index c517d5687..16540d41c 100644
--- a/regression_test/modifiedTemplate/config.cfg
+++ b/regression_test/modifiedTemplate/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/namedActualParameters/Makefile b/regression_test/namedActualParameters/Makefile
index b1ae74b2f..b0e1bd5cc 100644
--- a/regression_test/namedActualParameters/Makefile
+++ b/regression_test/namedActualParameters/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/namedActualParameters/config.cfg b/regression_test/namedActualParameters/config.cfg
index f695ffd3a..d53a6ebb5 100644
--- a/regression_test/namedActualParameters/config.cfg
+++ b/regression_test/namedActualParameters/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/namedActualParameters/inlinetemplate.ttcn b/regression_test/namedActualParameters/inlinetemplate.ttcn
index 8a92f9313..13f587f72 100644
--- a/regression_test/namedActualParameters/inlinetemplate.ttcn
+++ b/regression_test/namedActualParameters/inlinetemplate.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/namedActualParameters/namedparam.ttcn b/regression_test/namedActualParameters/namedparam.ttcn
index d79aef001..4d7f1a383 100644
--- a/regression_test/namedActualParameters/namedparam.ttcn
+++ b/regression_test/namedActualParameters/namedparam.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/namedActualParameters/small.ttcn b/regression_test/namedActualParameters/small.ttcn
index 8c448430a..96d6a53e2 100644
--- a/regression_test/namedActualParameters/small.ttcn
+++ b/regression_test/namedActualParameters/small.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/namedActualParameters/templates.ttcn b/regression_test/namedActualParameters/templates.ttcn
index 92a510c35..6d40500e2 100644
--- a/regression_test/namedActualParameters/templates.ttcn
+++ b/regression_test/namedActualParameters/templates.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/Makefile b/regression_test/negativeTest/Makefile
index 5a3b24a84..d54e12aa1 100755
--- a/regression_test/negativeTest/Makefile
+++ b/regression_test/negativeTest/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/NegTest.cfg b/regression_test/negativeTest/NegTest.cfg
index 23c801100..37f0d4e53 100644
--- a/regression_test/negativeTest/NegTest.cfg
+++ b/regression_test/negativeTest/NegTest.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/NegTestTestcases.ttcn b/regression_test/negativeTest/NegTestTestcases.ttcn
index 9f87adc84..5f0e1fc5b 100644
--- a/regression_test/negativeTest/NegTestTestcases.ttcn
+++ b/regression_test/negativeTest/NegTestTestcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/NegTestTypes.asn b/regression_test/negativeTest/NegTestTypes.asn
index 2bc01c284..5e52d613c 100644
--- a/regression_test/negativeTest/NegTestTypes.asn
+++ b/regression_test/negativeTest/NegTestTypes.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/negativeTest/NegTest_RAW.cfg b/regression_test/negativeTest/NegTest_RAW.cfg
index c4a289df2..e571ccedb 100644
--- a/regression_test/negativeTest/NegTest_RAW.cfg
+++ b/regression_test/negativeTest/NegTest_RAW.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/NegTest_RAW_Testcases.ttcn b/regression_test/negativeTest/NegTest_RAW_Testcases.ttcn
index abc0c2e17..301809a4a 100644
--- a/regression_test/negativeTest/NegTest_RAW_Testcases.ttcn
+++ b/regression_test/negativeTest/NegTest_RAW_Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/NegTest_RAW_Types.ttcn b/regression_test/negativeTest/NegTest_RAW_Types.ttcn
index 4b37a184a..b3f64e837 100644
--- a/regression_test/negativeTest/NegTest_RAW_Types.ttcn
+++ b/regression_test/negativeTest/NegTest_RAW_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/NegTest_TEXT.cfg b/regression_test/negativeTest/NegTest_TEXT.cfg
index 4988e23bb..93c423b1c 100644
--- a/regression_test/negativeTest/NegTest_TEXT.cfg
+++ b/regression_test/negativeTest/NegTest_TEXT.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/NegTest_TEXT_Testcases.ttcn b/regression_test/negativeTest/NegTest_TEXT_Testcases.ttcn
index f1e048eca..eccd83666 100644
--- a/regression_test/negativeTest/NegTest_TEXT_Testcases.ttcn
+++ b/regression_test/negativeTest/NegTest_TEXT_Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/NegTest_TEXT_Types.ttcn b/regression_test/negativeTest/NegTest_TEXT_Types.ttcn
index 250ff29a9..a73577004 100644
--- a/regression_test/negativeTest/NegTest_TEXT_Types.ttcn
+++ b/regression_test/negativeTest/NegTest_TEXT_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/NegTest_XML.cfg b/regression_test/negativeTest/NegTest_XML.cfg
index b59cb6c3a..0f8da48e0 100644
--- a/regression_test/negativeTest/NegTest_XML.cfg
+++ b/regression_test/negativeTest/NegTest_XML.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/NegTest_XML_Testcases.ttcn b/regression_test/negativeTest/NegTest_XML_Testcases.ttcn
index aa7886681..53c835211 100644
--- a/regression_test/negativeTest/NegTest_XML_Testcases.ttcn
+++ b/regression_test/negativeTest/NegTest_XML_Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/NegTest_XML_Types.xsd b/regression_test/negativeTest/NegTest_XML_Types.xsd
index 4f5aa57d7..7c6372872 100644
--- a/regression_test/negativeTest/NegTest_XML_Types.xsd
+++ b/regression_test/negativeTest/NegTest_XML_Types.xsd
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/regression_test/negativeTest/NegTest_all.cfg b/regression_test/negativeTest/NegTest_all.cfg
index 09fc3b3fe..daf7f270c 100644
--- a/regression_test/negativeTest/NegTest_all.cfg
+++ b/regression_test/negativeTest/NegTest_all.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/Types.asn b/regression_test/negativeTest/Types.asn
index df3b7888f..d7343d631 100755
--- a/regression_test/negativeTest/Types.asn
+++ b/regression_test/negativeTest/Types.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/negativeTest/UsefulTtcn3Types.ttcn b/regression_test/negativeTest/UsefulTtcn3Types.ttcn
index e680ab0eb..bac9ef501 100644
--- a/regression_test/negativeTest/UsefulTtcn3Types.ttcn
+++ b/regression_test/negativeTest/UsefulTtcn3Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/XSD.ttcn b/regression_test/negativeTest/XSD.ttcn
index 8ee4fc267..d35abb763 100644
--- a/regression_test/negativeTest/XSD.ttcn
+++ b/regression_test/negativeTest/XSD.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/config.cfg b/regression_test/negativeTest/config.cfg
index 97456d741..fdd4a7dc8 100755
--- a/regression_test/negativeTest/config.cfg
+++ b/regression_test/negativeTest/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/negativeTest/negtest.ttcn b/regression_test/negativeTest/negtest.ttcn
index 58155bea8..e9d707be9 100755
--- a/regression_test/negativeTest/negtest.ttcn
+++ b/regression_test/negativeTest/negtest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/negativeTest/www_XmlTest_org_negativeTest_XML_Types.ttcn b/regression_test/negativeTest/www_XmlTest_org_negativeTest_XML_Types.ttcn
index 2a6ea6ce0..d3013709b 100644
--- a/regression_test/negativeTest/www_XmlTest_org_negativeTest_XML_Types.ttcn
+++ b/regression_test/negativeTest/www_XmlTest_org_negativeTest_XML_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/nonMandatoryPar/Makefile b/regression_test/nonMandatoryPar/Makefile
index 44f1c7c2b..a9a7ffe48 100644
--- a/regression_test/nonMandatoryPar/Makefile
+++ b/regression_test/nonMandatoryPar/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/nonMandatoryPar/PCOType.cc b/regression_test/nonMandatoryPar/PCOType.cc
index 06b0d5ba4..de3e2fefc 100644
--- a/regression_test/nonMandatoryPar/PCOType.cc
+++ b/regression_test/nonMandatoryPar/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/nonMandatoryPar/PCOType.hh b/regression_test/nonMandatoryPar/PCOType.hh
index bd82a663c..c4d906669 100644
--- a/regression_test/nonMandatoryPar/PCOType.hh
+++ b/regression_test/nonMandatoryPar/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/nonMandatoryPar/TnonMandatory.ttcn b/regression_test/nonMandatoryPar/TnonMandatory.ttcn
index 5f678faab..4aaa4e2b9 100644
--- a/regression_test/nonMandatoryPar/TnonMandatory.ttcn
+++ b/regression_test/nonMandatoryPar/TnonMandatory.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/nonMandatoryPar/config.cfg b/regression_test/nonMandatoryPar/config.cfg
index 527de29ad..47feb42c5 100644
--- a/regression_test/nonMandatoryPar/config.cfg
+++ b/regression_test/nonMandatoryPar/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/objidOper/Makefile b/regression_test/objidOper/Makefile
index a98a0a181..baabc430a 100644
--- a/regression_test/objidOper/Makefile
+++ b/regression_test/objidOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/objidOper/TobjidOper.ttcn b/regression_test/objidOper/TobjidOper.ttcn
index a66beec19..7247fdd83 100644
--- a/regression_test/objidOper/TobjidOper.ttcn
+++ b/regression_test/objidOper/TobjidOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -172,9 +172,7 @@ testcase encdec() runs on objidOper_comptype
   else { setverdict(fail, match(oi, c_0_1_infinity)); }
 
   os := enco(c_bits);
-  log(os);
   oi := deco(os);
-  log(oi);
 
   if (sizeof(oi) != sizeof(c_bits)) {
     setverdict(fail, "Number of objid components: ",
@@ -192,9 +190,7 @@ testcase encdec() runs on objidOper_comptype
   }
 
   os := enco(c_pow2);
-  log(os);
   oi := deco(os);
-  log(oi);
 
   if (sizeof(oi) != sizeof(c_pow2)) {
     setverdict(fail, "Number of objid components: ",
@@ -221,7 +217,6 @@ testcase objidWithVars() runs on objidOper_comptype
   var integer v4 := -87;
   const integer c1 := 0;
   var objid o1 := objid { c1 v1 };
-  log(o1);
 
   if (o1 == objid { 0 1 }) { setverdict(pass); }
   else { setverdict(fail, o1, " != ", objid { 0 1 }); }
@@ -246,8 +241,6 @@ testcase objidWithVars() runs on objidOper_comptype
   }
 
   var template objid to1 := (objid { 0 1 6 }, objid { v1 6 v3 });
-  log(to1);
-  log(sizeof(to1));
 
   if (match(objid { 1 6 v3 }, to1)) { setverdict(pass); }
   else { setverdict(fail, objid { 1 6 v3 }, " doesn't match ", to1); }
diff --git a/regression_test/objidOper/config.cfg b/regression_test/objidOper/config.cfg
index 7a0c1a6f1..df5579261 100644
--- a/regression_test/objidOper/config.cfg
+++ b/regression_test/objidOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/objidOper/indexer.cc b/regression_test/objidOper/indexer.cc
index 34ef38b51..b46dea388 100644
--- a/regression_test/objidOper/indexer.cc
+++ b/regression_test/objidOper/indexer.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/octetstrOper/Makefile b/regression_test/octetstrOper/Makefile
index e4423cb57..fca6f33dc 100644
--- a/regression_test/octetstrOper/Makefile
+++ b/regression_test/octetstrOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/octetstrOper/ToctetstrOper.ttcn b/regression_test/octetstrOper/ToctetstrOper.ttcn
index 62dce3e8a..9021d6653 100644
--- a/regression_test/octetstrOper/ToctetstrOper.ttcn
+++ b/regression_test/octetstrOper/ToctetstrOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -269,7 +269,6 @@ testcase octetstrXor_str_str() runs on octetstrOper_comptype
   x1:='ACDE9833'O;
   x2:='B8352765'O;
   x3:=x1 xor4b x2;
-  log(x3);
   if (x3=='14EBBF56'O) {setverdict(pass);}
      else {setverdict(fail);}
 }
diff --git a/regression_test/octetstrOper/config.cfg b/regression_test/octetstrOper/config.cfg
index 0cad032de..c9875a85b 100644
--- a/regression_test/octetstrOper/config.cfg
+++ b/regression_test/octetstrOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/omitdef/Datatypes.asn b/regression_test/omitdef/Datatypes.asn
index 799a71dc0..e57a95453 100644
--- a/regression_test/omitdef/Datatypes.asn
+++ b/regression_test/omitdef/Datatypes.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/omitdef/Dumping.hh b/regression_test/omitdef/Dumping.hh
index fee7725a3..19ed2185c 100644
--- a/regression_test/omitdef/Dumping.hh
+++ b/regression_test/omitdef/Dumping.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/omitdef/Makefile b/regression_test/omitdef/Makefile
index 495dc71c3..d9a3b5029 100644
--- a/regression_test/omitdef/Makefile
+++ b/regression_test/omitdef/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/omitdef/PT_DefOpt.cc b/regression_test/omitdef/PT_DefOpt.cc
index c83c7e40a..e38e78dff 100644
--- a/regression_test/omitdef/PT_DefOpt.cc
+++ b/regression_test/omitdef/PT_DefOpt.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/omitdef/PT_DefOpt.hh b/regression_test/omitdef/PT_DefOpt.hh
index ccef3dd70..ac6c306a2 100644
--- a/regression_test/omitdef/PT_DefOpt.hh
+++ b/regression_test/omitdef/PT_DefOpt.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/omitdef/Tsenderos.ttcn b/regression_test/omitdef/Tsenderos.ttcn
index d937b1799..ea1fcb0dd 100644
--- a/regression_test/omitdef/Tsenderos.ttcn
+++ b/regression_test/omitdef/Tsenderos.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/omitdef/config.cfg b/regression_test/omitdef/config.cfg
index 44f4a33c1..4e3ef963c 100644
--- a/regression_test/omitdef/config.cfg
+++ b/regression_test/omitdef/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/pattern_quadruples/Makefile b/regression_test/pattern_quadruples/Makefile
index 3e37617be..7756306ff 100644
--- a/regression_test/pattern_quadruples/Makefile
+++ b/regression_test/pattern_quadruples/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/pattern_quadruples/config.cfg b/regression_test/pattern_quadruples/config.cfg
index 4e6737124..f028858ef 100644
--- a/regression_test/pattern_quadruples/config.cfg
+++ b/regression_test/pattern_quadruples/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/pattern_quadruples/pattern_quadruples.ttcn b/regression_test/pattern_quadruples/pattern_quadruples.ttcn
index 865cee031..f83d631fa 100644
--- a/regression_test/pattern_quadruples/pattern_quadruples.ttcn
+++ b/regression_test/pattern_quadruples/pattern_quadruples.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/preCompilerFlags/Makefile b/regression_test/preCompilerFlags/Makefile
index b1fc898d6..3bbcb964a 100644
--- a/regression_test/preCompilerFlags/Makefile
+++ b/regression_test/preCompilerFlags/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/preCompilerFlags/TpreCompilerFlags.ttcnpp b/regression_test/preCompilerFlags/TpreCompilerFlags.ttcnpp
index 7f86de75e..9444f9e16 100755
--- a/regression_test/preCompilerFlags/TpreCompilerFlags.ttcnpp
+++ b/regression_test/preCompilerFlags/TpreCompilerFlags.ttcnpp
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/preCompilerFlags/config.cfg b/regression_test/preCompilerFlags/config.cfg
index 5f14b6407..29cb4d0e8 100755
--- a/regression_test/preCompilerFlags/config.cfg
+++ b/regression_test/preCompilerFlags/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/predefFunction/Makefile b/regression_test/predefFunction/Makefile
index 212243956..2de616eca 100644
--- a/regression_test/predefFunction/Makefile
+++ b/regression_test/predefFunction/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/predefFunction/PreDef.cfg b/regression_test/predefFunction/PreDef.cfg
index 595329510..9bc5f8f47 100644
--- a/regression_test/predefFunction/PreDef.cfg
+++ b/regression_test/predefFunction/PreDef.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/predefFunction/bit_to_OK.ttcn b/regression_test/predefFunction/bit_to_OK.ttcn
index 43c5ca762..c4a5f85ae 100644
--- a/regression_test/predefFunction/bit_to_OK.ttcn
+++ b/regression_test/predefFunction/bit_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/bit_to_SW.ttcn b/regression_test/predefFunction/bit_to_SW.ttcn
index 78bb7c9ed..22f4aba4d 100644
--- a/regression_test/predefFunction/bit_to_SW.ttcn
+++ b/regression_test/predefFunction/bit_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/char_to_OK.ttcn b/regression_test/predefFunction/char_to_OK.ttcn
index d1c51fba7..95978d48e 100644
--- a/regression_test/predefFunction/char_to_OK.ttcn
+++ b/regression_test/predefFunction/char_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/char_to_SW.ttcn b/regression_test/predefFunction/char_to_SW.ttcn
index e8ec62f3d..36893da96 100644
--- a/regression_test/predefFunction/char_to_SW.ttcn
+++ b/regression_test/predefFunction/char_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/encdec_OK.ttcn b/regression_test/predefFunction/encdec_OK.ttcn
index 7e58a354a..5aa3c9d5c 100644
--- a/regression_test/predefFunction/encdec_OK.ttcn
+++ b/regression_test/predefFunction/encdec_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/enum_to_OK.ttcn b/regression_test/predefFunction/enum_to_OK.ttcn
index 2c573739a..f1464a340 100644
--- a/regression_test/predefFunction/enum_to_OK.ttcn
+++ b/regression_test/predefFunction/enum_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/enum_to_SW.ttcn b/regression_test/predefFunction/enum_to_SW.ttcn
index 7ce8f579f..0cd4039c3 100644
--- a/regression_test/predefFunction/enum_to_SW.ttcn
+++ b/regression_test/predefFunction/enum_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/float_to_OK.ttcn b/regression_test/predefFunction/float_to_OK.ttcn
index a2e5e2b20..597ea115b 100644
--- a/regression_test/predefFunction/float_to_OK.ttcn
+++ b/regression_test/predefFunction/float_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/float_to_SW.ttcn b/regression_test/predefFunction/float_to_SW.ttcn
index c146a3ad8..0335ffa77 100644
--- a/regression_test/predefFunction/float_to_SW.ttcn
+++ b/regression_test/predefFunction/float_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/hex_to_OK.ttcn b/regression_test/predefFunction/hex_to_OK.ttcn
index 5ff122148..d9fd32e52 100644
--- a/regression_test/predefFunction/hex_to_OK.ttcn
+++ b/regression_test/predefFunction/hex_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/hex_to_SW.ttcn b/regression_test/predefFunction/hex_to_SW.ttcn
index 3402dab75..85a9672d3 100644
--- a/regression_test/predefFunction/hex_to_SW.ttcn
+++ b/regression_test/predefFunction/hex_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/int_to_OK.ttcn b/regression_test/predefFunction/int_to_OK.ttcn
index 0a1b53685..d7105a31f 100644
--- a/regression_test/predefFunction/int_to_OK.ttcn
+++ b/regression_test/predefFunction/int_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/int_to_SW.ttcn b/regression_test/predefFunction/int_to_SW.ttcn
index fb23578b4..31072008b 100644
--- a/regression_test/predefFunction/int_to_SW.ttcn
+++ b/regression_test/predefFunction/int_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/isprecho_OK.ttcn b/regression_test/predefFunction/isprecho_OK.ttcn
index 82d0b0cde..4eed6d62d 100644
--- a/regression_test/predefFunction/isprecho_OK.ttcn
+++ b/regression_test/predefFunction/isprecho_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/length_of_OK.ttcn b/regression_test/predefFunction/length_of_OK.ttcn
index 33f3a8e3b..f2700f775 100644
--- a/regression_test/predefFunction/length_of_OK.ttcn
+++ b/regression_test/predefFunction/length_of_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/length_of_SW.ttcn b/regression_test/predefFunction/length_of_SW.ttcn
index 30ae4c926..ebee2eae3 100644
--- a/regression_test/predefFunction/length_of_SW.ttcn
+++ b/regression_test/predefFunction/length_of_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/oct_to_OK.ttcn b/regression_test/predefFunction/oct_to_OK.ttcn
index 2a7fd45d7..e7b7bc854 100644
--- a/regression_test/predefFunction/oct_to_OK.ttcn
+++ b/regression_test/predefFunction/oct_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/oct_to_SW.ttcn b/regression_test/predefFunction/oct_to_SW.ttcn
index c295b225c..67207165a 100644
--- a/regression_test/predefFunction/oct_to_SW.ttcn
+++ b/regression_test/predefFunction/oct_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/regex_OK.ttcn b/regression_test/predefFunction/regex_OK.ttcn
index 7c50562dd..da2131fa5 100644
--- a/regression_test/predefFunction/regex_OK.ttcn
+++ b/regression_test/predefFunction/regex_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/replacer_OK.ttcn b/regression_test/predefFunction/replacer_OK.ttcn
index b14884baa..3ea5d9b84 100644
--- a/regression_test/predefFunction/replacer_OK.ttcn
+++ b/regression_test/predefFunction/replacer_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/replacer_SW.ttcn b/regression_test/predefFunction/replacer_SW.ttcn
index c9ac1a2b7..53dda9333 100644
--- a/regression_test/predefFunction/replacer_SW.ttcn
+++ b/regression_test/predefFunction/replacer_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/rotter_OK.ttcn b/regression_test/predefFunction/rotter_OK.ttcn
index e42ef0087..06560bc23 100644
--- a/regression_test/predefFunction/rotter_OK.ttcn
+++ b/regression_test/predefFunction/rotter_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/rotter_SW.ttcn b/regression_test/predefFunction/rotter_SW.ttcn
index 8d73855cc..157a1b603 100644
--- a/regression_test/predefFunction/rotter_SW.ttcn
+++ b/regression_test/predefFunction/rotter_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/shifty_OK.ttcn b/regression_test/predefFunction/shifty_OK.ttcn
index 308c520f9..220d65a5c 100644
--- a/regression_test/predefFunction/shifty_OK.ttcn
+++ b/regression_test/predefFunction/shifty_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/shifty_SW.ttcn b/regression_test/predefFunction/shifty_SW.ttcn
index b21e0550b..e0af96fbb 100644
--- a/regression_test/predefFunction/shifty_SW.ttcn
+++ b/regression_test/predefFunction/shifty_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/size_of_OK.ttcn b/regression_test/predefFunction/size_of_OK.ttcn
index a15731da8..3e8794154 100644
--- a/regression_test/predefFunction/size_of_OK.ttcn
+++ b/regression_test/predefFunction/size_of_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/size_of_SW.ttcn b/regression_test/predefFunction/size_of_SW.ttcn
index 7da8e6009..be0b46822 100644
--- a/regression_test/predefFunction/size_of_SW.ttcn
+++ b/regression_test/predefFunction/size_of_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/str_to_OK.ttcn b/regression_test/predefFunction/str_to_OK.ttcn
index c61543413..7c9acfa61 100644
--- a/regression_test/predefFunction/str_to_OK.ttcn
+++ b/regression_test/predefFunction/str_to_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/str_to_SW.ttcn b/regression_test/predefFunction/str_to_SW.ttcn
index f5db382ad..5b92ccb49 100644
--- a/regression_test/predefFunction/str_to_SW.ttcn
+++ b/regression_test/predefFunction/str_to_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/sub_str_OK.ttcn b/regression_test/predefFunction/sub_str_OK.ttcn
index 72ae19eed..2d4e660d3 100644
--- a/regression_test/predefFunction/sub_str_OK.ttcn
+++ b/regression_test/predefFunction/sub_str_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/sub_str_SW.ttcn b/regression_test/predefFunction/sub_str_SW.ttcn
index 91072a57e..5587a2fde 100644
--- a/regression_test/predefFunction/sub_str_SW.ttcn
+++ b/regression_test/predefFunction/sub_str_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/tcname_OK.ttcn b/regression_test/predefFunction/tcname_OK.ttcn
index 19a0ead56..920b0402b 100644
--- a/regression_test/predefFunction/tcname_OK.ttcn
+++ b/regression_test/predefFunction/tcname_OK.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/predefFunction/tcname_SW.ttcn b/regression_test/predefFunction/tcname_SW.ttcn
index 645d42fff..b40bf0abf 100644
--- a/regression_test/predefFunction/tcname_SW.ttcn
+++ b/regression_test/predefFunction/tcname_SW.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/prereq.pl b/regression_test/prereq.pl
index 4188756d0..1ef3d72d8 100755
--- a/regression_test/prereq.pl
+++ b/regression_test/prereq.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -wT
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/profiler/Makefile b/regression_test/profiler/Makefile
index 58a458012..8defed6bb 100755
--- a/regression_test/profiler/Makefile
+++ b/regression_test/profiler/Makefile
@@ -43,7 +43,8 @@ PROF_OBJECTS = $(PROF_GENERATED_SOURCES:.cc=.o)
 
 PROF_TARGET = prof.exe
 
-TEMP_FILES = $(PROF_GENERATED_SOURCES) $(PROF_GENERATED_HEADERS) $(PROF_OBJECTS) $(PROF_TARGET) data.json prof1.stats empty.stats
+TEMP_FILES = $(PROF_GENERATED_SOURCES) $(PROF_GENERATED_HEADERS) $(PROF_OBJECTS) $(PROF_TARGET) \
+data.json data2.json data3.json prof1.stats empty.stats double.json double.stats merged.json merged.stats
 
 # Rules for tester modules
 all: $(TARGET)
diff --git a/regression_test/profiler/PIPEasp_PT.cc b/regression_test/profiler/PIPEasp_PT.cc
index 2b57a1698..ea6fbf86c 100644
--- a/regression_test/profiler/PIPEasp_PT.cc
+++ b/regression_test/profiler/PIPEasp_PT.cc
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000-2014 Ericsson Telecom AB
+* 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
diff --git a/regression_test/profiler/PIPEasp_PT.hh b/regression_test/profiler/PIPEasp_PT.hh
index df7624021..47c44bb20 100644
--- a/regression_test/profiler/PIPEasp_PT.hh
+++ b/regression_test/profiler/PIPEasp_PT.hh
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000-2014 Ericsson Telecom AB
+* 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
diff --git a/regression_test/profiler/PIPEasp_PortType.ttcn b/regression_test/profiler/PIPEasp_PortType.ttcn
index 1d43b6fa8..afaf5b9a1 100644
--- a/regression_test/profiler/PIPEasp_PortType.ttcn
+++ b/regression_test/profiler/PIPEasp_PortType.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/profiler/PIPEasp_Templates.ttcn b/regression_test/profiler/PIPEasp_Templates.ttcn
index 988bd4824..ead0f96cc 100644
--- a/regression_test/profiler/PIPEasp_Templates.ttcn
+++ b/regression_test/profiler/PIPEasp_Templates.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/profiler/PIPEasp_Types.ttcn b/regression_test/profiler/PIPEasp_Types.ttcn
index da8ea94df..b63bccda1 100644
--- a/regression_test/profiler/PIPEasp_Types.ttcn
+++ b/regression_test/profiler/PIPEasp_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/profiler/Shell.ttcn b/regression_test/profiler/Shell.ttcn
index 0db58a134..0c08218ee 100644
--- a/regression_test/profiler/Shell.ttcn
+++ b/regression_test/profiler/Shell.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -47,7 +47,8 @@ type component mtc_CT {}
 
 const integer c_shell_successWithoutWarningAndError:=0;
 const integer c_shell_success := 0;
-const integer c_shell_successWithWarning:=1; //temp until licence is solved
+const integer c_shell_successWithWarning:=1;
+const integer c_shell_successWithoutError:=2;
 const integer c_shell_error:=256;
 const integer c_shell_error_noSuchFileOrDirectory:=512;
 
@@ -156,7 +157,8 @@ runs on Shell_CT
 
   var integer vl_expectedCode:=-1;
   if(pl_expected_result==c_shell_successWithoutWarningAndError or
-    pl_expected_result==c_shell_successWithWarning) {
+    pl_expected_result==c_shell_successWithWarning or
+    pl_expected_result==c_shell_successWithoutError) {
     vl_expectedCode:=0
   } else {
     vl_expectedCode:= pl_expected_result;
@@ -205,6 +207,16 @@ runs on Shell_CT
                 pl_success:=true;
               }
             }//case
+            case(c_shell_successWithoutError) {
+              vl_pattern:="*(Error|ERROR|error)*";
+              if(regexp(v_ASP_PResult.stderr,vl_pattern,0)!=""){
+                log("That is an unexpected Error!")
+                pl_success:=false;
+              } else {
+                log("No Error in the stderr string");
+                pl_success:=true;
+              }
+            }
             case(c_shell_error) {
               log("Command returned with ERROR as expected");
               pl_success:=true;
diff --git a/regression_test/profiler/Testcases.ttcn b/regression_test/profiler/Testcases.ttcn
index 67765a5d2..4f60bd072 100644
--- a/regression_test/profiler/Testcases.ttcn
+++ b/regression_test/profiler/Testcases.ttcn
@@ -12,11 +12,24 @@ import from Shell all;
 
 type record of charstring CharstringList;
 
+function f_compare_output_files(in CharstringList p_output_files,
+  in CharstringList p_exp_output_files) runs on Shell_CT
+{
+  var integer i;
+  for (i := 0; i < sizeof(p_output_files); i := i + 1) {
+    f_compareFiles(p_output_files[i], p_exp_output_files[i], 0);
+    if (getverdict != pass) {
+      action("Output file '" & p_output_files[i] & "' does not match the expected file '" &
+        p_exp_output_files[i] & "'");
+    }
+  }
+}
+
 function f_test_profiler(in charstring p_target_file, in charstring p_config_file,
   in CharstringList p_output_files, in CharstringList p_exp_output_files) runs on Shell_CT
 {
   // make the target (the makefile must have a rule for it)
-  f_shellCommandWithVerdict("make " & p_target_file, "", c_shell_successWithoutWarningAndError);
+  f_shellCommandWithVerdict("make " & p_target_file, "", c_shell_successWithoutError);
 
   if (getverdict == pass) {
     // run the executable with the specified configuration file
@@ -24,15 +37,7 @@ function f_test_profiler(in charstring p_target_file, in charstring p_config_fil
       c_shell_successWithoutWarningAndError);
     
     if (getverdict == pass) {
-      // compare the output files
-      var integer i;
-      for (i := 0; i < sizeof(p_output_files); i := i + 1) {
-        f_compareFiles(p_output_files[i], p_exp_output_files[i], 0);
-        if (getverdict != pass) {
-          action("Output file '" & p_output_files[i] & "' does not match the expected file '" &
-            p_exp_output_files[i] & "'");
-        }
-      }
+      f_compare_output_files(p_output_files, p_exp_output_files);
     }
     else {
       action("Failed to run target '", p_target_file, "', with configuration file '", p_config_file, "'");
@@ -43,6 +48,20 @@ function f_test_profiler(in charstring p_target_file, in charstring p_config_fil
   }
 }
 
+function f_test_profmerge(in charstring p_arguments, in CharstringList p_output_files,
+  in CharstringList p_exp_output_files) runs on Shell_CT
+{
+  // run the profmerge command
+  f_shellCommandWithVerdict("ttcn3_profmerge " & p_arguments, "",
+    c_shell_successWithoutWarningAndError);
+  if (getverdict == pass) {
+    f_compare_output_files(p_output_files, p_exp_output_files);
+  }
+  else {
+    action("Failed to run profmerge with arguments '", p_arguments, "'");
+  }
+}
+
 testcase tc_coverage() runs on Shell_CT
 {
   // only code coverage is done in this case, since that is exact, and the results can be checked with
@@ -65,10 +84,37 @@ testcase tc_profiling_and_coverage() runs on Shell_CT
   f_test_profiler("prof.exe", "prof3.cfg", { "empty.stats" }, { "empty_e.stats" } );
 }
 
+testcase tc_profmerge_double() runs on Shell_CT
+{
+  // the database file of the coverage-only test is merged with itself (values are doubled)
+  // the results can be compared, since they only contain coverage data and zero times
+  // all average time related statistics are filtered out (since they're all zeros),
+  // as well as all sorted statistics (since those are platform dependent)
+  f_test_profmerge("-s double.stats -o double.json -f 1800007 data.json data.json", 
+    { "double.json", "double.stats" }, { "double_e.json", "double_e.stats" } );
+}
+
+testcase tc_profmerge_all() runs on Shell_CT
+{
+  // the database files of the 3 profiler tests are merged (values are again doubled)
+  // profiler data is discarded (-p), so the results can be compared
+  // (the output database is the same as the previous test, the statistics file is not,
+  // since it contains no time data instead of zero times)
+  f_test_profmerge("-p -o merged.json -s merged.stats -f 1800007 data.json data2.json data3.json",
+    { "merged.json", "merged.stats" }, { "double_e.json", "merged_e.stats" } );
+}
+
 control {
-  execute(tc_coverage());
-  execute(tc_profiling());
-  execute(tc_profiling_and_coverage());
+  // the profmerge tests require the output files generated by the profiler tests
+  var verdicttype vt1 := execute(tc_coverage());
+  var verdicttype vt2 := execute(tc_profiling());
+  var verdicttype vt3 := execute(tc_profiling_and_coverage());
+  if (vt1 == pass) {
+    execute(tc_profmerge_double());
+  }
+  if (vt1 == pass and vt2 == pass and vt3 == pass) {
+    execute(tc_profmerge_all());
+  }
 }
 
 }
diff --git a/regression_test/profiler/data_e.json b/regression_test/profiler/data_e.json
index 4a1737eff..b972387bc 100644
--- a/regression_test/profiler/data_e.json
+++ b/regression_test/profiler/data_e.json
@@ -13,6 +13,12 @@
 				"start line" : 19,
 				"execution count" : 1,
 				"total time" : 0.000000
+			},
+			{
+				"name" : "control",
+				"start line" : 26,
+				"execution count" : 0,
+				"total time" : 0.000000
 			}
 		],
 		"lines" : [
@@ -55,6 +61,16 @@
 				"number" : 23,
 				"execution count" : 1,
 				"total time" : 0.000000
+			},
+			{
+				"number" : 26,
+				"execution count" : 0,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 27,
+				"execution count" : 0,
+				"total time" : 0.000000
 			}
 		]
 	},
@@ -78,6 +94,12 @@
 				"start line" : 24,
 				"execution count" : 1,
 				"total time" : 0.000000
+			},
+			{
+				"name" : "control",
+				"start line" : 32,
+				"execution count" : 0,
+				"total time" : 0.000000
 			}
 		],
 		"lines" : [
@@ -91,6 +113,11 @@
 				"execution count" : 2,
 				"total time" : 0.000000
 			},
+			{
+				"number" : 15,
+				"execution count" : 0,
+				"total time" : 0.000000
+			},
 			{
 				"number" : 18,
 				"execution count" : 2,
@@ -130,6 +157,16 @@
 				"number" : 29,
 				"execution count" : 1,
 				"total time" : 0.000000
+			},
+			{
+				"number" : 32,
+				"execution count" : 0,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 33,
+				"execution count" : 0,
+				"total time" : 0.000000
 			}
 		]
 	},
diff --git a/regression_test/profiler/double_e.json b/regression_test/profiler/double_e.json
new file mode 100644
index 000000000..00826b51d
--- /dev/null
+++ b/regression_test/profiler/double_e.json
@@ -0,0 +1,263 @@
+[
+	{
+		"file" : "prof1.ttcn",
+		"functions" : [
+			{
+				"name" : "f1",
+				"start line" : 15,
+				"execution count" : 6,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "tc1",
+				"start line" : 19,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "control",
+				"start line" : 26,
+				"execution count" : 0,
+				"total time" : 0.000000
+			}
+		],
+		"lines" : [
+			{
+				"number" : 13,
+				"execution count" : 6,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 15,
+				"execution count" : 6,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 16,
+				"execution count" : 6,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 19,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 20,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 21,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 22,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 23,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 26,
+				"execution count" : 0,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 27,
+				"execution count" : 0,
+				"total time" : 0.000000
+			}
+		]
+	},
+	{
+		"file" : "prof2.ttcn",
+		"functions" : [
+			{
+				"name" : "f2",
+				"start line" : 13,
+				"execution count" : 4,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "t1",
+				"start line" : 22,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "tc2",
+				"start line" : 24,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "control",
+				"start line" : 32,
+				"execution count" : 0,
+				"total time" : 0.000000
+			}
+		],
+		"lines" : [
+			{
+				"number" : 13,
+				"execution count" : 4,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 14,
+				"execution count" : 4,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 15,
+				"execution count" : 0,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 18,
+				"execution count" : 4,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 22,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 24,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 25,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 26,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 27,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 28,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 29,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 32,
+				"execution count" : 0,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 33,
+				"execution count" : 0,
+				"total time" : 0.000000
+			}
+		]
+	},
+	{
+		"file" : "prof3.ttcn",
+		"functions" : [
+			{
+				"name" : "f3",
+				"start line" : 14,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "tc3",
+				"start line" : 21,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"name" : "control",
+				"start line" : 31,
+				"execution count" : 2,
+				"total time" : 0.000000
+			}
+		],
+		"lines" : [
+			{
+				"number" : 14,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 16,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 17,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 18,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 21,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 23,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 24,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 25,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 26,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 27,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 28,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 31,
+				"execution count" : 2,
+				"total time" : 0.000000
+			},
+			{
+				"number" : 32,
+				"execution count" : 2,
+				"total time" : 0.000000
+			}
+		]
+	}
+]
diff --git a/regression_test/profiler/double_e.stats b/regression_test/profiler/double_e.stats
new file mode 100644
index 000000000..f3770c8da
--- /dev/null
+++ b/regression_test/profiler/double_e.stats
@@ -0,0 +1,84 @@
+##################################################
+## TTCN-3 profiler and code coverage statistics ##
+##################################################
+
+
+--------------------------------------
+- Number of code lines and functions -
+--------------------------------------
+prof1.ttcn:	10 lines,	3 functions
+prof2.ttcn:	13 lines,	4 functions
+prof3.ttcn:	13 lines,	3 functions
+--------------------------------------
+Total:	36 lines,	10 functions
+
+-------------------------------------------------
+- Code line data (total time / execution count) -
+-------------------------------------------------
+0.000000s	/	6	prof1.ttcn:13
+0.000000s	/	6	prof1.ttcn:15 [f1]
+0.000000s	/	6	prof1.ttcn:16
+0.000000s	/	2	prof1.ttcn:19 [tc1]
+0.000000s	/	2	prof1.ttcn:20
+0.000000s	/	2	prof1.ttcn:21
+0.000000s	/	2	prof1.ttcn:22
+0.000000s	/	2	prof1.ttcn:23
+-------------------------------------------------
+0.000000s	/	4	prof2.ttcn:13 [f2]
+0.000000s	/	4	prof2.ttcn:14
+0.000000s	/	4	prof2.ttcn:18
+0.000000s	/	2	prof2.ttcn:22 [t1]
+0.000000s	/	2	prof2.ttcn:24 [tc2]
+0.000000s	/	2	prof2.ttcn:25
+0.000000s	/	2	prof2.ttcn:26
+0.000000s	/	2	prof2.ttcn:27
+0.000000s	/	2	prof2.ttcn:28
+0.000000s	/	2	prof2.ttcn:29
+-------------------------------------------------
+0.000000s	/	2	prof3.ttcn:14 [f3]
+0.000000s	/	2	prof3.ttcn:16
+0.000000s	/	2	prof3.ttcn:17
+0.000000s	/	2	prof3.ttcn:18
+0.000000s	/	2	prof3.ttcn:21 [tc3]
+0.000000s	/	2	prof3.ttcn:23
+0.000000s	/	2	prof3.ttcn:24
+0.000000s	/	2	prof3.ttcn:25
+0.000000s	/	2	prof3.ttcn:26
+0.000000s	/	2	prof3.ttcn:27
+0.000000s	/	2	prof3.ttcn:28
+0.000000s	/	2	prof3.ttcn:31 [control]
+0.000000s	/	2	prof3.ttcn:32
+
+------------------------------------------------
+- Function data (total time / execution count) -
+------------------------------------------------
+0.000000s	/	6	prof1.ttcn:15 [f1]
+0.000000s	/	2	prof1.ttcn:19 [tc1]
+------------------------------------------------
+0.000000s	/	4	prof2.ttcn:13 [f2]
+0.000000s	/	2	prof2.ttcn:22 [t1]
+0.000000s	/	2	prof2.ttcn:24 [tc2]
+------------------------------------------------
+0.000000s	/	2	prof3.ttcn:14 [f3]
+0.000000s	/	2	prof3.ttcn:21 [tc3]
+0.000000s	/	2	prof3.ttcn:31 [control]
+
+---------------------
+- Unused code lines -
+---------------------
+prof1.ttcn:26 [control]
+prof1.ttcn:27
+---------------------
+prof2.ttcn:15
+prof2.ttcn:32 [control]
+prof2.ttcn:33
+---------------------
+
+--------------------
+- Unused functions -
+--------------------
+prof1.ttcn:26 [control]
+--------------------
+prof2.ttcn:32 [control]
+--------------------
+
diff --git a/regression_test/profiler/merged_e.stats b/regression_test/profiler/merged_e.stats
new file mode 100644
index 000000000..240fd3e68
--- /dev/null
+++ b/regression_test/profiler/merged_e.stats
@@ -0,0 +1,84 @@
+##################################################
+######### TTCN-3 code coverage statistics ########
+##################################################
+
+
+--------------------------------------
+- Number of code lines and functions -
+--------------------------------------
+prof1.ttcn:	10 lines,	3 functions
+prof2.ttcn:	13 lines,	4 functions
+prof3.ttcn:	13 lines,	3 functions
+--------------------------------------
+Total:	36 lines,	10 functions
+
+-------------------------------------------------
+-------- Code line data (execution count) -------
+-------------------------------------------------
+6	prof1.ttcn:13
+6	prof1.ttcn:15 [f1]
+6	prof1.ttcn:16
+2	prof1.ttcn:19 [tc1]
+2	prof1.ttcn:20
+2	prof1.ttcn:21
+2	prof1.ttcn:22
+2	prof1.ttcn:23
+-------------------------------------------------
+4	prof2.ttcn:13 [f2]
+4	prof2.ttcn:14
+4	prof2.ttcn:18
+2	prof2.ttcn:22 [t1]
+2	prof2.ttcn:24 [tc2]
+2	prof2.ttcn:25
+2	prof2.ttcn:26
+2	prof2.ttcn:27
+2	prof2.ttcn:28
+2	prof2.ttcn:29
+-------------------------------------------------
+2	prof3.ttcn:14 [f3]
+2	prof3.ttcn:16
+2	prof3.ttcn:17
+2	prof3.ttcn:18
+2	prof3.ttcn:21 [tc3]
+2	prof3.ttcn:23
+2	prof3.ttcn:24
+2	prof3.ttcn:25
+2	prof3.ttcn:26
+2	prof3.ttcn:27
+2	prof3.ttcn:28
+2	prof3.ttcn:31 [control]
+2	prof3.ttcn:32
+
+------------------------------------------------
+-------- Function data (execution count) -------
+------------------------------------------------
+6	prof1.ttcn:15 [f1]
+2	prof1.ttcn:19 [tc1]
+------------------------------------------------
+4	prof2.ttcn:13 [f2]
+2	prof2.ttcn:22 [t1]
+2	prof2.ttcn:24 [tc2]
+------------------------------------------------
+2	prof3.ttcn:14 [f3]
+2	prof3.ttcn:21 [tc3]
+2	prof3.ttcn:31 [control]
+
+---------------------
+- Unused code lines -
+---------------------
+prof1.ttcn:26 [control]
+prof1.ttcn:27
+---------------------
+prof2.ttcn:15
+prof2.ttcn:32 [control]
+prof2.ttcn:33
+---------------------
+
+--------------------
+- Unused functions -
+--------------------
+prof1.ttcn:26 [control]
+--------------------
+prof2.ttcn:32 [control]
+--------------------
+
diff --git a/regression_test/profiler/prof2.cfg b/regression_test/profiler/prof2.cfg
index f0c7c0c8a..26585dc32 100644
--- a/regression_test/profiler/prof2.cfg
+++ b/regression_test/profiler/prof2.cfg
@@ -12,7 +12,7 @@ prof3.control
 [PROFILER]
 DisableProfiler := false
 DisableCoverage := true
-DatabaseFile := "data.json"
+DatabaseFile := "data2.json"
 AggregateData := true
 DisableStatistics := true
 [LOGGING]
diff --git a/regression_test/profiler/prof3.cfg b/regression_test/profiler/prof3.cfg
index 20bab99b1..e9d60f31f 100644
--- a/regression_test/profiler/prof3.cfg
+++ b/regression_test/profiler/prof3.cfg
@@ -12,7 +12,7 @@ prof3.control
 [PROFILER]
 DisableProfiler := false
 DisableCoverage := false
-DatabaseFile := "data.json"
+DatabaseFile := "data3.json"
 AggregateData := false
 StatisticsFile := "empty.stats"
 DisableStatistics := false
diff --git a/regression_test/recofOper/BerType.asn b/regression_test/recofOper/BerType.asn
index d76ad2fe6..0d1c39060 100644
--- a/regression_test/recofOper/BerType.asn
+++ b/regression_test/recofOper/BerType.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/recofOper/Circular1.ttcn b/regression_test/recofOper/Circular1.ttcn
new file mode 100644
index 000000000..de8852001
--- /dev/null
+++ b/regression_test/recofOper/Circular1.ttcn
@@ -0,0 +1,22 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+ 
+module Circular1 {
+
+// testing pre-generated record of/set of types with circular import (HT95344)
+// modules Circular1 and Circular2 import each other
+// type CharstringList is defined in Circular2 and used here
+// (only compilation and the C++ build are tested)
+import from Circular2 all;
+
+function f_dummy(CharstringList p_param)
+{
+  log(p_param);
+}
+ 
+}
diff --git a/regression_test/recofOper/Circular2.ttcn b/regression_test/recofOper/Circular2.ttcn
new file mode 100644
index 000000000..a4ff0850b
--- /dev/null
+++ b/regression_test/recofOper/Circular2.ttcn
@@ -0,0 +1,17 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+module Circular2 {
+
+// nothing is actually used from module Circular1, this is only here to test
+// pre-generated record of/set of types in circularly imported modules
+import from Circular1 all;
+
+type record of charstring CharstringList;
+
+}
diff --git a/regression_test/recofOper/Makefile b/regression_test/recofOper/Makefile
index f4afb600b..199bf83f7 100644
--- a/regression_test/recofOper/Makefile
+++ b/regression_test/recofOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -13,7 +13,7 @@ include $(TOPDIR)/Makefile.regression
 
 TTCN3_LIB = ttcn3$(RT2_SUFFIX)$(DYNAMIC_SUFFIX)
 
-TTCN3_MODULES = TrecofOper.ttcn TrecofCompat.ttcn
+TTCN3_MODULES = TrecofOper.ttcn TrecofCompat.ttcn Circular1.ttcn Circular2.ttcn
 ifdef RT2
 TTCN3_MODULES += TrecofParamRef.ttcn
 ASN1_MODULES = BerType.asn
diff --git a/regression_test/recofOper/TrecofOper.ttcn b/regression_test/recofOper/TrecofOper.ttcn
index 364528991..284b29f59 100644
--- a/regression_test/recofOper/TrecofOper.ttcn
+++ b/regression_test/recofOper/TrecofOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/recofOper/TrecofParamRef.ttcn b/regression_test/recofOper/TrecofParamRef.ttcn
index 0485ee9a7..cdb1d6017 100644
--- a/regression_test/recofOper/TrecofParamRef.ttcn
+++ b/regression_test/recofOper/TrecofParamRef.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/recofOper/config.cfg b/regression_test/recofOper/config.cfg
index 0cbecade1..b38cbd24c 100644
--- a/regression_test/recofOper/config.cfg
+++ b/regression_test/recofOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/recordOper/Makefile b/regression_test/recordOper/Makefile
index fe76ea039..5be636638 100644
--- a/regression_test/recordOper/Makefile
+++ b/regression_test/recordOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/recordOper/TrecordOper.ttcn b/regression_test/recordOper/TrecordOper.ttcn
index cc37d83e8..8e35633ce 100644
--- a/regression_test/recordOper/TrecordOper.ttcn
+++ b/regression_test/recordOper/TrecordOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/recordOper/config.cfg b/regression_test/recordOper/config.cfg
index 24d589144..40cb419a2 100644
--- a/regression_test/recordOper/config.cfg
+++ b/regression_test/recordOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/setOper/Makefile b/regression_test/setOper/Makefile
index 8523c2011..feeb34fed 100644
--- a/regression_test/setOper/Makefile
+++ b/regression_test/setOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/setOper/TsetOper.ttcn b/regression_test/setOper/TsetOper.ttcn
index 099697e0d..f29f144f8 100644
--- a/regression_test/setOper/TsetOper.ttcn
+++ b/regression_test/setOper/TsetOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/setOper/config.cfg b/regression_test/setOper/config.cfg
index 6c1337b5b..6fd25be0d 100644
--- a/regression_test/setOper/config.cfg
+++ b/regression_test/setOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/setofMatch/Makefile b/regression_test/setofMatch/Makefile
index e8c3445bf..c429272c3 100644
--- a/regression_test/setofMatch/Makefile
+++ b/regression_test/setofMatch/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/setofMatch/TsetofMatch.ttcn b/regression_test/setofMatch/TsetofMatch.ttcn
index 9f5cd8bfb..c6d05bbcb 100644
--- a/regression_test/setofMatch/TsetofMatch.ttcn
+++ b/regression_test/setofMatch/TsetofMatch.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/setofMatch/config.cfg b/regression_test/setofMatch/config.cfg
index 07fe5e1b5..e3afff69c 100644
--- a/regression_test/setofMatch/config.cfg
+++ b/regression_test/setofMatch/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/setofOper/Makefile b/regression_test/setofOper/Makefile
index f0fbbd687..9d22c745e 100644
--- a/regression_test/setofOper/Makefile
+++ b/regression_test/setofOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/setofOper/TsetofOper.ttcn b/regression_test/setofOper/TsetofOper.ttcn
index 7352b0ac2..a776233b7 100644
--- a/regression_test/setofOper/TsetofOper.ttcn
+++ b/regression_test/setofOper/TsetofOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/setofOper/config.cfg b/regression_test/setofOper/config.cfg
index 59075f2a9..0b1d9efa5 100644
--- a/regression_test/setofOper/config.cfg
+++ b/regression_test/setofOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/singlecontrol/Makefile b/regression_test/singlecontrol/Makefile
index a7ad92101..d1bde4180 100644
--- a/regression_test/singlecontrol/Makefile
+++ b/regression_test/singlecontrol/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/singlecontrol/alsohascontrolpart.ttcn b/regression_test/singlecontrol/alsohascontrolpart.ttcn
index 84f4cede3..d033cbdb8 100644
--- a/regression_test/singlecontrol/alsohascontrolpart.ttcn
+++ b/regression_test/singlecontrol/alsohascontrolpart.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/singlecontrol/config.cfg b/regression_test/singlecontrol/config.cfg
index aa369eed5..a05142895 100644
--- a/regression_test/singlecontrol/config.cfg
+++ b/regression_test/singlecontrol/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/singlecontrol/config1.cfg b/regression_test/singlecontrol/config1.cfg
index 1baf5d9f3..009e88d82 100644
--- a/regression_test/singlecontrol/config1.cfg
+++ b/regression_test/singlecontrol/config1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/singlecontrol/config2.cfg b/regression_test/singlecontrol/config2.cfg
index 1243920aa..c626cd18a 100644
--- a/regression_test/singlecontrol/config2.cfg
+++ b/regression_test/singlecontrol/config2.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/singlecontrol/config_noexec.cfg b/regression_test/singlecontrol/config_noexec.cfg
index bfb57da60..0b2d53cb2 100644
--- a/regression_test/singlecontrol/config_noexec.cfg
+++ b/regression_test/singlecontrol/config_noexec.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/singlecontrol/hascontrolpart.ttcn b/regression_test/singlecontrol/hascontrolpart.ttcn
index d7ebbdd65..0b8f28776 100644
--- a/regression_test/singlecontrol/hascontrolpart.ttcn
+++ b/regression_test/singlecontrol/hascontrolpart.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/singlecontrol/nocontrolpart.ttcn b/regression_test/singlecontrol/nocontrolpart.ttcn
index 8a1b2a0ee..37283deff 100644
--- a/regression_test/singlecontrol/nocontrolpart.ttcn
+++ b/regression_test/singlecontrol/nocontrolpart.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/singlecontrol/ouch.cfg b/regression_test/singlecontrol/ouch.cfg
index 9092116cb..08fb70f8b 100644
--- a/regression_test/singlecontrol/ouch.cfg
+++ b/regression_test/singlecontrol/ouch.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/slider/Makefile b/regression_test/slider/Makefile
index 2ab010390..a21a00308 100644
--- a/regression_test/slider/Makefile
+++ b/regression_test/slider/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/slider/PT1.cc b/regression_test/slider/PT1.cc
index dba722c28..610ea24a3 100644
--- a/regression_test/slider/PT1.cc
+++ b/regression_test/slider/PT1.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/slider/PT1.hh b/regression_test/slider/PT1.hh
index 113338062..a19c7dfdc 100644
--- a/regression_test/slider/PT1.hh
+++ b/regression_test/slider/PT1.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/slider/UNDER.cc b/regression_test/slider/UNDER.cc
index 0d855770c..065a43fc3 100644
--- a/regression_test/slider/UNDER.cc
+++ b/regression_test/slider/UNDER.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/slider/UNDER.hh b/regression_test/slider/UNDER.hh
index 6c90ec4af..ba96969e4 100644
--- a/regression_test/slider/UNDER.hh
+++ b/regression_test/slider/UNDER.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/slider/dual.ttcn b/regression_test/slider/dual.ttcn
index ccf271bd9..807482cb2 100644
--- a/regression_test/slider/dual.ttcn
+++ b/regression_test/slider/dual.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/slider/dual2.ttcn b/regression_test/slider/dual2.ttcn
index 84c32df9a..688005175 100644
--- a/regression_test/slider/dual2.ttcn
+++ b/regression_test/slider/dual2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/slider/dualnegtest.ttcn b/regression_test/slider/dualnegtest.ttcn
index 28bb64ae5..85c344da9 100644
--- a/regression_test/slider/dualnegtest.ttcn
+++ b/regression_test/slider/dualnegtest.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/slider/run.cfg b/regression_test/slider/run.cfg
index d08bd7d90..380a50761 100644
--- a/regression_test/slider/run.cfg
+++ b/regression_test/slider/run.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/slider/slider.ttcn b/regression_test/slider/slider.ttcn
index eb3796723..f75665a53 100644
--- a/regression_test/slider/slider.ttcn
+++ b/regression_test/slider/slider.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateAnytype/Makefile b/regression_test/templateAnytype/Makefile
index b84faf2c4..15a561f24 100644
--- a/regression_test/templateAnytype/Makefile
+++ b/regression_test/templateAnytype/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateAnytype/TtemplateAnytype.ttcn b/regression_test/templateAnytype/TtemplateAnytype.ttcn
index a88b04786..4cdffce6c 100644
--- a/regression_test/templateAnytype/TtemplateAnytype.ttcn
+++ b/regression_test/templateAnytype/TtemplateAnytype.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateAnytype/config.cfg b/regression_test/templateAnytype/config.cfg
index cc0f60ab4..3187a5c1d 100644
--- a/regression_test/templateAnytype/config.cfg
+++ b/regression_test/templateAnytype/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateBitstr/Makefile b/regression_test/templateBitstr/Makefile
index d122b64b3..582e6a437 100644
--- a/regression_test/templateBitstr/Makefile
+++ b/regression_test/templateBitstr/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateBitstr/TtemplateBitstr.ttcn b/regression_test/templateBitstr/TtemplateBitstr.ttcn
index 2911c0615..9d239af82 100644
--- a/regression_test/templateBitstr/TtemplateBitstr.ttcn
+++ b/regression_test/templateBitstr/TtemplateBitstr.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateBitstr/config.cfg b/regression_test/templateBitstr/config.cfg
index 26752ad7d..588e2ce10 100644
--- a/regression_test/templateBitstr/config.cfg
+++ b/regression_test/templateBitstr/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateBool/Makefile b/regression_test/templateBool/Makefile
index b251fa13a..2bffb7460 100644
--- a/regression_test/templateBool/Makefile
+++ b/regression_test/templateBool/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateBool/TtemplateBool.ttcn b/regression_test/templateBool/TtemplateBool.ttcn
index 3c8d523aa..2a929b75b 100644
--- a/regression_test/templateBool/TtemplateBool.ttcn
+++ b/regression_test/templateBool/TtemplateBool.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateBool/config.cfg b/regression_test/templateBool/config.cfg
index 7dcdb8842..abf7c3f4e 100644
--- a/regression_test/templateBool/config.cfg
+++ b/regression_test/templateBool/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateChar/Makefile b/regression_test/templateChar/Makefile
index 9eebaf903..006a87703 100644
--- a/regression_test/templateChar/Makefile
+++ b/regression_test/templateChar/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateChar/TtemplateChar.ttcn b/regression_test/templateChar/TtemplateChar.ttcn
index 392023bc5..1c9dd84de 100644
--- a/regression_test/templateChar/TtemplateChar.ttcn
+++ b/regression_test/templateChar/TtemplateChar.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateChar/config.cfg b/regression_test/templateChar/config.cfg
index 2ec734c6c..f5b682905 100644
--- a/regression_test/templateChar/config.cfg
+++ b/regression_test/templateChar/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateCharstr/Makefile b/regression_test/templateCharstr/Makefile
index 038b92e1a..447829c4d 100644
--- a/regression_test/templateCharstr/Makefile
+++ b/regression_test/templateCharstr/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateCharstr/TtemplateCharstr.ttcn b/regression_test/templateCharstr/TtemplateCharstr.ttcn
index 70f3c2129..b91d83867 100644
--- a/regression_test/templateCharstr/TtemplateCharstr.ttcn
+++ b/regression_test/templateCharstr/TtemplateCharstr.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateCharstr/config.cfg b/regression_test/templateCharstr/config.cfg
index ab86c70a4..b16bf8eef 100644
--- a/regression_test/templateCharstr/config.cfg
+++ b/regression_test/templateCharstr/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateEnum/Makefile b/regression_test/templateEnum/Makefile
index d734f9cea..30d908df6 100644
--- a/regression_test/templateEnum/Makefile
+++ b/regression_test/templateEnum/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateEnum/TtemplateEnum.ttcn b/regression_test/templateEnum/TtemplateEnum.ttcn
index 93925006e..4cff88442 100644
--- a/regression_test/templateEnum/TtemplateEnum.ttcn
+++ b/regression_test/templateEnum/TtemplateEnum.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateEnum/config.cfg b/regression_test/templateEnum/config.cfg
index a36dde074..5bcd6b3a2 100644
--- a/regression_test/templateEnum/config.cfg
+++ b/regression_test/templateEnum/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateFloat/Makefile b/regression_test/templateFloat/Makefile
index ecdc49223..8a5a9c7e6 100644
--- a/regression_test/templateFloat/Makefile
+++ b/regression_test/templateFloat/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateFloat/TtemplateFloat.ttcn b/regression_test/templateFloat/TtemplateFloat.ttcn
index 4892c1d02..33fce8028 100644
--- a/regression_test/templateFloat/TtemplateFloat.ttcn
+++ b/regression_test/templateFloat/TtemplateFloat.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -55,6 +55,10 @@ template templateFloat_rec templateFloat_tIfpresent :={ //specific value and ifp
  x1:=1.1,
  x2:=2.1,
  x3:=3.1 ifpresent };
+ 
+template float templateFloat_tNaN := not_a_number;
+template float templateFloat_tPosInf := infinity;
+template float templateFloat_tNegInf := -infinity;
 
 testcase templateFloatSpec() runs on templateFloat_mycomp {
 var templateFloat_rec x1,x2;		//specific value
@@ -232,6 +236,21 @@ if (not(match(x4,templateFloat_tIfpresent))) {setverdict(pass);}
  else {setverdict(fail);}
 }
 
+testcase templateFloatSpecialValues() runs on templateFloat_mycomp {
+  var float v_nan := not_a_number;
+  var float v_pos_inf := infinity;
+  var float v_neg_inf := -infinity;
+  
+  if (match(v_nan, templateFloat_tNaN)) { setverdict(pass); }
+  else { setverdict(fail, "not_a_number should match itself"); }
+  
+  if (match(v_pos_inf, templateFloat_tPosInf)) { setverdict(pass); }
+  else { setverdict(fail, "infinity should match itself"); }
+  
+  if (match(v_neg_inf, templateFloat_tNegInf)) { setverdict(pass); }
+  else { setverdict(fail, "-infinity should match itself"); }
+}
+
 control {
  execute(templateFloatSpec());
  execute(templateFloatList());
@@ -244,5 +263,6 @@ control {
  execute(templateFloatRange3());
  execute(templateFloatRange4());
  execute(templateFloatIfpresent());
+ execute(templateFloatSpecialValues());
 }
 }
diff --git a/regression_test/templateFloat/config.cfg b/regression_test/templateFloat/config.cfg
index 98ee3f27a..d5f1f6a52 100644
--- a/regression_test/templateFloat/config.cfg
+++ b/regression_test/templateFloat/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateInt/Makefile b/regression_test/templateInt/Makefile
index 33dfd099d..0080b6751 100644
--- a/regression_test/templateInt/Makefile
+++ b/regression_test/templateInt/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateInt/TtemplateInt.ttcn b/regression_test/templateInt/TtemplateInt.ttcn
index 8d16448fe..26341104e 100644
--- a/regression_test/templateInt/TtemplateInt.ttcn
+++ b/regression_test/templateInt/TtemplateInt.ttcn
@@ -1,16 +1,19 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
  ******************************************************************************/
 module TtemplateInt {
+
 type component templateInt_mycomp {};
 type record templateInt_rec {
  integer x1,
  integer x2,
  integer x3 optional };
+type integer templateInt_subtype (0..1457664);
+ 
 template templateInt_rec templateInt_tSpec :={ //specific values
  x1:=1,
  x2:=2,
@@ -258,6 +261,33 @@ testcase TR_HJ94652() runs on templateInt_mycomp {
   }
 }
 
+testcase templateIntSubtype() runs on templateInt_mycomp {
+  // this tests the use of inline templates (value ranges)
+  // with subtypes and variables
+  var templateInt_subtype x := 312;
+  var templateInt_subtype lower_limit := 100;
+  var templateInt_subtype upper_limit := 65535;
+  if (not match(x, templateInt_subtype:(0..upper_limit))) { // TR: artf602477
+    setverdict(fail);
+  }
+  if (not match(x, integer:(100..upper_limit))) {
+    setverdict(fail);
+  }
+  if (not match(312, templateInt_subtype:(100..upper_limit))) {
+    setverdict(fail);
+  }
+  if (not match(x, templateInt_subtype:(100..65535))) {
+    setverdict(fail);
+  }
+  if (not match(x, templateInt_subtype:(lower_limit..65535))) {
+    setverdict(fail);
+  }
+  if (not match(x, templateInt_subtype:(lower_limit..upper_limit))) {
+    setverdict(fail);
+  }
+  setverdict(pass);
+}
+
 control {
  execute(templateIntSpec());
  execute(templateIntList());
@@ -271,5 +301,6 @@ control {
  execute(templateIntRange4());
  execute(templateIntIfpresent());
  execute(TR_HJ94652());
+ execute(templateIntSubtype());
 }
 }
diff --git a/regression_test/templateInt/config.cfg b/regression_test/templateInt/config.cfg
index 6862ad9b4..bc38a589c 100644
--- a/regression_test/templateInt/config.cfg
+++ b/regression_test/templateInt/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateOctetstr/Makefile b/regression_test/templateOctetstr/Makefile
index 9114b83b6..3b3ae0a14 100644
--- a/regression_test/templateOctetstr/Makefile
+++ b/regression_test/templateOctetstr/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateOctetstr/TtemplateOctetstr.ttcn b/regression_test/templateOctetstr/TtemplateOctetstr.ttcn
index 8d4bad34a..a9204775b 100644
--- a/regression_test/templateOctetstr/TtemplateOctetstr.ttcn
+++ b/regression_test/templateOctetstr/TtemplateOctetstr.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateOctetstr/config.cfg b/regression_test/templateOctetstr/config.cfg
index 1306cddfa..c1cb97ee9 100644
--- a/regression_test/templateOctetstr/config.cfg
+++ b/regression_test/templateOctetstr/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateOmit/Common/Templates.ttcn b/regression_test/templateOmit/Common/Templates.ttcn
new file mode 100644
index 000000000..7cb58c379
--- /dev/null
+++ b/regression_test/templateOmit/Common/Templates.ttcn
@@ -0,0 +1,51 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+ 
+module Templates {
+
+import from Types all;
+
+/* * * * Templates * * * */
+template integer t_int_value_list := ( 1, 3, 5, 7 );
+template integer t_int_comp_list := complement ( 2, 4, 6, 8 );
+
+template charstring t_char_value_list := ( "a", "aa", "aaa" );
+template charstring t_char_comp_list := complement ( "b", "bb", "bbb" );
+
+template Rec t_rec_value_list := ( { 3.0, '03'O }, { 1.0, '01'O } );
+template Rec t_rec_comp_list := complement ( { 2.0, '02'O }, { 4.0, '04'O } );
+
+template SoBS t_setof_value_list := ( { '1'B, '10'B, '11'B }, { '100'B, '101'B, '110'B } );
+template SoBS t_setof_comp_list := complement ( { '111'B, '1110'B, '1111'B }, { '100'B, '101'B, '110'B } );
+
+template Uni t_uni_value_list := ( { b := true }, { hs := 'DEADBEEF'H }, { ucs := "x" }, { vt := fail } );
+template Uni t_uni_comp_list := complement ( { b := false }, { hs := 'DEADBEEF'H }, { ucs := "x" }, { vt := fail } );
+
+template Enum t_enum_value_list := ( First, Second );
+template Enum t_enum_comp_list := complement ( Second, Third );
+
+template Everything t_every_value_list := { t_int_value_list, t_char_value_list, t_rec_value_list, t_setof_value_list, t_uni_value_list, t_enum_value_list };
+template Everything t_every_comp_list := { t_int_comp_list, t_char_comp_list, t_rec_comp_list, t_setof_comp_list, t_uni_comp_list, t_enum_comp_list };
+
+/* * * * Test values * * * */
+const Everything c_int_omitted   := { omit,  "a", { 1.0, '01'O }, { '1'B, '10'B, '11'B }, { b := true }, First };
+const Everything c_char_omitted  := {    3, omit, { 1.0, '01'O }, { '1'B, '10'B, '11'B }, { b := true }, First };
+const Everything c_rec_omitted   := {    3,  "a",           omit, { '1'B, '10'B, '11'B }, { b := true }, First };
+const Everything c_setof_omitted := {    3,  "a", { 1.0, '01'O },                   omit, { b := true }, First };
+const Everything c_uni_omitted   := {    3,  "a", { 1.0, '01'O }, { '1'B, '10'B, '11'B },          omit, First };
+const Everything c_enum_omitted  := {    3,  "a", { 1.0, '01'O }, { '1'B, '10'B, '11'B }, { b := true },  omit };
+
+// Template for matching the result of a logged matching :)
+template charstring t_unmatched := pattern "*unmatched*";
+
+// Error signal template
+// (this is sent as the reply's 'out' parameter when 'getcall' fails,
+// it is also used in the 'getreply' operations to match error signals)
+template Everything t_bad_call := { -1, ? /* will contain the error message */, { -1.0, ''O }, {}, { b := false }, First };
+
+}
diff --git a/regression_test/templateOmit/Common/Types.ttcn b/regression_test/templateOmit/Common/Types.ttcn
new file mode 100644
index 000000000..fdb254569
--- /dev/null
+++ b/regression_test/templateOmit/Common/Types.ttcn
@@ -0,0 +1,53 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+ 
+module Types {
+ 
+type record Rec {
+  float num,
+  octetstring bytes
+}
+
+type set of bitstring SoBS;
+
+type union Uni {
+  boolean b,
+  hexstring hs,
+  universal charstring ucs,
+  verdicttype vt
+}
+
+type enumerated Enum { First, Second, Third };
+
+type record Everything {
+  integer i optional,
+  charstring cs optional,
+  Rec rec optional,
+  SoBS setof optional,
+  Uni uni optional,
+  Enum enum_ optional
+}
+
+signature Sig(in Everything p_in, out Everything p_out) exception (Everything);
+  
+type port PT_Proc procedure {
+  inout Sig
+}
+with { extension "internal" }
+
+type port PT_Msg message {
+  inout Everything
+}
+with { extension "internal" }
+
+type component CT {
+  port PT_Proc proc;
+  port PT_Msg msg;
+} 
+ 
+}
diff --git a/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn b/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn
new file mode 100644
index 000000000..866571726
--- /dev/null
+++ b/regression_test/templateOmit/LegacyTests/LegacyTestcases.ttcn
@@ -0,0 +1,529 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+ 
+module LegacyTestcases {
+// This module contains tests related to the matching of omitted fields.
+// Legacy behavior (before change request artf564824):
+// - 'omit' can be used in value list and complement list templates
+//   e.g.: 't := (1, 2, omit)' and 't := complement(1, 2, omit)' are allowed
+// - a value list template only matches the value 'omit', if the value list
+//   contains this value
+// - a complement list template always matches the value 'omit', unless 
+//   the complement list contains this value
+// Note: this behavior requires compiler option -M
+
+import from Types all;
+import from Templates all;
+
+// Testing the matching of an omitted field
+// A different field is omitted in each of the 6 values.
+// The value list template should not match any of the values.
+// The complement list template should match all 6 values.
+testcase tc_match_omit_legacy() runs on CT
+{
+  if (match(c_int_omitted, t_every_value_list)) { 
+    setverdict(fail, c_int_omitted, " should not match ", t_every_value_list);
+  }
+  if (not match(c_int_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_int_omitted, " should match ", t_every_comp_list);
+  }
+  if (match(c_char_omitted, t_every_value_list)) { 
+    setverdict(fail, c_char_omitted, " should not match ", t_every_value_list);
+  }
+  if (not match(c_char_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_char_omitted, " should match ", t_every_comp_list);
+  }
+  if (match(c_rec_omitted, t_every_value_list)) { 
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_value_list);
+  }
+  if (not match(c_rec_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_rec_omitted, " should match ", t_every_comp_list);
+  }
+  if (match(c_setof_omitted, t_every_value_list)) { 
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_value_list);
+  }
+  if (not match(c_setof_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_setof_omitted, " should match ", t_every_comp_list);
+  }
+  if (match(c_uni_omitted, t_every_value_list)) { 
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_value_list);
+  }
+  if (not match(c_uni_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_uni_omitted, " should match ", t_every_comp_list);
+  }
+  if (match(c_enum_omitted, t_every_value_list)) { 
+    setverdict(fail, c_enum_omitted, " should not match ", t_every_value_list);
+  }
+  if (not match(c_enum_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_enum_omitted, " should match ", t_every_comp_list);
+  }
+  setverdict(pass);
+}
+
+// Testing the 'ispresent' clause on templates
+// The value list templates are 'present', as these do not match the 'omit' value.
+// The complement list templates are not 'present'.
+testcase tc_ispresent_legacy() runs on CT
+{
+  if (not ispresent(t_int_value_list)) {
+    setverdict(fail, t_int_value_list, " should be present");
+  }
+  if (not ispresent(t_char_value_list)) {
+    setverdict(fail, t_char_value_list, " should be present");
+  }
+  if (not ispresent(t_rec_value_list)) {
+    setverdict(fail, t_rec_value_list, " should be present");
+  }
+  if (not ispresent(t_setof_value_list)) {
+    setverdict(fail, t_setof_value_list, " should be present");
+  }
+  if (not ispresent(t_uni_value_list)) {
+    setverdict(fail, t_uni_value_list, " should be present");
+  }
+  if (not ispresent(t_enum_value_list)) {
+    setverdict(fail, t_enum_value_list, " should be present");
+  }
+  if (ispresent(t_int_comp_list)) {
+    setverdict(fail, t_int_comp_list, " should not be present");
+  }
+  if (ispresent(t_char_comp_list)) {
+    setverdict(fail, t_char_comp_list, " should not be present");
+  }
+  if (ispresent(t_rec_comp_list)) {
+    setverdict(fail, t_rec_comp_list, " should not be present");
+  }
+  if (ispresent(t_setof_comp_list)) {
+    setverdict(fail, t_setof_comp_list, " should not be present");
+  }
+  if (ispresent(t_uni_comp_list)) {
+    setverdict(fail, t_uni_comp_list, " should not be present");
+  }
+  if (ispresent(t_enum_comp_list)) {
+    setverdict(fail, t_enum_comp_list, " should not be present");
+  }
+  setverdict(pass);
+}
+
+// Testing the logging of matching an omitted field
+// The results should be the same as with the matching tests
+// (this is needed, because a different function is called when logging a match operation)
+testcase tc_log_match_legacy() runs on CT
+{
+  // omitted integer
+  var charstring v_log_match_res := log2str(match(c_int_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_int_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_int_omitted, t_every_comp_list));
+  if (match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_int_omitted, " should match ", t_every_comp_list);
+  }
+  
+  // omitted charstring
+  v_log_match_res := log2str(match(c_char_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_char_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_char_omitted, t_every_comp_list));
+  if (match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_char_omitted, " should match ", t_every_comp_list);
+  }
+  
+  // omitted record
+  v_log_match_res := log2str(match(c_rec_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_rec_omitted, t_every_comp_list));
+  if (match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_rec_omitted, " should match ", t_every_comp_list);
+  }
+  
+  // omitted set of
+  v_log_match_res := log2str(match(c_setof_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_setof_omitted, t_every_comp_list));
+  if (match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_setof_omitted, " should match ", t_every_comp_list);
+  }
+  
+  // omitted union
+  v_log_match_res := log2str(match(c_uni_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_uni_omitted, t_every_comp_list));
+  if (match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_uni_omitted, " should match ", t_every_comp_list);
+  }
+  
+  // omitted enumerated
+  v_log_match_res := log2str(match(c_enum_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_enum_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_enum_omitted, t_every_comp_list));
+  if (match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_enum_omitted, " should match ", t_every_comp_list);
+  }
+  setverdict(pass);
+}
+
+// Testing the 'omit' value in a template's value list and complement list
+testcase tc_omit_in_value_list_legacy() runs on CT
+{
+  // template
+  template integer t_int_value_list_omit := ( 1, 3, 5, 7, omit );
+  template integer t_int_comp_list_omit := complement ( 2, 4, 6, 8, omit );
+
+  template charstring t_char_value_list_omit := ( "a", "aa", "aaa", omit );
+  template charstring t_char_comp_list_omit := complement ( "b", "bb", "bbb", omit );
+
+  template Rec t_rec_value_list_omit := ( { 3.0, '03'O }, { 1.0, '01'O }, omit );
+  template Rec t_rec_comp_list_omit := complement ( { 2.0, '02'O }, { 4.0, '04'O }, omit );
+
+  template SoBS t_setof_value_list_omit := ( { '1'B, '10'B, '11'B }, { '100'B, '101'B, '110'B }, omit );
+  template SoBS t_setof_comp_list_omit := complement ( { '111'B, '1110'B, '1111'B }, { '100'B, '101'B, '110'B }, omit );
+
+  template Uni t_uni_value_list_omit := ( { b := true }, { hs := 'DEADBEEF'H }, { ucs := "x" }, { vt := fail }, omit );
+  template Uni t_uni_comp_list_omit := complement ( { b := false }, { hs := 'DEADBEEF'H }, { ucs := "x" }, { vt := fail }, omit );
+
+  template Enum t_enum_value_list_omit := ( First, Second, omit );
+  template Enum t_enum_comp_list_omit := complement ( Second, Third, omit );
+  
+  template Everything t_every_value_list_omit := { t_int_value_list_omit, t_char_value_list_omit,
+    t_rec_value_list_omit, t_setof_value_list_omit, t_uni_value_list_omit, t_enum_value_list_omit };
+  template Everything t_every_comp_list_omit := { t_int_comp_list_omit, t_char_comp_list_omit,
+    t_rec_comp_list_omit, t_setof_comp_list_omit, t_uni_comp_list_omit, t_enum_comp_list_omit };
+  
+  // template variable
+  var template integer vt_int_value_list_omit := ( -1, 3, 5, 7, omit );
+  var template integer vt_int_comp_list_omit := complement ( 2, 4, 6, 8, omit );
+
+  var template charstring vt_char_value_list_omit := ( "a", "aa", "aaa", omit );
+  var template charstring vt_char_comp_list_omit := complement ( "b", "bb", "bbb", omit );
+
+  var template Rec vt_rec_value_list_omit := ( { 3.0, '03'O }, { 1.0, '01'O }, omit );
+  var template Rec vt_rec_comp_list_omit := complement ( { 2.0, '02'O }, { 4.0, '04'O }, omit );
+
+  var template SoBS vt_setof_value_list_omit := ( { '1'B, '10'B, '11'B }, { '100'B, '101'B, '110'B }, omit );
+  var template SoBS vt_setof_comp_list_omit := complement ( { '111'B, '1110'B, '1111'B }, { '100'B, '101'B, '110'B }, omit );
+
+  var template Uni vt_uni_value_list_omit := ( { b := true }, { hs := 'DEADBEEF'H }, { ucs := "x" }, { vt := fail }, omit );
+  var template Uni vt_uni_comp_list_omit := complement ( { b := false }, { hs := 'DEADBEEF'H }, { ucs := "x" }, { vt := fail }, omit );
+
+  var template Enum vt_enum_value_list_omit := ( First, Second, omit );
+  var template Enum vt_enum_comp_list_omit := complement ( Second, Third, omit );
+  
+  var template Everything vt_every_value_list_omit := { vt_int_value_list_omit, vt_char_value_list_omit,
+    vt_rec_value_list_omit, vt_setof_value_list_omit, vt_uni_value_list_omit, vt_enum_value_list_omit };
+  var template Everything vt_every_comp_list_omit := { vt_int_comp_list_omit, vt_char_comp_list_omit,
+    vt_rec_comp_list_omit, vt_setof_comp_list_omit, vt_uni_comp_list_omit, vt_enum_comp_list_omit };
+    
+  // match
+  if (not match(c_int_omitted, t_every_value_list_omit)) {
+    setverdict(fail, c_int_omitted, " should match ", t_every_value_list_omit);
+  }
+  if (not match(c_char_omitted, vt_every_value_list_omit)) {
+    setverdict(fail, c_char_omitted, " should match ", vt_every_value_list_omit);
+  }
+  if (match(c_rec_omitted, t_every_comp_list_omit)) {
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_comp_list_omit);
+  }
+  if (match(c_setof_omitted, t_every_comp_list_omit)) {
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_comp_list_omit);
+  }
+  
+  // ispresent
+  if (ispresent(t_every_value_list_omit.i)) {
+    setverdict(fail, t_every_value_list_omit.i, " should not be present");
+  }
+  if (ispresent(vt_every_value_list_omit.cs)) {
+    setverdict(fail, vt_every_value_list_omit.cs, " should not be present");
+  }
+  if (not ispresent(t_every_comp_list_omit.setof)) {
+    setverdict(fail, t_every_comp_list_omit.setof, " should be present");
+  }
+  if (not ispresent(vt_every_comp_list_omit.uni)) {
+    setverdict(fail, vt_every_comp_list_omit.uni, " should be present");
+  }
+  
+  // log match
+  var charstring v_log_res := log2str(match(c_rec_omitted, t_every_value_list_omit));
+  if (match(v_log_res, t_unmatched)) {
+    setverdict(fail, c_rec_omitted, " should match ", t_every_value_list_omit);
+  }
+  v_log_res := log2str(match(c_setof_omitted, vt_every_value_list_omit));
+  if (match(v_log_res, t_unmatched)) {
+    setverdict(fail, c_setof_omitted, " should match ", vt_every_value_list_omit);
+  }
+  v_log_res := log2str(match(c_uni_omitted, t_every_comp_list_omit));
+  if (not match(v_log_res, t_unmatched)) {
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_comp_list_omit);
+  }
+  v_log_res := log2str(match(c_enum_omitted, vt_every_comp_list_omit));
+  if (not match(v_log_res, t_unmatched)) {
+    setverdict(fail, c_enum_omitted, " should not match ", vt_every_comp_list_omit);
+  }
+  
+  setverdict(pass);
+}
+
+// A component's behavior function for the procedure-based port matching test
+// Tests matching of 'omit' values in the 'getcall' operation:
+// - on success replies with one of the test values
+// - on failure replies with a specific template containing an error message
+function f_behavior_proc_legacy() runs on CT
+{
+  var template Everything vt_bad := t_bad_call;
+  timer t1 := 1.0;
+  t1.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_value_list, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_value_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      // this is the expected behavior, since the incomming call is not supposed to match the template
+      proc.reply(Sig:{-, c_rec_omitted});
+    }
+    [] t1.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+  
+  timer t2 := 1.0;
+  t2.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_comp_list, -}) {
+      // this is the expected behavior, since the incomming call is supposed to match the template
+      proc.reply(Sig:{-, c_setof_omitted});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      vt_bad.cs := log2str("getcall parameters should match ", t_every_comp_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] t2.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+  
+  timer t3 := 1.0;
+  t3.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_value_list, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_value_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      // this is the expected behavior, since the incomming call is not supposed to match the template
+      proc.raise(Sig, c_uni_omitted);
+    }
+    [] t2.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+  
+  timer t4 := 1.0;
+  t4.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_comp_list, -}) {
+      // this is the expected behavior, since the incomming call is supposed to match the template
+      proc.raise(Sig, c_char_omitted);
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_comp_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] t2.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+}
+
+// Tests the matching of 'omit' values in procedure-based port operations
+// ('getcall' is tested in the newly created component's behavior function,
+// 'getreply' and 'catch' are tested here).
+testcase tc_proc_port_match_legacy() runs on CT
+{
+  var CT v_comp := CT.create;
+  connect(v_comp:proc, self:proc);
+  v_comp.start(f_behavior_proc_legacy());
+
+  // testing 'getcall' and 'getreply' with the value list template
+  var Everything v_pars;
+  proc.call(Sig:{c_int_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_every_value_list}) {
+      setverdict(fail, "getreply parameters should not match ", t_every_value_list);
+    }
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      // this is the expected behavior, since the incomming reply is not supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(Sig, ?) {
+      setverdict(fail, "caught unexpected exception");
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "getreply timed out");
+    }
+  }
+  
+  // testing 'getcall' and 'getreply' with the complement list template
+  proc.call(Sig:{c_enum_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_every_comp_list}) {
+      // this is the expected behavior, since the incomming reply is supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      setverdict(fail, "getreply parameters should match ", t_every_comp_list);
+    }
+    [] proc.catch(Sig, ?) {
+      setverdict(fail, "caught unexpected exception");
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "getreply timed out");
+    }
+  }
+  
+  // testing 'getcall' and 'catch' with the value list template
+  proc.call(Sig:{c_char_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      setverdict(fail, "received unexpected reply");
+    }
+    [] proc.catch(Sig, t_every_value_list) {
+      setverdict(fail, "caught exception should not match ", t_every_value_list);
+    }
+    [] proc.catch(Sig, ?) {
+      // this is the expected behavior, since the incomming exception is not supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "catch timed out");
+    }
+  }
+  
+  // testing 'getcall' and 'catch' with the complement list template
+  proc.call(Sig:{c_uni_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      setverdict(fail, "received unexpected reply");
+    }
+    [] proc.catch(Sig, t_every_comp_list) {
+      // this is the expected behavior, since the incomming exception is supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(Sig, ?) {
+      setverdict(fail, "caught exception should match ", t_every_comp_list);
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "catch timed out");
+    }
+  }
+  
+  v_comp.done;
+}
+
+// A component's behavior function for the message-based port matching test
+// Sends test messages to the caller test case for matching.
+function f_behavior_msg_legacy() runs on CT
+{
+  msg.send(c_int_omitted);
+  msg.send(c_char_omitted);
+  msg.send(c_rec_omitted);
+  msg.send(c_setof_omitted);
+  msg.send(c_uni_omitted);
+  msg.send(c_enum_omitted);
+}
+
+// Tests the matching of 'omit' values in message-based port operations
+// (the newly created component's behavior function sends us 6 test messages,
+// these are matched against value list and complement list templates).
+testcase tc_msg_port_match_legacy() runs on CT
+{
+  var CT v_comp := CT.create;
+  connect(v_comp:msg, self:msg);
+  v_comp.start(f_behavior_msg_legacy());
+  
+  var integer v_msg_count := 1;
+  timer t := 1.0;
+  t.start;
+  alt {
+    [] msg.receive(t_every_value_list) {
+      setverdict(fail, "Message ", v_msg_count, " should not match ", t_every_value_list);
+    }
+    [] msg.receive(t_every_comp_list) {
+      // this is the expected behavior, since the incomming messages should not match
+      // the previous template, only this one
+      if (v_msg_count < 6) {
+        // repeat until all 6 messages have been received
+        v_msg_count := v_msg_count + 1;
+        repeat;
+      }
+    }
+    [] msg.receive(?) {
+      setverdict(fail, "Message ", v_msg_count, " should match ", t_every_comp_list);
+    }
+    [] t.timeout {
+      setverdict(fail, "receive timed out");
+    }
+  }
+  
+  v_comp.done;
+  msg.clear;
+  setverdict(pass);
+}
+
+// Testing the 'present' template restriction
+// (complement list templates are 'present' if the list contains the 'omit' value,
+// value lists are 'present' if the list does not contain the 'omit' value)
+testcase tc_present_template_legacy() runs on CT
+{
+  template(present) integer t_present_value_list := (1, 2, 3);
+  template(present) integer t_present_comp_list := complement (1, 2, 3, omit);
+  
+  var template(present) integer vt_present_value_list := (1, 2, 3);
+  var template(present) integer vt_present_comp_list := complement (1, 2, 3, omit);
+  
+  vt_present_value_list := (4, 5, 6);
+  vt_present_comp_list := complement (4, 5, 6, omit);
+  
+  setverdict(pass);
+}
+
+control {
+  execute(tc_match_omit_legacy());
+  execute(tc_ispresent_legacy());
+  execute(tc_log_match_legacy());
+  execute(tc_omit_in_value_list_legacy());
+  execute(tc_proc_port_match_legacy());
+  execute(tc_msg_port_match_legacy());
+  execute(tc_present_template_legacy());
+}
+
+}
diff --git a/regression_test/templateOmit/LegacyTests/Makefile b/regression_test/templateOmit/LegacyTests/Makefile
new file mode 100644
index 000000000..034d93342
--- /dev/null
+++ b/regression_test/templateOmit/LegacyTests/Makefile
@@ -0,0 +1,58 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ../..
+include $(TOPDIR)/Makefile.regression
+
+.SUFFIXES: .ttcn .hh
+.PHONY: all clean dep run
+
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)-parallel$(DYNAMIC_SUFFIX)
+
+SYMLINK_MODULES = Types.ttcn Templates.ttcn
+
+TTCN3_MODULES = $(SYMLINK_MODULES) LegacyTestcases.ttcn
+
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+ifdef CODE_SPLIT
+GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc  _seqof.cc _setof.cc _union.cc))
+endif
+
+OBJECTS = $(GENERATED_SOURCES:.cc=.o)
+
+TARGET = templateOmitLegacy$(EXESUFFIX)
+
+COMPILER_FLAGS += -M
+
+all: $(TARGET)
+
+$(SYMLINK_MODULES):
+	ln -s ../Common/$@ $@
+
+$(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES)
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS) $(USER_SOURCES) $(USER_HEADERS): compile
+	@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+compile: $(TTCN3_MODULES)
+	$(TTCN3_COMPILER) $(COMPILER_FLAGS) $^ - $?
+	touch $@
+
+clean distclean:
+	-rm -f $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) *.log Makefile.bak compile
+
+dep: $(GENERATED_SOURCES)
+	makedepend $(CPPFLAGS) $(GENERATED_SOURCES)
+
+run: $(TARGET) legacy.cfg
+	$(TTCN3_DIR)/bin/ttcn3_start $^
+
+.NOTPARALLEL:
+
diff --git a/regression_test/templateOmit/LegacyTests/legacy.cfg b/regression_test/templateOmit/LegacyTests/legacy.cfg
new file mode 100644
index 000000000..5f3f4e621
--- /dev/null
+++ b/regression_test/templateOmit/LegacyTests/legacy.cfg
@@ -0,0 +1,14 @@
+###############################################################################
+# 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
+###############################################################################
+[MODULE_PARAMETERS]
+[LOGGING]
+Logfile := "templateOmitLegacy_%r.log"
+FileMask := LOG_ALL
+ConsoleMask := TTCN_WARNING | TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS
+[EXECUTE]
+LegacyTestcases
diff --git a/regression_test/templateOmit/Makefile b/regression_test/templateOmit/Makefile
new file mode 100644
index 000000000..cfd3fa558
--- /dev/null
+++ b/regression_test/templateOmit/Makefile
@@ -0,0 +1,24 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ..
+include   ../Makefile.regression
+unexport ABS_SRC
+unexport SRCDIR
+
+# List of fake targets:
+.PHONY: all dep clean run Common NewTests LegacyTests /Common /NewTests /LegacyTests profile
+
+all dep clean distclean run:
+	$(MAKE) -C NewTests $@
+	$(MAKE) -C LegacyTests $@
+
+new:
+	$(MAKE) -C NewTests run
+	
+legacy:
+	$(MAKE) -C LegacyTests run
diff --git a/regression_test/templateOmit/NewTests/Makefile b/regression_test/templateOmit/NewTests/Makefile
new file mode 100644
index 000000000..abee982e8
--- /dev/null
+++ b/regression_test/templateOmit/NewTests/Makefile
@@ -0,0 +1,56 @@
+###############################################################################
+# 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
+###############################################################################
+TOPDIR := ../..
+include $(TOPDIR)/Makefile.regression
+
+.SUFFIXES: .ttcn .hh
+.PHONY: all clean dep run
+
+TTCN3_LIB = ttcn3$(RT2_SUFFIX)-parallel$(DYNAMIC_SUFFIX)
+
+SYMLINK_MODULES = Types.ttcn Templates.ttcn
+
+TTCN3_MODULES = $(SYMLINK_MODULES) NewTestcases.ttcn
+
+GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc)
+GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
+ifdef CODE_SPLIT
+GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc  _seqof.cc _setof.cc _union.cc))
+endif
+
+OBJECTS = $(GENERATED_SOURCES:.cc=.o)
+
+TARGET = templateOmitNew$(EXESUFFIX)
+
+all: $(TARGET)
+
+$(SYMLINK_MODULES):
+	ln -s ../Common/$@ $@
+
+$(TARGET): $(GENERATED_SOURCES) $(USER_SOURCES)
+	$(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^ -L$(TTCN3_DIR)/lib -l$(TTCN3_LIB) -L$(OPENSSL_DIR)/lib -lcrypto $($(PLATFORM)_LIBS)
+
+$(GENERATED_SOURCES) $(GENERATED_HEADERS) $(USER_SOURCES) $(USER_HEADERS): compile
+	@if [ ! -f $@ ]; then $(RM) compile; $(MAKE) compile; fi
+
+compile: $(TTCN3_MODULES)
+	$(TTCN3_COMPILER) $(COMPILER_FLAGS) $^ - $?
+	touch $@
+
+clean distclean:
+	-rm -f $(TARGET) $(OBJECTS) $(GENERATED_HEADERS) \
+	$(GENERATED_SOURCES) *.log Makefile.bak compile
+
+dep: $(GENERATED_SOURCES)
+	makedepend $(CPPFLAGS) $(GENERATED_SOURCES)
+
+run: $(TARGET) new.cfg
+	$(TTCN3_DIR)/bin/ttcn3_start $^
+
+.NOTPARALLEL:
+
diff --git a/regression_test/templateOmit/NewTests/NewTestcases.ttcn b/regression_test/templateOmit/NewTests/NewTestcases.ttcn
new file mode 100644
index 000000000..b138b9686
--- /dev/null
+++ b/regression_test/templateOmit/NewTests/NewTestcases.ttcn
@@ -0,0 +1,423 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+ 
+module NewTestcases {
+// This module contains tests related to the matching of omitted fields.
+// New behavior (after change request artf564824):
+// - 'omit' can no longer be used in value list and complement list templates
+//   e.g.: 't := (1, 2, omit)' and 't := complement(1, 2, omit)' are not allowed
+// - value list and complement list templates do not match the value 'omit',
+//   the 'ifpresent' clause should be used instead
+
+import from Types all;
+import from Templates all;
+
+// Testing the matching of an omitted field
+// A different field is omitted in each of the 6 tested values.
+// Both the value list template and the complement list template should not match
+// any of the values.
+testcase tc_match_omit() runs on CT
+{
+  if (match(c_int_omitted, t_every_value_list)) { 
+    setverdict(fail, c_int_omitted, " should not match ", t_every_value_list);
+  }
+  if (match(c_int_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_int_omitted, " should not match ", t_every_comp_list);
+  }
+  if (match(c_char_omitted, t_every_value_list)) { 
+    setverdict(fail, c_char_omitted, " should not match ", t_every_value_list);
+  }
+  if (match(c_char_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_char_omitted, " should not match ", t_every_comp_list);
+  }
+  if (match(c_rec_omitted, t_every_value_list)) { 
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_value_list);
+  }
+  if (match(c_rec_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_comp_list);
+  }
+  if (match(c_setof_omitted, t_every_value_list)) { 
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_value_list);
+  }
+  if (match(c_setof_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_comp_list);
+  }
+  if (match(c_uni_omitted, t_every_value_list)) { 
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_value_list);
+  }
+  if (match(c_uni_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_comp_list);
+  }
+  if (match(c_enum_omitted, t_every_value_list)) { 
+    setverdict(fail, c_enum_omitted, " should not match ", t_every_value_list);
+  }
+  if (match(c_enum_omitted, t_every_comp_list)) { 
+    setverdict(fail, c_enum_omitted, " should not match ", t_every_comp_list);
+  }
+  setverdict(pass);
+}
+
+// Testing the 'ispresent' clause on templates
+// All of the tested templates are 'present', as none of them match the 'omit' value.
+testcase tc_ispresent() runs on CT
+{
+  if (not ispresent(t_int_value_list)) {
+    setverdict(fail, t_int_value_list, " should be present");
+  }
+  if (not ispresent(t_char_value_list)) {
+    setverdict(fail, t_char_value_list, " should be present");
+  }
+  if (not ispresent(t_rec_value_list)) {
+    setverdict(fail, t_rec_value_list, " should be present");
+  }
+  if (not ispresent(t_setof_value_list)) {
+    setverdict(fail, t_setof_value_list, " should be present");
+  }
+  if (not ispresent(t_uni_value_list)) {
+    setverdict(fail, t_uni_value_list, " should be present");
+  }
+  if (not ispresent(t_enum_value_list)) {
+    setverdict(fail, t_enum_value_list, " should be present");
+  }
+  if (not ispresent(t_int_comp_list)) {
+    setverdict(fail, t_int_comp_list, " should be present");
+  }
+  if (not ispresent(t_char_comp_list)) {
+    setverdict(fail, t_char_comp_list, " should be present");
+  }
+  if (not ispresent(t_rec_comp_list)) {
+    setverdict(fail, t_rec_comp_list, " should be present");
+  }
+  if (not ispresent(t_setof_comp_list)) {
+    setverdict(fail, t_setof_comp_list, " should be present");
+  }
+  if (not ispresent(t_uni_comp_list)) {
+    setverdict(fail, t_uni_comp_list, " should be present");
+  }
+  if (not ispresent(t_enum_comp_list)) {
+    setverdict(fail, t_enum_comp_list, " should be present");
+  }
+  setverdict(pass);
+}
+
+// Testing the logging of matching an omitted field
+// The results should be the same as with the matching tests
+// (this is needed, because a different function is called when logging a match operation)
+testcase tc_log_match() runs on CT
+{
+  // omitted integer
+  var charstring v_log_match_res := log2str(match(c_int_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_int_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_int_omitted, t_every_comp_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_int_omitted, " should not match ", t_every_comp_list);
+  }
+  
+  // omitted charstring
+  v_log_match_res := log2str(match(c_char_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_char_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_char_omitted, t_every_comp_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_char_omitted, " should not match ", t_every_comp_list);
+  }
+  
+  // omitted record
+  v_log_match_res := log2str(match(c_rec_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_rec_omitted, t_every_comp_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_rec_omitted, " should not match ", t_every_comp_list);
+  }
+  
+  // omitted set of
+  v_log_match_res := log2str(match(c_setof_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_setof_omitted, t_every_comp_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_setof_omitted, " should not match ", t_every_comp_list);
+  }
+  
+  // omitted union
+  v_log_match_res := log2str(match(c_uni_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_uni_omitted, t_every_comp_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_uni_omitted, " should not match ", t_every_comp_list);
+  }
+  
+  // omitted enumerated
+  v_log_match_res := log2str(match(c_enum_omitted, t_every_value_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_enum_omitted, " should not match ", t_every_value_list);
+  }
+  v_log_match_res := log2str(match(c_enum_omitted, t_every_comp_list));
+  if (not match(v_log_match_res, t_unmatched)) {
+    setverdict(fail, c_enum_omitted, " should not match ", t_every_comp_list);
+  }
+  setverdict(pass);
+}
+
+// A component's behavior function for the procedure-based port matching test
+// Tests matching of 'omit' values in the 'getcall' operation:
+// - on success replies with or raises an exception with one of the test values
+// - on failure replies with a specific template containing an error message
+function f_behavior_proc() runs on CT
+{
+  var template Everything vt_bad := t_bad_call;
+  timer t1 := 1.0;
+  t1.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_value_list, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_value_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      // this is the expected behavior, since the incomming call is not supposed to match the template
+      proc.reply(Sig:{-, c_rec_omitted});
+    }
+    [] t1.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+  
+  timer t2 := 1.0;
+  t2.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_comp_list, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_comp_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      // this is the expected behavior, since the incomming call is not supposed to match the template
+      proc.reply(Sig:{-, c_setof_omitted});
+    }
+    [] t2.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+  
+  timer t3 := 1.0;
+  t3.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_value_list, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_value_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      // this is the expected behavior, since the incomming call is not supposed to match the template
+      proc.raise(Sig, c_uni_omitted);
+    }
+    [] t2.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+  
+  timer t4 := 1.0;
+  t4.start;
+  alt {
+    [] proc.getcall(Sig:{t_every_comp_list, -}) {
+      vt_bad.cs := log2str("getcall parameters should not match ", t_every_comp_list);
+      proc.reply(Sig:{-, vt_bad});
+    }
+    [] proc.getcall(Sig:{?, -}) {
+      // this is the expected behavior, since the incomming call is not supposed to match the template
+      proc.raise(Sig, c_char_omitted);
+    }
+    [] t2.timeout {
+      vt_bad.cs := "getcall timed out";
+      proc.reply(Sig:{-, vt_bad});
+    }
+  }
+}
+
+// Tests the matching of 'omit' values in procedure-based port operations
+// ('getcall' is tested in the newly created component's behavior function,
+// 'getreply' and 'catch' are tested here).
+testcase tc_proc_port_match() runs on CT
+{
+  var CT v_comp := CT.create;
+  connect(v_comp:proc, self:proc);
+  v_comp.start(f_behavior_proc());
+
+  // testing 'getcall' and 'getreply' with the value list template
+  var Everything v_pars;
+  proc.call(Sig:{c_int_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_every_value_list}) {
+      setverdict(fail, "getreply parameters should not match ", t_every_value_list);
+    }
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      // this is the expected behavior, since the incomming reply is not supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(Sig, ?) {
+      setverdict(fail, "caught unexpected exception");
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "getreply timed out");
+    }
+  }
+  
+  // testing 'getcall' and 'getreply' with the complement list template
+  proc.call(Sig:{c_enum_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_every_comp_list}) {
+      setverdict(fail, "getreply parameters should not match ", t_every_comp_list);
+    }
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      // this is the expected behavior, since the incomming reply is not supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(Sig, ?) {
+      setverdict(fail, "caught unexpected exception");
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "getreply timed out");
+    }
+  }
+  
+  // testing 'getcall' and 'catch' with the value list template
+  proc.call(Sig:{c_char_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      setverdict(fail, "received unexpected reply");
+    }
+    [] proc.catch(Sig, t_every_value_list) {
+      setverdict(fail, "caught exception should not match ", t_every_value_list);
+    }
+    [] proc.catch(Sig, ?) {
+      // this is the expected behavior, since the incomming exception is not supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "catch timed out");
+    }
+  }
+  
+  // testing 'getcall' and 'catch' with the complement list template
+  proc.call(Sig:{c_uni_omitted, -}, 1.0) {
+    [] proc.getreply(Sig:{-, t_bad_call}) -> param (v_pars) {
+      // the 'getcall' operation did not succeed, display the received error message
+      setverdict(fail, v_pars.cs);
+    }
+    [] proc.getreply(Sig:{-, ?}) {
+      setverdict(fail, "received unexpected reply");
+    }
+    [] proc.catch(Sig, t_every_comp_list) {
+      setverdict(fail, "caught exception should not match ", t_every_comp_list);
+    }
+    [] proc.catch(Sig, ?) {
+      // this is the expected behavior, since the incomming exception is not supposed to match the template
+      setverdict(pass);
+    }
+    [] proc.catch(timeout) {
+      setverdict(fail, "catch timed out");
+    }
+  }
+  
+  v_comp.done;
+}
+
+// A component's behavior function for the message-based port matching test
+// Sends test messages to the caller test case for matching.
+function f_behavior_msg() runs on CT
+{
+  msg.send(c_int_omitted);
+  msg.send(c_char_omitted);
+  msg.send(c_rec_omitted);
+  msg.send(c_setof_omitted);
+  msg.send(c_uni_omitted);
+  msg.send(c_enum_omitted);
+}
+
+// Tests the matching of 'omit' values in message-based port operations
+// (the newly created component's behavior function sends us 6 test messages,
+// these are matched against value list and complement list templates).
+testcase tc_msg_port_match() runs on CT
+{
+  var CT v_comp := CT.create;
+  connect(v_comp:msg, self:msg);
+  v_comp.start(f_behavior_msg());
+  
+  var integer v_msg_count := 1;
+  timer t := 1.0;
+  t.start;
+  alt {
+    [] msg.receive(t_every_value_list) {
+      setverdict(fail, "Message ", v_msg_count, " should not match ", t_every_value_list);
+    }
+    [] msg.receive(t_every_comp_list) {
+      setverdict(fail, "Message ", v_msg_count, " should not match ", t_every_comp_list);
+    }
+    [] msg.receive(?) {
+      // this is the expected behavior, since the incomming messages should not match
+      // either of the templates
+      if (v_msg_count < 6) {
+        // repeat until all 6 messages have been received
+        v_msg_count := v_msg_count + 1;
+        repeat;
+      }
+    }
+    [] t.timeout {
+      setverdict(fail, "receive timed out");
+    }
+  }
+  
+  v_comp.done;
+  msg.clear;
+  setverdict(pass);
+}
+
+// Testing the 'present' template restriction
+// (all value list and complement list templates are 'present')
+testcase tc_present_template() runs on CT
+{
+  template(present) integer t_present_value_list := (1, 2, 3);
+  template(present) integer t_present_comp_list := complement (1, 2, 3);
+  
+  var template(present) integer vt_present_value_list := (1, 2, 3);
+  var template(present) integer vt_present_comp_list := complement (1, 2, 3);
+  
+  vt_present_value_list := (4, 5, 6);
+  vt_present_comp_list := complement (4, 5, 6);
+  
+  setverdict(pass);
+}
+
+control {
+  execute(tc_match_omit());
+  execute(tc_ispresent());
+  execute(tc_log_match());
+  execute(tc_proc_port_match());
+  execute(tc_msg_port_match());
+  execute(tc_present_template());
+}
+
+}
diff --git a/regression_test/templateOmit/NewTests/new.cfg b/regression_test/templateOmit/NewTests/new.cfg
new file mode 100644
index 000000000..c272b734a
--- /dev/null
+++ b/regression_test/templateOmit/NewTests/new.cfg
@@ -0,0 +1,14 @@
+###############################################################################
+# 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
+###############################################################################
+[MODULE_PARAMETERS]
+[LOGGING]
+Logfile := "templateOmitNew_%r.log"
+FileMask := LOG_ALL
+ConsoleMask := TTCN_WARNING | TTCN_ERROR | TTCN_TESTCASE | TTCN_STATISTICS
+[EXECUTE]
+NewTestcases
diff --git a/regression_test/templateRec/Makefile b/regression_test/templateRec/Makefile
index e0c46aad6..f83b58157 100644
--- a/regression_test/templateRec/Makefile
+++ b/regression_test/templateRec/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -20,6 +20,8 @@ TTCN3_MODULES = TtemplateRec.ttcn
 GENERATED_SOURCES = $(TTCN3_MODULES:.ttcn=.cc) $(ASN1_MODULES:.asn=.cc)
 GENERATED_HEADERS = $(GENERATED_SOURCES:.cc=.hh)
 
+COMPILER_FLAGS += -M
+
 ifdef CODE_SPLIT
 GENERATED_SOURCES := $(foreach file, $(GENERATED_SOURCES:.cc=), $(addprefix $(file), .cc _seq.cc _set.cc  _seqof.cc _setof.cc _union.cc))
 endif
diff --git a/regression_test/templateRec/TtemplateRec.ttcn b/regression_test/templateRec/TtemplateRec.ttcn
index ceee9ef1d..e11e05e3a 100644
--- a/regression_test/templateRec/TtemplateRec.ttcn
+++ b/regression_test/templateRec/TtemplateRec.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -92,13 +92,13 @@ x2:={ x1:={f1:=1,f2:=1.2},  x2:={f1:=7,f2:=1.2},  x3:=temp };
 x3:={ x1:={f1:=8,f2:=1.2},  x2:={f1:=6,f2:=1.2},  x3:=temp };
 //match
 if (match(x1,templateRec_tList)) {setverdict(pass);}
- else {setverdict(fail);}
+ else {setverdict(fail, 1);}
 //no match: out of list
 if (not(match(x2,templateRec_tList))) {setverdict(pass);}
- else {setverdict(fail);}
+ else {setverdict(fail, 2);}
 //no match: other field
 if (not(match(x3,templateRec_tList))) {setverdict(pass);}
- else {setverdict(fail);}
+ else {setverdict(fail, 3);}
 }
 
 testcase templateRecComp() runs on templateRec_mycomp {
@@ -109,13 +109,13 @@ x2:={ x1:={f1:=1,f2:=1.2},  x2:={f1:=6,f2:=1.2},  x3:=temp };
 x3:={ x1:={f1:=2,f2:=1.2},  x2:={f1:=7,f2:=1.2},  x3:=temp };
 //match
 if (match(x1,templateRec_tComp)) {setverdict(pass);}
- else {setverdict(fail);}
+ else {setverdict(fail, 1);}
 //no match: in the list
 if (not(match(x2,templateRec_tComp))) {setverdict(pass);}
- else {setverdict(fail);}
+ else {setverdict(fail, 2);}
 //no match: other field
 if (not(match(x3,templateRec_tComp))) {setverdict(pass);}
- else {setverdict(fail);}
+ else {setverdict(fail, 3);}
 }
 
 testcase templateRecOmit() runs on templateRec_mycomp {
@@ -205,6 +205,7 @@ template R tr := { i := 1, str := ( omit , omit ) }
 template R tr2 := { i := 1, str := complement( omit , omit ) }
 template R trc := cr; // HQ46602
 
+// Note: this tests legacy behavior and requires the -M compiler option!
 testcase MTTSM00015947() runs on templateRec_mycomp
 {
   if (not match(cr, tRrec1)) { setverdict(fail); }
diff --git a/regression_test/templateRec/TtemplateRecAsn.asn b/regression_test/templateRec/TtemplateRecAsn.asn
index e93be55e0..c643900f0 100644
--- a/regression_test/templateRec/TtemplateRecAsn.asn
+++ b/regression_test/templateRec/TtemplateRecAsn.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/templateRec/config.cfg b/regression_test/templateRec/config.cfg
index b08f11912..f70cc1d32 100644
--- a/regression_test/templateRec/config.cfg
+++ b/regression_test/templateRec/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateRecof/Makefile b/regression_test/templateRecof/Makefile
index a5680f1c0..ec7257cf7 100644
--- a/regression_test/templateRecof/Makefile
+++ b/regression_test/templateRecof/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateRecof/TmultiplePermutations.ttcn b/regression_test/templateRecof/TmultiplePermutations.ttcn
index 96478900d..e13a7b92e 100644
--- a/regression_test/templateRecof/TmultiplePermutations.ttcn
+++ b/regression_test/templateRecof/TmultiplePermutations.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateRecof/TtemplateRecof.ttcn b/regression_test/templateRecof/TtemplateRecof.ttcn
index daca9cda6..ef9d65b1b 100644
--- a/regression_test/templateRecof/TtemplateRecof.ttcn
+++ b/regression_test/templateRecof/TtemplateRecof.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateRecof/config.cfg b/regression_test/templateRecof/config.cfg
index 30c1f69ee..8f8f8a129 100644
--- a/regression_test/templateRecof/config.cfg
+++ b/regression_test/templateRecof/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateSet/Makefile b/regression_test/templateSet/Makefile
index 8af2632ec..46ecda7fd 100644
--- a/regression_test/templateSet/Makefile
+++ b/regression_test/templateSet/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateSet/TtemplateSet.ttcn b/regression_test/templateSet/TtemplateSet.ttcn
index 06c95fa94..3c6f72495 100644
--- a/regression_test/templateSet/TtemplateSet.ttcn
+++ b/regression_test/templateSet/TtemplateSet.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateSet/config.cfg b/regression_test/templateSet/config.cfg
index e6eb9a1ce..1b1c0351b 100644
--- a/regression_test/templateSet/config.cfg
+++ b/regression_test/templateSet/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateSetof/Makefile b/regression_test/templateSetof/Makefile
index 07c4149c8..dcf0b8865 100644
--- a/regression_test/templateSetof/Makefile
+++ b/regression_test/templateSetof/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateSetof/TtemplateSetof.ttcn b/regression_test/templateSetof/TtemplateSetof.ttcn
index 823d1626b..cd8f6bb8c 100644
--- a/regression_test/templateSetof/TtemplateSetof.ttcn
+++ b/regression_test/templateSetof/TtemplateSetof.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateSetof/config.cfg b/regression_test/templateSetof/config.cfg
index 1127d4d0b..f0770b7c9 100644
--- a/regression_test/templateSetof/config.cfg
+++ b/regression_test/templateSetof/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateUnion/Makefile b/regression_test/templateUnion/Makefile
index 6fa9f9c6f..88813ea57 100644
--- a/regression_test/templateUnion/Makefile
+++ b/regression_test/templateUnion/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/templateUnion/TtemplateUnion.ttcn b/regression_test/templateUnion/TtemplateUnion.ttcn
index d3eeb95f0..ae1236812 100644
--- a/regression_test/templateUnion/TtemplateUnion.ttcn
+++ b/regression_test/templateUnion/TtemplateUnion.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/templateUnion/config.cfg b/regression_test/templateUnion/config.cfg
index 8addb18bc..75e797c8e 100644
--- a/regression_test/templateUnion/config.cfg
+++ b/regression_test/templateUnion/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/testcase_defparam/Makefile b/regression_test/testcase_defparam/Makefile
index c874dd8d7..962f7303e 100644
--- a/regression_test/testcase_defparam/Makefile
+++ b/regression_test/testcase_defparam/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/testcase_defparam/config.cfg b/regression_test/testcase_defparam/config.cfg
index 947056980..0ec703f0c 100644
--- a/regression_test/testcase_defparam/config.cfg
+++ b/regression_test/testcase_defparam/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/testcase_defparam/tcdefparam.ttcn b/regression_test/testcase_defparam/tcdefparam.ttcn
index 0bcc773ac..9d7feed28 100644
--- a/regression_test/testcase_defparam/tcdefparam.ttcn
+++ b/regression_test/testcase_defparam/tcdefparam.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/Makefile b/regression_test/text2ttcn/Makefile
index e9a231937..a138d3699 100644
--- a/regression_test/text2ttcn/Makefile
+++ b/regression_test/text2ttcn/Makefile
@@ -1,62 +1,67 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
 ###############################################################################
-TOPDIR := ../
-include   $(TOPDIR)/Makefile.regression
-
-MAKE_PROG := $(MAKE)
-
+TOPDIR := ../
+include   $(TOPDIR)/Makefile.regression
+
+MAKE_PROG := $(MAKE)
+
 TTCN_FILES := array_test.ttcn bitstring_test.ttcn boolean_test.ttcn charstring_test.ttcn enum_test.ttcn float_test.ttcn functions.ttcn hexstring_test.ttcn integer_test.ttcn octetstring_test.ttcn record_test.ttcn recordof_test.ttcn set_test.ttcn setof_test.ttcn types.ttcn ucharstring_test.ttcn union_test.ttcn objid_test.ttcn
 TTCN_PARALLEL_FILES := component_test.ttcn
-
+
 SINGLE_CFG := text2ttcn_1.cfg
-PARALLEL_CFG := text2ttcn_2.cfg
+PARALLEL_CFG := text2ttcn_2.cfg
 
 SINGLE_FILES := $(TTCN_FILES) $(SINGLE_CFG) 
-PARALLEL_FILES := $(TTCN_FILES) $(TTCN_PARALLEL_FILES) $(PARALLEL_CFG)
-
-RUNNABLE := text2ttcn
-
-ifeq ($(PLATFORM), WIN32)
-RUNNABLE := $(RUNNABLE).exe
-endif
-
-DIR_SINGLE := dir_single_mode
-DIR_PARALLEL := dir_parallel_mode
-GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL)
-
-# List of fake targets:
-.PHONY: all clean run run_single run_parallel runall
-
-all: $(GENERATED_DIRS)
-
-$(DIR_SINGLE):
-	mkdir $@
-	cd $@ && for file in $(SINGLE_FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -s -e $(RUNNABLE) ./*  && $(MAKE_PROG)
-
-$(DIR_PARALLEL):
-	mkdir $@
-	cd $@ && for file in $(PARALLEL_FILES); do ln -s ../$$file || exit; done
-	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen -e $(RUNNABLE) ./*  && $(MAKE_PROG)
-
-run: $(GENERATED_DIRS)
-	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(SINGLE_CFG) && grep "Overall verdict: pass" *.log
-	cd $(DIR_PARALLEL) && $(TTCN3_DIR)/bin/ttcn3_start $(RUNNABLE) $(PARALLEL_CFG) && grep "Overall verdict: pass" *.log
-
-# To run all tests, possibly in parallel
-run_single: $(DIR_SINGLE)
-	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(SINGLE_CFG) && grep "Overall verdict: pass" *.log
-
-run_parallel: $(DIR_PARALLEL) 
-	cd $(DIR_PARALLEL) && $(TTCN3_DIR)/bin/ttcn3_start $(RUNNABLE) $(PARALLEL_CFG) && grep "Overall verdict: pass" *.log
-
-runall: run_single run_parallel
-
-clean distclean:
-	rm -rf $(GENERATED_DIRS)
-
+PARALLEL_FILES := $(TTCN_FILES) $(TTCN_PARALLEL_FILES) $(PARALLEL_CFG)
+
+RUNNABLE := text2ttcn
+
+ifeq ($(PLATFORM), WIN32)
+RUNNABLE := $(RUNNABLE).exe
+endif
+
+COVERAGE_FLAG := 
+ifeq ($(COVERAGE), yes)
+  COVERAGE_FLAG += -C
+endif
+
+DIR_SINGLE := dir_single_mode
+DIR_PARALLEL := dir_parallel_mode
+GENERATED_DIRS := $(DIR_SINGLE) $(DIR_PARALLEL)
+
+# List of fake targets:
+.PHONY: all clean run run_single run_parallel runall
+
+all: $(GENERATED_DIRS)
+
+$(DIR_SINGLE):
+	mkdir $@
+	cd $@ && for file in $(SINGLE_FILES); do ln -s ../$$file || exit; done
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -sM -e $(RUNNABLE) ./*  && $(MAKE_PROG)
+
+$(DIR_PARALLEL):
+	mkdir $@
+	cd $@ && for file in $(PARALLEL_FILES); do ln -s ../$$file || exit; done
+	cd $@ && $(TTCN3_DIR)/bin/ttcn3_makefilegen $(COVERAGE_FLAG) -M -e $(RUNNABLE) ./*  && $(MAKE_PROG)
+
+run: $(GENERATED_DIRS)
+	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(SINGLE_CFG) && grep "Overall verdict: pass" *.log
+	cd $(DIR_PARALLEL) && $(TTCN3_DIR)/bin/ttcn3_start $(RUNNABLE) $(PARALLEL_CFG) && grep "Overall verdict: pass" *.log
+
+# To run all tests, possibly in parallel
+run_single: $(DIR_SINGLE)
+	cd $(DIR_SINGLE) && ./$(RUNNABLE) $(SINGLE_CFG) && grep "Overall verdict: pass" *.log
+
+run_parallel: $(DIR_PARALLEL) 
+	cd $(DIR_PARALLEL) && $(TTCN3_DIR)/bin/ttcn3_start $(RUNNABLE) $(PARALLEL_CFG) && grep "Overall verdict: pass" *.log
+
+runall: run_single run_parallel
+
+clean distclean:
+	rm -rf $(GENERATED_DIRS)
+
diff --git a/regression_test/text2ttcn/array_test.ttcn b/regression_test/text2ttcn/array_test.ttcn
index 477e3b0b3..441fd2035 100755
--- a/regression_test/text2ttcn/array_test.ttcn
+++ b/regression_test/text2ttcn/array_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/bitstring_test.ttcn b/regression_test/text2ttcn/bitstring_test.ttcn
index d87794624..01c9bbde1 100755
--- a/regression_test/text2ttcn/bitstring_test.ttcn
+++ b/regression_test/text2ttcn/bitstring_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/boolean_test.ttcn b/regression_test/text2ttcn/boolean_test.ttcn
index 3cba79789..cf6bc46a4 100755
--- a/regression_test/text2ttcn/boolean_test.ttcn
+++ b/regression_test/text2ttcn/boolean_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/charstring_test.ttcn b/regression_test/text2ttcn/charstring_test.ttcn
index fb88956d4..33394489b 100755
--- a/regression_test/text2ttcn/charstring_test.ttcn
+++ b/regression_test/text2ttcn/charstring_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -517,18 +517,21 @@ testcase tc_cs_vl3_emb() runs on MC {
   var RoRCS vl_wrong_values := {{omit},{"AB"},{"ab"},{"ba"},{"12"},{"A1"},{"  "},{""},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
   f_checkMatchingValues_rcs(t_rcs(t_cs_vl3), vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //complement("ABBA")
 testcase tc_cs_c1_emb() runs on MC {
   var RoRCS vl_good_values := {{omit},{"AB"},{"ab"},{"ba"},{"12"},{"A1"},{"  """},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
   var RoRCS vl_wrong_values := {{"ABBA"}}
   f_checkMatchingValues_rcs(t_rcs(t_cs_c1), vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //complement("ABBA","baba");
 testcase tc_cs_c2_emb() runs on MC {
   var RoRCS vl_good_values :={{omit},{"AB"},{"ab"},{"ba"},{"12"},{"A1"},{"  "},{""},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
   var RoRCS vl_wrong_values :=  {{"ABBA"},{"baba"}}
   f_checkMatchingValues_rcs(t_rcs(t_cs_c2), vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //complement("ABBA","baba","Bye");
 testcase tc_cs_c3_emb() runs on MC {
   var RoRCS vl_good_values := {{omit},{"AB"},{ "ab"},{"ba"},{"12"},{"A1"},{"  "},{""},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
@@ -827,18 +830,21 @@ testcase tc_cs_mod4vl3_emb() runs on MC {
   var RoRCS vl_wrong_values := {{omit},{"AB"},{"ab"},{"ba"},{"12"},{"A1"},{"  "},{""},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
   f_checkMatchingValues_rcs(t_rcs(tspt_cs_mod4vl3), vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //complement("ABBA")
 testcase tc_cs_mod4c1_emb() runs on MC {
   var RoRCS vl_good_values := {{omit},{"AB"},{"ab"},{"ba"},{"12"},{"A1"},{"  """},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
   var RoRCS vl_wrong_values := {{"ABBA"}}
   f_checkMatchingValues_rcs(t_rcs(tspt_cs_mod4c1), vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //complement("ABBA","baba");
 testcase tc_cs_mod4c2_emb() runs on MC {
   var RoRCS vl_good_values :={{omit},{"AB"},{"ab"},{"ba"},{"12"},{"A1"},{"  "},{""},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
   var RoRCS vl_wrong_values :=  {{"ABBA"},{"baba"}}
   f_checkMatchingValues_rcs(t_rcs(tspt_cs_mod4c2), vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //complement("ABBA","baba","Bye");
 testcase tc_cs_mod4c3_emb() runs on MC {
   var RoRCS vl_good_values := {{omit},{"AB"},{ "ab"},{"ba"},{"12"},{"A1"},{"  "},{""},{"A"},{"ABB"},{"ABBAB"},{"abba"},{"anything"},{"XXXX"},{"ABCDE"},{"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"}}
diff --git a/regression_test/text2ttcn/component_test.ttcn b/regression_test/text2ttcn/component_test.ttcn
index fb298a176..82e825584 100644
--- a/regression_test/text2ttcn/component_test.ttcn
+++ b/regression_test/text2ttcn/component_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/enum_test.ttcn b/regression_test/text2ttcn/enum_test.ttcn
index cfcba27eb..a1a9202a4 100755
--- a/regression_test/text2ttcn/enum_test.ttcn
+++ b/regression_test/text2ttcn/enum_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/float_test.ttcn b/regression_test/text2ttcn/float_test.ttcn
index b625aabd3..9026a44b9 100755
--- a/regression_test/text2ttcn/float_test.ttcn
+++ b/regression_test/text2ttcn/float_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/functions.ttcn b/regression_test/text2ttcn/functions.ttcn
index 7fc2d27c4..ebbaa2d3e 100644
--- a/regression_test/text2ttcn/functions.ttcn
+++ b/regression_test/text2ttcn/functions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/hexstring_test.ttcn b/regression_test/text2ttcn/hexstring_test.ttcn
index 1445680bf..e8d180742 100755
--- a/regression_test/text2ttcn/hexstring_test.ttcn
+++ b/regression_test/text2ttcn/hexstring_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/integer_test.ttcn b/regression_test/text2ttcn/integer_test.ttcn
index ece89b6c8..0d70453fe 100755
--- a/regression_test/text2ttcn/integer_test.ttcn
+++ b/regression_test/text2ttcn/integer_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/objid_test.ttcn b/regression_test/text2ttcn/objid_test.ttcn
index 1ef69c9d5..9db1dbd31 100644
--- a/regression_test/text2ttcn/objid_test.ttcn
+++ b/regression_test/text2ttcn/objid_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/octetstring_test.ttcn b/regression_test/text2ttcn/octetstring_test.ttcn
index b6f4890b2..adb618abd 100755
--- a/regression_test/text2ttcn/octetstring_test.ttcn
+++ b/regression_test/text2ttcn/octetstring_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/record_test.ttcn b/regression_test/text2ttcn/record_test.ttcn
index cc413e7f4..49cd1afd1 100755
--- a/regression_test/text2ttcn/record_test.ttcn
+++ b/regression_test/text2ttcn/record_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/recordof_test.ttcn b/regression_test/text2ttcn/recordof_test.ttcn
index eb7f3dd61..cb45b0df9 100755
--- a/regression_test/text2ttcn/recordof_test.ttcn
+++ b/regression_test/text2ttcn/recordof_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/set_test.ttcn b/regression_test/text2ttcn/set_test.ttcn
index d1c99acc8..b5f5c2ec2 100755
--- a/regression_test/text2ttcn/set_test.ttcn
+++ b/regression_test/text2ttcn/set_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -218,6 +218,7 @@ testcase tc_set_mod4o_emb() runs on MC {
   } 
   f_checkMatchingValues_rset(t_rset(tspt_set_mod4o),vl_good_values,vl_wrong_values);
 }
+// Note: this tests legacy behavior and requires the -M compiler option!
 //tspt_set_mod4c1 := complement({ b:=true, cs:= "sth", f:=0.0, bs:=omit, os:=?,hs:=?,i:=99})
 testcase tc_set_mod4c1_emb() runs on MC {
   log(t_rset(tspt_set_mod4c1));
diff --git a/regression_test/text2ttcn/setof_test.ttcn b/regression_test/text2ttcn/setof_test.ttcn
index b030d49a5..275137931 100755
--- a/regression_test/text2ttcn/setof_test.ttcn
+++ b/regression_test/text2ttcn/setof_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/text2ttcn_1.cfg b/regression_test/text2ttcn/text2ttcn_1.cfg
index f779a8fe1..4f59d1f3e 100644
--- a/regression_test/text2ttcn/text2ttcn_1.cfg
+++ b/regression_test/text2ttcn/text2ttcn_1.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/text2ttcn/types.ttcn b/regression_test/text2ttcn/types.ttcn
index 3748222a7..42576ec4c 100644
--- a/regression_test/text2ttcn/types.ttcn
+++ b/regression_test/text2ttcn/types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/ucharstring_test.ttcn b/regression_test/text2ttcn/ucharstring_test.ttcn
index 26bd4c252..7ff2c831d 100755
--- a/regression_test/text2ttcn/ucharstring_test.ttcn
+++ b/regression_test/text2ttcn/ucharstring_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/text2ttcn/union_test.ttcn b/regression_test/text2ttcn/union_test.ttcn
index e29736326..d2fb19882 100755
--- a/regression_test/text2ttcn/union_test.ttcn
+++ b/regression_test/text2ttcn/union_test.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/transparent/Makefile b/regression_test/transparent/Makefile
index f769504fd..5bfac57c2 100644
--- a/regression_test/transparent/Makefile
+++ b/regression_test/transparent/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/transparent/run.cfg b/regression_test/transparent/run.cfg
index 82371bb68..4344fa5a8 100644
--- a/regression_test/transparent/run.cfg
+++ b/regression_test/transparent/run.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/transparent/transparent.ttcn b/regression_test/transparent/transparent.ttcn
index fcf2e86dd..0b6b6cef4 100644
--- a/regression_test/transparent/transparent.ttcn
+++ b/regression_test/transparent/transparent.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/tryCatch/Makefile b/regression_test/tryCatch/Makefile
index 52e548491..2acf7ad4f 100644
--- a/regression_test/tryCatch/Makefile
+++ b/regression_test/tryCatch/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/tryCatch/PCOType.cc b/regression_test/tryCatch/PCOType.cc
index bcf498baa..a10755d93 100644
--- a/regression_test/tryCatch/PCOType.cc
+++ b/regression_test/tryCatch/PCOType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/tryCatch/PCOType.hh b/regression_test/tryCatch/PCOType.hh
index 88f4a6ed5..f767dedea 100644
--- a/regression_test/tryCatch/PCOType.hh
+++ b/regression_test/tryCatch/PCOType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/tryCatch/external_function.cc b/regression_test/tryCatch/external_function.cc
index 84dcb7aed..6c5a6df37 100644
--- a/regression_test/tryCatch/external_function.cc
+++ b/regression_test/tryCatch/external_function.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/tryCatch/tryCatch.cfg b/regression_test/tryCatch/tryCatch.cfg
index 9ba43a8e0..faa4d9a8b 100644
--- a/regression_test/tryCatch/tryCatch.cfg
+++ b/regression_test/tryCatch/tryCatch.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/tryCatch/tryCatch_Functions.ttcn b/regression_test/tryCatch/tryCatch_Functions.ttcn
index d07716eb7..55539fd85 100644
--- a/regression_test/tryCatch/tryCatch_Functions.ttcn
+++ b/regression_test/tryCatch/tryCatch_Functions.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/tryCatch/tryCatch_Testcases.ttcn b/regression_test/tryCatch/tryCatch_Testcases.ttcn
index 3ae2000b6..b72359e5c 100644
--- a/regression_test/tryCatch/tryCatch_Testcases.ttcn
+++ b/regression_test/tryCatch/tryCatch_Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ttcn2json/CompareSchemas.ttcn b/regression_test/ttcn2json/CompareSchemas.ttcn
index 426111b7e..a7c7e5312 100644
--- a/regression_test/ttcn2json/CompareSchemas.ttcn
+++ b/regression_test/ttcn2json/CompareSchemas.ttcn
@@ -36,13 +36,15 @@ type record TypeSchemaElement {
 }
 
 type enumerated ElemKey {
-  Ref, Type, SubType, Pattern, OriginalName, UnusedAlias, MinItems, MaxItems, // strVal
-  AdditionalProperties, OmitAsNull, // boolVal
+  Ref, Type, SubType, Pattern, OriginalName, UnusedAlias, MinItems, MaxItems, MinLength, MaxLength, Minimum, Maximum, // strVal
+  AdditionalProperties, OmitAsNull, exclusiveMinimum, exclusiveMaximum, // boolVal
   Default, // strVal or boolVal
-  Enum, NumericValues, Required, FieldOrder, // strArrayVal
+  NumericValues, Required, FieldOrder, // strArrayVal
+  Enum, // arrayVal
   Items, // typeVal
-  AnyOf, // typeArrayVal
-  Properties // fieldSetVal
+  AnyOf, AllOf, // typeArrayVal
+  Properties, // fieldSetVal
+  Extension // extVal
 }
 
 type union ElemValue {
@@ -51,7 +53,9 @@ type union ElemValue {
   record of charstring strArrayVal,
   TypeSchema typeVal,
   record of TypeSchema typeArrayVal,
-  set of FieldValue fieldSetVal
+  set of FieldValue fieldSetVal,
+  ExtensionValue extVal,
+  ArrayValue arrayVal
 }
 
 type record FieldValue {
@@ -59,6 +63,27 @@ type record FieldValue {
   TypeSchema schema
 }
 
+type record ExtensionValue {
+  charstring key,
+  charstring val
+}
+
+type union AnyValue {
+  charstring strVal, // number, string or null
+  boolean boolVal,
+  ObjectValue objectVal,
+  ArrayValue arrayVal
+}
+
+type record ObjectSegment {
+  charstring key,
+  AnyValue val
+}
+
+type set of ObjectSegment ObjectValue;
+
+type record of AnyValue ArrayValue;
+
 // references/functions section:
 type set of RefSchema RefSchemas;
 
diff --git a/regression_test/ttcn2json/General_Types.ttcn b/regression_test/ttcn2json/General_Types.ttcn
index fb0fbae82..40630f013 100644
--- a/regression_test/ttcn2json/General_Types.ttcn
+++ b/regression_test/ttcn2json/General_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ttcn2json/General_Types_e.json b/regression_test/ttcn2json/General_Types_e.json
index 3fc889a28..b6a733f76 100644
--- a/regression_test/ttcn2json/General_Types_e.json
+++ b/regression_test/ttcn2json/General_Types_e.json
@@ -1,374 +1,593 @@
 {
+	"$schema" : "http://json-schema.org/draft-04/schema#",
 	"definitions" : {
 		"General_Types" : {
 			"BIT1" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 1,
+				"maxLength" : 1
 			},
 			"BIT10" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 10,
+				"maxLength" : 10
 			},
 			"BIT11" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 11,
+				"maxLength" : 11
 			},
 			"BIT12" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 12,
+				"maxLength" : 12
 			},
 			"BIT12n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 12,
+				"maxLength" : 12
 			},
 			"BIT14" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 14,
+				"maxLength" : 14
 			},
 			"BIT14_24n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 14,
+				"maxLength" : 24
 			},
 			"BIT14n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 14,
+				"maxLength" : 14
 			},
 			"BIT15" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 15,
+				"maxLength" : 15
 			},
 			"BIT15n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 15,
+				"maxLength" : 15
 			},
 			"BIT15np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 15,
+				"maxLength" : 15
 			},
 			"BIT16" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 16,
+				"maxLength" : 16
 			},
 			"BIT16_BO_LAST" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 16,
+				"maxLength" : 16
 			},
 			"BIT16n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 16,
+				"maxLength" : 16
 			},
 			"BIT1n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 1,
+				"maxLength" : 1
 			},
 			"BIT1np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 1,
+				"maxLength" : 1
 			},
 			"BIT2" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 2,
+				"maxLength" : 2
 			},
 			"BIT24" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 24,
+				"maxLength" : 24
 			},
 			"BIT2n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 2,
+				"maxLength" : 2
 			},
 			"BIT2np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 2,
+				"maxLength" : 2
 			},
 			"BIT3" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 3,
+				"maxLength" : 3
 			},
 			"BIT31" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 31,
+				"maxLength" : 31
 			},
 			"BIT32_BO_LAST" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 32,
+				"maxLength" : 32
 			},
 			"BIT3n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 3,
+				"maxLength" : 3
 			},
 			"BIT3np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 3,
+				"maxLength" : 3
 			},
 			"BIT4" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"BIT4n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"BIT4np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"BIT5" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 5,
+				"maxLength" : 5
 			},
 			"BIT56" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 56,
+				"maxLength" : 56
 			},
 			"BIT56n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 56,
+				"maxLength" : 56
 			},
 			"BIT5n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 5,
+				"maxLength" : 5
 			},
 			"BIT5np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 5,
+				"maxLength" : 5
 			},
 			"BIT6" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"BIT6_BO_LAST" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"BIT6n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"BIT6np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"BIT7" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 7,
+				"maxLength" : 7
 			},
 			"BIT7n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 7,
+				"maxLength" : 7
 			},
 			"BIT7np" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 7,
+				"maxLength" : 7
 			},
 			"BIT8" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 8,
+				"maxLength" : 8
 			},
 			"BIT8n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 8,
+				"maxLength" : 8
 			},
 			"BIT9" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 9,
+				"maxLength" : 9
 			},
 			"BIT9n" : {
 				"type" : "string",
 				"subType" : "bitstring",
-				"pattern" : "^[01]*$"
+				"pattern" : "^[01]*$",
+				"minLength" : 9,
+				"maxLength" : 9
 			},
 			"CHAR4" : {
 				"type" : "string",
-				"subType" : "charstring"
+				"subType" : "charstring",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"Dummy" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 0,
+				"maxLength" : 0
 			},
 			"HEX0_16" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 0,
+				"maxLength" : 16
 			},
 			"HEX0_18n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 0,
+				"maxLength" : 18
 			},
 			"HEX1" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 1,
+				"maxLength" : 1
 			},
 			"HEX15n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 15,
+				"maxLength" : 15
 			},
 			"HEX16n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 16,
+				"maxLength" : 16
 			},
 			"HEX1_20n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 1,
+				"maxLength" : 20
 			},
 			"HEX1_32" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 1,
+				"maxLength" : 32
 			},
 			"HEX1_34n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 1,
+				"maxLength" : 34
 			},
 			"HEX24n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 24,
+				"maxLength" : 24
 			},
 			"HEX4n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"HEX5_16" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 5,
+				"maxLength" : 16
 			},
 			"HEX6n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"HEX8n" : {
 				"type" : "string",
 				"subType" : "hexstring",
-				"pattern" : "^[0-9A-Fa-f]*$"
+				"pattern" : "^[0-9A-Fa-f]*$",
+				"minLength" : 8,
+				"maxLength" : 8
 			},
 			"INT1" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 255,
+				"exclusiveMaximum" : false
 			},
 			"INT11b_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 2047,
+				"exclusiveMaximum" : false
 			},
 			"INT12b_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 4095,
+				"exclusiveMaximum" : false
 			},
 			"INT13b_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 8191,
+				"exclusiveMaximum" : false
 			},
 			"INT13nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 8191,
+				"exclusiveMaximum" : false
 			},
 			"INT14b_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 16383,
+				"exclusiveMaximum" : false
 			},
 			"INT15nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 32767,
+				"exclusiveMaximum" : false
 			},
 			"INT1b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 1,
+				"exclusiveMaximum" : false
 			},
 			"INT1nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 1,
+				"exclusiveMaximum" : false
 			},
 			"INT20b_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 1048575,
+				"exclusiveMaximum" : false
 			},
 			"INT2b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 3,
+				"exclusiveMaximum" : false
 			},
 			"INT2nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 3,
+				"exclusiveMaximum" : false
 			},
 			"INT31b_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 2147483647,
+				"exclusiveMaximum" : false
 			},
 			"INT3b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 7,
+				"exclusiveMaximum" : false
 			},
 			"INT3nb" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 7,
+				"exclusiveMaximum" : false
 			},
 			"INT3nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 7,
+				"exclusiveMaximum" : false
 			},
 			"INT4b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 15,
+				"exclusiveMaximum" : false
 			},
 			"INT4nb" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 15,
+				"exclusiveMaximum" : false
 			},
 			"INT5b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 31,
+				"exclusiveMaximum" : false
 			},
 			"INT5nb" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 31,
+				"exclusiveMaximum" : false
 			},
 			"INT5nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 31,
+				"exclusiveMaximum" : false
 			},
 			"INT6b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 63,
+				"exclusiveMaximum" : false
 			},
 			"INT7b" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 127,
+				"exclusiveMaximum" : false
 			},
 			"INT8nb" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 255,
+				"exclusiveMaximum" : false
 			},
 			"INT9nbp" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 511,
+				"exclusiveMaximum" : false
 			},
 			"Integer_array" : {
 				"type" : "array",
@@ -385,144 +604,214 @@
 				}
 			},
 			"LIN1" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 255,
+				"exclusiveMaximum" : false
 			},
 			"LIN2" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 65535,
+				"exclusiveMaximum" : false
 			},
 			"LIN2_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 65535,
+				"exclusiveMaximum" : false
 			},
 			"LIN3_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 16777215,
+				"exclusiveMaximum" : false
 			},
 			"LIN4_BO_LAST" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false,
+				"maximum" : 4294967295,
+				"exclusiveMaximum" : false
 			},
 			"OCT0" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 0,
+				"maxLength" : 0
 			},
 			"OCT0n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 0,
+				"maxLength" : 0
 			},
 			"OCT1" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 1
 			},
 			"OCT10" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 10,
+				"maxLength" : 10
 			},
 			"OCT100n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 100,
+				"maxLength" : 100
 			},
 			"OCT10n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 10,
+				"maxLength" : 10
 			},
 			"OCT11" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 11,
+				"maxLength" : 11
 			},
 			"OCT11n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 11,
+				"maxLength" : 11
 			},
 			"OCT12" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 12,
+				"maxLength" : 12
 			},
 			"OCT128n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 128,
+				"maxLength" : 128
 			},
 			"OCT12n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 12,
+				"maxLength" : 12
 			},
 			"OCT13" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 13,
+				"maxLength" : 13
 			},
 			"OCT13n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 13,
+				"maxLength" : 13
 			},
 			"OCT14" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 14,
+				"maxLength" : 14
 			},
 			"OCT14n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 14,
+				"maxLength" : 14
 			},
 			"OCT15" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 15,
+				"maxLength" : 15
 			},
 			"OCT15n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 15,
+				"maxLength" : 15
 			},
 			"OCT16" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 16,
+				"maxLength" : 16
 			},
 			"OCT16n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 16,
+				"maxLength" : 16
 			},
 			"OCT17" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 17,
+				"maxLength" : 17
 			},
 			"OCT17n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 17,
+				"maxLength" : 17
 			},
 			"OCT18" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 18,
+				"maxLength" : 18
 			},
 			"OCT18n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 18,
+				"maxLength" : 18
 			},
 			"OCT19" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 19,
+				"maxLength" : 19
 			},
 			"OCT19n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 19,
+				"maxLength" : 19
 			},
 			"OCT1List" : {
 				"type" : "array",
@@ -534,152 +823,212 @@
 			"OCT1_112n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 112
 			},
 			"OCT1_12" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 12
 			},
 			"OCT1_127n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 127
 			},
 			"OCT1_128n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 128
 			},
 			"OCT1_12n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 12
 			},
 			"OCT1_15n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 15
 			},
 			"OCT1_16n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 16
 			},
 			"OCT1_172n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 172
 			},
 			"OCT1_18n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 18
 			},
 			"OCT1_20n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 20
 			},
 			"OCT1_24n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 24
 			},
 			"OCT1_260" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 260
 			},
 			"OCT1_32" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 32
 			},
 			"OCT1_32n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 32
 			},
 			"OCT1_34n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 34
 			},
 			"OCT1_3n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 3
 			},
 			"OCT1_46n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 46
 			},
 			"OCT1_4n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 4
 			},
 			"OCT1_50" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 50
 			},
 			"OCT1_50n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 50
 			},
 			"OCT1_5n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 5
 			},
 			"OCT1_6n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 6
 			},
 			"OCT1_7n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 7
 			},
 			"OCT1_8" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 8
 			},
 			"OCT1_8n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 8
 			},
 			"OCT1n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 1,
+				"maxLength" : 1
 			},
 			"OCT2" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 2,
+				"maxLength" : 2
 			},
 			"OCT20" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 20,
+				"maxLength" : 20
 			},
 			"OCT20n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 20,
+				"maxLength" : 20
 			},
 			"OCT28n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 28,
+				"maxLength" : 28
 			},
 			"OCT2List" : {
 				"type" : "array",
@@ -691,32 +1040,44 @@
 			"OCT2n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 2,
+				"maxLength" : 2
 			},
 			"OCT3" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 3
 			},
 			"OCT32" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 32,
+				"maxLength" : 32
 			},
 			"OCT32n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 32,
+				"maxLength" : 32
 			},
 			"OCT34" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 34,
+				"maxLength" : 34
 			},
 			"OCT34n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 34,
+				"maxLength" : 34
 			},
 			"OCT3List" : {
 				"type" : "array",
@@ -728,52 +1089,72 @@
 			"OCT3_14n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 14
 			},
 			"OCT3_17n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 17
 			},
 			"OCT3_5n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 5
 			},
 			"OCT3_7n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 7
 			},
 			"OCT3_8" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 8
 			},
 			"OCT3_8n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 8
 			},
 			"OCT3n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 3,
+				"maxLength" : 3
 			},
 			"OCT4" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"OCT46" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 46,
+				"maxLength" : 46
 			},
 			"OCT46n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 46,
+				"maxLength" : 46
 			},
 			"OCT4List" : {
 				"type" : "array",
@@ -785,27 +1166,37 @@
 			"OCT4_8n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 4,
+				"maxLength" : 8
 			},
 			"OCT4n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 4,
+				"maxLength" : 4
 			},
 			"OCT5" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 5,
+				"maxLength" : 5
 			},
 			"OCT500n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 500,
+				"maxLength" : 500
 			},
 			"OCT50n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 50,
+				"maxLength" : 50
 			},
 			"OCT5List" : {
 				"type" : "array",
@@ -817,17 +1208,23 @@
 			"OCT5n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 5,
+				"maxLength" : 5
 			},
 			"OCT6" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"OCT69n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 69,
+				"maxLength" : 69
 			},
 			"OCT6List" : {
 				"type" : "array",
@@ -839,12 +1236,16 @@
 			"OCT6n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 6,
+				"maxLength" : 6
 			},
 			"OCT7" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 7,
+				"maxLength" : 7
 			},
 			"OCT7List" : {
 				"type" : "array",
@@ -856,27 +1257,37 @@
 			"OCT7n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 7,
+				"maxLength" : 7
 			},
 			"OCT8" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 8,
+				"maxLength" : 8
 			},
 			"OCT8n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 8,
+				"maxLength" : 8
 			},
 			"OCT9" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 9,
+				"maxLength" : 9
 			},
 			"OCT9n" : {
 				"type" : "string",
 				"subType" : "octetstring",
-				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+				"minLength" : 9,
+				"maxLength" : 9
 			},
 			"OCTN" : {
 				"type" : "string",
@@ -931,7 +1342,7 @@
 			"$ref" : "#/definitions/General_Types/OCT8n"
 		},
 		{
-			"$ref" : "#/definitions/General_Types/OCT9n"
+			"$ref" : "#/definitions/General_Types/BIT1n"
 		},
 		{
 			"$ref" : "#/definitions/General_Types/BIT2n"
@@ -1014,9 +1425,6 @@
 		{
 			"$ref" : "#/definitions/General_Types/BIT4"
 		},
-		{
-			"$ref" : "#/definitions/General_Types/BIT1n"
-		},
 		{
 			"$ref" : "#/definitions/General_Types/BIT5"
 		},
@@ -1080,6 +1488,9 @@
 		{
 			"$ref" : "#/definitions/General_Types/OCT6n"
 		},
+		{
+			"$ref" : "#/definitions/General_Types/OCT9n"
+		},
 		{
 			"$ref" : "#/definitions/General_Types/OCT10n"
 		},
diff --git a/regression_test/ttcn2json/Main_e.json b/regression_test/ttcn2json/Main_e.json
index 40a29b30e..3f419575c 100644
--- a/regression_test/ttcn2json/Main_e.json
+++ b/regression_test/ttcn2json/Main_e.json
@@ -1,4 +1,5 @@
 {
+	"$schema" : "http://json-schema.org/draft-04/schema#",
 	"definitions" : {
 		"Main" : {
 			"HasPardType" : {
diff --git a/regression_test/ttcn2json/Makefile b/regression_test/ttcn2json/Makefile
index 30664bbb1..46b1bccdc 100755
--- a/regression_test/ttcn2json/Makefile
+++ b/regression_test/ttcn2json/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -30,7 +30,7 @@ OBJECTS = $(GENERATED_SOURCES:.cc=.o) $(USER_SOURCES:.cc=.o)
 
 TARGET = ttcn2json$(EXESUFFIX)
 
-TEMP_FILES = General_Types.json one.json two.json three.json Main.json
+TEMP_FILES = General_Types.json one.json two.json three.json Main.json SubType.json
 
 all: $(TARGET)
 
diff --git a/regression_test/ttcn2json/MiniRanap_e.json b/regression_test/ttcn2json/MiniRanap_e.json
index 534ec07f6..9dcf32afd 100644
--- a/regression_test/ttcn2json/MiniRanap_e.json
+++ b/regression_test/ttcn2json/MiniRanap_e.json
@@ -1,4 +1,5 @@
 {
+	"$schema" : "http://json-schema.org/draft-04/schema#",
 	"definitions" : {
 		"MiniRanap" : {
 			"Criticality" : {
diff --git a/regression_test/ttcn2json/PIPEasp_PT.cc b/regression_test/ttcn2json/PIPEasp_PT.cc
index 2b57a1698..ea6fbf86c 100644
--- a/regression_test/ttcn2json/PIPEasp_PT.cc
+++ b/regression_test/ttcn2json/PIPEasp_PT.cc
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000-2014 Ericsson Telecom AB
+* 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
diff --git a/regression_test/ttcn2json/PIPEasp_PT.hh b/regression_test/ttcn2json/PIPEasp_PT.hh
index df7624021..47c44bb20 100644
--- a/regression_test/ttcn2json/PIPEasp_PT.hh
+++ b/regression_test/ttcn2json/PIPEasp_PT.hh
@@ -1,5 +1,5 @@
 /*******************************************************************************
-* Copyright (c) 2000-2014 Ericsson Telecom AB
+* 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
diff --git a/regression_test/ttcn2json/PIPEasp_PortType.ttcn b/regression_test/ttcn2json/PIPEasp_PortType.ttcn
index 1d43b6fa8..afaf5b9a1 100644
--- a/regression_test/ttcn2json/PIPEasp_PortType.ttcn
+++ b/regression_test/ttcn2json/PIPEasp_PortType.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ttcn2json/PIPEasp_Templates.ttcn b/regression_test/ttcn2json/PIPEasp_Templates.ttcn
index 988bd4824..ead0f96cc 100644
--- a/regression_test/ttcn2json/PIPEasp_Templates.ttcn
+++ b/regression_test/ttcn2json/PIPEasp_Templates.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ttcn2json/PIPEasp_Types.ttcn b/regression_test/ttcn2json/PIPEasp_Types.ttcn
index da8ea94df..b63bccda1 100644
--- a/regression_test/ttcn2json/PIPEasp_Types.ttcn
+++ b/regression_test/ttcn2json/PIPEasp_Types.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ttcn2json/Shell.ttcn b/regression_test/ttcn2json/Shell.ttcn
index 85d53f1a0..50dff6f08 100644
--- a/regression_test/ttcn2json/Shell.ttcn
+++ b/regression_test/ttcn2json/Shell.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ttcn2json/SubType.ttcn b/regression_test/ttcn2json/SubType.ttcn
new file mode 100644
index 000000000..4df8c2289
--- /dev/null
+++ b/regression_test/ttcn2json/SubType.ttcn
@@ -0,0 +1,125 @@
+/******************************************************************************
+ * 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
+ ******************************************************************************/
+
+module SubType {
+
+const integer ZERO := 0;
+
+type integer PosInt (!ZERO..infinity);
+
+type PosInt PosIntValues (1, 5, 7, 10);
+
+type record Rec {
+  PosIntValues val optional,
+  Int i (0..6-3),
+  octetstring os ('1010'O, '1001'O, '1100'O) optional,
+  boolean b optional
+}
+with {
+  variant(val) "JSON: name as posInt";
+  variant(i) "JSON: name as int";
+}
+
+type Rec RecValues (
+  { 1, 0, '1010'O, false },
+  { 5, 0, '1001'O, true },
+  { 7, 2, omit, true },
+  { omit, 1, omit, omit }
+);
+
+type integer Int;
+
+type PosInt PosIntCopy;
+
+type enumerated Size { Small, Medium, Large };
+
+type Size LargeSize ( Large );
+
+type charstring CapitalLetters ("A".."Z") length (1..6);
+
+type float NegFloat (-infinity..0.0);
+
+type float NegFloatExcl (!-infinity..!0.0);
+
+type float SpecialFloat (-infinity, infinity, not_a_number);
+
+type record length (3..infinity) of PosInt PosIntList;
+
+type set length (2) of CapitalLetters CapitalStringList;
+
+type record of integer OnesAndTwos ( 1, 2 );
+
+type OnesAndTwos OneTwo (
+  { 1, 2 },
+  { [3] := 2, [0] := 1, [2] := 1, [1] := 2 }
+);
+
+type verdicttype SimpleVerdict (pass, fail, error);
+
+type union RegularUnion {
+  Int i,
+  charstring str
+}
+with {
+  variant(i) "JSON: name as int";
+}
+
+type RegularUnion RegularUnionValues (
+  { i := 3 },
+  { str := "abc" }
+);
+
+type union AsValueUnion {
+  Int i,
+  charstring str
+}
+with {
+  variant "JSON: as value";
+}
+
+type AsValueUnion AsValueUnionValues (
+  { i := 3 },
+  { str := "abc" }
+);
+
+type AsValueUnion MoreAsValueUnionValues (
+  AsValueUnionValues,
+  { i := 6 }
+);
+
+type anytype AnyTypeValues (
+  { integer := 5 },
+  { boolean := false },
+  { bitstring := '0011'B },
+  { charstring := "mine" }
+);
+
+type universal charstring StringValues ( "almafa", "áram", "űrhajó" );
+
+type charstring Alphanumeric ( "a".."z", "A".."Z", "0".."9" ) ;
+
+type integer NonZero (-infinity..!0, !0..infinity);
+
+type float ItsComplicated (-infinity..-1.0, 0.0, 0.5, 1.0, 3.14, not_a_number);
+
+type universal charstring UnicodeStringRanges ( char(0, 0, 1, 81)..char(0, 0, 1, 113), char(0, 0, 1, 66)..char(0, 0, 1, 97) );
+
+type charstring CharstringPattern (pattern "abc*xyz");
+
+type charstring CharstringPatternLong (pattern "*ab?\*\?\(\+[0-9a-fA-F*?\n]#(2,4)xx([^abc]+)|([abc]+)xx\d\dx\wx\nx\rx\sx\"x""x\\d");
+
+const charstring ConstRef := "ab?c";
+
+type charstring CharstringPatternRef (pattern "x{ConstRef}x");
+
+type universal charstring UnicodePattern (pattern "abc?\q{ 0, 0, 1, 113}z\\q1\q{0,0,0,2}");
+
+}
+with {
+  extension "anytype integer, boolean, bitstring, charstring"
+}
diff --git a/regression_test/ttcn2json/SubType_e.json b/regression_test/ttcn2json/SubType_e.json
new file mode 100644
index 000000000..e7b145ca0
--- /dev/null
+++ b/regression_test/ttcn2json/SubType_e.json
@@ -0,0 +1,632 @@
+{
+	"$schema" : "http://json-schema.org/draft-04/schema#",
+	"definitions" : {
+		"SubType" : {
+			"Alphanumeric" : {
+				"type" : "string",
+				"subType" : "charstring",
+				"pattern" : "^[a-zA-Z0-9]*$"
+			},
+			"AnyTypeValues" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/anytype"
+					},
+					{
+						"enum" : [
+							{
+								"integer" : 5
+							},
+							{
+								"boolean" : false
+							},
+							{
+								"bitstring" : "0011"
+							},
+							{
+								"charstring" : "mine"
+							}
+						]
+					}
+				]
+			},
+			"AsValueUnion" : {
+				"anyOf" : [
+					{
+						"originalName" : "i",
+						"$ref" : "#/definitions/SubType/Int"
+					},
+					{
+						"originalName" : "str",
+						"type" : "string",
+						"subType" : "charstring"
+					}
+				]
+			},
+			"AsValueUnionValues" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/AsValueUnion"
+					},
+					{
+						"enum" : [
+							3,
+							"abc"
+						]
+					}
+				]
+			},
+			"CapitalLetters" : {
+				"type" : "string",
+				"subType" : "charstring",
+				"minLength" : 1,
+				"maxLength" : 6,
+				"pattern" : "^[A-Z]*$"
+			},
+			"CapitalStringList" : {
+				"type" : "array",
+				"subType" : "set of",
+				"items" : {
+					"$ref" : "#/definitions/SubType/CapitalLetters"
+				},
+				"minItems" : 2,
+				"maxItems" : 2
+			},
+			"CharstringPattern" : {
+				"type" : "string",
+				"subType" : "charstring",
+				"pattern" : "^abc.*xyz$"
+			},
+			"CharstringPatternLong" : {
+				"type" : "string",
+				"subType" : "charstring",
+				"pattern" : "^.*ab.\\*\\?\\(\\+[\n-\r*0-9?A-Fa-f]{2,4}xx([^a-c]+)$|^([a-c]+)xx[0-9][0-9]x[0-9A-Za-z]x[\n-\r]x\rx[\t-\r ]x\"x\"x\\\\d$"
+			},
+			"CharstringPatternRef" : {
+				"type" : "string",
+				"subType" : "charstring",
+				"pattern" : "^xab.cx$"
+			},
+			"Int" : {
+				"type" : "integer"
+			},
+			"ItsComplicated" : {
+				"anyOf" : [
+					{
+						"type" : "number",
+						"anyOf" : [
+							{
+								"enum" : [
+									0.000000,
+									0.500000,
+									1.000000,
+									3.140000
+								]
+							},
+							{
+								"maximum" : -1.000000,
+								"exclusiveMaximum" : false
+							}
+						]
+					},
+					{
+						"enum" : [
+							"not_a_number",
+							"-infinity"
+						]
+					}
+				]
+			},
+			"LargeSize" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/Size"
+					},
+					{
+						"enum" : [
+							"Large"
+						]
+					}
+				]
+			},
+			"MoreAsValueUnionValues" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/AsValueUnion"
+					},
+					{
+						"enum" : [
+							3,
+							"abc",
+							6
+						]
+					}
+				]
+			},
+			"NegFloat" : {
+				"anyOf" : [
+					{
+						"type" : "number",
+						"maximum" : 0.000000,
+						"exclusiveMaximum" : false
+					},
+					{
+						"enum" : [
+							"-infinity"
+						]
+					}
+				]
+			},
+			"NegFloatExcl" : {
+				"type" : "number",
+				"maximum" : 0.000000,
+				"exclusiveMaximum" : true
+			},
+			"NonZero" : {
+				"type" : "integer",
+				"anyOf" : [
+					{
+						"maximum" : 0,
+						"exclusiveMaximum" : true
+					},
+					{
+						"minimum" : 0,
+						"exclusiveMinimum" : true
+					}
+				]
+			},
+			"OneTwo" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/OnesAndTwos"
+					},
+					{
+						"enum" : [
+							[
+								1,
+								2
+							],
+							[
+								1,
+								2,
+								1,
+								2
+							]
+						]
+					}
+				]
+			},
+			"OnesAndTwos" : {
+				"type" : "array",
+				"subType" : "record of",
+				"items" : {
+					"type" : "integer",
+					"enum" : [
+						1,
+						2
+					]
+				}
+			},
+			"PosInt" : {
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : true
+			},
+			"PosIntCopy" : {
+				"$ref" : "#/definitions/SubType/PosInt"
+			},
+			"PosIntList" : {
+				"type" : "array",
+				"subType" : "record of",
+				"items" : {
+					"$ref" : "#/definitions/SubType/PosInt"
+				},
+				"minItems" : 3
+			},
+			"PosIntValues" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/PosInt"
+					},
+					{
+						"enum" : [
+							1,
+							5,
+							7,
+							10
+						]
+					}
+				]
+			},
+			"Rec" : {
+				"type" : "object",
+				"subType" : "record",
+				"properties" : {
+					"posInt" : {
+						"anyOf" : [
+							{
+								"type" : "null"
+							},
+							{
+								"originalName" : "val",
+								"$ref" : "#/definitions/SubType/PosIntValues"
+							}
+						],
+						"omitAsNull" : false
+					},
+					"int" : {
+						"originalName" : "i",
+						"allOf" : [
+							{
+								"$ref" : "#/definitions/SubType/Int"
+							},
+							{
+								"minimum" : 0,
+								"exclusiveMinimum" : false,
+								"maximum" : 3,
+								"exclusiveMaximum" : false
+							}
+						]
+					},
+					"os" : {
+						"anyOf" : [
+							{
+								"type" : "null"
+							},
+							{
+								"type" : "string",
+								"subType" : "octetstring",
+								"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+								"enum" : [
+									"1010",
+									"1001",
+									"1100"
+								]
+							}
+						],
+						"omitAsNull" : false
+					},
+					"b" : {
+						"anyOf" : [
+							{
+								"type" : "null"
+							},
+							{
+								"type" : "boolean"
+							}
+						],
+						"omitAsNull" : false
+					}
+				},
+				"additionalProperties" : false,
+				"fieldOrder" : [
+					"posInt",
+					"int",
+					"os",
+					"b"
+				],
+				"required" : [
+					"int"
+				]
+			},
+			"RecValues" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/Rec"
+					},
+					{
+						"enum" : [
+							{
+								"posInt" : 1,
+								"int" : 0,
+								"os" : "1010",
+								"b" : false
+							},
+							{
+								"posInt" : 5,
+								"int" : 0,
+								"os" : "1001",
+								"b" : true
+							},
+							{
+								"posInt" : 7,
+								"int" : 2,
+								"b" : true
+							},
+							{
+								"posInt" : 7,
+								"int" : 2,
+								"os" : null,
+								"b" : true
+							},
+							{
+								"int" : 1
+							},
+							{
+								"posInt" : null,
+								"int" : 1
+							},
+							{
+								"int" : 1,
+								"os" : null
+							},
+							{
+								"posInt" : null,
+								"int" : 1,
+								"os" : null
+							},
+							{
+								"int" : 1,
+								"b" : null
+							},
+							{
+								"posInt" : null,
+								"int" : 1,
+								"b" : null
+							},
+							{
+								"int" : 1,
+								"os" : null,
+								"b" : null
+							},
+							{
+								"posInt" : null,
+								"int" : 1,
+								"os" : null,
+								"b" : null
+							}
+						]
+					}
+				]
+			},
+			"RegularUnion" : {
+				"anyOf" : [
+					{
+						"type" : "object",
+						"properties" : {
+							"int" : {
+								"originalName" : "i",
+								"$ref" : "#/definitions/SubType/Int"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"int"
+						]
+					},
+					{
+						"type" : "object",
+						"properties" : {
+							"str" : {
+								"type" : "string",
+								"subType" : "charstring"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"str"
+						]
+					}
+				]
+			},
+			"RegularUnionValues" : {
+				"allOf" : [
+					{
+						"$ref" : "#/definitions/SubType/RegularUnion"
+					},
+					{
+						"enum" : [
+							{
+								"int" : 3
+							},
+							{
+								"str" : "abc"
+							}
+						]
+					}
+				]
+			},
+			"SimpleVerdict" : {
+				"enum" : [
+					"pass",
+					"fail",
+					"error"
+				]
+			},
+			"Size" : {
+				"enum" : [
+					"Small",
+					"Medium",
+					"Large"
+				],
+				"numericValues" : [
+					0,
+					1,
+					2
+				]
+			},
+			"SpecialFloat" : {
+				"enum" : [
+					"not_a_number",
+					"infinity",
+					"-infinity"
+				]
+			},
+			"StringValues" : {
+				"type" : "string",
+				"subType" : "universal charstring",
+				"enum" : [
+					"almafa",
+					"áram",
+					"űrhajó"
+				]
+			},
+			"UnicodePattern" : {
+				"type" : "string",
+				"subType" : "universal charstring",
+				"pattern" : "^abc.űz\\\\q1\u0002$"
+			},
+			"UnicodeStringRanges" : {
+				"type" : "string",
+				"subType" : "universal charstring",
+				"pattern" : "^[ő-űł-š]*$"
+			},
+			"anytype" : {
+				"anyOf" : [
+					{
+						"type" : "object",
+						"properties" : {
+							"integer" : {
+								"type" : "integer"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"integer"
+						]
+					},
+					{
+						"type" : "object",
+						"properties" : {
+							"boolean" : {
+								"type" : "boolean"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"boolean"
+						]
+					},
+					{
+						"type" : "object",
+						"properties" : {
+							"bitstring" : {
+								"type" : "string",
+								"subType" : "bitstring",
+								"pattern" : "^[01]*$"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"bitstring"
+						]
+					},
+					{
+						"type" : "object",
+						"properties" : {
+							"charstring" : {
+								"type" : "string",
+								"subType" : "charstring"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"charstring"
+						]
+					}
+				]
+			}
+		}
+	},
+	"anyOf" : [
+		{
+			"$ref" : "#/definitions/SubType/PosInt"
+		},
+		{
+			"$ref" : "#/definitions/SubType/PosIntValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/Rec"
+		},
+		{
+			"$ref" : "#/definitions/SubType/RecValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/Int"
+		},
+		{
+			"$ref" : "#/definitions/SubType/PosIntCopy"
+		},
+		{
+			"$ref" : "#/definitions/SubType/Size"
+		},
+		{
+			"$ref" : "#/definitions/SubType/LargeSize"
+		},
+		{
+			"$ref" : "#/definitions/SubType/CapitalLetters"
+		},
+		{
+			"$ref" : "#/definitions/SubType/NegFloat"
+		},
+		{
+			"$ref" : "#/definitions/SubType/NegFloatExcl"
+		},
+		{
+			"$ref" : "#/definitions/SubType/SpecialFloat"
+		},
+		{
+			"$ref" : "#/definitions/SubType/PosIntList"
+		},
+		{
+			"$ref" : "#/definitions/SubType/CapitalStringList"
+		},
+		{
+			"$ref" : "#/definitions/SubType/OnesAndTwos"
+		},
+		{
+			"$ref" : "#/definitions/SubType/OneTwo"
+		},
+		{
+			"$ref" : "#/definitions/SubType/SimpleVerdict"
+		},
+		{
+			"$ref" : "#/definitions/SubType/RegularUnion"
+		},
+		{
+			"$ref" : "#/definitions/SubType/RegularUnionValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/AsValueUnion"
+		},
+		{
+			"$ref" : "#/definitions/SubType/AsValueUnionValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/MoreAsValueUnionValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/AnyTypeValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/StringValues"
+		},
+		{
+			"$ref" : "#/definitions/SubType/Alphanumeric"
+		},
+		{
+			"$ref" : "#/definitions/SubType/NonZero"
+		},
+		{
+			"$ref" : "#/definitions/SubType/ItsComplicated"
+		},
+		{
+			"$ref" : "#/definitions/SubType/UnicodeStringRanges"
+		},
+		{
+			"$ref" : "#/definitions/SubType/CharstringPattern"
+		},
+		{
+			"$ref" : "#/definitions/SubType/CharstringPatternLong"
+		},
+		{
+			"$ref" : "#/definitions/SubType/CharstringPatternRef"
+		},
+		{
+			"$ref" : "#/definitions/SubType/UnicodePattern"
+		},
+		{
+			"$ref" : "#/definitions/SubType/anytype"
+		}
+	]
+}
diff --git a/regression_test/ttcn2json/Testcases.ttcn b/regression_test/ttcn2json/Testcases.ttcn
index b6ae4a648..f2fde9131 100644
--- a/regression_test/ttcn2json/Testcases.ttcn
+++ b/regression_test/ttcn2json/Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -64,6 +64,12 @@ testcase tc_t2j_mini_ranap() runs on Shell_CT
     c_shell_successWithoutWarningAndError);
 }
 
+testcase tc_t2j_subtype() runs on Shell_CT
+{
+  f_test_ttcn2json("SubType.ttcn", "SubType.json", "SubType_e.json", 
+    c_shell_successWithoutWarningAndError);
+}
+
 control {
   execute(tc_t2j_one());
   execute(tc_t2j_two());
@@ -71,6 +77,7 @@ control {
   execute(tc_t2j_general_types());
   execute(tc_t2j_main_asn());
   execute(tc_t2j_mini_ranap());
+  execute(tc_t2j_subtype());
 }
 
 }
diff --git a/regression_test/ttcn2json/f_ext_import_schema.cc b/regression_test/ttcn2json/f_ext_import_schema.cc
index 053208333..1f8dc87ff 100644
--- a/regression_test/ttcn2json/f_ext_import_schema.cc
+++ b/regression_test/ttcn2json/f_ext_import_schema.cc
@@ -73,8 +73,114 @@ ElemKey get_elem_key(const char* value, size_t value_len, const char* file_name)
   if (10 == value_len && 0 == strncmp(value, "properties", value_len)) {
     return ElemKey::Properties;
   }
-  // throw the DTE if it didn't return until now
-  IMPORT_FORMAT_ERROR(true, "unknown type element key");
+  if (9 == value_len && 0 == strncmp(value, "minLength", value_len)) {
+    return ElemKey::MinLength;
+  }
+  if (9 == value_len && 0 == strncmp(value, "maxLength", value_len)) {
+    return ElemKey::MaxLength;
+  }
+  if (7 == value_len && 0 == strncmp(value, "minimum", value_len)) {
+    return ElemKey::Minimum;
+  }
+  if (7 == value_len && 0 == strncmp(value, "maximum", value_len)) {
+    return ElemKey::Maximum;
+  }
+  if (16 == value_len && 0 == strncmp(value, "exclusiveMinimum", value_len)) {
+    return ElemKey::Maximum;
+  }
+  if (16 == value_len && 0 == strncmp(value, "exclusiveMaximum", value_len)) {
+    return ElemKey::Maximum;
+  }
+  if (5 == value_len && 0 == strncmp(value, "allOf", value_len)) {
+    return ElemKey::AllOf;
+  }
+  // it's an extension if none of them matched
+  return ElemKey::Extension;
+}
+
+// just a forward declaration
+AnyValue extract_any_value(JSON_Tokenizer& json, const char* file_name);
+
+ObjectValue extract_object_value(JSON_Tokenizer& json, const char* file_name)
+{
+  json_token_t token = JSON_TOKEN_NONE;
+  char* value = NULL;
+  size_t value_len = 0;
+  ObjectValue object_value;
+  
+  int field_index = 0;
+  json.get_next_token(&token, &value, &value_len);
+  while(JSON_TOKEN_NAME == token) {
+    // extract fields until an object end token is found
+    CHARSTRING field_name(value_len, value);
+    object_value[field_index].key() = field_name;
+    object_value[field_index].val() = extract_any_value(json, file_name);
+    
+    // next field
+    ++field_index;
+    json.get_next_token(&token, &value, &value_len);
+  }
+
+  // object end
+  IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token, "missing object value end");
+  return object_value;
+}
+
+ArrayValue extract_array_value(JSON_Tokenizer& json, const char* file_name)
+{
+  ArrayValue array_value;
+  size_t nof_values = 0;
+  while(true) {
+    // extract values until the array's end is reached
+    AnyValue val = extract_any_value(json, file_name);
+    if (val.is_bound()) {
+      array_value[nof_values] = val;
+      ++nof_values;
+    }
+    else {
+      // array end token reached (signalled by the unbound value)
+      break;
+    }
+  }
+  return array_value;
+}
+
+AnyValue extract_any_value(JSON_Tokenizer& json, const char* file_name)
+{
+  json_token_t token = JSON_TOKEN_NONE;
+  char* value = NULL;
+  size_t value_len = 0;
+  AnyValue any_value;
+  
+  json.get_next_token(&token, &value, &value_len);
+  switch (token) {
+  case JSON_TOKEN_NUMBER:
+  case JSON_TOKEN_STRING: {
+    CHARSTRING str_val(value_len, value);
+    any_value.strVal() = str_val;
+    break; }
+  case JSON_TOKEN_LITERAL_NULL:
+    any_value.strVal() = "null";
+    break;
+  case JSON_TOKEN_LITERAL_TRUE:
+    any_value.boolVal() = TRUE;
+    break;
+  case JSON_TOKEN_LITERAL_FALSE:
+    any_value.boolVal() = FALSE;
+    break;
+  case JSON_TOKEN_OBJECT_START:
+    any_value.objectVal() = extract_object_value(json, file_name);
+    break;
+  case JSON_TOKEN_ARRAY_START:
+    any_value.arrayVal() = extract_array_value(json, file_name);
+    break;
+  case JSON_TOKEN_ARRAY_END:
+    // signal the end of an array by returning an unbound AnyValue
+    break;
+  default:
+    IMPORT_FORMAT_ERROR(TRUE, "missing JSON value");
+  }
+  return any_value;
 }
 
 TypeSchema extract_type_schema(JSON_Tokenizer& json, const char* file_name)
@@ -104,7 +210,11 @@ TypeSchema extract_type_schema(JSON_Tokenizer& json, const char* file_name)
     case ElemKey::MaxItems:
     case ElemKey::AdditionalProperties:
     case ElemKey::OmitAsNull:
-    case ElemKey::Default: {
+    case ElemKey::Default:
+    case ElemKey::MinLength:
+    case ElemKey::MaxLength:
+    case ElemKey::Minimum:
+    case ElemKey::Maximum: {
       // string or boolean value
       json.get_next_token(&token, &value, &value_len);
       switch (token) {
@@ -120,11 +230,10 @@ TypeSchema extract_type_schema(JSON_Tokenizer& json, const char* file_name)
           type_schema[elem_index].val().boolVal() = TRUE;
           break;
         default:
-          IMPORT_FORMAT_ERROR(JSON_TOKEN_LITERAL_FALSE != token, "string or boolean value expected");
+          IMPORT_FORMAT_ERROR(JSON_TOKEN_LITERAL_FALSE != token, "string, number or boolean value expected");
       }
       break; }
 
-    case ElemKey::Enum:
     case ElemKey::NumericValues:
     case ElemKey::Required:
     case ElemKey::FieldOrder: {
@@ -151,7 +260,8 @@ TypeSchema extract_type_schema(JSON_Tokenizer& json, const char* file_name)
       type_schema[elem_index].val().typeVal() = extract_type_schema(json, file_name);
       break; }
 
-    case ElemKey::AnyOf: {
+    case ElemKey::AnyOf:
+    case ElemKey::AllOf: {
       // type schema array value
       json.get_next_token(&token, NULL, NULL);
 	    IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token, "missing type array start");
@@ -193,6 +303,24 @@ TypeSchema extract_type_schema(JSON_Tokenizer& json, const char* file_name)
         // field set value end
 	      IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_END != token, "missing field set end");
         break; }
+      case ElemKey::Extension: {
+        // extension value
+        // store the field name (already extracted)
+        CHARSTRING str_key(value_len, value);
+        type_schema[elem_index].val().extVal().key() = str_key;
+        // store the string value
+        json.get_next_token(&token, &value, &value_len);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_STRING != token, "string value expected");
+        CHARSTRING str_val(value_len, value);
+        type_schema[elem_index].val().extVal().val() = str_key;
+        break; }
+
+      case ElemKey::Enum: {
+        // array value
+        json.get_next_token(&token, NULL, NULL);
+        IMPORT_FORMAT_ERROR(JSON_TOKEN_ARRAY_START != token, "missing array value start");
+        type_schema[elem_index].val().arrayVal() = extract_array_value(json, file_name);
+        break; }
       default:
         break;
     }
@@ -358,6 +486,15 @@ void f__ext__import__schema(const CHARSTRING& file, JsonSchema& schema)
     // top level object
     json.get_next_token(&token, NULL, NULL);
 	  IMPORT_FORMAT_ERROR(JSON_TOKEN_OBJECT_START != token, "missing top level object start");
+	  
+	  // schema header
+	  json.get_next_token(&token, &value, &value_len);
+	  IMPORT_FORMAT_ERROR(JSON_TOKEN_NAME != token || value_len != 7 ||
+      0 != strncmp(value, "$schema", value_len), "missing $schema key");
+    json.get_next_token(&token, &value, &value_len);
+    IMPORT_FORMAT_ERROR(JSON_TOKEN_STRING != token || value_len != 41 ||
+      0 != strncmp(value, "\"http://json-schema.org/draft-04/schema#\"", value_len),
+      "missing $schema value");
 
     // definitions
     json.get_next_token(&token, &value, &value_len);
diff --git a/regression_test/ttcn2json/one.ttcn b/regression_test/ttcn2json/one.ttcn
index 011b9887d..41283a4fd 100644
--- a/regression_test/ttcn2json/one.ttcn
+++ b/regression_test/ttcn2json/one.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -13,6 +13,7 @@ type record Rec {
 } with {
   variant(num) "JSON : default(0)";
   variant(str) "JSON : default(empty)";
+  variant "JSON : extend (comment) : (abc)";
 }
 
 type set Set {
@@ -21,13 +22,16 @@ type set Set {
   verdicttype verd optional,
   float numbr
 } with {
-  variant(numbr) "JSON : default(-infinity)";
-  variant(buul) "JSON:omit as null";
+  variant(numbr) " JSON : default (-infinity) ";
+  variant(buul) " JSON:omit as null ";
+  variant(os)  "JSON:extend(MSB):(first) ";
 }
 
 type union Uni {
   float numbr,
   octetstring bytes
+} with {
+  variant "JSON: extend (defaultSelection) : (numbr)";
 }
 
 type record HasAny {
diff --git a/regression_test/ttcn2json/one_e.json b/regression_test/ttcn2json/one_e.json
index da16123a4..8ccb01a5a 100644
--- a/regression_test/ttcn2json/one_e.json
+++ b/regression_test/ttcn2json/one_e.json
@@ -1,4 +1,5 @@
 {
+	"$schema" : "http://json-schema.org/draft-04/schema#",
 	"definitions" : {
 		"one" : {
 			"HasAny" : {
@@ -56,7 +57,8 @@
 				"required" : [
 					"num",
 					"str"
-				]
+				],
+				"comment" : "abc"
 			},
 			"Set" : {
 				"type" : "object",
@@ -65,7 +67,8 @@
 					"os" : {
 						"type" : "string",
 						"subType" : "octetstring",
-						"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+						"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+						"MSB" : "first"
 					},
 					"buul" : {
 						"anyOf" : [
@@ -162,7 +165,8 @@
 							"bytes"
 						]
 					}
-				]
+				],
+				"defaultSelection" : "numbr"
 			},
 			"Width" : {
 				"enum" : [
@@ -269,7 +273,8 @@
 				"subType" : "record of",
 				"items" : {
 					"$ref" : "#/definitions/two/Ints"
-				}
+				},
+				"alias" : "RoRoI"
 			},
 			"Octets" : {
 				"type" : "array",
@@ -278,10 +283,13 @@
 					"type" : "string",
 					"subType" : "octetstring",
 					"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
-				}
+				},
+				"comment" : "set of octetstrings"
 			},
 			"PosInt" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false
 			},
 			"PosInts" : {
 				"type" : "array",
@@ -317,7 +325,8 @@
 						"inconc",
 						"fail",
 						"error"
-					]
+					],
+					"comment" : "verdict type"
 				}
 			}
 		},
@@ -357,7 +366,9 @@
 						"required" : [
 							"size",
 							"filled"
-						]
+						],
+						"comment" : "first comment",
+						"comment" : "second comment"
 					}
 				},
 				"additionalProperties" : false,
@@ -450,109 +461,6 @@
 			}
 		},
 		"Zero" : {
-			"SeqOfInt" : {
-				"type" : "array",
-				"subType" : "record of",
-				"items" : {
-					"type" : "integer"
-				}
-			},
-			"SeqProduct" : {
-				"type" : "object",
-				"subType" : "record",
-				"properties" : {
-					"name" : {
-						"type" : "string",
-						"subType" : "universal charstring"
-					},
-					"price" : {
-						"anyOf" : [
-							{
-								"type" : "number"
-							},
-							{
-								"enum" : [
-									"not_a_number",
-									"infinity",
-									"-infinity"
-								]
-							}
-						]
-					},
-					"id" : {
-						"anyOf" : [
-							{
-								"type" : "null"
-							},
-							{
-								"type" : "string",
-								"subType" : "octetstring",
-								"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
-							}
-						],
-						"omitAsNull" : false
-					},
-					"available" : {
-						"type" : "boolean"
-					}
-				},
-				"additionalProperties" : false,
-				"fieldOrder" : [
-					"name",
-					"price",
-					"id",
-					"available"
-				],
-				"required" : [
-					"name",
-					"price",
-					"available"
-				]
-			},
-			"Number" : {
-				"anyOf" : [
-					{
-						"type" : "object",
-						"properties" : {
-							"decimal" : {
-								"type" : "integer"
-							}
-						},
-						"additionalProperties" : false,
-						"required" : [
-							"decimal"
-						]
-					},
-					{
-						"type" : "object",
-						"properties" : {
-							"binary" : {
-								"type" : "string",
-								"subType" : "bitstring",
-								"pattern" : "^[01]*$"
-							}
-						},
-						"additionalProperties" : false,
-						"required" : [
-							"binary"
-						]
-					},
-					{
-						"type" : "object",
-						"properties" : {
-							"hexadecimal" : {
-								"type" : "string",
-								"subType" : "octetstring",
-								"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
-							}
-						},
-						"additionalProperties" : false,
-						"required" : [
-							"hexadecimal"
-						]
-					}
-				]
-			},
 			"AnyString" : {
 				"anyOf" : [
 					{
@@ -700,12 +608,37 @@
 					}
 				]
 			},
-			"ManyStrings" : {
-				"type" : "array",
-				"subType" : "record of",
-				"items" : {
-					"$ref" : "#/definitions/Zero/AnyString"
-				}
+			"Big_Choice" : {
+				"anyOf" : [
+					{
+						"type" : "object",
+						"properties" : {
+							"numbers" : {
+								"type" : "array",
+								"subType" : "set of",
+								"items" : {
+									"$ref" : "#/definitions/Zero/Number"
+								}
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"numbers"
+						]
+					},
+					{
+						"type" : "object",
+						"properties" : {
+							"strings" : {
+								"$ref" : "#/definitions/Zero/ManyStrings"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"strings"
+						]
+					}
+				]
 			},
 			"Big_Set" : {
 				"type" : "object",
@@ -753,38 +686,70 @@
 					"color"
 				]
 			},
-			"Big_Choice" : {
+			"ManyStrings" : {
+				"type" : "array",
+				"subType" : "record of",
+				"items" : {
+					"$ref" : "#/definitions/Zero/AnyString"
+				}
+			},
+			"NullType" : {
+				"type" : "null"
+			},
+			"Number" : {
 				"anyOf" : [
 					{
 						"type" : "object",
 						"properties" : {
-							"numbers" : {
-								"type" : "array",
-								"subType" : "set of",
-								"items" : {
-									"$ref" : "#/definitions/Zero/Number"
-								}
+							"decimal" : {
+								"type" : "integer"
 							}
 						},
 						"additionalProperties" : false,
 						"required" : [
-							"numbers"
+							"decimal"
 						]
 					},
 					{
 						"type" : "object",
 						"properties" : {
-							"strings" : {
-								"$ref" : "#/definitions/Zero/ManyStrings"
+							"binary" : {
+								"type" : "string",
+								"subType" : "bitstring",
+								"pattern" : "^[01]*$"
 							}
 						},
 						"additionalProperties" : false,
 						"required" : [
-							"strings"
+							"binary"
+						]
+					},
+					{
+						"type" : "object",
+						"properties" : {
+							"hexadecimal" : {
+								"type" : "string",
+								"subType" : "octetstring",
+								"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+							}
+						},
+						"additionalProperties" : false,
+						"required" : [
+							"hexadecimal"
 						]
 					}
 				]
 			},
+			"ObjIdType" : {
+				"type" : "string",
+				"subType" : "objid",
+				"pattern" : "^[0-2][.][1-3]?[0-9]([.][0-9]|([1-9][0-9]+))*$"
+			},
+			"RelObjIdType" : {
+				"type" : "string",
+				"subType" : "objid",
+				"pattern" : "^[0-2][.][1-3]?[0-9]([.][0-9]|([1-9][0-9]+))*$"
+			},
 			"Season" : {
 				"enum" : [
 					"spring",
@@ -806,42 +771,68 @@
 					"$ref" : "#/definitions/Zero/Number"
 				}
 			},
-			"NullType" : {
-				"type" : "null"
-			},
-			"ObjIdType" : {
-				"type" : "string",
-				"subType" : "objid",
-				"pattern" : "^[0-2][.][1-3]?[0-9]([.][0-9]|([1-9][0-9]+))*$"
+			"SeqOfInt" : {
+				"type" : "array",
+				"subType" : "record of",
+				"items" : {
+					"type" : "integer"
+				}
 			},
-			"RelObjIdType" : {
-				"type" : "string",
-				"subType" : "objid",
-				"pattern" : "^[0-2][.][1-3]?[0-9]([.][0-9]|([1-9][0-9]+))*$"
+			"SeqProduct" : {
+				"type" : "object",
+				"subType" : "record",
+				"properties" : {
+					"name" : {
+						"type" : "string",
+						"subType" : "universal charstring"
+					},
+					"price" : {
+						"anyOf" : [
+							{
+								"type" : "number"
+							},
+							{
+								"enum" : [
+									"not_a_number",
+									"infinity",
+									"-infinity"
+								]
+							}
+						]
+					},
+					"id" : {
+						"anyOf" : [
+							{
+								"type" : "null"
+							},
+							{
+								"type" : "string",
+								"subType" : "octetstring",
+								"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+							}
+						],
+						"omitAsNull" : false
+					},
+					"available" : {
+						"type" : "boolean"
+					}
+				},
+				"additionalProperties" : false,
+				"fieldOrder" : [
+					"name",
+					"price",
+					"id",
+					"available"
+				],
+				"required" : [
+					"name",
+					"price",
+					"available"
+				]
 			}
 		}
 	},
 	"anyOf" : [
-		{
-			"$ref" : "#/definitions/two/Ints",
-			"decoding" : {
-				"prototype" : [
-					"fast",
-					"f_dec_ints",
-					"os",
-					"x"
-				]
-			},
-			"encoding" : {
-				"prototype" : [
-					"fast",
-					"f_enc_ints",
-					"eents",
-					"octus"
-				],
-				"printing" : "pretty"
-			}
-		},
 		{
 			"$ref" : "#/definitions/one/Rec",
 			"decoding" : {
@@ -863,6 +854,26 @@
 				]
 			}
 		},
+		{
+			"$ref" : "#/definitions/two/Ints",
+			"decoding" : {
+				"prototype" : [
+					"fast",
+					"f_dec_ints",
+					"os",
+					"x"
+				]
+			},
+			"encoding" : {
+				"prototype" : [
+					"fast",
+					"f_enc_ints",
+					"eents",
+					"octus"
+				],
+				"printing" : "pretty"
+			}
+		},
 		{
 			"$ref" : "#/definitions/Zero/Big_Set",
 			"decoding" : {
diff --git a/regression_test/ttcn2json/three.ttcn b/regression_test/ttcn2json/three.ttcn
index ba3052c5c..5424dab4d 100644
--- a/regression_test/ttcn2json/three.ttcn
+++ b/regression_test/ttcn2json/three.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -31,6 +31,9 @@ module three {
       enumerated { Small, Medium, Large } size,
       boolean filled
     } barrelType
+  } with {
+    variant(barrelType) "JSON: extend(comment):(first comment)";
+    variant(barrelType) "JSON: extend(comment):(second comment)";
   }
 
   type set of record { integer num } Nums
diff --git a/regression_test/ttcn2json/three_e.json b/regression_test/ttcn2json/three_e.json
index 52268badc..d8be51dd3 100644
--- a/regression_test/ttcn2json/three_e.json
+++ b/regression_test/ttcn2json/three_e.json
@@ -1,4 +1,5 @@
 {
+	"$schema" : "http://json-schema.org/draft-04/schema#",
 	"definitions" : {
 		"one" : {
 			"HasAny" : {
@@ -56,7 +57,8 @@
 				"required" : [
 					"num",
 					"str"
-				]
+				],
+				"comment" : "abc"
 			},
 			"Set" : {
 				"type" : "object",
@@ -65,7 +67,8 @@
 					"os" : {
 						"type" : "string",
 						"subType" : "octetstring",
-						"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+						"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+						"MSB" : "first"
 					},
 					"buul" : {
 						"anyOf" : [
@@ -162,7 +165,8 @@
 							"bytes"
 						]
 					}
-				]
+				],
+				"defaultSelection" : "numbr"
 			},
 			"Width" : {
 				"enum" : [
@@ -227,8 +231,28 @@
 					"type" : "integer"
 				}
 			},
+			"Intses" : {
+				"type" : "array",
+				"subType" : "record of",
+				"items" : {
+					"$ref" : "#/definitions/two/Ints"
+				},
+				"alias" : "RoRoI"
+			},
+			"Octets" : {
+				"type" : "array",
+				"subType" : "set of",
+				"items" : {
+					"type" : "string",
+					"subType" : "octetstring",
+					"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				},
+				"comment" : "set of octetstrings"
+			},
 			"PosInt" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false
 			}
 		},
 		"three" : {
@@ -267,7 +291,9 @@
 						"required" : [
 							"size",
 							"filled"
-						]
+						],
+						"comment" : "first comment",
+						"comment" : "second comment"
 					}
 				},
 				"additionalProperties" : false,
@@ -733,24 +759,7 @@
 	},
 	"anyOf" : [
 		{
-			"$ref" : "#/definitions/two/Ints",
-			"decoding" : {
-				"prototype" : [
-					"fast",
-					"f_dec_ints",
-					"os",
-					"x"
-				]
-			},
-			"encoding" : {
-				"prototype" : [
-					"fast",
-					"f_enc_ints",
-					"eents",
-					"octus"
-				],
-				"printing" : "pretty"
-			}
+			"$ref" : "#/definitions/two/Intses"
 		},
 		{
 			"$ref" : "#/definitions/one/Rec",
@@ -773,6 +782,26 @@
 				]
 			}
 		},
+		{
+			"$ref" : "#/definitions/two/Ints",
+			"decoding" : {
+				"prototype" : [
+					"fast",
+					"f_dec_ints",
+					"os",
+					"x"
+				]
+			},
+			"encoding" : {
+				"prototype" : [
+					"fast",
+					"f_enc_ints",
+					"eents",
+					"octus"
+				],
+				"printing" : "pretty"
+			}
+		},
 		{
 			"$ref" : "#/definitions/one/Set"
 		},
@@ -800,6 +829,9 @@
 		{
 			"$ref" : "#/definitions/three/Barrels"
 		},
+		{
+			"$ref" : "#/definitions/two/Octets"
+		},
 		{
 			"$ref" : "#/definitions/two/PosInt"
 		},
diff --git a/regression_test/ttcn2json/two.ttcn b/regression_test/ttcn2json/two.ttcn
index 21eb94e5a..e36cabacd 100644
--- a/regression_test/ttcn2json/two.ttcn
+++ b/regression_test/ttcn2json/two.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -13,17 +13,17 @@ module two {
 
   type float Floats[6];
 
-  type record of Ints Intses;
+  type record of Ints Intses with { variant "JSON:extend(alias):(RoRoI)"; };
 
   type record of bitstring Bits;
 
   type record of hexstring Hexes;
 
-  type set of octetstring Octets;
+  type set of octetstring Octets with { variant "JSON: extend(comment):(set of octetstrings)"; };
 
   type charstring Two__Strings[2];
 
-  type record of verdicttype Verdicts;
+  type record of verdicttype Verdicts with { variant([-]) "JSON: extend (comment) : (verdict type)"; };
 
   type integer PosInt (0..infinity);
   
@@ -31,7 +31,4 @@ module two {
 
   external function f_dec_ints(in octetstring os, out Ints x)
   with { extension "prototype(fast) decode(JSON)" }
-
-  //type record of integer Rec;
-
 }
diff --git a/regression_test/ttcn2json/two_e.json b/regression_test/ttcn2json/two_e.json
index 27c91bddf..964e00f7e 100644
--- a/regression_test/ttcn2json/two_e.json
+++ b/regression_test/ttcn2json/two_e.json
@@ -1,4 +1,5 @@
 {
+	"$schema" : "http://json-schema.org/draft-04/schema#",
 	"definitions" : {
 		"one" : {
 			"HasAny" : {
@@ -56,7 +57,8 @@
 				"required" : [
 					"num",
 					"str"
-				]
+				],
+				"comment" : "abc"
 			},
 			"Set" : {
 				"type" : "object",
@@ -65,7 +67,8 @@
 					"os" : {
 						"type" : "string",
 						"subType" : "octetstring",
-						"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+						"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$",
+						"MSB" : "first"
 					},
 					"buul" : {
 						"anyOf" : [
@@ -162,7 +165,8 @@
 							"bytes"
 						]
 					}
-				]
+				],
+				"defaultSelection" : "numbr"
 			},
 			"Width" : {
 				"enum" : [
@@ -227,8 +231,28 @@
 					"type" : "integer"
 				}
 			},
+			"Intses" : {
+				"type" : "array",
+				"subType" : "record of",
+				"items" : {
+					"$ref" : "#/definitions/two/Ints"
+				},
+				"alias" : "RoRoI"
+			},
+			"Octets" : {
+				"type" : "array",
+				"subType" : "set of",
+				"items" : {
+					"type" : "string",
+					"subType" : "octetstring",
+					"pattern" : "^([0-9A-Fa-f][0-9A-Fa-f])*$"
+				},
+				"comment" : "set of octetstrings"
+			},
 			"PosInt" : {
-				"type" : "integer"
+				"type" : "integer",
+				"minimum" : 0,
+				"exclusiveMinimum" : false
 			}
 		},
 		"three" : {
@@ -267,7 +291,9 @@
 						"required" : [
 							"size",
 							"filled"
-						]
+						],
+						"comment" : "first comment",
+						"comment" : "second comment"
 					}
 				},
 				"additionalProperties" : false,
@@ -732,26 +758,6 @@
 		}
 	},
 	"anyOf" : [
-		{
-			"$ref" : "#/definitions/two/Ints",
-			"decoding" : {
-				"prototype" : [
-					"fast",
-					"f_dec_ints",
-					"os",
-					"x"
-				]
-			},
-			"encoding" : {
-				"prototype" : [
-					"fast",
-					"f_enc_ints",
-					"eents",
-					"octus"
-				],
-				"printing" : "pretty"
-			}
-		},
 		{
 			"$ref" : "#/definitions/one/Rec",
 			"decoding" : {
@@ -773,6 +779,26 @@
 				]
 			}
 		},
+		{
+			"$ref" : "#/definitions/two/Ints",
+			"decoding" : {
+				"prototype" : [
+					"fast",
+					"f_dec_ints",
+					"os",
+					"x"
+				]
+			},
+			"encoding" : {
+				"prototype" : [
+					"fast",
+					"f_enc_ints",
+					"eents",
+					"octus"
+				],
+				"printing" : "pretty"
+			}
+		},
 		{
 			"$ref" : "#/definitions/Zero/Big_Set",
 			"decoding" : {
diff --git a/regression_test/ttcn2json/zero.asn b/regression_test/ttcn2json/zero.asn
index aaa7e04d3..9db5b0239 100644
--- a/regression_test/ttcn2json/zero.asn
+++ b/regression_test/ttcn2json/zero.asn
@@ -1,5 +1,5 @@
 ------------------------------------------------------------------------------
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/typeCompat/ASN_Ext.asn b/regression_test/typeCompat/ASN_Ext.asn
index 5919cafd4..5507bf77e 100644
--- a/regression_test/typeCompat/ASN_Ext.asn
+++ b/regression_test/typeCompat/ASN_Ext.asn
@@ -1,5 +1,5 @@
 --/////////////////////////////////////////////////////////////////////////////
--- Copyright (c) 2000-2014 Ericsson Telecom AB
+-- 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
diff --git a/regression_test/typeCompat/Compat.ttcn b/regression_test/typeCompat/Compat.ttcn
index a58295916..1f52b336a 100644
--- a/regression_test/typeCompat/Compat.ttcn
+++ b/regression_test/typeCompat/Compat.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/typeCompat/Ext.ttcn b/regression_test/typeCompat/Ext.ttcn
index 271cfcb17..2e8384fbe 100644
--- a/regression_test/typeCompat/Ext.ttcn
+++ b/regression_test/typeCompat/Ext.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/typeCompat/Ext2.ttcn b/regression_test/typeCompat/Ext2.ttcn
index 8af1138d1..c7da8200c 100644
--- a/regression_test/typeCompat/Ext2.ttcn
+++ b/regression_test/typeCompat/Ext2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/typeCompat/Makefile b/regression_test/typeCompat/Makefile
index 12659310b..0655926f1 100644
--- a/regression_test/typeCompat/Makefile
+++ b/regression_test/typeCompat/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/typeCompat/Std.ttcn b/regression_test/typeCompat/Std.ttcn
index 7eebb8f76..932d57332 100644
--- a/regression_test/typeCompat/Std.ttcn
+++ b/regression_test/typeCompat/Std.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/typeCompat/config.cfg b/regression_test/typeCompat/config.cfg
index 0900e4f40..4c33aa42a 100644
--- a/regression_test/typeCompat/config.cfg
+++ b/regression_test/typeCompat/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ucharstrOper/Base64Testcases.ttcn b/regression_test/ucharstrOper/Base64Testcases.ttcn
index c80c3b2fc..eed58af1a 100755
--- a/regression_test/ucharstrOper/Base64Testcases.ttcn
+++ b/regression_test/ucharstrOper/Base64Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/Common.ttcn b/regression_test/ucharstrOper/Common.ttcn
index 8728b9699..ec00b1c19 100755
--- a/regression_test/ucharstrOper/Common.ttcn
+++ b/regression_test/ucharstrOper/Common.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/Makefile b/regression_test/ucharstrOper/Makefile
index 4142c09f5..6f012aad4 100644
--- a/regression_test/ucharstrOper/Makefile
+++ b/regression_test/ucharstrOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ucharstrOper/TucharstrOper.ttcn b/regression_test/ucharstrOper/TucharstrOper.ttcn
index 1b2881718..999d3b640 100644
--- a/regression_test/ucharstrOper/TucharstrOper.ttcn
+++ b/regression_test/ucharstrOper/TucharstrOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/UTF16Testcases.ttcn b/regression_test/ucharstrOper/UTF16Testcases.ttcn
index e7f5fc99a..3cfc20ebc 100755
--- a/regression_test/ucharstrOper/UTF16Testcases.ttcn
+++ b/regression_test/ucharstrOper/UTF16Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/UTF32Testcases.ttcn b/regression_test/ucharstrOper/UTF32Testcases.ttcn
index a9d9c1529..987354913 100755
--- a/regression_test/ucharstrOper/UTF32Testcases.ttcn
+++ b/regression_test/ucharstrOper/UTF32Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/UTF8Testcases.ttcn b/regression_test/ucharstrOper/UTF8Testcases.ttcn
index c9abfb95e..8060d5c66 100755
--- a/regression_test/ucharstrOper/UTF8Testcases.ttcn
+++ b/regression_test/ucharstrOper/UTF8Testcases.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/config.cfg b/regression_test/ucharstrOper/config.cfg
index 9f353de68..6d1553005 100644
--- a/regression_test/ucharstrOper/config.cfg
+++ b/regression_test/ucharstrOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/ucharstrOper/cstr_content.ttcn b/regression_test/ucharstrOper/cstr_content.ttcn
index fdc797a0b..159faff29 100644
--- a/regression_test/ucharstrOper/cstr_content.ttcn
+++ b/regression_test/ucharstrOper/cstr_content.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/ucharstrOper/external.cc b/regression_test/ucharstrOper/external.cc
index c3fc75de8..a3bcffd6d 100644
--- a/regression_test/ucharstrOper/external.cc
+++ b/regression_test/ucharstrOper/external.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/regression_test/unionOper/Makefile b/regression_test/unionOper/Makefile
index b43f6dac4..3f120cd50 100644
--- a/regression_test/unionOper/Makefile
+++ b/regression_test/unionOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/unionOper/TunionOper.ttcn b/regression_test/unionOper/TunionOper.ttcn
index 446ccd656..ac552deb8 100644
--- a/regression_test/unionOper/TunionOper.ttcn
+++ b/regression_test/unionOper/TunionOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/unionOper/config.cfg b/regression_test/unionOper/config.cfg
index 77ad4b498..8642eee12 100644
--- a/regression_test/unionOper/config.cfg
+++ b/regression_test/unionOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/vcheck.pl b/regression_test/vcheck.pl
index dea76e81d..88c10c4c3 100644
--- a/regression_test/vcheck.pl
+++ b/regression_test/vcheck.pl
@@ -1,6 +1,6 @@
 #!/usr/bin/perl -wl
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/verdictOper/Makefile b/regression_test/verdictOper/Makefile
index d839e203d..da35c28bd 100644
--- a/regression_test/verdictOper/Makefile
+++ b/regression_test/verdictOper/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/verdictOper/TverdictOper.ttcn b/regression_test/verdictOper/TverdictOper.ttcn
index b46a5c259..616653c43 100644
--- a/regression_test/verdictOper/TverdictOper.ttcn
+++ b/regression_test/verdictOper/TverdictOper.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/verdictOper/config.cfg b/regression_test/verdictOper/config.cfg
index 701d67048..3f612d948 100644
--- a/regression_test/verdictOper/config.cfg
+++ b/regression_test/verdictOper/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/visibility/Makefile b/regression_test/visibility/Makefile
index 2167c2654..3da757c02 100644
--- a/regression_test/visibility/Makefile
+++ b/regression_test/visibility/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/visibility/Visibility.ttcn b/regression_test/visibility/Visibility.ttcn
index 716ce2d4b..0cce095a3 100644
--- a/regression_test/visibility/Visibility.ttcn
+++ b/regression_test/visibility/Visibility.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/visibility/config.cfg b/regression_test/visibility/config.cfg
index d1189fdf7..86c803cad 100644
--- a/regression_test/visibility/config.cfg
+++ b/regression_test/visibility/config.cfg
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/regression_test/visibility/module1.ttcn b/regression_test/visibility/module1.ttcn
index c0b40fc21..a6b8c6926 100644
--- a/regression_test/visibility/module1.ttcn
+++ b/regression_test/visibility/module1.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/visibility/module2.ttcn b/regression_test/visibility/module2.ttcn
index 6487ec691..dfae3f4af 100644
--- a/regression_test/visibility/module2.ttcn
+++ b/regression_test/visibility/module2.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/visibility/module3.ttcn b/regression_test/visibility/module3.ttcn
index e63282cb7..2bfd3228c 100644
--- a/regression_test/visibility/module3.ttcn
+++ b/regression_test/visibility/module3.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/regression_test/visibility/module4.ttcn b/regression_test/visibility/module4.ttcn
index 25d4674ac..2bbfba824 100644
--- a/regression_test/visibility/module4.ttcn
+++ b/regression_test/visibility/module4.ttcn
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/repgen/Makefile b/repgen/Makefile
index 03db4b8d6..f8584aebf 100644
--- a/repgen/Makefile
+++ b/repgen/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/repgen/logfilter.c b/repgen/logfilter.c
index b50212464..14618fef7 100644
--- a/repgen/logfilter.c
+++ b/repgen/logfilter.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -148,7 +148,8 @@ static EventTypes get_event_type(char *buf)
 	ptr2=strstr(buf,EventTypeNames[a]);
 	if(ptr2<ptr1&&ptr2!=NULL) {
 	    ptr1=ptr2;
-	    if(*(ptr2+strlen(EventTypeNames[a]))==' '&& *(ptr2-1)==' ')
+	    if(*(ptr2+strlen(EventTypeNames[a]))==' '&& *(ptr2-1)==' ' 
+               && *(ptr2+strlen(EventTypeNames[a])+1)!='|')
 		return a;
 	}
     }
diff --git a/repgen/logformat.l b/repgen/logformat.l
index a60fbd23f..8a8c5c645 100644
--- a/repgen/logformat.l
+++ b/repgen/logformat.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
@@ -26,6 +26,8 @@ static const char *program_name = NULL;
 static size_t indent_depth = 4;
 static FILE *output_file = NULL;
 static int separate_files = 0;
+static int format_tab_newline = 1;
+static int replaced_tab_newline = 0;
 
 static size_t indent_level = 0;
 static enum { OPEN_BRACE, CLOSE_BRACE, COMMA, OTHER, OTHER_WS }
@@ -117,14 +119,58 @@ static void write_failure(void)
   exit(EXIT_FAILURE);
 }
 
+
+char *
+str_replace ( const char *string, const char *substr, const char *replacement ){
+  char *tok = NULL;
+  char *newstr = NULL;
+  char *oldstr = NULL;
+  char *head = NULL;
+  int length_diff = strlen(substr) - strlen(replacement);
+ 
+  /* if either substr or replacement is NULL, duplicate string a let caller handle it */
+  if ( substr == NULL || replacement == NULL ) return strdup (string);
+  newstr = strdup (string);
+  head = newstr;
+  while ( (tok = strstr ( head, substr ))){
+    oldstr = newstr;
+    newstr = malloc ( strlen ( oldstr ) - strlen ( substr ) + strlen ( replacement ) + 1 );
+    /*failed to alloc mem, free old string and return NULL */
+    if ( newstr == NULL ){
+      free (oldstr);
+      fprintf(stderr, "Failed to allocate memory.\n");
+      exit(EXIT_FAILURE);
+    }
+    //We have to count how many characters we replaced
+    replaced_tab_newline += length_diff;
+    memcpy ( newstr, oldstr, tok - oldstr );
+    memcpy ( newstr + (tok - oldstr), replacement, strlen ( replacement ) );
+    memcpy ( newstr + (tok - oldstr) + strlen( replacement ), tok + strlen ( substr ), strlen ( oldstr ) - strlen ( substr ) - ( tok - oldstr ) );
+    memset ( newstr + strlen ( oldstr ) - strlen ( substr ) + strlen ( replacement ) , 0, 1 );
+    /* move back head right after the last replacement */
+    head = newstr + (tok - oldstr) + strlen( replacement );
+    free (oldstr);
+  }
+  return newstr;
+}
+
+
 static void write_line_buf(void)
 {
   if (buf_len > 0) {
-    if (fwrite(line_buf, buf_len, 1, yyout) != 1) write_failure();
+    if(format_tab_newline){
+      char * temp = str_replace(line_buf, "\\n", "\n");
+      temp = str_replace(temp, "\\t", "\t");
+      strcpy(line_buf, temp);
+      free(temp);
+    }
+    if (fwrite(line_buf, buf_len-replaced_tab_newline, 1, yyout) != 1) write_failure();
     /* append a newline character if it is missing from the end
      * (e.g. because of EOF) */
-    if (line_buf[buf_len - 1] != '\n')
+    if (line_buf[buf_len - replaced_tab_newline - 1] != '\n'){
       if (putc('\n', yyout) == EOF) write_failure();
+    }
+    replaced_tab_newline = 0;
   }
   if (buf_size > MIN_BUFSIZE && buf_size > 2 * buf_len) {
     /* reset the buffer size if a shorter one is enough */
@@ -376,7 +422,7 @@ TIMESTAMP {TIMESTAMP1}|{TIMESTAMP2}|{TIMESTAMP3}
 static void usage(void)
 {
   fprintf(stderr,
-    "usage: %s [-i n] [-o outfile] [-s] [file.log] ...\n"
+    "usage: %s [-i n] [-o outfile] [-s] [-n] [file.log] ...\n"
     "   or  %s -v\n"
     "\n"
     "OPTIONS:\n"
@@ -385,6 +431,7 @@ static void usage(void)
     "        -o outfile:     write the formatted log into file outfile\n"
     "        -s:             place the logs of each test case into separate "
       "files\n"
+    "        -n              newline and tab control characters are not modified\n"
     "        -v:             print version\n",
     program_name, program_name);
 }
@@ -392,13 +439,16 @@ static void usage(void)
 int main(int argc, char *argv[])
 {
     int c;
-    int iflag = 0, oflag = 0, sflag = 0, vflag = 0, errflag = 0;
+    int iflag = 0, oflag = 0, sflag = 0, vflag = 0, errflag = 0, nflag = 0;
 #ifdef LICENSE
     license_struct lstr;
 #endif
     program_name = argv[0];
     output_file = stdout;
-    while ((c = getopt(argc, argv, "i:o:sv")) != -1) {
+    if(argc == 1){
+       errflag = 1;
+    }
+    while ((c = getopt(argc, argv, "i:o:snv")) != -1 && !errflag) {
 	switch (c) {
 	case 'i': {
 	    unsigned int int_arg;
@@ -420,8 +470,13 @@ int main(int argc, char *argv[])
 	    if (sflag || vflag) errflag = 1;
 	    sflag = 1;
 	    break;
+        case 'n':
+            if(vflag) errflag = 1;
+            format_tab_newline = 0;
+            nflag = 1;
+            break;
 	case 'v':
-	    if (iflag || oflag || sflag) errflag = 1;
+	    if (iflag || oflag || sflag || nflag) errflag = 1;
 	    vflag = 1;
 	    break;
 	default:
diff --git a/repgen/logmerge.c b/repgen/logmerge.c
index 4dd5799f2..3091f354d 100644
--- a/repgen/logmerge.c
+++ b/repgen/logmerge.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/repgen/parser.l b/repgen/parser.l
index be8378b65..b80ce0758 100644
--- a/repgen/parser.l
+++ b/repgen/parser.l
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/repgen/repgen.c b/repgen/repgen.c
index a1231d53c..47cbdb505 100644
--- a/repgen/repgen.c
+++ b/repgen/repgen.c
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/repgen/repgen.h b/repgen/repgen.h
index caa0398d9..75e44be3b 100644
--- a/repgen/repgen.h
+++ b/repgen/repgen.h
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
diff --git a/repgen/ttcn3_logfilter.1 b/repgen/ttcn3_logfilter.1
index 7d63c6fa5..014c36d72 100644
--- a/repgen/ttcn3_logfilter.1
+++ b/repgen/ttcn3_logfilter.1
@@ -80,7 +80,7 @@ The
 .SH AUTHOR
 This manpage is written by Csaba Koppany, Ericsson Telecom AB
 .br
-Copyright (c) 2000-2014 Ericsson Telecom AB
+Copyright (c) 2000-2015 Ericsson Telecom AB
 .br
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
diff --git a/repgen/ttcn3_logformat.1 b/repgen/ttcn3_logformat.1
index 2ce96db11..14250509d 100644
--- a/repgen/ttcn3_logformat.1
+++ b/repgen/ttcn3_logformat.1
@@ -49,6 +49,9 @@ If this option is omitted, the formatted log will be printed to standard output.
 .B \-s
 If this option is set, the entries that were recorded during the execution of a 
 particular test case will be saved in a separate file in
+.I \-n
+If this option is set, newline and tab characters are not modified, they are
+printed as \n and \t
 .I ttcn3_logformat
 working directory. The name of this file will be identical to the name of the
 test case. If the same test case is executed several times after each other, the
@@ -104,7 +107,7 @@ The
 .SH AUTHOR
 This manpage is written by Csaba Koppany, Ericsson Telecom AB
 .br
-Copyright (c) 2000-2014 Ericsson Telecom AB
+Copyright (c) 2000-2015 Ericsson Telecom AB
 .br
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
diff --git a/repgen/ttcn3_logmerge.1 b/repgen/ttcn3_logmerge.1
index f02cce1b6..3fbb69916 100644
--- a/repgen/ttcn3_logmerge.1
+++ b/repgen/ttcn3_logmerge.1
@@ -64,7 +64,7 @@ The
 .SH AUTHOR
 This manpage is written by Csaba Koppany, Ericsson Telecom AB
 .br
-Copyright (c) 2000-2014 Ericsson Telecom AB
+Copyright (c) 2000-2015 Ericsson Telecom AB
 .br
 All rights reserved. This program and the accompanying materials
 are made available under the terms of the Eclipse Public License v1.0
diff --git a/titan_executor_api/TITAN_Executor_API/build.xml b/titan_executor_api/TITAN_Executor_API/build.xml
index 6f3c119d6..5b09ffc68 100644
--- a/titan_executor_api/TITAN_Executor_API/build.xml
+++ b/titan_executor_api/TITAN_Executor_API/build.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
-  Copyright (c) 2000-2014 Ericsson Telecom AB
+  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
diff --git a/titan_executor_api/TITAN_Executor_API/doc/javadoc-overview/javadoc-overview.html b/titan_executor_api/TITAN_Executor_API/doc/javadoc-overview/javadoc-overview.html
index d538948d1..d472daaa2 100644
--- a/titan_executor_api/TITAN_Executor_API/doc/javadoc-overview/javadoc-overview.html
+++ b/titan_executor_api/TITAN_Executor_API/doc/javadoc-overview/javadoc-overview.html
@@ -1,5 +1,5 @@
 <!--
- Copyright (c) 2000-2014 Ericsson Telecom AB
+ 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
diff --git a/titan_executor_api/TITAN_Executor_API/readme.txt b/titan_executor_api/TITAN_Executor_API/readme.txt
index 7c42d66ff..d157545d0 100644
--- a/titan_executor_api/TITAN_Executor_API/readme.txt
+++ b/titan_executor_api/TITAN_Executor_API/readme.txt
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/ComponentStruct.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/ComponentStruct.java
index 40e1c59e6..f7ce950a6 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/ComponentStruct.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/ComponentStruct.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HcStateEnum.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HcStateEnum.java
index 1497ea1b8..66f724ed5 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HcStateEnum.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HcStateEnum.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HostStruct.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HostStruct.java
index 320ed9209..ace4b20cd 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HostStruct.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/HostStruct.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/IJNICallback.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/IJNICallback.java
index b71cad8a7..f84fa635d 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/IJNICallback.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/IJNICallback.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/JNIMiddleWare.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/JNIMiddleWare.java
index f527fd8ae..d12e0d192 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/JNIMiddleWare.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/JNIMiddleWare.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/McStateEnum.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/McStateEnum.java
index a26d32df1..61fa98209 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/McStateEnum.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/McStateEnum.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/QualifiedName.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/QualifiedName.java
index 63beafccf..6f955420b 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/QualifiedName.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/QualifiedName.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TcStateEnum.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TcStateEnum.java
index 879db8831..9664a8f5b 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TcStateEnum.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TcStateEnum.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/Timeval.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/Timeval.java
index a71680b33..9ae178405 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/Timeval.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/Timeval.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TransportTypeEnum.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TransportTypeEnum.java
index e3dc8ccd7..c2213da16 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TransportTypeEnum.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/TransportTypeEnum.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/VerdictTypeEnum.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/VerdictTypeEnum.java
index ae3a144c6..ab2b47e00 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/VerdictTypeEnum.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executor/jni/VerdictTypeEnum.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/HostController.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/HostController.java
index 369f0228a..96dc05c93 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/HostController.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/HostController.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/IJniExecutorObserver.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/IJniExecutorObserver.java
index d47faf504..3d86e2d31 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/IJniExecutorObserver.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/IJniExecutorObserver.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/JniExecutor.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/JniExecutor.java
index 46dfc6aca..1a974ae5e 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/JniExecutor.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/JniExecutor.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorException.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorException.java
index cde95f3ef..cf465ce10 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorException.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorException.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorIllegalArgumentException.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorIllegalArgumentException.java
index bbac38169..6669b86c8 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorIllegalArgumentException.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorIllegalArgumentException.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorJniLoadException.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorJniLoadException.java
index 0ff09490c..66f2461c0 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorJniLoadException.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorJniLoadException.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorStartSessionException.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorStartSessionException.java
index 1edf1c072..c7742abf4 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorStartSessionException.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorStartSessionException.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorWrongStateException.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorWrongStateException.java
index 4b1ba7575..ee70db12a 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorWrongStateException.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/exception/JniExecutorWrongStateException.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/package-info.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/package-info.java
index 379da391a..bd65363f4 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/package-info.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/package-info.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/Log.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/Log.java
index 8354a6a16..a18a91321 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/Log.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/Log.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/StringUtil.java b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/StringUtil.java
index 9656b5da4..3dc296b4a 100644
--- a/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/StringUtil.java
+++ b/titan_executor_api/TITAN_Executor_API/src/org/eclipse/titan/executorapi/util/StringUtil.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/CommonData.java b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/CommonData.java
index 394f66f7d..a971f1703 100644
--- a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/CommonData.java
+++ b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/CommonData.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/DemoFrame.java b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/DemoFrame.java
index c8c5cd1ca..9330a63aa 100644
--- a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/DemoFrame.java
+++ b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/DemoFrame.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteCfgDialog.java b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteCfgDialog.java
index 7e64ac248..d4dc5bc7e 100644
--- a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteCfgDialog.java
+++ b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteCfgDialog.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteControlDialog.java b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteControlDialog.java
index eeea8f239..90178e61d 100644
--- a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteControlDialog.java
+++ b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteControlDialog.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteTestcaseDialog.java b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteTestcaseDialog.java
index 5878f0be3..7ef0a7c63 100644
--- a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteTestcaseDialog.java
+++ b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/ExecuteTestcaseDialog.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/Main.java b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/Main.java
index f96a93ddc..37d1a2597 100644
--- a/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/Main.java
+++ b/titan_executor_api/TITAN_Executor_API_Demo/src/org/eclipse/titan/executorapi/demo/Main.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/build.xml b/titan_executor_api/TITAN_Executor_API_test/build.xml
index 381225aad..5d26af5d8 100644
--- a/titan_executor_api/TITAN_Executor_API_test/build.xml
+++ b/titan_executor_api/TITAN_Executor_API_test/build.xml
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <!--
-  Copyright (c) 2000-2014 Ericsson Telecom AB
+  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
diff --git a/titan_executor_api/TITAN_Executor_API_test/build_and_run_test.sh b/titan_executor_api/TITAN_Executor_API_test/build_and_run_test.sh
new file mode 100755
index 000000000..43e564b9c
--- /dev/null
+++ b/titan_executor_api/TITAN_Executor_API_test/build_and_run_test.sh
@@ -0,0 +1,82 @@
+###############################################################################
+# 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
+###############################################################################
+
+# EDIT THESE LINES TO SET CORRECT JAR LOCATIONS
+
+LIB_DIR_GIT=$HOME/git/titan_playground/jar
+
+# short file name
+JUNIT_JAR=junit.jar
+HAMCREST_JAR=org.hamcrest.core_1.3.0.v201303031735.jar
+
+# full path
+JUNIT_FULL=${LIB_DIR_GIT}/org.junit_4.11.0.v201303080030/${JUNIT_JAR}
+HAMCREST_FULL=${LIB_DIR_GIT}/${HAMCREST_JAR}
+
+#---------------------------------------------------------------------
+# DO NOT EDIT AFTER THIS LINE
+
+# check if JAVA exists
+# http://stackoverflow.com/questions/7334754/correct-way-to-check-java-version-from-bash-script
+if type -p java; then
+    echo found java executable in PATH
+    _java=java
+elif [[ -n "$JAVA_HOME" ]] && [[ -x "$JAVA_HOME/bin/java" ]];  then
+    echo found java executable in JAVA_HOME
+    _java="$JAVA_HOME/bin/java"
+else
+    echo "no java, exiting"; exit 1;
+fi
+
+# check java version (>=1.7)
+if [[ "$_java" ]]; then
+    version=$("$_java" -version 2>&1 | awk -F '"' '/version/ {print $2}')
+    echo version "$version"
+    if [[ "$version" > "1.7" ]]; then
+        echo "version is at least 1.7, OK";
+    else
+        echo "version is less than 1.7, NOT OK, exiting"; exit 1;
+    fi
+fi
+
+# check java version (>=1.7) in another way
+[ $(java -version 2>&1 | sed 's/java version "\(.*\)\.\(.*\)\..*"/\1\2/; 1q') -ge 17 ] && echo "version is at least 1.7, OK" || { echo "version is less than 1.7, NOT OK, exiting"; exit 1; }
+
+# checks if file exists, exits if not
+# @param $1 file full path
+function file_exist {
+	[ -f "$1" ] && echo "$1 FOUND, OK" || { echo "$1 NOT FOUND, exiting"; exit 1; }
+}
+
+# checks if directory exists, exits if not
+# @param $1 directory full path
+function dir_exist {
+	[ -d "$1" ] && echo "$1 DIRECTORY FOUND, OK" || { echo "$1 DIRECTORY NOT FOUND, exiting"; exit 1; }
+}
+
+# check TITAN dependencies
+[ ! -z "${TTCN3_DIR}" ] && echo "\$TTCN3_DIR is set to ${TTCN3_DIR}, OK" \
+|| { echo "\$TTCN3_DIR is not set, NOT OK, exiting"; exit 1; }
+dir_exist ${TTCN3_DIR}
+file_exist ${TTCN3_DIR}/lib/libmctrjninative.so
+[[ "${LD_LIBRARY_PATH}" == *"${TTCN3_DIR}/lib"* ]] && echo "\$TTCN3_DIR/lib is added to \$LD_LIBRARY_PATH=${LD_LIBRARY_PATH}, OK" \
+|| { echo "\$TTCN3_DIR is NOT added to \$LD_LIBRARY_PATH=${LD_LIBRARY_PATH}, NOT OK, exiting"; exit 1; }
+file_exist ${TTCN3_DIR}/demo/MyExample
+# Check if HelloWorld demo binary is compiled in parallel mode: output of MyExample -v contains "(parallel mode)"
+[ `${TTCN3_DIR}/demo/MyExample -v 2>&1 | grep "(parallel mode)" | wc -l` != 0 ] && echo "${TTCN3_DIR}/demo/MyExample is compiled in parallel mode, OK" \
+|| { echo "${TTCN3_DIR}/demo/MyExample is compiled in single mode, NOT in parallel mode, NOT OK, exiting"; exit 1; }
+
+# check JAR dependencies
+file_exist ${JUNIT_FULL}
+file_exist ${HAMCREST_FULL}
+
+# run test (and build its dependencies if needed)
+ant \
+-lib ${JUNIT_FULL} \
+-lib ${HAMCREST_FULL} \
+TITAN_Executor_API_test
diff --git a/titan_executor_api/TITAN_Executor_API_test/readme.txt b/titan_executor_api/TITAN_Executor_API_test/readme.txt
index 6a4035095..34a99f5f3 100644
--- a/titan_executor_api/TITAN_Executor_API_test/readme.txt
+++ b/titan_executor_api/TITAN_Executor_API_test/readme.txt
@@ -1,10 +1,13 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
 ###############################################################################
+
+1. GENERATING BUILD.XML
+
 build.xml is generated.
 The generated build.xml is modified manually:
   target TITAN_Executor_API_test is modified to fail in ant level if any testcase fails to make Jenkins show the failures
@@ -16,5 +19,97 @@ Steps to generate build.xml from Eclipse:
   2. Select General/Ant Buildfiles
 JUnit will be included in build.xml
 
-Run JUnit tests from Ant build.xml:
-ant TITAN_Executor_API_test
+2. RUN JUNIT TESTS
+
+Requirements:
+  Java 1.7
+    for compiling Titan with JNI Java SDK (JDK) 1.7 is needed
+  $TTCN3_DIR is set to Titan install directory
+  ${TTCN3_DIR}/lib/libmctrjninative.so exists and ${TTCN3_DIR}/lib is added to $LD_LIBRARY_PATH
+
+The test project depends on these external jars:
+  junit.jar (JUnit4)
+  Hamcrest core 1.3
+    https://code.google.com/p/hamcrest/downloads/list
+
+Test compiling and running from command line is done with this command:
+(NOTE: this script also compiles its dependecies)
+
+ant \
+-lib <JUnit jar> \
+-lib <Hamcrest core jar> \
+TITAN_Executor_API_test
+
+For example
+ant \
+-lib ${LIB_DIR}/org.junit_4.11.0.v201303080030/junit.jar \
+-lib ${LIB_DIR}/org.hamcrest.core_1.3.0.v201303031735.jar \
+TITAN_Executor_API_test
+
+See build_and_run_test.sh, this script also check the dependencies before test compiling and running.
+
+3. TROUBLESHOOTING
+Typical error situations during test running and their solutions
+
+3.1
+Error:
+java.lang.UnsatisfiedLinkError: org.eclipse.titan.executor.jni.JNIMiddleWare.init(I)J
+Reason:
+The Titan release you use is built on 2014-07-01, and since then the project became open source and that’s why all the java packages were renamed from com.ericsson.titan.* to org.eclipse.titan.*
+Solution:
+So you should use the latest release.
+You can download a new package from
+ttcn.ericsson.se/download/
+Search for TITAN packages, latest version is CRL 113 200/5 R2A (5.2.pl0), this is done in 2015 Q1
+You can extract it locally in your home directory, just make sure, that
+TTCN3_DIR is set properly
+PATH contains its bin directory
+LD_LIBRARY_PATH contains its lib directory
+
+3.2
+Error:
+.../lib/libmctrjninative.so: wrong ELF class: ELFCLASS64 (Possible cause: architecture word width mismatch)
+Reason:
+You use a 32-bit JDK on a 64-bit system.
+Solution:
+So you should download and use a new one.
+
+So download this file:
+jdk-7u75-linux-x64.tar.gz
+http://download.oracle.com
+
+Extract it to your home directory, you will get a directory like this:
+jdk-7u75-linux-x64
+create a symlink to it:
+ln -s jdk-7u75-linux-x64 jdk
+
+set the following variables in your .bashrc
+JDKDIR=$HOME/jdk
+export JDKDIR
+PATH=$HOME/jdk/bin:${PATH}
+export PATH
+LD_LIBRARY_PATH=$HOME/jdk/lib:.:${LD_LIBRARY_PATH}
+export LD_LIBRARY_PATH
+
+In case of tcsh
+.cshrc.user
+setenv JDKDIR $HOME/jdk
+setenv JAVA_HOME $HOME/jdk
+setenv LD_LIBRARY_PATH ${JAVA_HOME}/lib:$LD_LIBRARY_PATH
+setenv PATH ${JAVA_HOME}/bin:$PATH
+
+Then start a new terminal and check the result with java -version
+
+3.3
+Error:
+org.eclipse.titan.executorapi.exception.JniExecutorJniLoadException: JNI dynamic library could not be loaded.
+Reason:
+libmctrjninative.so is missing or not found
+Solution:
+TTCN3_DIR must be added to LD_LIBRARY_PATH
+Add this line to .bashrc
+LD_LIBRARY_PATH=${TTCN3_DIR}/lib:${LD_LIBRARY_PATH}
+
+If Titan is built locally, Makefile.personal must contain the following lines:
+JNI := yes
+JDKDIR := $HOME/jdk
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/HostControllerErrorIllegalArgTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/HostControllerErrorIllegalArgTest.java
index b8d451675..93eb4872f 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/HostControllerErrorIllegalArgTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/HostControllerErrorIllegalArgTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorIllegalArgTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorIllegalArgTest.java
index 1fe72e498..5f9a647cb 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorIllegalArgTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorIllegalArgTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorTest.java
index 9631dbe59..e3ca90c1c 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorWrongStateTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorWrongStateTest.java
index 32c3f8ac7..46f9df37b 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorWrongStateTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncErrorWrongStateTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappySimpleTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappySimpleTest.java
index f69d293c4..4d7efb511 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappySimpleTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappySimpleTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappyTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappyTest.java
index be6cf63c0..4274c80b0 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappyTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncHappyTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncTest.java
index 355942402..62bf95afb 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorAsyncTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSync.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSync.java
index d3e3e7045..27d2a3f48 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSync.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSync.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSyncTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSyncTest.java
index ba44d9fd5..bc16ea55e 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSyncTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorSyncTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorTest.java
index b861b5990..de37617c0 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/JniExecutorTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/NormalTestObserver.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/NormalTestObserver.java
index 767201112..d88dc3a63 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/NormalTestObserver.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/NormalTestObserver.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/StringUtilTest.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/StringUtilTest.java
index b426ca826..779cc1ee6 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/StringUtilTest.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/StringUtilTest.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test1Observer.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test1Observer.java
index b8e9f9e21..d01808ae6 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test1Observer.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test1Observer.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test2Observer.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test2Observer.java
index 422496895..82d500a16 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test2Observer.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/Test2Observer.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestConstants.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestConstants.java
index 4811a05c1..e3c3b496f 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestConstants.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestConstants.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestObserverBase.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestObserverBase.java
index 45826bd65..d9b894aa0 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestObserverBase.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestObserverBase.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestUtil.java b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestUtil.java
index dde056b27..1cacb33a6 100644
--- a/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestUtil.java
+++ b/titan_executor_api/TITAN_Executor_API_test/src/org/eclipse/titan/executorapi/test/TestUtil.java
@@ -1,5 +1,5 @@
 /******************************************************************************
- * Copyright (c) 2000-2014 Ericsson Telecom AB
+ * 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
diff --git a/titan_executor_api/doc/Titan_Executor_API_User_Guide.doc b/titan_executor_api/doc/Titan_Executor_API_User_Guide.doc
index c3e04d620d7fd6852306e16aeb1d82d124435320..73ba1539fe791fa4e2cd31d845f49c75c3b7d639 100755
GIT binary patch
delta 16632
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

delta 6658
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
UsY6nS<c!G}lhLrEkFmk>{{&e&Jpcdz

diff --git a/usrguide/Makefile b/usrguide/Makefile
index 00c44cc52..f7705f021 100644
--- a/usrguide/Makefile
+++ b/usrguide/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/usrguide/PRI.doc b/usrguide/PRI.doc
deleted file mode 100644
index 4a1a4d0701f99745b3f2fb721a8f1c8965b761d8..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 84480
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

diff --git a/usrguide/PRI.docx b/usrguide/PRI.docx
new file mode 100644
index 0000000000000000000000000000000000000000..cc75fcd8f6cbfd51fc82dbc50fe12205178af932
GIT binary patch
literal 127610
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
S4GIs85wtC_AAr^yu>S{%<L8I~

literal 0
HcmV?d00001

diff --git a/usrguide/apiguide.doc b/usrguide/apiguide.doc
index 0d52c28e306b8280cf08f1bdb59e80c2cfd13305..697b42e51e1aef9e0adf0b62153f885d38ff7728 100644
GIT binary patch
literal 696832
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

delta 90220
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
z%0D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

diff --git a/usrguide/installationguide.doc b/usrguide/installationguide.doc
index c554cf6f5874b559797f15fd698f372cf4dc6a38..097275b5d01b2a416a66ab2f1aa42e68e9db2874 100644
GIT binary patch
delta 13820
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
Leer8K%j16lAhbyW

delta 13604
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
Pv2#pZ;p9WgbeI1Dgf!cY

diff --git a/usrguide/pdfgen.sh b/usrguide/pdfgen.sh
index b6a1f5852..b0f992526 100644
--- a/usrguide/pdfgen.sh
+++ b/usrguide/pdfgen.sh
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
diff --git a/usrguide/referenceguide.doc b/usrguide/referenceguide.doc
index 9a9bf7e6f6ad68b8e2657249c7fad57c192a7a18..3c41ef9f03979bbbb8dc375cfb6d217fe698dab7 100644
GIT binary patch
delta 287855
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

delta 245842
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%0D9BD@v?8Z~%I>_!5rr;=Ch=ebCVkQpZ
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
L=H7Tu4-5Jq8F3@|

diff --git a/usrguide/releasenotes.doc b/usrguide/releasenotes.doc
index e100f7a651d4265693a911833f0ff970b1daf5cb..a8e583d3506fb147d80f06c7512d1091080d0ee7 100644
GIT binary patch
delta 118238
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

delta 119945
zcmcfK2S60p+VJsNWe^KC1jGh*R77B@me`^u8hh`epxArIti3lJb?m*yg1uw!6?^a9
zsL@1YP5l06XJ%Ota^Ls;Ze;IocXoElInO!s%$eCWckr(KgLma$mn&7ttlJ%>j8f|k
ztvl?>v@4VJ)n8f%H)-WwN9k6i$*T242kBvINh+LLiE(gKI;9G*WXPqhC0^SWk)(XQ
z9nGtly@XfsXa5?g&9Xj!;ZICl(U-G-jbeVeqLTDLmZSoHk~Ak(!g8nIOVV?Su{S`n
zNQYe{X=G(ddcz6>s))^f{krxCNotZulAPK}(k3TK+SOH(nmI^P5jMnjrDD8_zyHZ=
z0hZhGS&}xeVy7?ZC21%#YO;YaV&am{sB89KB19IkXYpseX78oFH(tex_J79e#;Z{y
zV;S*2&_sw?&yAVyXK9}#eHGiE=PsFTu{So9bi*P9_J8kZDdA4RzDD`J{y1TORcV5Y
zw<KwJDpsj#Y5!3B$k>z7x?bf!9(_3_o<eJX#{4bgc<(GpjqgfQ1>-|rT`5sEUgz;j
z!%L#I#oug}JIyX%TKkM7ZJEL6Y*oA;E=i7(C_qMvQn6}Zrt;7}#-iE=5<23v$C5NS
zvm_a{G+vD;8t<)*SSVk@TWv$ed!zAczNf7V$&Y4AQdZT!f|HA~z#(&(u~gDmqdrOJ
z+ukcV)65Srif)^mq~m-&pPGM{_v_hOk;UQZl|hnxHdb>=m&(aMEHupDKh#fYo-SWT
z<BeCdC@)hsCA^S_@wvaUHl2UMo9gL3GwBNl<YUnQUw>s_dOu@<0L5+rv$jBhayMZC
zvsfUrzJ)+-0drdAQw2|@U53oYW&-Uu6QnH_sI1B0XY4yjD`=>)&n3IDwP0<zptQ=d
z8lIkMUA$_QuTrT_rOI9{>ve4tsP8h^Zbf5bA=-+;N`L2EMhQZcYR<NrhH49hC?^vZ
z2vz1fdl_2@(-sI-JTuz15T?9x_A+a`4fE3$2us@_vPaMMUAuS@x8zG0<|o$E>lEg%
zt>^Ej9LbnlFI$+u@;sw$38NMKm0X#OeTN0uFQGSse}K|0VF|NRE|XU&y>xmz_?vCT
z^Y;x&p?HB>0R2TDF-obokbj_(J##L-FNNt%q`b<X!&pvlA^#wyQ)XLPgO$>mZMD&x
z!arEqo3KQPGC8xC-hg3xTlk0AmDQX=SwqE&#?JLN@()#_vgFbmE-cKbO>JkrHUWNm
zTlt46yRzt|WTrAci<i~_0e=39Q`Umoc6p<1A|OEYMPrEorFm9Q<vW+G#!>;vEoD}A
zv()^ArOe4K6{vW+<Wl}}aWys`sN~3ID@%|vm`__|vwa$5|7oytmruR6%gVuQ`q35O
z7px4-rgz-{KWoIzzQIa**P_M_LX;Z`3s?hg_6<=wB`grC%yYGE!5UbzZ>Zwu=BnIx
zwG|}HZXthbP|dz!EL2S2jlbU%H@$TN{H-0`>`O=YbIY!*ax((wZ-m!+s2ghrDBf;f
zinF_IDI>gg2_eAW+VR<DfYQ+2h?l=vvAEmzYVG(eVOC-jmIxF}7<&p*YP!2CZrQVF
zJtn|k@787|Z<x_z{H^_(%>*eev)k4TR!Sti2~obVnZwz$7~2gIpX!~%Uk|Z=h?2>}
z2&;dn))&}OHa!^!&?RHDyDNP>vS<exGqi=2^}hN+77(CEnq~KR7=;P&Qzm&By9>}`
z%}n<kwk7<PvN>!^Sd)s`H^5)%YBy8cS74xBM-MP7nR2)*mvR{K3DCQ6U_yQf2++gK
z!k#&e`UU8T#JZp!m4F~+4_h0VGm9RX06p44{t1abAV3c{OUD<tZB9?@LH7IA`*uLE
zQpDF*(GaC(E?Y(Q$OnWdmRz<?>5&gkI1L5_geji6+?8j(MgubAi)}MzJ?6|Tk=xj|
z*-wjCh<#!(`zvSI&YTj)c9;>Hu!<gcX5O}&sck3JJ_csJZ<_;@vVKO@%x0x!9^3Bq
zpfht)9;0ezJ?Nnd`A!eIIY=py$9;;wtwcdeCQsW|^jNb{S-Y89iNfrAf;mLFoyT2S
z=4snbh_WYP6+O@_^_$&HeLEp`J<1%WO!9PB8h9B!%B=VCFi~c`Uj*s_XW<22URkWC
zv4B85;QoHrh#QOQy*<!R`QT+#D^SlWq#KSdV@W;wf&NM>vk}w403~nUyn3ht&B|*p
zcV$OjqkjhKy`Am6&hL>+FNYraK>O2apmNqHo3WWd#V220W3Seer`eaos(C(JRrG%E
z?`NOT0`<lS3{tk_vsFd!_!Pk|K6=j&3|2Dbw{0{;3%9?&eNPJ1TP83>iOO%QHD}KJ
zwi4<IK9I8Hx9!$Ab6N)idc}hLlverOl_CYQ=uHx2GzqEAHc|@+(wl_EhXfm?3o@F7
z6SUo;dYg~{P8Kls9i(S_5_>`t4$_Z^pa7*{L8HNf%u0=dMm>V`c44Napm9V5*~T+o
z*>V`w2vTwvbXOi1G`e7r(HzQ<Y(}09(i<ZvNbxUZ#4RXzN+H|6LzH;7GP97;S%QrC
z2Z+w1H-C^G{-6-$b*Qa^dIq9`c1!Bb5EQDEE^OOjn3BG*QNdvSs0a#ErrDMV_EX{#
zme3>5%$J3Yy#*VQ53tJ$!2!yI!W@R)M(KkSf}YUNg7u)Y^a5|AOu=TQtGBI8deE8q
z!8@1UErN}pljvw`{bUwwJrV-bs=IqRWLF}J7~_>-nxjZw{rnqj4SOJ09SLXb;9#+U
z-gv<w%3nnaC%my+)f(zRU$Ug_#2g%IziODWrl@VzFuT2mSR)(gOKP;8Q$zghRt@o2
znin%x<xRA$z#-Ni9LV^I({UOtLxd;;i{#Ub7-CkOeQax*?bo!1E|4)3Ct+jhK(T=F
zCP<0%@lJTdCwi|6F{0!z&bY=B!S?HhC|!%&)(uf!_}I1@svJ%DB-H+sFeR_AZJjW?
zPq>O4VEcqO30vc=bw1$}f2Fpsv7gWY#ixX^HQv~LVpc{Zd}6l$Bv84P@JXQkCqYVx
zpKWVF_MZeRll{E)$cHMme2vJ5hA2-HRtXWS=-~_1dkO;<&U$+ILPM3kezwAgDYN};
zy9*Pa=<8~idV#)-PB_!)>vB<-urAkc)dP%md1JS(-d7loa9T6g4X|I=tb7SDD#HlR
z&!`ON;znlMMg#3v2~yUZ6ISW&Z(Ai;Nf&5ah2g5%RtM|pgCm8@n0&T!Fl03w^$!bG
zb|tJEYQL^EO|fpEIQ1BHU|?jdYvx+2OORe5v!CK?&ZmXW>}SnRtQss%G}@}nRPH9M
z8lZRuC#-tMtk=ctXIA<L>va)tSjE_=eiSiO;0$7HG|+ydK}xZZBE}~{_Ur105hDW5
z7{(I8O08f$4rad)<yMGozaioiW50SIV$5JWKbSe4+pQa>Ob$(`OwC}UGMvhvh8i2?
zO~OXC%cMYG&g+~5v_4G^HHFw#4Nzu>*;Wm(U)7qbSv6Foe!VVS`0Nce>cZuF^^&%A
z=|Z7KUHrAo?8^z;mgdb|?bxjwtb8e{pUTbt#*ie?f1_Wi38^;jD%+@|(tVR_njo(_
z=JL+Y8~xTaGMSt=j#=B0mtk*XN4<?TA=TEmv8gju&Dp-KSFfl@ukfBd+qdh|IkHPH
zudZ#qdUxTziI1B1w8^z&pYTq-BfYxz@ah%Wxm&03UXfmH+edba=;_rqynUz02(Q+W
zZNhu^WC^ia>#n`KM0oY=-MYB8kgs#)PF=%$d098olRYsV-Xqd0vOPQP;nlNqc&ARh
zGQW!#(GPc;tcHF{eau1flG>_wKc@Cb-B*fK$9+njvr>c<DYcQ>OP!@~sS}?^NL{5~
zymqm^hBMussV>av$*ULdqgX?{)7B8{Xxp^(<bz0NN3szwHrJD9Kgkyf4`1$;*3&o9
zp3U}R=^nglJCEYE3u|{`r(L9Wtlw2?%X2**6{Q-Ii<g;q-I&|MT1ZiZZal0@=e6#z
z4IlPq1EL6R__#N7MR_TAq`L5as_a|0d`?|`nNvkqFE6h&X`I#g#SWocD=u~@Z<574
z7jA-PQ%%bpUV8piXRuV?$>f>JX-Mi0hq?9W=wxz@y4tU#<QBzeYR2Ub?xpmFGNtYy
zZc$o45G%R6MosCh=<kD^hSaR;Ak{`T`wg^O?%+|;wmr$OYJgZZv)v-rd6I{=@uc%v
z*3r7dt-F>xlu2#*YD=!xl81O&OKvNgR-YYwk&w7P#{RXn%4nb4)=FAIDw0q^Ywavl
zFH!xh8>}VnuWP&9n>(dlYSoaW|4r4uim>`_l|%04<@qjSDjuUGw~8m>K0>%hKMuEH
z&L~Nva2+N1!e|(-AdH*ov+xPcvPe=K@?@1H3+|wT+I_Xd3-!C>j?QZCH4Zh@%xfG9
zZ@sg|p^V9rsI#odn^H}+;1<(9w*}X}S0s(vTCbG0Wgo59T2J}9RYaqt+<&y<_-nhc
z6(?z1Yt5tn9m`iip2XD)c~J_bQ3l_kEXqN&K?PJqOSD2bS|bu|(H%X|6B95IlMsU`
zP$1fI8m40dHl~*fNt>A1jBVJCgE)l4xP!a6r*2>8P$6-fOy?`Ff9mia+UK?)Xnl50
z{*>0TkG>XsEtsC#8f?d+<&Wf}X+2bu96>1`Kq<GNR?J2Dk}0OenocC&dqm^`9^w(i
zq45MyA#-RrA`P679vR?{?C^jYfe1nfLJ<aWc$GqFG(uxEK~uCu{Z>46LT7ZrXpF&F
zjK>5_gg8bgBL-`*7O_}|P1uaR*oXb<sSOU5+ozE0(iFDFAxR^SEtE`jtijQm%vt-~
zwwC?js77ye@c25le%<>2+e0sfZeiX}C2!y+Zs86rcX_%8k;xw5AxvblR7ed6I3X>v
z!4+=sgFgZgh#&+*WW!K|p*|X*AsV3>nj;GB(ZN|NDh+311V&;s#$YT&N*#|0SczZM
zxJ?eN5+8Z}_+tE@j=WFai5ty6{7JLn&)TxdoC@t*#PWa3hDn=5>m8;f#nVq#C4Qm0
ztFRjDupYY*=gjx{yP3FxtGI?6xQSa3r=UByi@)$UzJMPwNDh#Z8Cj4OJ}3@f_`x3m
z5T~&~1fe$Spf2iV<c!~liN=UPB-&yyhG3|=eM{2x*w*Kt8|i7W#Eqooole@^|Ii%v
z>G3yy4MAu4w&}5lw$sGLG}7ZxA~GB!FcM;9FdAd96w9z2E3g`CunpU>0~c@+mv9AF
zaSdX0aRWE;0Uz-RpCK{YsBhva1Duf&-Y9~i@Ii6-LJU#-;E(F4ftsj=dZ>?92uEx6
z)V7q<<7HnX`1V8FCfeM@(XmU9H;X4;%l`OOqql$C^w^q8Mq?0u#$Z^6@H7-+AU7N%
zun>!|7)!7e%di<+uoY)<4(D+Zmv9+kFnAT$@F(8kJwD(w{(>8WM0aG*EH#n>m@p#{
z!3aSp#E7yaN}(Yd;q&XKpP$}1d*kTmquXw*S-9r&)6dhzoP}b}$Qx_Uia7(V%c#HZ
zaLAE3nf~B!ZHyEf>x5t8#`<cQ%pfD_g-FsQTSME1z7LDI*s(5>?8V9d?|Dy4vS&*q
zF1C?m37AD{Ow^j7Ia;7E`k_A*OvN;)n1PuP<M`Q_gKgN39oUK8*n=y$ifed-xA+t9
z@c|$4DRT%-#>8Ln;DR6rav~Qz;e{}iL@Crq12j~(?@F3vg9HD$@wS^2M?p)nrM0=q
zG`amb&pyfS2{5+v4acArw4Ej{rjcYD5|PGef~F9cSIyA^127QL7=*zXf?1f2IoN`&
z*oGb0iCqwvXuGio*Kq?kaSL}*{~k}D@EL!>o$I*l@IX%FLT==NC%jM^W$+!!q5>+S
z8JeSodTMvdNp^X#5q$e3TU48yI68Joc1=*?wGt=UJ>NFTwxE*z&>sU34a*>&eijoL
zj3Jndd6<s{Sd1lz!*1-sRb0b$+{7*1hPa}>i+lJRUm)=_ND~|&!xLV}>%thc6ceRU
z24ztW<xv3@@jY50T#ehCbPSq3%o^Sl!#_JT<?ts>k9o9Zli8O2@%UdIgDxZqX`?2s
zPZ{Ykoa(kl8?-|dhG3`*X>%A8b1@I|u@H-}7)!7e%dj5@a1e)Z499UF5AYCQAb!ti
zLTWfbh9lCz2?bCPg-|#fW6)wu_@ER@qYN6N5gM!8_a{w{j-~&(k;art90e^sX3*yT
zhvu+PkCRFo+xdp+F{`%I#KpAem*^D;uV@kx&KB5$jINB@u^Vn~TtVY7^0-S<ADl*^
z>>QK01YZxvuegQa99&uB5x&dG9TdDoW$t3m!=I?Z?YOPy4?5&AiThYh)ekEiGFoys
zX3tI049y`*(-N%^jY0Ss77W91D42?Ah{Zar$3|?zW{4VX#Wq~PMO?yVT*nRknyn^3
ziDu#j(ok(Dq(ypUfHOo`G9fd3P#nG}0W$(o5#OVddg^e>iMsE1MmNw7Dy=(xEMuLU
zxSi}0^&su@6mAwA`L>C=5|wO;RtQHMSR#0egy=l&5QX6wfsq)6aTt%;n1i|4if!1A
zo!Esqhz__1dvOCdaSOL`9}n;c-r%h(i8>R#G&8cm1=-*V(Tm-Y9f1f^<Bldx)KAL&
zbND-IpC=psq>1`v*_5{RuO;g4+AeLyGZJ+W)eS}nN})8W;U_l|b#*4%Aqwr$5uMN(
z;;8S6ZWxaVn21SGFcpij1WU08d$A7(a1e(eGRF}d#RELVBRqB^QUA)sb9};Q`~`Q?
zOLlmu+m9zr)R!uz6j*IE-&p(H76t9dy20<`lfMsS-yHUdx}~-T+xdox`d;~DifJTj
z4<eEixsV$o8GFJDrBMdop)4xmd(=fe)JIozLwEE<FZ6~;=zY--Q!x$Gp<*`b&*5nm
zR$~p0;3$sa1Ww`<#984C;_)0W@Djh_54=HY&K3@k)l(-^PLEai=P34L4y_T7S4t*2
zcImOY_PMR;6OUt0ecSXXQ%O&FAusa7Qh=v|5a-Uq@W%J3gvzLbYWN9F(G1Pe7yZy5
z0}+iu5a(YD24fE9VjkvWF_vH>HeqvishD(ziFlmFd0fCnh?DqbT)`W>&93e~?a(su
z_5U{hDNgbSk#^{n(mqc%{z>!WZvGig^4qdMApffa+49;hZN)S4<6G+cC*I)`J|jH?
znG7D}M`tDq!y83V3_d6hG3qG+Km3I1sDYZOi+X5-2t>ky!5D&J7>*GTBd1XqjU`x$
zWmxV(eq6=GYV5==#Njfo;HtVkK52ejRxPE#YK>Gx``i`<?a*3XHKn!eo5MaomeAH<
zJKr!rZul{oVjB7JDiOJk8@LHE7`=@<_>8~sH@+Y>gHs2%ARAm!0)Fs^8G#6b7|@0w
z6!lOa4bTux#rtMFbwnq0#wd)&7>vVsOn?{_Pr_uZ#u}_eEH+{j4&WdTsi)4RoFCn5
zSmThS5oc9TCOUTcF}L=)ZLP%l@%*>VkB6w_ZQQ|K+=t}>PY)rk9UkKe9JqFn;fORy
zj||9(T*!?Ogdz;3P#R?*u0P769GamyTA(G`AObzn3%zqPe4NC@WW+$hR7``oh*2>E
zo3L4pyO4DFIJ(w9hd;gcd9vY8njR-|HS&$qV-{_fw&EG-aWmE3g00wzT{wZ0IZ2PF
zn0SmQc#2=~94{a)`hLSJh<`ojjEu+x7i2?z6hJ|gMLCp5MSPD+5EqVB@B<<ciMD8$
zi}cu$iB1@ZXbggi8JMYVzmzmR_NkjvV72u4p^o))TNJeP7_H4s=E5wc^!TN=v7K+2
z9*1f>O<YVPJ<cQ|voQyAA+E*eV*z#{4!f}j2XGMQaRC?c8(!fx{=gf&g}9!7hxf?F
zb-gRx;EtTApNpqr@Ii4@!4LQm)$kLlL);XoiCXA{&gg=!=!sq!hT#~Yp1P89dVE~p
z2!5Tx2|uIipv_Gj9lP}SqF&;)5~s(j-!?stppx^k01L4MmZdx`!*Z;^N*uyr9KlhX
z#3|gsP29qJe85Nig}?Cy5<j#uAr<n#6JE%Rf+&O_1S2F5>9IBwbx;=#&=8H#7~-FY
zH$`9cQ{%2BO^=NlS;L!R_^&riIs8e}V+(EBWVU60JpNZlk9Qj+E}oGdMXwd@Az~@Q
zumR~wOc9<^11XLPH!r#{jv_BVz8Zk@D9-O@M&dR?`Qc6so}nT?2AYGns8NuO<1?D_
zOOcI8zqR`fhaXI~pMvF3`4yO#r62q4j{*1@7EHt>OvW!*h1H0~I;@8%??!AwJkH`A
z&f_w!;4z-yDN<7<2gq<jTBP%oN?I$Ofj7=5f}$t}ANau^<xn0K&<xGdLfw8VX_l_s
z^q>36u_lQdL(9@XX><QWudpA)o@s1s=No3}I@(SX7t_enEr>`sTB8l<Mp7i&Vkm}T
zI7VO$#$qOBVKz2n3$|hhc48MqPuz_?xQ-jRiCegb`uBPI9e>~rGSXc$Av0W%4XzN~
z*&W#th#&+b1f@_K)$kLltEcXyoTaxmH-c}UrAuma6Gz7`OUE@!yjJ2YefQgD>FQLn
z9iq@4onYzAQx}MXz8kt@0w!V-CSxk5VF{LE8TMiy_Tvx^;|N6JIELeRgvWS-r+9&v
z_zQpIix*kigY1$6IgtmR@Pf!b`H&xFQBIA!mo!Uzx3Y#e#qh6cnR57(W@%q-*<`l$
zuVv}=EfN>c$kOGgZh2HdWmG`}G|Vemq()5iKu`2SU-UzNh-^I&(U^gmn1$Jxj|GUu
zI;_VDoWv=_<1EfWWc&-bh}ZZXf8b4Cj<xqpd_Y=G1?i9;1yKlv)$I?Grbo9n|J+D3
zTPKc!mL79ybN@qg*r&(&;l_5pVS3D`?KE*Qy{s8P@-0k6ilP{NAWovbD507jIk;Hr
zFj*I^(FPIt85Ru2Fbu~Ch;#2KjK&fy#WF0%Dy+s%>_Qwa;|i|g25#aO#QFOU?&gzJ
z<&i^{EDoH+Wn_aZ+|*N#QqF>-B8?c^XTfyZ+{8h!%YqXk60emw3qJm~S<sD2`oSLo
z2!bV;rx1vtO&Cg|0UDwa8lyQ{pfkFlE5=|f#$h5RVKT(<XbKd>Vjb3F1GZo*4&w-p
z<|hl@W8yv@;4z-yDa07-S3HLkW304l+>@kP@O?XLcvB4jK<#teRib_PlV-uc+orUw
ze=Q3R(ROJoo{<I9Qr&b&k4(r6Pk0p|3+82_6iTBE%Aq_eK#WPhM<s-#HQFEoQD~2T
z=#K%IifIr(e4mL~m<=(mor`(cft}cexB{HJ_A#*^XK@ba@d7XLTLE>)Gl%kt??*rC
zkWyr|Yx(xt=e96tY4Cabl-9Cu5BoIORa=AYe8V*OdsH&TG)9TP5t85W2i`zjEBuLf
za4AUYfh*jQ136I?#o&X=sDd9*4L_ke#Pvo^)Iuk8Mi+ENPc-Po(=ZIj2+YR<EW{El
z#WIMCmK9iuLpY2hIEs@vg)6v<YX#NQ&mAhI^t<|oovndL(u&tQB@-UI1le5s+_ske
z5voSN__hi18nt|bxA+quVEM??Cx~mizwkG56r!z=3%QX8o(MrG!cZ6WP#=xZ7)>Cq
z51XMm`eOhFA{rJ9#w1KeOd$^VRZOhL8mz;5Y=F4P+=R_Ii*xv2{BTtKlvL9Gw8OAc
zx8xeoa<uC|w_r8xb6X4kUw%z`x=Tv?$ZScP+{M2iOXeTNr2NlclK;tmZEcsfVjH<v
zMDaW>;4&;%czTQ{c#718xv+)|C!|F>q(=rgqX>$k7<^CyekhA_D37LShURF6aI{7n
zL?9AF3Uh)S%ET}X$0&@3iW!)Rjo5_E>iSm>+10b_9P(PsJ(Fw8Ej>~Sv(^K`w9joZ
z(Gu~l?kTO6QX(#E(N?i-C}|Vu!A_wm?Q=lFSvutg){41b>%P|RV$uIqrT)()C124v
zBCtE*;?3=796-(@Butz{!J-U8aT$Ka7~$X^O8Ic2#0yj|PA<iJ)b{0W4N{k&A+Z@5
z{kYKdlhR0gneg!6diJ1$SEAoeZKeR*upK)f3bYGxxQc7IjvKg*JNON+@EYkUbOtyh
zGqNBnM5VI975)f-8G#5vD5`kZ;#9)Kk7$DkL?R09(E%bdozNL$Fc#x59+NN`^RWO6
zz17nj97<c3^iHXVX#J|N_PMP)XbtvDuYX>vxc0eit>n7}+p_R)Z`WxZK54S}SALGJ
z_g?ctLa-B-T|C8MFZN+SMDIF?L%553xQ_>Tj3;=9_xJ!8dSEuVB0D^g1EPoKLT-ei
zBub$)%A#BmDMYHtL@m@tM|47GbVGOafavDE&>JzBQbgUo$)SP8wV$;aY+=?KXGY(D
zZk(Lj=eD&{Y#iEVUZ0e<MFL6k@8(iS2`L}^NmGl~<ML{|v=z_D?o+6^f~lB+nMEuN
zfS6c`UvLnIa2UsM948<W#3`J{GyIC@c!AgW9VQY-Dx^kk<bfyhAwLR0B$+}ejEeZa
z2v3zz8C6jYP0$q0&<B0duc*3XokOT4^}ytsYvh2GLafCjt@gPs9$F)h@1N3IDP{Id
z7Ht*VhLVQ=-^lD!v>uv#X75LA1|k}RATqcGgE0qlF%R>x7)!7bo3I&Y5RbFCfQz^U
zaTd6Ot9Xk)@vf-UQhLwCXZ(c>oF1H!5#A_*q9_hulz=#u_#*%{P!qLK8}-ouk!Xu{
z#k7RlYfwrJqc!Kd=;S)V0BvqEIZ#{cuOwY3#bZ_^)WO=q$!zTFzQKn6zeZ$6LTyI~
zhQKnEr(qb0Q5X$zIv$I0SdJA~iC?f5vDl40*o$kpjvKg*JGcvRO23Z>kT|8AkP4}h
z22MUCRCgw_!vkgnA_$=fLrI8nL1~mhV>I#666!-z3cm@k9U|JX7NyNiCZ1a3{Q7g^
zwNh*x+NO)PY%<&W*AnV$tw-7_WhB%lRJ<vgp%ub?sAo4Ox}yiiV*(~322-FwjHsqz
zIyPV<HeoZiV+W4mI8NXp9^o;b;a5C|7?r)mZ%EImEJG2VoRJY(;evd~j{^7(Wl^rU
zmQc?RO&oZwxf*D5lL@ibTvvxAw^lQ4ZZd0qeb8vzxosJocthVJp|;lcX)WegL*;VB
zrXs#aC5Rz!75sn*M4~O)p(8qBAfhn{DrR6N=3p-7K@6K0U?JkL8+(eAQ1>!%5QlI9
z7jX%%@EX74E&jwih_Uwve1se0Z+B#e2XZ41io+Kre6@u7{RnH6lW7>O8IBB3+zMJJ
zsH)9PajjFs60eowF)I>kEp6dsHuiPj_-`fD5`^GKSgP_=4K+{`wIHrv>Yy&Vq8qxS
z2l}8dMq(63V-Xf(36^68Rzh3@t-@*?#W5Vm37kQ^FA4QF6L)YIpYR!fLE@sxgj5h0
zQVx)j7x_wP33c<R#9`JNCsdo8OgyzF-8nMxS}8UTZS$SBY%<&W*AnVJtw(;9Q1emo
z{3rl#6e&SM4P_z>B~cIc(EyFn1Wh3>L7Srm24EnfF$hC26fu|r1#7StvDko(*aUGI
zy9HZu9v6!6bP<<u4cGAuzv4L@xztSqCqFHrE*_gW@LF>f(&i=;Vy(GWj!AAUA8l?j
zYkhstXxoXkj843vZ;?;~w0&BO`Bg%7A~xxf0nQNj2r?lvd{7*|C;>A9Q4!yx5?Z1a
z!V!T;v<3GWq$sq<2#mxiKN9L_CdOj|=3p-7VH>t%2jZ|Bdm!#r?8AQC!fo8aT|C4i
zyv3h*=cgsqY!j?ePNreBW>Ci`ZUwCq<k04(xYpcpiPuW;m=y`tOItXZjeXrW{#yz4
z9U;i#PeRSglMCG7j_mM24&+1#LJ@|N_zq=J12s_#9ncY-&=uX#9X-$!y)YRum;wbV
zX84m(mou>fD{%k^aR^6o499T-Cvgf-@yuUKs3RsN4zt!cPTJgL;;A+1xQU6^O0jWh
zn~d7B$!zOiOQ<ngkNhg3idGR36~QPFKt2qpM=oQcgqiai?xIv6BT~FT<sb$tc#qn_
zoZpZ-ganJta115a!4-Saz9h$9NtIiDAG9BPjSG}>sAKBL&ZgUHZ6Db~-JM>}s>XJf
zW#^b~?A#%f)Gp$@bX+}~UiP(kJfmR0;yGU7H6+SsLMr4!Zsb8;<U@Xl$`nK)R6s?1
zk4pFv{HNli#%O}3=#4(;ivbvj=z!89B3w3uZ>^-+n1i{PhecS74cLfHIE^!i56}{R
z&nbyJhSr__jIqv5rVD7@slWEQt-Z9hK2J_*t*;MiZ95i=wu)^--y-3svMc6S2|u3L
zoW})Rgy?LSaRqPi7JuR$KH)Rc(+M-c8HM4EBJe?R_(F78Klr0MYM`c>gkOt^dZ>>G
zM4~MQV+e*~1V&;MM6Vx%u~>%XSb>#TgSCjmZtO8@3ID;=lp02BhIZQLwpP%Z^O^F`
zYjxH>x2=_8P7w+J)s&Pr_I2O*ZzcRagy1S7ukmypw{RPGATq~2+{YJ4WDgTk!4YZT
zj_mM&8G#5wD8f(@BKwp^8MS+6+2y-dOopQyx}yiiV*(~322-FwB&}(fjt$rtsHOP&
zsx?-&z-rBLWqL{x)Ecp=_PK4X6q|$AxHT=MZT)L0K3v<St$4;wh>cWy6E<Tzb_6nJ
zKE}jxoWMgo!eczcuXqlT?qA|Jq$k~HfHN{8D_oEd`B4Dhp)AUwBECl@h*L%t{D25V
z7U8Ka+My#lVIZP02r6b^W{{RbE6z%;xem`vDa2ZH{iuCzi-*?8CugLz*4KxLww;<5
zZ57*wzC{W>r}a?l`QfV+I+NJU!CcIPI3F*-Ld0P=_Fyj#;t($2A}-+-UgLMX#h-Ww
zaZdk$k8tC>?vCuiq)-ngaw89l!xts+BdVerYM>@+K@1G)pf0+i8@i(h`k*gHViZOP
zYbkWooRk_yYlaZ*b6YED&ADUtKd)6r``orxipQ)-p?kG{mdr`{>%Q^dN};0(!6H}|
z^RxuZu>vb023M=F8b@&q$8iE@5RcoqgS+^I&-e?Bf+Z7DK@89wAR{mGAwLSh8%07`
zI+Tepltew$M*}oQ6EuYw<uykO48Xt;Euj{iZ*2x!n6<`PG4G!nr<nG+ZLJg=hqhTe
zH>GX;YYEj~+oi2|MnWA(#iKC@LohUigc`%d6ew7OwTQ(AY{Vvr@$nXH#d%!7MO?yV
zT){ou#{>M0FOV2Vr-lP$h%t5=7~||#&b$f77HkbwH@tGlmu67^ZXF^zM5w27%K;Y2
zma~TXrWgO1NIRxH7A9`ClzyF}HRqfK|Ih@9|9hg6wtY`+4L9w-fW~fZ#rUbtU{MS`
zq$zx_nS6gp`P)vdn2WT&Xnz!2jGsCb-b#cX;2~b(H@rgHFn*_k^vD2bWP}-kXoSXS
zf}ZGw-spqA=!Z2}i&R|lq(*vVfOARuM<FH(!y83V6vYq)ag8(rBe4wUk-iiKKq-{Q
z$2T8eK6rWI!RZGtKOPm6+w{q!A2+PnFk{8(6&pTI8S`<NrC+apz34JT_DEsA3CZBf
zt6C<noLhaLOD>RV@**`)Zuz@ZE{oI_x#gU>s}=7mS^pE$>D;3J7!<BeYk{1;P%M&N
zU6flcQRhnQMb^)X+ZWQAf|WrB{DOP9kJMZ@`5_jm%P<l^W1PWn$n_l+QnUQw;1P6_
zvfBRshi{Ik{`(z0)VZZ)XLWTA**R#bZ3|5NPv597^Ktc=zOL-7%yr197Wb6Xs#WvL
zRn>X<<#6%V-6CZXp%*o*izu{*sO?<L!wQI+-@#qjN1zI|{{d_DNF3(%2#(@3&cQ@9
zQb9ziB1EJbK}74cg(nfRCwPiq@f=17HxkB8*o+)yxwV3^7>9VA#W{R|RF0jYJSw0C
zTA~#`ynXrh!%LnX-+z1ULj18q@rRCyN4`VH_U+ggzb}5%S{}bFoBxYCNu9)t_@8)U
zsP;oad6i{-5Z^Y?)5NQr^;zq8Kl9Go3+;Mi);<OFxuK#Ph_Z|FigJqbRnW_Hg4ev|
zIao2a0zVQ(-HMd^djeRAnBb|T{izKna0{Wik6d1zSctm|OgWoYiMtDh)Ems8ee<ZX
z6C7o=P+@sRY9GhN>e>8q5zF<)*SOgzB5)MPa2&>-2eM}sGZ2ddID`8TrTP_bkeQN|
zL1k3I7>E*&LkwO+l)et77d4oNZMf8$rw0&K8i-@~74IQYJx8R06I!AbhT`3;=dW&G
zKDY1k*2`OCS1jSNV95gQdCt^HQzwlYG^$@u@#xZ1%~?dguR0Z!%UPsiV%<sDfQ>ke
zBQV10TA5J+ilP|$pf9Fk8g^nAuHY*E#5;IYq5Gj4enNG$M+Xdo1>?lic+A9XoX166
z$6Y+YBm9AnaQlHvd6dJPA35L<hi6z-l_3$<R-<K*^CwaYCSfuhs&k&iSd2sY8jM~l
z@Kg~$;^W(oZ(lvRckA-4_*=)2@VLypq>n>;c5X`aSht!6vinn&V)A$HX?sV}vFm1<
zU_BHvwT{u=sqekz0+vj!QI!jwXO4L0|IQ$-{nX0#@AP@^OFs}(QhCw6MSJ*QI^u8*
z?~#-6h!~5IicpF$zC{H>RS^x4iZI!QEtT|Mjc!D`8{LSU`M-YhK4Di|X}A5GEs5T!
zr4EyrOBR<iX~$c$;_~8pj_#7nl2_c-v&P27XhqS2qV+_}iB=OWCR)pAsH!y7Y#hLC
z+`)5r)Fcf5liHLq%Q;LZ)$oDTyVXE(uE@vJi+m)6&Q8U(gx{!yyxd|dplCEHv*;nl
z&VONg74}0E<P73*3-*O-(2#!=f*sh2UC7di>twjV6F;FIS|J*Puo-ps^5oi>K94Tw
ziZNJ-MOcj2Pi~((a8B5>ee;^li`L9pvw8aDQMN~Pua2z~nnL~EPad7hd9gaVsqC&Q
z{&Ifxo<Bo?uwru42&sSwq4<w8{8)<}*5)=i>eu1uugjUJ9yNxkKD`h9;MIWZH%x<3
zn`(LuMBzojMWKzt#x_=KHJ59tEt`{)c?z`N@Ky7h<<8bSz3MWv+}M&`)GHR(a2M&D
zFy=uH6hTpxMMccV0<6GFY{F)=Zpsx)Gsa2yh`-^}oIzI$GBP5t7yEDz_wfK#T3R?e
zw<HEwhIQDFRIP{s${-qpum`4aK0`Om#4N0Z7?|;R^76^c+gHzDJ$3cS)g$|k?Ay6{
z=aHSUJ7ZVwT)BAe;;9oy5B-_{4fuHgr$XQ8S7dk9HAKFYW?A3+VqB%3_LB>?^%K#!
z4pDni+ts)NUur38Dr$KdqBf%7y&(#pngV8qDD+-|f;~n7`b2l!K%+K91MkJatI$^N
z!}m5>L=E;ptndh8rTi=`R_q3`ay+iVk(D#R1^x&{12lx#_#{lms|X4cN&iOy6htBT
zp$)nqur1MVD>apVWMXtX+POWs9{o_P15JVDow&`=g-hD5_~W-n;&JENoeOtP<ItY%
z8`oGL%NH)+xP0U6DdR^D9?*-$^*{AZsQh~xt`7U~Lk;zMn4GKQ<Np1%0WOV@L3Wjj
zh<J!1i=v4l-P23s5k-|DO7v5bQnl@<m8@`QIsilo522nYB^GxhM|D?Y936A1liQMU
zTD)dVvS*!Rpjx6Y|HmhL2g`-k=L}KQGKyS7ZB<HMU@_L~-h;a`n9!3Bi5<9(CJgDD
z;U4Prrfl%+!+{C$YtAyLj4Bv_fr!R<oWOP5M7Dl>hSNBM=lG)^|BNDQf7%tfkRJ`v
z6m8K76R-(qa23~a7x(e;&C4hE-rT!!?^68ngS)qF*tUAxGM*P~o3(A~wy6`Rj-EP{
z=b=-Fj*jj#dMejhZc&4qr_~yQ=^;&4scvQEW7%djm}Q$ewDU0Qw0bsFF3{B1qdU8U
zeSDI}L&PFhuV<dV33V0qY_1n|?Es1k$ANr_go=aI@G2y#1&)q6)NW-Q3#;+nXsk6q
z@Z?!WzH1TnTf_=W^c6?2(n!SPEb>NkHwAsr7kjY}SqBkMOvEJQ{F&Gy0+HB+%_wFe
zU116o+{1l%4d#F!OvAKcLd8P7#)Khk6j_JzBR~vC+Tq+sMNf>uSX{>q)EL2SIV{3r
z{DC*<Gm--17>*;?C~ongF6!aqtB=nfJgfYGr{o^DuJAZ_^4#Hbd!OxiwkgSDv6T2v
zjVLeAR)70W&Tc7FKib-`WhxSt6SzebD(N+j)hpSH3K|u2r4r>KQRt!+v_6G9ik_pn
zIv+y@!Yq71iLs1&5HXJIg*mu7p32yYqt116{HS)TC{MPCT8fSRf>p@D26Li4I^ZA<
zAqN}I34a(ne9rU>3}I(O@f<HunjMzG3%o>Gc3uwSFdjuG(B!a8plJs)aS!(~WFi~F
zZ+L~~lejK`J71+`M<m+f9p0l+4A+QQftB#&+aE9VfcVC74(8%1o}r||$pbN%f=8mW
zJ!WDQ2c$SCL#J`~57VKd@O17~AcM-e6j5l8vop9>gXc_kh~DUf4}ZL{dpv%jKkhzG
z`ndjBd*n4HjMs~g6CP(C^H5h;lFM3V6is8x3dT(cadlaz&^?CJVon{=#FGeOAc0$n
z^aO4)=HMt+5U_Lv=>p1AXNme|5Ou~pyueS?`3eH5^BC+#Zt9zH2v5h5mP%Kjp~h5@
zo2y^WF|K(zk|fb>kYf$CTNQb7hw6OZ7$aaIAR}in7(x7OPTzCsYV!!ze7;LwK!MP0
zAqO>1BJU#ZtD`Xv<9iOEJ*d5e19K^@hXELi%S*LWOMEXm$JPZu$gNBk5&u&-jhyT<
z7doO7L@_Sn5^7VFI#`S)$Tf#Lq8*|Thuug|aWf$^1|k}#a2k22h9`z$7G}?*Cog5<
z37#UDI)<PZM17Cq7(A)77doR0&LAFzsDEK}g@{Q%41@(kA!4)=t0Ceu6|*o03$b`n
zDbB}CtiVdF$7bvRgER4X`Nr;X?~?xJ-lcml)x2@COO`YDULK1(wk6K`h~-6XUrnBF
z5oap*)N8EWuaekYHrm7$3Z^0x?UNZxuoUaD4LfiUhj9!i5RY@XgZp@ZcUVT7F2^Nn
z+j3Cy`UFpxwwCymfhSVK0Ww_Rj@-zDf-pm`>zj{H?i!D4Pndb(#Gzd)XRaJOe4u!A
zWTOdxYNy(AJ_}<caX(hO(QVue6mzW8xsrYwUNxK4<%hHmy&&b$)~Z<5ORC0y+f1yH
z=<@>hYbU={CN@J6j#!JpvpT%G?5B39CWqAB(KVgz;Q#D$)H+@GvMoXhfiZ&6nLy0N
zaim+$#Uz@cImTkfa_iCKeKjEl^m+R?o9*B1R{aM!Wm7{3I5{VIa<ncsON}oidzi*s
zU%1WW=ITVR7{1i81=>YS4hg2+GD+(Gx^fvcvZkCxT~t#JP+QfMWlK()vw+F5fGJ%e
zQ~JtjCFjFwOiLY2Q6|Ss!x=ooWyu{=xk9EEOtwP12+<~Dd+j1bup|c)Q~kr@*`??J
z9nl4|F$W?J8*voJAY$?t{)W?Xix!}A1Vsd?0UDw)nxH9qqYwJwXN-Xe;v`JR3@pYH
ztiyT~SV513AN&!3P?SbTbV6sWsms$^?8gBd!eJc2U3_?Jy)F6nrI>j9);i$0az;Fk
z?moI>%Z^y9MKgHph@CWs$1q8as4w@+=HeQ)i2r9iw<r;Q?xu)7ss3F{?pnhvN}QdI
zixP;PAH^}egS?Uig*G^Y!oN^r^j}5t#WZZgVcf<aYD`J)EO3{>S*@|%(b;sudRw}}
z3HuK8e|n>qZA_;+p*Gv@=#h)YO86rOCj8Bj)P<d87j;QvIj?%Av0Nx|=hM0fo$rUb
za-=1zi0M7t$20s1QSHx2O?5@}(;yG>Asmr7g|jF~D2kvm!qFZbAVSm`+i@PR@df<|
zkrBF>Rh1ZaFhjvqh*(aCh-Vz$z2@=k&a+GBj_p0R1$)=+J@$I#(z!EuOd2_O<bWOn
z+PCH(_BNCkIE^Uz*qR8`v-RY@7IL(xsWnxRMIybo(elQeLSo|waR{Q}j-v7!8Wa|c
z#*b^c--DlGIm2T+cA)q=&fHjp#qeHF1aKR7;Ie_vWZ@|<TI}E^E%xI84#Hz6qetXK
zQTU=J>Y+JWpe^3Me0=l5=_7GlHrPE@F=NBx4Ko%`S-fHV$nlomUE5N<YZcE@J@IU<
za5^_Nw5i-6RfQ$uPEQ^;#zi}G__2g|7T*C`U)3cI<Zh~WLph_Gt)ZMPO7a%{*Swn4
zh=G`my?6s}LLx%c3L;D*L?S#QG$Je_BqAIl6e0{C^-zc?Oh@gFWQ|RXwl=9TZjQrM
z#wgA;uO)O_u3rDY->3^Kb8la4+53OGG5&99UDOth<!UWGE>ODW<oRM-80%~$Nh0kw
z#(o$K@9lJ5%!O#XAc%GoZ8iz#;Ju4MJLX^u;&BT;adx-9#Lpbn1I-vGI&XK(F?~DN
zm)2R<tAFcLtIdw$>!-}Y4h6~OYLvU4-^G+uCMjJZDShQ^d?H$0%lui|W@9Q9^On^7
zq@Hcgk0jkiC+dNT5CuE}QOLp+NECE1L}6z`6xb;2qBxooTd@tt5RXf^jEBgvkJHNm
z#yQA>%BX|7P;gP)7R`Q;30%Tw{DrVX3|ui1qww+dudhFf$DPY(kDL|v2{x?WwrJai
znUlv3?%%U(&#rB?hng!~-mg9jm$Rv_n#h6T02g&O4)Cvz0Nc^v?L%=zb>d(YzZ56;
zuJ~aOLoS@AIt}(Sw8Tb;D)~TEOH}ESpw~c@epFhXen*$X3FB_{WDD9<JbB--@5}%2
zM%~+jlf|0Kbcmc2xB=wTjwer^X#F(m;Wo0bI;W-VW6>LyCbo45cM-iuc!k#x#p!%l
z6p1v8{uqoQIF7S8hXP0F<M2Uu^h1B_!T}sahNC1hWJB$vjO80K(HK)O6SHs{7jX$`
zj&V_hOlXESh`@X-!*ZO#OMHNIoFOc#payDU1!A!dPw@(`QT9X|TH*u?V<u){BR1hQ
z7|uTXc<0iYXCDv$$N%k3w8$3LSht+C#pUgUNV&FJAzaR<K4~QfcA$erhm5jzu<|0L
zBAg<OB77ojB3vR&gvS~c5e*RqQF~EqQA<%fQ7ciKvJ_Ml+$i)_rYoFe`IBnb7ILnH
z&hw8`g;nR4bdipHzfBj(u6>`fznxrK-O@(RY|)YdDS(Rs5t%CxJ1WnP#LjA?4(g&A
z`d}!AVK^R~qKlp8v=2wPBRf2h1No321>l2nsDv75c$$9Fnu$)hgQv)NhK-;wyipou
z&;ZSG5tmRUp7k&Q0}+k4FQ2^S{^5;FClBr1d{2MGu8dtAJ2zI1;c4#TmE&T@Egm<*
z(%;g5oM^+)_VPe=PkXtn`a`5#z>zlmTsDu|Hd6MEkV+U8HYzJBA<887FZSn5GChsJ
zb6jhq1v;V=3ZLf$h3*#^mSFTnzR^L;OWcybOrOQ^%j%HQaxTknqB|LX&x{H2`rm!?
z(0<c*Y;PQxx}#>AAbYg`@9r<<tvyt8wv;{SkXfu><hUPc$^8@ucg{wK^QUD>T$?bZ
z-tH{BsdL-OUY6`ez}ph=S(u{--%PNL2B^h!ZPY<yG>6eBYnfh;Yv9XMYXkZ48j7nB
zjg^6hDu!+l4L2SN{=C3tj%dYEw4i9onOKP(5UtvRRuwHf4C64L))lRM9G7w8iby)#
zFnGe3JExAEI)63p>Q)}>SFK;QbpFy+_K%s$%(24<47WB9*C5OI*L!YJYT1tRRF|#Y
zelrGaQKkkKF|EFdl1o{fYb4wVKj8Giw$Qbz%dOKT><hA)tJXt|cQ#ySoQWHFimf*o
zo!un;BIp)(`tcrLZj+|zE=3Rw3-aG(<cI2La#syEJ606mQWRDv58%|)Z4}?t8Q)Sk
zi~Hct)}f0!XcQ+r>s#B{g-(z|>jde%-1VmK=f8ug!gPXPik4Q_be8j4PiXIad+W1B
zP_$lR?K$ouzMH6)s9G_qvL2#(M%A7(onBNAHBbk2Q4h_~5B;$PA`Cwf0uhSl7=)#D
zc@l9kViH44reYfYhKP|7AMr)T?W<=F?>)SC$Kg$@#Ou<lbEeOkyi|O%G`M4AQ_1?L
zzUd;*RA+XTBh@z@<S>h<ias2V>YC$<bvmC2cs_zG0xp8x*cxyyta)9B^;mh2ymX(u
z`GE5%A}}3`;J`sI!x?{|?;~o23%H1(kBQ6^y8e?obZ;g~a@6*FPNsgrSpZ%yxiZ0G
zF!s88`Rob(JG15dpQg^9Hfh?LF=vMj>f60z_sEVdwVD~vTi^GP9Zl-CE^?WU`I;nC
zT2WG?WTG^~C`|?mVH70fS4N=_1rmiZ3euXCc^wyCaYyhE+VCw|7o#xst+-(5t7bMi
zZqfSWnU%7WI(V~VR&`xx*+G5OTlTP6d)LnN`8iFAnuW75vC(TuHr$jA8XND$^dMNE
z?TFiWf6|dK>K$1EHQqBc!Cve`(GPS;v_faRz)M)dKe9u#!2qb3fm3*k{GT{!q8z?Q
zUyQ>1&tw)X#9C~?4$$d7KDl>8B$p$nc5aSc$w^N=6&u6(E@m7rBeX}%2+P0`mJu<g
z5o+na@&Prj2S;k!o^pnW`OOMidz{}?s%Kv<Q4LYjg6w_JU&Q=xE@!@w7@<lgDZpfs
zPQo#@Nvg)Zq#ceX=@1H~F-gIwh35E>#-zS3>X=isNe(s7O1{IKT$02<PH<Lpn;fIm
zK|gBWYmza<0Qb~jmgCAMKwa0HX4^ebE|5i>7*-Xor>BA4nX{;CdNa6p6CpT(%eac0
zcn>EEoDcaC4N-w1SO7B>sSTq-6{t{a9KbOYrE)dU5UtP#5onL;5S90%;#E>vOj6ZU
z%!CRNiK;|GL}M$qA(d>BQlkj`Fc~q3!){!|cA{oP?;O)tP>{%pNLGRM)~xkc0@mLO
z+~fJ)M={{>ymaH<$5Z!S@;Gu&{A}RJPV4jLBigS9)WH7oR&`}xIfErK<FB?Pv#aQ7
z+jOJaPS)vAv7;YhG}~&XW6?4#Q9wsjO2_9|fQ49u4cLL**oXZ%h!ePiR_RSr&dg0r
zQm)J<DSZ}`bS|4oI*%=Rh!QG#v0=Q*XOdpyGpZIOium~E$(ws`ZoIkl<V`$3im*QD
z;&WAc_t5Ab(J^h+=IV`T`CXc(K`TW))Ia;lL6%gxPuVIMU9gjNx&Zx9>gi;X;$dGI
zqZ0N7zCfWXIh&*h8R-U@Owv?{@?X&FP?~z2MW(DKX&th<n53V;;liIf<DFbeoxDkW
zDV&C<gfpVwQm)~7%AqdkEIV^W@2pN*&y($}m}H8RWLh=0w=AoVEL{J^43s_X&WPfm
z5LMMqnME^~VGJ%xF&6%Ml-sycGB^65yGa_4U$dK}W*#PK3J&EkNuzU_q|&+R;CgG!
zr6s)VTEaWONy<^cB=v=8k*1D3^)F~rhZJ)3<`#-$Z#DBwatSw6^x85ANT@Pr{myb4
z_2>{eM7?a0vspZ>8(|xLwe3hFd7X{4g-qP9Ak2m7_$ZD*G(t19LML=a7mUV4EW%zK
zzy-X=2l#lKr22?JB--M=H%IITCMFf(NJI>#V-Xf(8P+00QIq5h?_wtDJ1oFLtj7kB
zb-CQ&_X@{vXpi07c5m2yWB2OatC#J*v0%f3Sv;mL*tX!t#L*LnPP}297$sTjAccm>
z{Qp)(%LO9*h@~|KqVC?5ThvXIRqS5uDx|ncYK`;0Ch3zOhljsOS{Z1P{t7bjk2g%x
z+)$3aQYLBncP6P!IgZbYG%{*_Z<6v<BJos8NWaz}lQ@eXljP6_Z2Vk-QQIJT;DYW(
z4qnimd7^t-^YZi{Cam2vAxpO;hciEip#6;c&H;Y?Ec$8cmpx9a-G|6^EZIfjpTWgP
zt3-1u(L%3`Ol2IA9<Ff10xU;|5+<n^-a@9rL-7%!@_$qLFPIQO8$vRhBok60HPXNx
zxy>|mT_(0+J9c0%uH!k<5J4xTMLOh0A(TJ>#$W|Rq%RWbxA=t55RorO<Vnj<Za)z}
z+B(k@zuOYO+&WJR-pnJvc-nj<*7{67W@_<~t8=d&QDbbKL9IGMo|h%FTa*~!>fbap
za~h(S9m8e5%P@|X5V4<I5G@@TVv>T;5WO*nmKUwB()zm~dcj#-#5H`vXBa(WS9z0k
z7)MZ(9wK^54SI>_DL=!4-1Hc|*GM@l*W+-kOq8n-WgJI?A5BtJRSsYDLw|^YFXtc*
zh)Wz12X`Oj*4**c8<s6tc6`~aiKB0bU+#44(5;VFarMv9^4l~UqK8=Xb&e6Tf0Q?!
z)Ve2QFJh~&;rA2mjnp+v((sxb{I%!<m{FU4Q^zDZ)TQd!O-bGBqXAi}AysO`i3<ZU
z8e<!qq%)1J2LefJB)^*~w^N>^eFtyN&TFU8&2NdHTlJm5*KFq|$ljL7dj0g&`r7Y+
zK9#xFYi@EF#XDAw9z*f|){9xQI#ER`iYtoj39l52?oaUp&=uX#3%wz#R0^dnJjGxK
zj5=PTp7-$#uGH5})EQOq0~X^pp5h%O;*kz6aD@>c(PH{fuHwaSu4pdtpuH9>n>Cdo
z<J4JGGaR34(I5RKHQP9T34UTUw-`%^0B^%~6ePHnP!-is14i&WGTjZ`(G&e)Gzg8s
zFBMJFP25IkQ<D^irf7{zxGCN@V;!tTESfgwz;4#uB#pvK?7%L>;TrDX9zG#;3zL)&
zZ7~v~Fb^eL5{+={0W3yU55=|l`6E|%UfsO<>SmsJEaNdZX7f1lunwUujGir`1FLx_
z$+xWE?YAv>$u`OmJ;b<%`{dftI_)niDJs=WFT7E1QP%qqWfNstOj$;@rnNC9!X(Ya
zbEJ<nN!j7pmX-$B8TwxyUb$jP_)GNWvGwQ8-U*AdT%tEzZ6*9&Q}6KKQ7}DLy%sta
zQag)ZI@cV+PoFob3&g*0VMY#RfrEn@JweW(?pEY-Vyd#G%fOAcuNYD@5V_{wnp?pl
ztcxJ3G=l1gYE9OwHkvAl>K(<eu&<&6)srEr+8saRB5opUJ327hAOb6~Ba)}HI0vsN
zlav>QU`7{og-d&rlns$+i!Im+djG?#@yErFY&Wl5JZmvOF^rztheveRC?480?`iDQ
z)8ssAz8LwY`fegWb$FV!s;!xqm%VA7_7+WJl=%SDV=2;McK@~m$3{n!)Ta|g>r9h(
zCBJrO_dQ8$y+};GP0~gjM43JeKJW)N_oaLGBW^egkNzg90Co?MNiEU(>0JDPM~u2A
ziKpITpy{l>?8AwD_m5olivJ)+>Y*Ve)!Tg?b6Wn2W(1N`RQ(L%aTe!r71wbacW@W?
z@GG9fL>*G0J{q7uhG04tU?CRa2;z~K`ubrqV(<VDEj;-Wgc9ft5s;rT5pmdu{m4#`
zJkSF@u^$KE)`iT4PUwtXh(l%qngwmq4m+?DQa6r$_@V?XO?e6z6Bvx~h(SEgq8+Ug
zg=lQWHl*vp0f?6P`09b}aq|+72RwNG_~2u_{$S2Q+Z$tM{736z?$%|QDc)VW$)V@w
z7Dbz=-HyqwX+-0QD;H~5^NrzO%>6!@Q$M$)D}}pQdsuZ*hE`aKU$6lik%pe+gvMxs
zRalJy^sa$8fs@Ed56gv4=!}f?vP>9?VJJn9D~-_@gD-te<T|=uI9l6v!SCsYHPIE_
zuowGq2*=?vfFllV(GFX%6%X+e@9_nx2U2)sz=z+(ud=UQNc<?8@b>7w&HL8wTf1D`
za}tl)%f%xhfvL?@c~TmmJYTF~oHvd8q9StQSAMJbJ-9X0Qn1*SGuj{m{V@nzuoWL5
zMRVN%GisnF`e6_zV;UA=F*acr?%*+A;Wgwz^s@{+l|y;-!BDKm8hpej)cBblU;!4w
zoikf@h@oqFM4>&FU?X;5CywA0vJ56Qq8w@>0+E<Fn8s6>*oN)6h%7@mSECU6q95jA
zF;3tlUg5*<G>34<`m9asbFSU7Hk4>A9@^*n()wEGkL@|X?fj$j@-}X&OKR8I{MfON
z%0HDWCYPlh$Vbu-BrvHF)jvd)Mag`Jnk27blx#S08_BicC@#;((wE24w<prQCNYwq
z%qTX7EIWm+r4YKQT$E0yKdU5^nS^r|eRwXT`T2|_;JAS69-PH*Q1{OeDY6RVz6Fks
zD^)I6GFWdeS!Opls*mhMSCMjw7`(+hI8m~+$bp<F4pG`67>c=Ajmx+KPii4*;)62i
zjXqd`U$6#iaSX?iXE+VzNwxc;pQt{DVH8f{6mpMXL9|B)OvQZcLL5%xJ~9wGXEa4K
zT);(SAe>$(gu;l%AUwdsQFNoA(cG@X2#mxkY{4~LN3k)~2ydRfd3OKC{fnoMoaQzo
zkDX#lpN?gMx8h-)ZC!vx^jBl?BjP8Kq8AuLCH3}P*-N!tl+&p%7V`U&A7{%h7Ta+v
zmP|N`SCqKM@77(T8g(8|UlQ+vorW}b8X}UZcvrKkY~5~cUR$7&D0M&d$1E(tNt{AX
zdRQ)qp0*X+Z~#u@Xp^*by~b#QUm&{T-}r)R<GG)LMOciN_ze{%a3>2*&>DR)1d|bi
z6<CiuxQixq?WP!xNmzlE_%x9=`OHLh`h5+|#{wL~6=ddE$bvc$$Hg)%$7bxpdwf7S
zj+ZK^h1zJ1c6f*P;7ETYj`k0?ulzr@?gUWEsec^!be9R0(ndQa3CWhwLMx$cZ9)pA
z#Zr_#L*jjDu{Wu-C=~5`+S6WADrsMk+pfArCH|i?bMGzh|L5^}=FBtGo%5XYJ?A;k
zHnZ!86^l+!l|%BIiQh~-Jn@^v;^aKBH0y1N*OISm=5q(9U!Hq>%2$c*cjc#sCH+24
zFBw%W8}Hv7-##F{M51zIo<-`1k8Y?LH=+fhNsnMO3t2=VO}r=<P>fQvAvFCCbY>>A
zSWcSmAe}-y&npaLIQ!Vo$&Zw4+Q&9K<e>&N=}jNDvxB?!E6r)k<4k4>i&)GOcJec+
z`kyrJqcJm?MZSKvu{^?~Ol4XvGsiP`Y|PlWCdk;hV&U|K6T<(a%uLf4P9K$-n6jP^
znm#CNL1J;d@6hy%iZrV+Fxh^zlbn7vzHF$Q^xhntenWiuU<bx)PV;Gbb&dIWl*d@c
za!TkfOVWwXEMyV&2M8Hnqz51IG5s0KR<?1)K%F74(2W&*$3gPyhKqfwtcy!r$-BJA
z&-_BwLHcN3;tk&7ZQfxi-|-V0IBRgSPk+<nTf`Z`S4?Co-?E$)bk)~C$D%vU7IV+g
zQ0D)dRDcVdH->4=iZyfBteE>vW@4JVX6~3ZXFSPCCocUO_<4GX{7YXbm@Im+Eqyw+
z<Ik&^_==$hZyAHr^T)F5s8-neTp|<K6Ef41T*DlG<>YYH@`WuPE9mm2VkUir_m0#;
zzp}=oj8fS$CRb$hSXDF5dniBNW`YlBGC}t<$%^I-iQ<1<7A+7T@?i9jc&A6BwZir;
zPhuY~v0HGY(5U#jVd<B}if89&lw6JGZ~oz)&-5=0<ueX*gobk6h%IcTiZ!^N7_YIK
zAGqst?T7&kWH0-uZY^stn(1G}M2gidP8Dj<j`sY?aY9i%Oe@;afoJH-tMueUKIT&f
zGlY>$XD<6WKy^i0gS!dEn_0tAE7Q*Zd-~DxAY<ou3nq`rp1zd$Zh>h~yychaz2i@R
zo?aweJrbhf)z8yQ#cGB>J(wXJ<rodr<n0V%Fu!w%yT6td`td1)ILr}lRqMAgop~JO
z1jR-xGCI+jg)E|^2q`s2nRb%s%t97%rLd{Y>vU%gYq?w)UBM~-rmIkTj<?7Ttu4}9
z`Hf1#>`HE<5q*gBHKX{0KbxA}HqjdM1z+;-=C?WVG~-0Lx8VPteq8qL%yHk&{C3<|
zVV;=cZ+xBJCTvlTocl|B+<nm^@teQY*7kns%+~Sy5(EE8o$y(E*h{+ha4sM65uY-I
z5lmz{r6(J+aS@ktIhA>er<ueoW;2IEQ|#POic5HeN2e(9brL^Pc51FjIVy5FmARTK
z+{n#z<{3U>01H@1p=tg&kI{xN`G#dIr^IwsOh>vAryu)bX8Wo2jb4E9OyDpl`HNE&
znqe1%%eaF(`GhbI*uHU>!9W<@hsW%JLDpzL@ltYe_Rv4M0}$qGH|DkDwq)MnCG(a@
z#9teoerNo>uhXxM-5I*1<#bmvuUUgTW%3ajDLm7#Y?e-bw$5U%wmRPiVu6mFrxxl&
z*g<5GtrtZW>jRc(>r1WRGNUQVEH{*<$_g6}QolR1`_m7e=sPlfL>TNlmGNM7VCVsp
z2SwtWhozqro7n6<!~SrwWHJ>lIZ5mQln6!ApA2^MnB2DENnT+B6Uk)_QfN#Qo+qr;
zLKbn5ObS}dLOf18W-}*dR$-2);{{%16{{()NG_oZU0KK?3e6J)l%@=qaT|B@Bu}xB
zMf^cTvF4!=g(*U5D)Q9TW_NQxkI{w^gt|D&G3tDqD^i#CJk7Jb$OnAL7LqME<BWEE
zW;(ll$Ily^UL?OatzCJ-G=IkY85?KBpBrnR?Ca4Eb=)5Q)K+$rTNvc0GFNdUwRnRb
z6c!pqXhU13F`evisU>9Y;4Yf-01q;jaUA0xBEl+_bHe`gjS@HW5G@(ONHRG}J@Hqc
zmV{V*k^eH0Nu-L+H16VV+VVL6;lI2?h~IbV$MOBU_G?%B6AkIgusgldg8jP|oA%GJ
zeE;^zS<~2&pY~mxm_F_M>Bz|=KaD>$G5wDCq>1{!RUbR;cK_J)Qs>(QH9aqJ20U?t
z^hK@9B?c<-u47%B72XyLFINkny@8FKtsNDoBA4+W{>!^;V>_j_vC!6@;%QFtHx;zG
zE9l0ne8M2s@gvQ($NL$?U{-|#78@keSK2$LIrr0*Zp7%tdkp2`@3jPKP?H7>Vlc-!
z!QHEDJz2^!eqtvjSL>sBh$s1g5AQJB!(NhIo=z`O{E34ZQrXXvdqs&}&(gI^=FiNU
z#(5k!^0Sej#qXV*J~G*d<m{_n-)2+fme37NVwg49Kz7bY$n8sVR@;Z?TWdJ8&Q@oA
zuE^&<DT$57RhzBh7USBjigLR%d^?T5ezvjr#eUqcx<h{4Wlet*!@KqAdxTuxy}9D=
z|B+rh>m>ZQ=>x-=t$gA5Z~pkG-qEvC>o-^$-!?wIXskq7>uNt31JQ?fS<DK4BZG_A
zIK@a+ZlD*v*~WI7%lQ3_U?e}XlMMFrJ4ZRjA6#f9FQMW(b$_KqJ?b-#@tops?)*^+
z@F|1X$9^tULZOs8(V4gC!w2+d7PC25Ddy)f+OUzW9Oek;wb@{QlDgF6Lq1{;dl3(Z
zk7p3hU}jI7kB7;!e=QAXI9Dy0Hh!9Un5K<CJU%eRznYp}tI%HspH1!}XpwJS*(Rjp
zPfWH?Tyt`I<yigjakr@PTA|jthp+gWiA-e%vx#i7nV|_yY0cw2!*jgItGrE5MlqU*
zXv)Q%gvc7eKz`q>A`VI1Ce%W>eL{csv7g$)uMQvaF^4$JN&X@CHW5Nq>QI-av?NYH
zMly<@`GrjWpo*}*{vNac@-~M#LiHV5IdAh08`;F=+Q1dmp&qItw9w=LB@9s#Q~Z{p
z=|wL~K1q&S662TuIh^bmU)F!|KGV}{hJoa)s|v-pH*}u;!O7|QVxC1BhEHk09el<x
zj&h89w8qdPKVukUn8r*NkjYW*)M6XbgWfD+G3RK(c{q>0#F@ez=KUHoQj%E7Mk;IS
zSMdftSVw67mumhMd6gJT2wg(a3`08}rybMzhICy;l>2GHSVH%4f|E4VjWlA&V`f7+
z$nX5gaY8>+VXyST-9Kkd>yNKbq}Cr_b$nGwT9CCU`z;=q{qHn;>auvL*PWf3Gb_Df
z-ke@jYY8<{D*pE5^t`!WsdGcJy-ZIp7ptd#OMLis;c=gR7N+eNRR?se2UQE7{jN11
zQWA$X|4iM(aV2$97x9;(K4rW1w{6@%Ugx7oiknGNBCT?zMB;qL*{La!kJ3{ji=ruK
z>^_T?qkS)r=8gaB99z4bb8Hn(pJR*v{;l42@AJ|8F}<ymY@xV9j&GnAukku7`JPLx
zMOd5WwBivu@FY+1JYVoNqnX4s<}!~`N}x2)(uKTABOgs-W=$EwP(m?PQAF3%lU{6N
zJM|UYt@I_%pB$&IqO8ZS?BZs{dJ7-$AtjH<0F8Nyr|HBiG=I&k7ju})GBWq?*t9M&
z?byF#|H?2k&CgmEUYWV>|D48+Tsdx}*~oBwagOWDo|u(>O+kHX!SZ>N{i`-C9ole-
z)Q}iB%hkQL!-uZoJi$<qduYa^gaDbsRL(i7J@OzAF`fye9n);MpB8-0DE{Uj8vS9A
z$6$u=JBO(Er&9e>JMJ$rfZsVpT@hK2ZEWYd6RL$?^kyeNQ%%%X=VSU(Rs@&hS-LQf
zHT*^ftwr}EOky%AB0aUb*-O043ch1A+t|r3T&gKt#=W%Q2{Mg6GZS6ut^acx?(|tW
zdwKtQE$r|y?~Eh#<zBujaca|J;?!n|ups+Te`p@r>CbOE6(2LlrSEr!Pk)kOjAkD5
zSxjiOg*DhBJj!Df&}h#iy8$1PK1|^h@1qnIs7?*~@GjffPB{(!GOpmdRM%48AaM&#
zX~rl<lgr*=3N3hm(TpLYx5&jk+{@4W!f_&ckyLVXHP_IHyLf{h%x3`$IiB}$*rX+P
zqt|YXSDu$%rr?ORVRE|DS7!!;*2V`dbTiD|^U@!SubP)$IsW~}c3=}lozsnmvaK2Z
zV(7<;<W7kcr5)|*LRS{Dhzrh2i4>z6b$Fb1^kon;n8{gZ>mO-FYaZtra-EYBiKUoT
z;b!jU9)>ZTll;Z&c~T<X`Hq#8$(s_nkZ0+_QkGFEUrOXky7LA<vYra(rbI5~C0=F;
zODT~*B^D`}KPB=so%ogo6e=JPXh(ZyGlz4}ONr#CHIFcf$)p!diA1@d79{sq4}@b=
z8JpLwTo;6Cb9kOu8eR$0E!m0x^Kpr<*bP%S+x5Y1ZzjV&r?PgGbfPi-$inoR;T(V2
z76)>gMR+ANk-I`QhAIoyG)a+HQF<Gd)VqaJB8|@%$*eA>^h;Q|k|~jCrBWilm)0uE
zXbl&pM9wLf5}9>zO60%g{rgK&{1|ddWIqEh^*1Y~xXe|sUzU<LGWs&ndU;CZ{L53O
z&O4T#o-012s0;G9=d$q|*E^aP`?AWyf1Mu<#WaGE{KYBmm8<*M%oa|NtFZ9rT3+Q%
z{>$5JVl$PBsCQncJ3q3X%ZqBCyjD~_zb>(y6_m8vr5M6cma&zCoZy-Zd>}PxKo8zz
zJTqC#I?5}$ONj9rlbFFOLa~-Ao)Rfd)8dT<hr}~H%eO4xFqsrm{)Op9Z)UTE<*Z>F
z+sQr<;=5Ixe2AYLPcM3DG98|WQxV}Y@vg+PHH+tEnp{jeFEjqy()5n8?9ezfr0xuV
z`hL~lg0YNaHEa2at^9*tF_M>p+{HcI%TPWekI>0WSuW)^?xzJU=}=lnIZ9$Q2MMuO
zTCA1lW^SPlckmwXGlkjgWgj)g<;~RQcKYxxTiHgPi&7$Wxt%+?o5r*t9y9C5KK4_)
ztbf2mw52_r=}VkF?B#3?AvA^-JirrV6?390c4Vx~e!B9E3J6t^td^{!)WwruiIY`P
zS?^pjKXbm8+<&>fyOztH|LHc*DeRw@yR$P?)0tIvsPQj}mVIZ)z%z8?b;dG|xhx=6
zt4*UB%^A%Y&ef6&Q-nu&lpk5owOaUfbmLW`6=GVo=H8t98O3O-YW_FyHt&$ZZXVMe
zwBY~;xk;~3jW76;QG}l2FHUj29-|H)@iCj&%vD#|?$N!1*&F=C25MCjRAlZ?j5Lzl
zyzQAQ!;qucMPUoLWd6qaQ|6D$nTBWYu!YC?pzqUb6+ZXXYjb+a?DC91v^>4o#s5>-
z1usuazVXa1H{NA=dWBd`9bHcLFO;Lsj3suZjo(#z&8r2;H8vI339{>Tj5nl2j&a3}
z-otq}r9?V%UNyzW6V<hJuC8H|!nm3?zBi{t9^`ROpOgE)cPa+P-K3T;^{0k~l2_^_
z`r8trtnQ>az4?$S%-}dDxK)mCV;EnviOp1~tP%49FS3&FDQ)e_@GM=}%RY_~vDRti
zjhR*D2HxU7%p?@cPwe1l_OhR2oFJDXJBzcqpB4;b6tkGkR(_%2wK`79a|PFOBkhQ_
zHyh07%wjf0)J0LoGLC2!;Y~A|(~Y+{p8VFh@Qrc%Idj_YwH=$n^!<{=l$D<6S&*1p
zc6Rbj-WDIU!^N-dzfZ4NRCv8oA?qt*q_g5M1ZDB$q1CYD&X9wz8O0bTvYb`?#VOtu
zQSY&x9b8w{ww<?mhs|uEqKK<PJK8gk`Lq>*op_cmyuzzDYV9F37qW;J!t(*9FqPcG
z^eiSYk$*5gj@(CMrt=LYg>NZdB}ST1_D%nhySax!3}zndIKfFCteF+-(>zXR8LQa9
zuY@Bv$Fl~ySxrCr%%PfH+t<c#S)N`Z&-|4eS56swc<lVK^W!7exlrrt)edcr+>w56
ztXtFJk$T||9prb4+#;vcqBbA#G5r|AZ)A{O%bHW28hpq{{K_u=;;h;RAyj4!YpGGk
z=87gXs}mE_5)aXew)CbCk-9c7<fAZUDaZ4?zzV+O+Is4mZoJA4_EWaL_wzh2u%4f|
z;#Q+0>Tzq#>~`+pWnQ5tW0=e~wsYle)`H`Q_io$!lPS!%`I5~r<vdy%(#d)9wbQRA
zmit!=w=JB#aCTM~9Iw626+C0tr>EyVvn9kEtxInfyT9X4kp`io3-$7;^4zWbRw<et
zR{MLa_#dkia(h<;jr4Zot%inAjWpc5b)fg^NbmF5So3INtKBRmGT{D{NW&JQ?*Tm#
zpD}@zY~uguP~Gs`D0#P?ugdKnFEHLI54SkE&GaQL^s6UbToz9H#dmFSuIc0xx1Bkl
zP23Kw_jNmPD7)^w!F1-bjvx7%{ZzCTml4+HSzcrS1KG~6{Kg*kvX8^mvgWmUD`vKq
zbyU2=ALBWmX9-Iwd8hE^Dys4nPcw(P6jX$T=s-u7vW()2wFFP{6kjohg)E}ZT^e>>
zvj=HSU*i0VM*2&ZEvvUI+cIbJoXKB@goWADYF}A!=9GNC+Up@y&I}Iesa>iix57D>
z?1fG=e*XIOt4|;Qvnal7gX4eSpB;_H+pl*~N_bbe=r4I`Q}`=2L;iMAR?J*VHL6pG
z+X%4~ryrvj#|pNvl`HSjGU&#u%wq-Lvx=W7Ef&iV8*es&G=Z5;e#%jq7PRDHMlqVd
z`G<Q2@qKjSHKsC+m8>SO0MAD$F6C;fQ=b+*!00CSc*aPa-PC?MchZm{4COFKsH3H1
zUwZ5My=}X;{j}|;)yG#aTz%Y4`e9l)XW{CFqmyaL<V#*pz8n^WDRH<alz7g?lkt`t
z((}akZu0d>oj0V{iLcn;Tz=i~d3A}?kKKgUdQ)??!MnW2&-}s_T5%;>@CdKajraM4
z{)Co3j0x;xKWSQil(Wgh&D_#L4_r&4HbWT72*xm-UHrz|x`%hp>?)+wAGD>UD+^f2
zc@JqrwB%t*wAAK!o);L(XC&f&?=O3Qxi-vni|9H%hAZ_JPM^49;)<+?iC+#$JPnHy
z(+}~|ulp&3<=b4|+I~}d<#SHAj`(96(kmtdK5X9NV>j8xrM7gpeNNPe8mS(7yRx#|
zPZn2lc~-VYd%UU@kJxTMY7Ev!586)Pb<mx3w83~nFG-~*)d}UFGMM0Q9^y}~d0KbE
zZc27iuid+ZYoo*6yhEBs-~IOmWAV*Drx%Zfn~g`_<|`8tU1s89iQ=J@LUvLgR(0IY
z9SmR~`#C^c*?o#P=)pREq(W<Lffsm@?^wxZe&Y`!R<q0_+Qo$uZ}JvvSj+DmqqK4;
z!&5v>p2sve?x7j?^B@l~mT{yiw>0jfF(VksZEYPr;6WazKLgq-+`|$_sQ<V^rauGt
zg?;=^xDzrtWgk3B96(yPIeTgL<AR(whPUUudDi%^Bk?D8q+eGkr`z1!Xj;~l&hf!J
z(i_I#+UBQ)>VywFL@hO6o45Ih$xPuVwvfBMF%A##Afp*WE-REmGn(@NVI}7=pM~TX
zO$BI3Q=X*@3p>VaQ6vfqvqH3|3m?;$Mf^YpyLmwvzQ_hPa@QH*I7)hSR#+bQc)gIk
zi5|Skw=5x(h)}(Qd+syq$P>&Y?8GN`=##tXiQ_5u;ltvri&GLWXQiFgKM_vmn<sWT
zM{W$~8G8KcCiTU?rdNtj+M9lUo;HQ^B)UhBiKE%Eups*gc4(m?T|0dGELO6S&1`2U
z8SLR8`8wN)=Vt0qj|SYqy?oCqia(=6q8qO=m1*pKMw#!EILIMtJZq3jPkOPDP5ifu
zU|=ru$p4&5q|);?g#5xmYQG>Oyw3-WWgO$lU^mehlbe}c?f}_U%`hO5Fos`iTDE=J
z;bn<bc(!2nTGNEDkDK~`XqGj4Og_Z>@Ai!dKkrU2*({6`x}E=2PD$pJs(^1AyU(Tl
z{hzFteQE#cUNbSic>J=<a{gU-SE4qY2$D{m2#SS;r|%dDl~gr!Z;ch~Cs~DDRoN}%
z7#}OIL)?;8W}&=}a&uP$R~FMi*?qt^9#wAR&nUx+%4g0?%I+1fb<@~#tE7psoMWl=
zjX!m&jY5A~AXcMH*)x03lA(0-QjQ9|z>D;t4@+3eQU0QYPb$e1JW2kS)hrM45aXG^
z629jLek3Ayxn9wOHkN3@rwm~j!#Ty@oMjanaTl$b#AIgjExBIRXK*j~@i|{`oD(#)
z_RVO?BYeS^9O2KHS+3Xo0m^d)mARJ2G+_usIrnvIM@cT?0Ul%(jv?8#&)mN;@tD1n
zAC4?-+`rKQ(;f46EMBuQJSNiNc`{wZ@l<a}z9s8rt^TIn>DT;wK-yuq&0Ws1qY$g%
z7L)LpGfK+3#pF(P9a$j5FUi>3-4*#88ek7q^rn(~O9%O12LTxHj!v$pAnc{e`e@Y*
zeAgh7#jK_Cdm1=JKhU_tY%Ik;v;}3|M_PM4C4Oi``huLx8WY>;GcRj=w9v;Q%x3Gc
zWa{)~jiKaLbCQURmZCII@id#*OeHIDB`@+43t7Z!!pfDfawWNtMl|Oso@R8+YyunE
zL}jIL74w)+VI@+8Ry;;K+S7}^Od^z8>VFK}$jv$AAuk0fN*P-40HYYq-^BhgOIO_a
zX+>+=(vA*1$<uV@1zu+|Q<%kE7Et<aAHwOaN8%{4JLXTUTDofUiOoTBTD5e3a>>$F
zOUumns^?)!yvwu1lEgm>$1%e(rP$u|D)IWe{g{Q`tzqHDIXznTHs#Ln(NEKfMJ(n#
z5mcO#l%hTl(1otl5M4Ft!@G<kMBH&s&_LwfPFtR0cP|~n9*OF`{bPF5hk0yaE8D0k
zRBz*9TCt1YI9te`PiZQ084Y=!7kG{SgfPzz@r#9bdFC<yy&F>^x4drz!^iYxH+v`|
z^g|P<PSyeX>=Puuk^V%y(SC=0C(ZY>YV&8T9I<lk8I#6Zq}>DEuC*blQQ=tpy~@!d
zsn56F8((%X{nGfr{jQn}TlY{47lz%Oys@|Ptw>Zs?eJkW=)s#zWIo4<XoI;(=Ui&i
zfDUwI9`mWKoz~$k-sdAe<|`_EY_v-ky0VmIAL~K(N&G>HzUr4Jc#_%7VIiwHH!id(
z&sFrIH*;9TR<=>4pJ5bt^B|uxh~GIxgHOZ)9eE;VHj`N#<rweuH?H8k0U8}0d4e9e
zc|LRJrk&q!@|!(bzl*SQ(~>iio0ga?@&@lrye0e9@XHDFXC6pQ+2e!!A)zH)aM?SF
zYKYG{m|iqdV^`&Iy-?y3*T)Zr$~x|*&22|q%Ie+Om3Es>G19;~{lODi*}p;7rxUXK
zE+q%rfb!HJ@juuGk_(5b(9iVNbRA}gZ@BH==l;eQ_H@4#)+21cM(W_c(gE|<C_VgW
zO=L_;{GvMP4~9<o+i*+i{mGvs+jYooKP9t2@jajVGry3_C!a@qI`BF@>BGm&WEPnm
z<2Wa%`l*2kchZmn3}g)(*u!3GTdO*JI!GveEis+h%waieSkHD2^AG1Kf`YUm6v;#;
zF@t%e4l(+p2t~P@`)EgdW-*(*iZLH$xbRl9n{bk6+pfgdUG7>FQqtiuxy+Yf?piY=
zEKIy5d~IFw<>Xh`E&guuST|f14@cb(UYnZJIhHM)Xr=K)P-Gl;(be>$>6gW0N78SI
z-4Z_ZW}e|$R`4AM`GfmZa%0x<Bjr{2C49m#7PEv41VJ&L<SBa7m-(#XcMefkpwwe9
zLq3n`w<Pv(n7>I8MdwnJo0-F03X7~Fe87kN!mqR!Z5^1&EY1^o1-YAtX+v8+Cq(5*
z{^Aaid1uUQBww+PE$rYo3Vv;~L1`|f4&fY}>wU7%!X=)C=h;g(Za13BdNpx%N+KPW
ztaXq+Os?QhT*aRpB*pt3Pro5to28r0sV{XGA5$n=D*pIU=R<D~pIes?_>f)vMh(rX
zCiQ8+U99IPwy}#04wK2BoFtc~ScxmC!VOfXJ8!U_pSWy{11DqD(6tgT^9ubL$woF&
zajZA;I^9{zIx37)X!In`Fou)KQEH91X`}%|7|LOeP=A7h1Powc%<STc;*RHdo~10K
z<Rlw(p5kfNlXb+^-j+g7>~n=%@RLu~NMh+36%=m8w{NyGEL!sKDcQ?@7*8u4fA3`a
z#qrQ`a=&xQ<)NP9gN|pP!3s-G?>B{dyj@2ZX>29$u`;XV{~P%_JXsr?YK6X0Q!|C<
zEWH2^%&~rRHU4>a0_J<)w+3SibiRz{8}41`kvEnYH!Rhb7`ja7N^1AzhPFG?SLY0E
zyZ_G}JMmqAxV*1KD4Z?ik&(O<rvxQwMQg@0f!b4qJ0J29yZDW2R-ihq>Bv;(GLMC<
zpwKjJmG*RCHgl#4qr%fQVA|218O)@B5;>2@Xu|+PDeYrF$4QxC{J_~%q!KrC3wQAV
zPtt|wd6_=E%V08VXsYX0E}4JEl({5x%KpqV7UaA*ZuqBR+Lf4x$N0v7(#yv;opOu7
zHF=_LR22$mpHr!AvdPA8I+=cBTB!MW`;+OH#A=359L`p@ai#jM%s@V6FZ-yW{%bOv
z&pBtd>Y){_nZi`g79;0yJ|!v5B~;`}#xsH3;^?foF-0Kp0t;BkAx`iY=>jb`1t~;f
z%21A~^x#dlu$Arn#vTq(NswO2XvXj-$7v{V8!@nh*{2*LL~}h6T>p${o-KX)SYP%r
zzwns3!<2JyFY#>0#_UDekKVX8IW3uIYgZzE<?GS2<DdNF!0@C((evYTPWj5m`Ty8Q
zu;;n!saF5rp69J01B=<iLC(>%@=%w%`J6BKi7lM7$m_J=0md?pvln}fhiJ)oCXlL`
zrY*6LaIeIDtmJ#1)^0m7nlT(CwB?($<7)JxH#aX&iQK|UzGpjoImJ0E^cR%pMP6bF
zODXZ4_@Fdpzq`j9CEC-0PZ+=;hA@?B?BfW>IKhQ0{bR1AGN&&*NnGZ7{-xPlvgEcb
zxmDX3ZcN)nI2Rq#p2at&M$6|3<I|LuI})Ad##8B~QZFvQB(ZgiNhFRAgvb9qI&iyQ
zEwM^F<fyJ(yv*;M`d(+S+LoTTf6(QVcZ~tpT5GdT`2VQu<@)t{9nyX>E@eE2n6N={
zZ8Wgkc%D$*<PUFAzFYON+j0&))piop5H)e{cY)Z1Yoh-;^c2dZ7PYyHCcMClyv2Kb
zNPiZvko_E>sN9$37HZLehxnMj)LW&g(3d#BtrA5U5>cz0pL@BF{tRFyp(vK}1GyE)
zS=8fp8gUm7(wfJ4f;adN_ba*<JWW@IFqA*|lg4ZHCQX#>`@|W}=geU_-?51;9OQQn
zakjdsL%6Uc>G<}<W0-Hunv$ut0%p5_39<qxXRNe+#@Wee+CG0}{JGR<&2Ynb*d-m4
z8a+RMR$L{bNIH2OGc3G4d~{ttp+Ccf#Bh#sjJJixJ2VjzO&LcBk>3enQdgMNqc3q%
zg-jaFXwH|6U<}D{a<ok}mEEMgo|fpuZuU@Nvq2U&(u>|~WgBIM-=$RIN|vycl0vc+
zo#@Ow=5y^fmqYM5Uoe$99OW3*W7}<4c#rov#9^-8;UAJb8k0RwUa*_E5_j{urCC?#
zZl1Mnis|2%?Ithd%^Y_kOv&BOo);y*#qD3CpRkuvBK~lCv`PHEv!mz7>S<Vs487pP
z`|mW2{aHBwV&lf$zbc(wc7uMi$zU|!v5~U7ZMxaJM<=+?<9==FcN@J!LYfVfJnS4F
zb&vSBT#{)8ljFAJ{6ze!ThqJb42@R(@6c#-?r4G7=|g>?fR?h1;__O8CwP)g{K_t>
zTZbAvLI>XBKWt?i&8^%0jAa~WThDXIPdS?K5Q7;KGds#Law&{LoKJb~rUfl&Lsy<-
z2}{YXpw8hTS~8GOklBT}RXT%$848CAyh1mYvx4eb!H~Fa`^>Kv5DtlJxHHy;R5HE5
zn`ciO_4y~Cf3kU6=CsWCZF!>2<J0m)uZ>p;BcrF!HcK3C7@H@0R;+sXfX-_184h!V
z25R(n`ZIvz<k~AE)Zl$S;5Rb(o#Wgn3U1<I+VMOwdeV!be8oi~r7X|wk9m{C3clm|
z1BN*Cq!&BbNtJ_M;~jdkm2F%l+^*(U?%)YJ(StWxKnTh6h2jMaVlY!!%Ym3#iuinz
zr+A0=7{~;EBZJCfw;I{aGV2Q3<OR;*`q|S*@Ul<CWv&fVxRWHAk~Ssg^ES@Qx@#{j
zw1W7g{C)sCjE(Y)C|xVjS$a&ImrK-CEG!MDgKiI5sLs2*7qY`iqMB73o}~*hj*!W1
zM^z||S<Mfm9W%_N2~ByJ4vb|Q)0xRaQvXm%X@6)hv|u2gGl7Yu|0x4BqdBvg!y!_S
z+xnA_mORXOCXoAtO(D%_&S=Jva?-z}4Q+WLX7&n8`Ht26z{P)QgM7i4Bu1v24{Xj%
zoRAK)A6I3pS}<#T=B)7&8LN`>f2YE;<dUpc4N9*o{KuICp7_4=qJ`oe^GC~v0|D8U
z5zd<&Xj=4iHRbj!F^bZ`7K_ynUEP;-SKgtlv&*=hB6~*B6tM=~X(s0%obvo1ds?|t
zebIhuWO;gOBo<ALT$VdEGV1Kq$o=P}Muz4|b!SOx<d%G?k#QV6H#KrHe`=)Ud8v_}
z{K4t2H9qhUCw!A%Vg7CUl=$|1(F<dtkk+%2t?c9^f6+)5?&5tyc9ye-?d%|fOwRq=
zD2c1NhBxTJTGsK9)o95$#*-FF^~K<+k>-)qSmb_*FZhy^{6$Oa{4kF&g{kCCNsZ*=
z5gug<Q`y8$nku7aj9?@u`HMT#QX>s{h8Kv_k3H;7tC||QP{Cfs4ctgK-liwLSVk!P
zL!3D9+kq21O!3y|MT=aqZbx!jnjG(#FU?-GF1akslgr}IofmChIOjB5h^G)P9+PL=
z!-7PE4xe+3;wrlYm8nWcp5RqNApF1@j`0tr1x8uQ@e(gHlLf5cJC5=XrO!%@l%X@v
z@X}ea)X29I3s}!4_Hvj^PEc6X72z@3Fp%MVO^C>iY~dt-ks?Cx;7&#`hOx|M34d{l
zyF~HbF|%c?WEE>z$7Z(kEBiUX85h-u&UA9(8(DU_H*eRxU11h((@Q)_d`F8^xRY<m
z<ixY^<t<sS>t<CzI0Rr%CSE;H^xWjp_nw8K7613}-t9LY2s=PG#%>K6NY&=f<|eAK
zgr!`d4Hn}8+R~F=Ok*(-?K2nma4*9c&H+N(y-nL~z(;({9`@3(Kx(8BpB7L}gCxG?
zI}Y+YPig2+vz2YsEtndq$A^5xE`H;tLNd%V^rk<*k--gx#Xr61%^1e=C&#(Hi0XXU
z>`O*)m?PLZNS>AskJ;%>ISpaQy3>s!*<NOi&wBB<uXiLTRiPVQU3*r%f3fKG@y*4e
z<;sO6iapUNLON7b;sOZiE*H&AbgO*|Wt}p4A}pyB`nyN0%9*PdR-w6E)+m}9x#WD!
z{eslUFWgxyHF8ez)W}y%=Eahhl@es7QzMhgq((Yjlp1-BfsEwBvg)o}YUJl~smY&r
z@jW~5##i0#YKPOmCGctZp_fMC7cLsTEoXkSC3otid+v>IE9D@^%JZXF$BKm#>mx7k
zvY6$pWG!3R$}95Ojm0dXnEV#!a;owIFA}2<%UI4aj+4i_mEbz6(2~b_t(f@fCDD&h
z7{+L3vX^}nR~Y4~MqL`ygdq$iyTH;)=*2mQrZi(1!}*a6c4K^GG?X<;s+zpfD0#zC
z)_ljB@cMV*T|3s8=6y3UBYYp@sLuw3p-|$#c%u^0XY%D-Fj)4!8zb@iibZco4u%9y
zA~dRn&&%W}x2ezujAI&0Sjq(|xflZ&$QWj_kNupYxFEQRYV@WLJNcPff}=M5_=K}B
zj46Z*wR#?8BwrB`HMwX)Q?eszne-3*#VJaPtkRSrMA^ku;%PcDlUW?$AMO!_4={wG
z-1N}Ja>^Sd$~n8V|Bo?fRz0j-oUwQ=(<gi}VWY|S;19_(g@(4K#l&Po(>qEhzxD6!
zGSQ3TeM&fLx4cZWRPmgec&)wPW6628rD?8s=@P>H=8%^jyv--9<45*!giFe&Mk??!
zuaLoRYFv^UsmX_Y#0gH4t3qm|AceVzE4YR_)TJMvu!J=g)W{W=Dn%O7i065M<*eXO
zQY&gFlw>kfSj~EVVlx@+CFL^jryv*5ockHacutUdxy>~vY9z1D%NqA5%RGd4sF002
zRx0`_iPw@B>t(2jDU0Wh9ro!7)3CAerWg4!sA(5PZ!LGaX#ZW%p^n1VE7VW;R_$0$
zrK!O1*3eVd)K^9NDb$e)Fj+9kGH7Lew#skgD{RRtY3`LZ->Xt1`L8jSyjDeBml`?$
zdRuDd++c%zqdw%O)W|%Zsg@e)&LF<#yy_~tdal&?yngA=#S4V5<>^%8f4_q<>xP61
zcHF~twJUFQ<NO)d)rK;=ikj5s4SKMZZB&uZ>uJuzyh~p`;Zwe31l!reelj`E32w8F
z4VYHRfOEP;fh%R4Hne3L(>Yf`<mW|RVkyfgqi`-{7{gh?8ZtS`9ar0U5T_p*?53px
zeVE61fzj90)!|5d!}nxxfZxgF5B}m5PpgR+c!hB1kh5K;aC$7>YPIXt8xD1o$Aufx
zqeZe`IUX+e3e$|qi`T>-FBfeXuEWj>hj`<QqSu|i&MPdvHT>x}=}jNDvx6!E;CkNX
z9d>e<l2w!i6}XhQ_zyp^fvN(g9&Kn#{;JBF);z-0nAtS)imH6H<Y6W<iTon10Oh!W
zHne2|6S+tPmSsE>m`jMtJR&hK7f^z-H0OTKjM&B@WdGt6<%Di!{&o5y>r}?+W!Wb?
zPA}QCE+bs?G-Lj{vBMl<SsK5$eDu`|bB6X`T|783oXKv6p-;6ezN~z-RP2`Uf%ot*
zt?0qK>|iI?)JTn7%W8h0bWLkRIbPyrrZSu5tf0uv)||3jPGzp;MsDIw-eSqkF@IR%
z2ez<_-$}hCHIl}CG-eB1d9s$VC7B%Mw%QsJpU|KE9N@A#>Ylr4LyXrrSGecrIbP*>
zz5P3muls&!V%opM!~Wp7DQi(keLHLEzozkD4N5#8l<4yAyZp7pLF0JWiqR_JvWYXx
z`MR@9CI*IO%R9I=w7gMQ;>+N|;+okd9aE|mmD(Xf>4X*UNogxMoRd~4kIZMU)C}pX
zWd5RhHZ}EABZE0Xp9Z$icj|Fy*vK~dE`RrKwQ!Huvj;BWG5O^>Zrf@XA5zi}qWKX(
z-^rdUdipzR6a8cCrFQwUE@w=pa*lB(ekXQj$2RWT3Z)q1HG1%0-eWaCaG^|wj9$$R
zbfPm0SV%q@KbJa$mHCK|IZ$8Mcu*q$t-3}op#snGJd0RNncI8_4Y`YFc$RL&Sj1vV
zDxFf)rfw)HI<tX|Ty6t(1>Jdr6}LZbpGKnC9mZcg$y3Z`4*3;x0b0?TMJ(prhKcSm
z>yFFpZZdhoYr(9;S<^(1fqA$A^ZdMLR#5z#O3^a$-zr5fs2UpU6;%!=2SCzU0rmei
zXi=CmNJ>QH)&4^7647&F;gz}}Q$@LeizrVeuH`zq^9E~KM|tsc3D<BvwYifJSFiFm
zz3EGw&&XgmHN;&_MlkZOn4NKnll(;&0oj#>ETWL$EX-Bh$g^}|Da$B*uPUZIS5cLl
zSj-ZBVl#U=!cmU%7peE@dODh2#cPDqkjblWT!E9g$R@GBzGUs#Fl9YRCU@3%%^Q~3
zZBKsBPIy&&FVZeo-YKqaJoxmZXZ&PXs3pxl-l<%)baJP?S*2)|_)Qh<bZxB^JvW?2
z4z>8drzmd;Z8Lk-w#o9Za+$Y@woH$vimJJ`-$ETdV1&ax4?6nxkTE!U9=2`aM(R_r
z6|L>bKO!(6wc&eA2S|rDscDga+9q}rw`ToNa5p2O#BSo~+O9!yd3<`}GP-<M+;yoY
zAI3y3;f$}lJnCDjL&?3)YJT9x#;Slmyvwib;t_d%l-^nS-{x^U*IAD$Okn{(u!aiF
zY_z$ao4JQ3w4p1{v9ejrz(k^)g1DHaEF<lHeFyoufMOKq5-#I9+R&ECOyPb7*@DrG
zAw_|v@+eQxgE!g3UJh|fOo`Xx3%=wSfAEkRXvugcFoRGlSvxd|;q>XRvRS#=x7lQ$
z3|rzX$>w$Q!h$6^QzCulg3M%(kUad}@9JpDc>RhF2_^P<)?Mw&t|ux-6W1_@P|Q9M
zk-hD?J!GYDOPgZa(3VL|CRMPcksUa_r27(Q1?$LQH)RFY<y7K&ZlEr=abGKabSsJ0
zjARUBS<6QL<{w&#%GOL|5@{kdoe-&y(3Yooi+32pQ2yjN>7qFwZF!t_%wg`MdXxe}
z{5<LsLO!PgG92mIvF^mTC$bOy%*<Z!t%cc(XYR20#DozZX6_gozv%U7(fHF<qPNEH
zZS5@7{3^DO9j}fSkEN#Gl2gjdZ%-cjsgd2phWOl}9OQTEw2>d?FqcSMdyJ&gm?ku(
zIRhBTmrP<h2RO*Rwn6tX`0<!hk@%D2G-&4l7%dsVK=!bg-0d9%;AU>29`)(Wi}a*7
z@9{ogF^X+$XD5|9q(-i!8?UlDX7&T;bky-skWy6VP9CBqlbON-PH>XEPiUjuNkfKk
zdi0vHb^WUK3)Zh%u>OpD@{&nQy%MHXmn7bjb6rnjnSWzJps9o&wn3BRNNm=v8p>}~
z)!*Q%df>aNM2kMrP!E_WrjYxPs|_JHPg*saKdlinpB)^adnY|lXJ!AaweD(dpEDky
z>I=3$jDAs3zhuxs)t9w0hVb>v_C51Pp9^1ny(%1#^Odl%^a6?Bz>Xb$Vc6;ZH7hmi
z`Ny(`S;<t+FspbdsG<Bs$nN>FT7rsPMt=rS>M0vaI`a$*SwwNGQG(C;f*molux{0?
zTXlY54Tm_v-{i5*7gL_+d4W^pdq!KMFr_I&7rL^9r5xiVrIcA|y3mzDgmR4SG22U(
zF1i!m<SjO^kyZ-2H4~UfRDtK_A}SJoI5E2$&HnDMRf$UuHZM&s_n37HNb-5+%oC@l
z{F39&7-_{<R*RNOy*1CP@i8H>>6#|-l{bo*PF17V#)MN&i+}d~Vu^H}kcmp%KnFT9
zlUWpdUXjy@&dg&zMMO(cs!@Yl)ZuRK=K<Q#p00G~jTf}|<q~Vy&Rz-%xk8kr94&d6
zSuA21>-m%8Tq-mxF@&KU;}5PErXge><BYJ4%<+67E7=$``-@ZD@ru^Vrwn302Pogo
z2#c2F9Cpt-_#Sqm!W0g|d)%0vI^&>xxN2wYjIk?sWKCmdgl1f=PSwO2kapFgE#hBQ
ziRRC(f<ozs+RFOMm$0OsmKMq9lRtjdAtJ@~>T8bEy{^CMF8h4@hMe^f)$Djvl#~B0
z#m8LA{m1+1_g_)|wx0PN#mOnk^%89K?rr4XNBWGYi6pKFc|GTfkao$#?nY6k_n=Z!
z^L39euMxfI^pzpSLn%GXqqJiTV@Z|&H0pB)O=-qU#Q2$CsA?T=peMa3XMHcGE6=ft
z)#OnI=W+=ZVrDP%3Oo6k2NceObmBR_WCR-s1y@eNUCi^mz<CO=AY&OvV+GlS&lq+_
zp|)439hkyY@+jOUdCj`emEXwVCM8~t$7n}SdJ!l2y$Z>B_TE$00i~=%P7XT7tK1wd
z7k}dBXsdY3YSBwhA4Uod^|tV5LZxP~n`$bzI-?lJBxbOXMP#s#LMpy66}gh^fOt~+
z1-@hi8SLSXo|*;mm{~s#ahT^s&hso_A%9RxB$cNjjp#*)u91Aj7PeAFv|Z0!=27%r
z9Y6i}goFG}^gUf8d1zJ8tU3*8MsvR4OTryPiF<}Nt#w~e5bh81m{=ZOJCJ=Z(HV;@
zo<B2u2khFB_Iu(F)`{K{A5kZISA1`^Xx><*%O1<=8$){y<Imcmo!la4Ay<7rFedm&
z+u<EPrp3p?gLjB?sIM`2KiwBYKCzS0-;M;+2WSHWZ3w9TsnQs1ZHMSfhuZP{EVRXV
zkG|2i$!%-m=YvN-=$jKpUFl?3w{Fpf$zR|6yleUR)LPLhryF3gP#RPCh8fHx^?i+x
zM%={^hLXuqZnGi{*v%etf2b3oDmU;b9e9#1{Fk@c$R@6gS@X(-(#S4}U!`|(lTxV0
z+hmu@FVeqqkVBm0AEHXD3fI$<UTkIyH^u!OdeevFhcgcE+?<>$CmvQEUmCtK+B{4<
zXC)R+{d)M)e#1>4Y|frk^+olf-QuI_MXxGcD78cA_KLRqyX#Mpt8T9yX>wMs_}z8<
zqUnv{Q#P}Ors}U5Bl(Jg>aq}z@)*C6!5$8Am?Qkj2~yN~8fTM-0@S4*-?5f;Y+xIy
z19X083zBQOj^6a)D91U;KjacXQF3z@1t>@nLV&d*1X*wTGLcD~;%`a|zDszY513A3
z_ac6zezZpXrdy*6V>QCUnS9FvwzGpggM1iQaW&8JIz4!k59r4RHgdTrzk(jT$y(NN
zi^#u?CN$-7x-x*_Lz)}iNsMG1nH;5_rc$5&44|-PQ-n6OWdj?jG)#ojoj3TJ3H&&0
z>W{ZaFU$3KXm8<#Cx^?~=X#?r6bZFx#FJl&>=AZ0zETCF6xnFqC;RC)Mv;%R2Q%I#
zWP%JbmrZ2QY@#CN?MbQe*ZW4>$5(Z73j6fgYpwdaaBLz^e9V*S(fF=={HWG~2GL8;
zXwg5)+IlL;-la6<K^~_gPY|-+nJ#?84Dwr*0<@tmaRxGo&l$-$R`Ua4wX;`wV9b+G
z*~fk|`GeBR;v%l(YHD&bw{Zt^m`gt8buObAP3lPTPZOFllCL<$-_%sLp?p8!L$3VQ
zY!}tO)<M#nK5Sttl~u%5^x(}=@v;r0TVroZuVoWk*vcVNRaADRHI{DAlf1x-bmvW0
z@;%j6Y7OdgH@)e@9`<sWKS>#@-Elot$2w5(w!}MZWgD$U#v^>g4DyST0yN_xTGN(6
z3}z9_S;GeQbASRODMVKT8qtc@yu(L?sM|DQ>fgQzI#(<^^sW<jH*h1v`J6FCC&@MU
zavws|?^hW$@e5TZTO;N%pJG!C`FV<`d7nW{Vip_O#8$RVNqso7U82}j|A=7>XBsnz
zPV?ck<YC%!h{IH!F2lS-Pd2lKE56Z)Y0XpLOx=2Kw5&#(mFrG&7;@K}@WJ6j8#9@_
z{%C)$_Ydpm`~fjFLmx-anR<;`cJt^%#%x77SAfrx3Hr~=y6(hz1m9YeIFE417sYpb
z!=c6Z!gVK!?eXZ&QsJwN<GY$=oox*_hbNCQo@iMyYtJ{C%GvWx9Dyudwr(U+>?wJh
z%^Vi9l2xo{1KZijZuWAROipr&H0zR1lyhTd1t~^j?x#C%u!?o8=O+&ECnXd_X&P`l
z?+^-SBb(UDc6RVHzmi>WofKSWrZ9_pe>K}h6{UGSZ}SeD*}^`Ka^oBub$Zd8_58$c
z4sfxWC{Ne9@zPDAJ7Zm?pJNhJNl`<o6r(gZa|fO1OsK(0%;N}|^q+6!!xENq&9}C&
zw59{^@*WHLp3)0M2OSn@-5n)*F_Otlp~^xl$$$7STiM2qi>w^od50w|rNm<UX1vN<
zyvuuR<u@|8c!?D!>-&Zh*EM9Wocecjt-GU`%vr0jMpdoF^X#O?89Co6bBAQ)Wgl9@
zA00^eqh~EMo?q_R%6EE$l{RFnbkNLV1G~6)wdbp|Vn6!_Dz3}<ZHnt$(3;*Zp0Bq(
z)zQiCpV0tjKOgn|hYv*y<PL|{e@N|`{I=P#wcHj|Jbdzv)MW|F_?i8bSgJ^PnocZY
zF^%Q42}Aje-#J7*xvx(fI@6C&ILPnRS>bc|h>v4t+u6ajR{46K=LJ@=nsSQaVxHr9
zQoa{h+{=CR<bA&4YyKgkm|i8uC_)it7hhGycLQH=)0bxXf6#^VFs=BF3~pXy=)+{D
zaMxPf8-_4+ZTy-CqAO$SA=1}-575?oQoMGQ3xBj}VH%^>%j8d~ky|$yGj22*qSq#w
z->jo0WvlHRpKcTJ+ns>gq26~o8}YN1{>3)*SNYoI@3QeXfp_{qK>XB*^l9NJK;jpz
z3&d8nS*1J6>BLG7m6g9pU1wFOMQ6J5F@0IZdiJu9GO`@9e-}+@O<0xDjA1!z$ZfUG
z;wEZv%X*Elp2U6JPYdp{-uEz;$xLMivsl0)R`CPt*uXX_D631kmnM8nUv}~{4=BS2
zIm{6nD9_tB750xMwo^sHUeA4-<0%hE|BhuB_9vDNWjG@k&jix8=%gt?A&SwMCUoT`
zK4TcabBKH@tsq4y&6QN=X6~dR%UQ8i$sCl(q<~s3PDx79nP-^K3ih#|0wSRlmvR-a
z)14n#&n2Ry0t;D0F%eUomwAO%ti}(pn5O>SDhxitf=h%|1wLaKOISfBM`<ABZs&12
z5<>7J2JtNmC?X__auqkyn1^V|!@Np&-XMhUYJT`tDO3={mokR2%w{f&*~)KZ5@Nlc
zSg%h{dQmY$zsT2&BC^~56?bzFukj{B`HVGer_>(RLx(-$qoc$;=7)uQMf=`(!8XwY
zkB5eJpFjG&f3U=BSMSqWXvLFEB6Yva9x%{6sC0f;ZCrQAR)V63jf|;##1`eK{jp>I
z{+~+cxbE+S7If14PoCb(_%pTYt*ztBA9Vpzu`=>epN8DU1GMB3I?<VV%%`Y)oKMK#
z!(``gqx3IiaF{0Y+LX`vf+J*dyZqn5AO>^Z!I&VnLhb3mEM`-~%GD%$MTbg{WHC!9
zV5QHaA<cMzN9e(uY-Jlo6iO(ZwmeQ(J|Gm<E>286)i#=%D;Cnfv4?{k;v|2Qu28FT
z1CdNUCTT>ulq<NBySbOY_?rSM;XGRN2ospd8aA?p9i01z(9Hjb(xf$=d6uz^BbS;?
zp&d`tiO#&pE4<D;=JO+4D6Hm-(2L&e<Y%gih8y@VZ}T(1oVY->NgSh^P^nI99yu8=
z+A+GPqtJ=G&meC5OQyK&lp|h$+gkJHKR&>1B>U--k`^iCgnO>Ew8%=%i>5`!GCg-%
zWZ+q8kx?vTJ?ZD9Matw!ixkV77I}$M`O=ctawo?X&qce(JH^s##U0~%AZrZKIcp4&
zuU2Yu3?Yz>Awqy>=P*NhH;1Vrr`Pi+Pw*ihF^J(zVm1f)oeQj0St?VNmwAQnSw#_R
zTaNNv!bdT)k13=G3iB9k_<=QCsz@q^VxcQ5_>NFq`v^r=Jy%+!20iJ;Hnx+hD5IQ3
zUJ6i<tGR|Lq|8p4dg6&_G*@i4XA4-!qblGr;tb|9MlgYiL{v<uppsOeF-;i8a7w4E
z7@px-7O;@kD)JGIa-0*~u43=VofeA>k{HanYBoRDa4oHQgcu(&fDj4UQE>6uX_4~0
zz>6$nIZZ@IQ$AxDhd4|t5!0ICe9jRv^W;m5G!sIJ!&4bM;<fg=BD2iX(H*g{v=trb
z$O^vWP5+_~A25KaOr!9*)}Jz5#VvHAGZUH5-~2-~znY;DchQ;Wd690sonN{1k$8`f
z`GlcN=No?J7#9=}{Z!ymj`9b$o|hK6jkoB@53HwPL9L9(Xv1WtaCV`z$T@t?C{7i!
zrhiMcE1VW-UpRiwv(aN6HM7X${FJq}VNJ*Kq>OCf9v}RQ4_U$k{%tY;b`P%>NsH7k
zs#18C*H{{!pPv?)bwQfj9F!Jam|I*W7EeoFh3spp8ilKn-I`I`F0vzB1rx`p&z~Q?
zFl$%%^iJ{Poj!@r>+G)QoPlKV_CEYYdeDmrOk_79W0%X=HPoOcb$E(r=tju+YxHCl
ztND>lM6JNNTtr#I3MN*ry+jXsQq&rrPYWJl1S9#Azc@ui2{hs^y3&n73}&$sSwb15
zav>dgf>27!icj6z#ZimcGEWp)<X85Q$={q`LVVDLt}J8`7nD>rw5J18nZ})^(jpC+
z%^ZGUJsa6UzS7p1f;>zs#+4SR<0UdER7Ng&lBXzip;p1ew4y!F(T%};%^1cqgT<^O
z<sy9;<++63^raue7|!R6<<LdCox>N!Q(lbz-7%CxIcs>*+H{uVkf}e<$k>ZAwSe$P
z@27IPw8$>nUn~gAr$zdc=aRHYRi5Ls3W~m>7I>M@;Eu}$E#F+8mOSw4GWo=%3W-a>
zPM^fg_flK;`sQ2?Ht+d=Mde|iT(@jmq#kklv6p?^CpQn#ipPoZ8Y}pY0&-fA!W88K
zic^v@l%qV;`G#}C8u3uftR)Ls#$NVO&1%+V5sUegRI8nvf)wR^%5oW3QiXQ3=Lnh9
zx->0Pn_IbuwtT>c?4ssxW~G&7D9_G3!vYra0~;x>j7!j&XZVESWLy@%=4Jb>8PdD?
zlYgkLE^5$#?7Decx-*~i1^YS1IaeqNDpHA?sLji~!V13QPyXTjN=lcjxsmpjM0y8_
z)%-yHEB#y#O=-qZKI03%Vhoem%VCc22Pu_x>%7nRtfJyoN|#4y$1^-jFA_&=GMwtq
znELmtc84ApeUZv?_^M2t<qw7rt(NtN!aw+w87$%QtJ5OyvWJVVNsBy921n?Bt>FS4
zu1kxop=}j$biKdFgzM9CzAiBFQ}l^*^{#vF9KAH(O%M7dxI}b++x+hM@@{9ItS=UF
zkp1Z^q*qher<bHu$ORRt!T&4ozT=y=+J=uGIl(r2kC24D%FZT0ArLl{U3LRuudoYc
z8d^qa*-PwEX3L&o@4fdX>`^upC{POT?^t#nOKP9q_xpT4?;kJi*HV;Avd$&>L^_gn
z%A*3RqB?4$KANB>dSMX0#b{i|4U}N*%VRrs;DLh|S)^!+Qvs7O8AT{oQFMST<~D4{
zW4uLnikt&qp*3b<307kbw!%U>e9#$jI0?Q#eC7U?6ZfyYXTX2)uLfIFD4ocf^VioH
zMntfGqf!ap5*14Nif5(Rr%U^a`|$sqeGkLYxD2&0;>!Ap!BHIKp>{d81lHgLuA)eJ
zU$Gb>+Us~%Hk@^{alh2l-dy;h9WB3iJ6cxPG4M#&F>u<}>9k{D=Z4HG3nbS#4{KW#
z#Sw&3sDR-Z0e?ynfbp1s6p{Q*Kt0sQFIb9?_=IRmEK6Ml)iDJsreiK1IC%LLB}q#u
zjKw(I!Ckz^N0cO8rBD-f@HGZvFoxm>{D`eMfFn4MwxqUQqBLJ-{0j1r>byv{f|r%B
zmQ^joXl}8Re;cZyHX5NZMq@lSViS_GeUc#`3Zf~Rp*7l}6OQ3HZbEL)P_|zfCSxw-
zwsmjUfo#)3<*8p@Gx7#aqFE^3;CH01z~LRj5QT}Dg!_1aQWdET@hyJ97)-%dY{M(O
z#^;r&i7^A(LxQz$vhm87+TuSBr+$fL?-KLjezQ2&%w3tu;hK2~!{(Lwz#zH`dwW&R
z#4rqhU_>=GQFRU#G4=~SaQFcKnq*Cl{hr%!Y5$}7S03DrD=nWl-klwI;7=Uz9o<M9
z@YvNn$>yqT4PG?T8tgfy%OY1@zWXw4$1A+YANYv;tWgl^pe}l2FdpGC#<R8)a2NOR
z7N1a<wGKl#WN9j+E}W%uFmf7aV5ewlPzjYW7{jmwd$1ozaS@kLkQ5Zc0LYXa!*S%V
z!8S!d^v6mZ#u2=Fa{I}JBNv|BraP1ih=271^@~IP>Li{a3)%ET2{b`Rbi#HV#7*3S
z%)B$}WWFGRQ5Ox-7yU36({UBo5LS!b3>8oj6EUe4`{!&%7D1^^y@+hcj+$tS6<7&N
z9qLTf$Cp@y#aN0Jcz_ppjgLrOmp}gKh)$S~<>3Ced+(lb`;r{qi2pc7{{73x8vcm4
zSk21F6(|PxO6*Uxz+NomIil-voP{OWi&OZeKIcDpjY40tl6Z<{4ai;t*AX83CV&5i
z)0p7ABh`7=jPu*!&b^dxhx2`a{MOXkY017`@-9_*{xPlaP1m1D#?<Abt%W?hu%9g1
zAsohdR%C)}rB1q5EF&xAhup}6&k%w>_y+D3|Hya}RyY$r!vG9KBn2pmWmt~8c;etC
zydnEG24EnzU^n(+AI{+}?&B>!AbBH>`jHxg;J{j}!!FnxQy-!~2H+2TK)WWgis3(Q
z+COw|_qq62<Jg7Ukyz(jea5UKF%9lT6=AjsSb{9fJ_8?MYsw!HOhH&P&W<qWEA|{j
z#ZXnFBl_TXSeo<a@uwuS<R)_-vZPdZ4yKA>Yq_tk#wD?-S5;ZNOq5^dmn+*IdvO>?
zaRwKVfE&1rdvLE&FV^N8+`vr?VXeN!Mr_AD+(!g!SpuUl8ZYn?Wm!|X_8nvRG|N@r
zj{|TOL8NQWZUBGeMSc`QF@)g@)WinF!><LgE#ePPvW6?|$bo2uqsYrITB8@nU>g2J
zw^-g3&0A7a;rmup8F-1Lt=X?o8?%t74b=vw<9BRn%kI$5^&xSdr+YphB->e)(;=_t
zCX^XgKfCjoG3J|s>Mk|$8IhkqD-(dCh(Hsxgj{L&3NK}RGq&R>ZsHbdQh-|M3R$3a
z*o-Z(QK&S?0zXtjb#%wq9e5dzu~>qi@eG2}=R<z<MjwpFWSqwZ$Sk=tw2tg-!Zz%~
zLp;J8e8h=1@d;DqdHM;`b{dcI1aBZyS(#K;!3@kqigp}V!5=x18--C6p@>0qkbW^7
z$8iFw+fx^!8NR~T7=e4Z-`=;L2<|{Vg1MN7RalRwc!w`Kl1}Wyegt*m&jtKDvw2V(
zb+8bNkRmSr^h|3}rIlP0`R?tZqE@1X_GUo|aIm1GkPFxhOB^2yR6t+k?80FT4t3=t
zh@Rbj#djEk+1*{oyY!Ja^RGVgQcju3mrRN;<WoF1jy;Y;hLq}{<$MoiWgOqjIylc7
z;c)J8MQy*is%2;QPtFQ@Tel0eyrkfb(?YJuVH`mYRzj{!F4qc;XE*^5@d#yExhPD5
z3ik@1W;_9zx^eP|&L|nj%P#DOA0^2OS+dcPC0l}@u?KsRfa`eHJ%0LZYg?r$MRx{l
zVkiU7LJQy!vIkW*e0x&+U_54G8RBsO2fyY>1b6TXqBkE2`1Wz7bX;3fM+bx{wY+Bg
znIy`q@KeH=RBQw<T#k2Fn{w=!tV&y~C+l(j`LS?+e&i*kWxG)4eVrt|`ds0n{lSIS
zqU!haICPWUdK9eu(DmmqLzj4NjC@8Z=CS6o1T9$0SoA}G41fcJAxkv_vQ!)3F4cL)
zFQRZSPKr<z#c+TU$`ap(Eb*tWeR)7M#chdJ*oaN=>Eld+Xv?r2&LE*r{FI-pc@#^Z
zh3eM%)(Y*&k;s6h==co{WPLfx?#H|J=YuwY>IO@(1qW~e<p)wvq91<16fD9T>_!U*
zdm1j|9^N?IySBo$3N}Voc@{_Y>CAi;671YIo?p06^qjxQst&A5u(QH#F1MU^+fZB*
z-;~Ky=ON`X`HZP!7bZSQcTVo!_%XK$B~Z3kc#ZOuF&e9|0UNOiJFp*i%AXX2Fapys
z9lzosN|76xpRpK+m59etobJcr<2gpIApzHsnnY$q76f82hTsA&q8<rtiv4gWI1@?q
zLmuRXOnACMG&Z6mI$<~VAOi``h~{YFD9v9$MjV)rWmt~Y*a*2*<Q8c&m@`LgKs=&`
za1cC1&9~TkxfNTBj(~VWyoH_LWk4Pjhm75VBe;P3_zgbaa;*Oy^$aSYK9*wLP^#%+
zoIhYEP7ZVJ4bJ<*t}UT{b8cY9%4z#W_RrZvo-L4@TAt@WF3cXnSW4&E#96*c)s>^I
zNz~KJ`9kfwpZWgXU#;QpeZloXbnYKnDzb7-@B@CtT*v~Phb%yKR=fsgV-Bw4h8$<*
z=i(L~;R#;hcf5rU1*?S04qm1}g_RQ8kQ@0?5Jk}#O&~L|12Pkj@e*$kG@L_MM4}{m
zp)UquBt~I0CSVP=;u;c=Yx)SP5S+nT_<qkpGcqC&<-S)fORXPUk$Q0z@{K<*V@YDG
zp#j=L&eI#iF#$i}15%7+|3v}pK%pP_AYdOB|48jJio--K9Oc@y&TEvO3YX4aom()g
z)@I|Zaf>f!`!+Af3ze;>F5uJdsudD%`0Z7bXd6BAoX_sNHtwaoB^Z;N{#{2ub^db0
zhyPggI#;N3EK4~`QXaB|<KZsh3dT3$F782=xG$ybhdnrqw3IX*G9nw?8Hi@QDu!c(
zgO~A`h55)rYW&a=t<V)cun~uF3<-FK=lF=sq|qOt2uB3k!kyv)j1R%Dc!+0sj#8u9
z_e%3JVRZbx71pduJ2r+hLjJbc82+YXF1{YiXA$Eu56iI)hj0mZ@fylFij8Wxhc~c{
zCk@DkqR2VHxxov_v&a1E)8Tw>ogZW826uk6qvkWsbKADF0{2wqv*elQUkA`BZ&vTh
z7L)ZkW9t0XUT2gODBMIm#uJRAEaUMUFYp@g@Fx`3KN2NT9koyo4Is;Z5VE|od^u4J
zJ<%8a@hyg9w1bzin2b4?i&fZz1Gog4oIxbRfipOZq7(Qtfgb3Icx=RO9Ki`(#wR43
z$RBu=g!62YGfM68OAl_wzgoi?Wj*rjoc#^MFA0l9;Yn=q$+Y&N&lEnSDh(c3j+b(L
zDvhmJj||gj=)-zsnojwq`>NeXC8;I9@gJ%kR637#oCiAPha}0LijR)x-@1w8eFN2%
zo2<3f@$0Rhd+OT^a-FN98tOx?Tm#4z^k)V0p&$xDuJCKTfiEka1hN2^Aq(*df`U{;
zCCEa}z)W1m705z<{sk{(Py=$jHtL`*`d~aJ;3v$-A}q!d$n0#y1>DC2HGcO7YZ=Ay
zfFB;=F`nQBWEy|ND|B|HvkSwnSO=Nf4TwiWSBe`mY=U)=>E3{NoSVU499+OfT*eh#
zL&6M>;cqZ<6Sr|^hB{`mwW3drx`Wl29oB$MsomeUneg>Q`Ar*ZruK}f_AS=8(QHid
z6!n>LC*1FHiE;TZS0Uf!I^>(&g7zkS*crb!!+9MfOs%@aH>Dc*8!!K2?AWLzDN|kc
z>?3r;#a@!lR#}KntzRuv<91mqtE0AAd#dv`@hpNgcX%iHZV&MYkMRV7GpSAxjtG2?
zGH8o-XpatvLl<;KH%!J9%*O&O#3C%l5}d>-oW_}%p=<y~&f`yfM8R3?mMDxOD2iez
zjvxfjQrB#^*7F;*Scr`6Ka|bJcb%@3$|tj*BV&8HWwPzCW_NC)s2x^+_qNLZ1;28I
z##Kpb?+GrX%NbaXwi%tXdltvjm^|~ySot=>^(KdTlhU4FM^{TD;;IDt_C#T}oL4>*
z=g6IpSE?f>iJ$UV?LH!jUxDd~H`vI({h^j~Q<jvQa?B$2!cOZXOSwgIla5zYY~y@K
z*xjkt(o3aBMrDTe+0-)0-!n4GQ)E5=ynfi}nJ&cU|M3TP{}SJHVM7wfIsV-beJEH#
z_2X`9pr!a?HE@sh8_TUla@fvc&n?m~;Jhu5QnjrjmzE-!bq;}C_b@a;Q?y41bVMg~
zMjX0eHs&B68?hZba32rwD<0x8o<MB0iaf|$mzQEFjvxdh1flo}G3be2_!_-200S`?
zL+~AjVm9V%w5m(@@+9Y#d)KdCzhL^__0Hkwp`-g^=x7R<QQIq{t7Tx9624vVwOvV*
zcyE-y6Mn|MR!--GkS=LQMVxt_cn*;v@lSD89IlUmk5+5_!^gnA<9mM`vLs%dw)eZ1
z$a8h%(&RMrRZJsSv5l@g1oJ73UdbTQr;b2TOm1iWHkF$~rh6e?CEmxDB>rKMTC_+K
zzf?T*%kyuxT57A+Z(^K%xmxCcwTQ(Yuf`p)j?a=jqwvXNNxz_gXIG2O!{fx)#@gp7
z6T8`C)sYK)3nnQZRwTH%x^aPTZ6!!ey3jW#gF*{^>jhTq(V<n(o?W}-i0;~@ZHLxv
zy7cN0+c~4nW=qMxiLv&l?b-C=C(L)P_acUiaSX?C0w?hbuaRt%RU}6Wq(myDMjE6=
zIy}2|>G+<ldsbrUo~=I}pE&l%5xm(V_31%t^7Qhr(q9!<fHSdbibH%CG;zhnW31fu
zpw~u?t(HY}p*rgY`3y<VJbzPPdhKD+)l!I<YV-oB+s@AYHqQAS)x?W*?YP<9)3iOv
z^8t|6_1EkS8RQ0+iId4noS2_HTUdyhUO%X14_p0|NUE5;wy$K}c|2bIalf^iI`D{f
zh&H8_bIRHvk;E*??-DQ0tAhO9S&OfYvrkke&h<^Eraxl!vk2b}N3F{&N?82z<JKSi
zQwE7hQ365yS3-?_Z|!C>DS4tOb!S~$kAI#p_NCQ3!Z0D|OWiW$1l=3&dT3Y|IVtg5
zPkHVAM)GIfQj}yieTn3x#7j}T|L(mQ=LFqyf-HvR$Vpzy8P`NtD#L{4?{)8Fn4o;6
zTZWwAwJwqB_?NoOXp_9w<>Uw5JIM*U<rp#?sp>PVmiwezj+~%djv>d9sv*ZMTI$MW
zm{823i!e+$)mj%JCnQ>zV0uy2?ZNIziE<OH&h_<Ljy6HJ99@p(a^xhh<)pRgmLn(V
zmZQtDT#hcs!D{i2y5$%qd`hZ|Fie=&Sr;KE=+;HI56gAY?Zd%pw-mbN$O&G{2{Ptb
zo8*<7o2himkrQ;wG2}SNkmD&mycZ*X)-A=5;UH&*Q+w*HVCuFob@dZ#7t@Kl<>~fj
zX4db`!D>_n@6~cn&@IQ1?I2^eS7*{KM^5lsPOvfC+9a={$dxpd&plDMJVVxlomtl{
zFT`wl+C<&*4EYZ>?%`<ybmf#2bjva1J=mD{A=z}xkrQ;wG2}hinRi|JBF)ODP4rq`
zh%x`#B(LR#nC0I+QMWup{zD9Vy?P_JuAFj$ZaId$hZyr-C!cOPa)NF-hP;P3^RA0p
z`NZpQPOu13O(q#~A7adXh%m{$d!pC7h8lCPP4cQ~Ru$5fQBKe;$B^?-W6pCH)h$O(
z&@IQ1^H5`56KYo1xF_nCXUKi1G54XyM4L`B<UZ6`-wY1Xl~GRcTBk5$&b3KiIe!tR
zTaKKdTaF>;Va9qUjNQmkZ@DMxmS@O)m@)TZX1RAy)Gg1D`!HjDQ@fO|oN|J0IflH4
z8S}pDbKP>}1h3_U8}qJB@~UUT&FUHVMBVZX`42bdKin+;?uokP8S)=)tZ#Be>&hu7
z=$2#1d$=+0<16ZxBPZyVW5|2Bv91X>t83g7y_OeY%)d6tEB_H@`FBs$Ezgku2xFb|
zyqd0@h6y_!dL4fUtA+`&U+9)0C+OD2kn;#*&Wk_My_1}vTaF>;5ypLe-ZR~D<OHwf
z7|t_;U8kO2b&T#jGgyD(8La9~D@`Wo&NDd@@IKF!Z*17FwMmKBMR%SVtUJ$?OEF|v
zo0NDd`t!_S{duNbjv>R^B(LS@PAh{|!vx)FWw2_PpgYgxSj+o7Gnh|~VGlN(X9laf
z^Gt1m*VfifDorMNl}UG=8SFgq)XikbvEe*3Sk;|YnoQ80RtBqv3A*#lU{!aX8Dc!o
zbWciDrV#ykrZyo_ndD5m9J?oZEk}2r8KUaWGv!RWz1Tg;YdN~p$`JjDXNamhtu&dS
zJI|yO0`K!o`Nq0^*geT>U3BM}A<h#|uiO~UGv)ELJiYf?j_y1&MAe;V%9#u~Hk@aM
z=*}~pKkL@UkYU4lChuiD{_srHEl;;M%N1o(`}q4kY!$7x-CRKuA}s#xVB1Hl8Z_9p
z(>8+kXV)ZqQW|}qZur6W(Jy6v@v-a6PeH!*MGB#)br#tCc%vL5TC^9jq6g34do;$D
zJE;~`&bPk$#R6NQB>cWw4)w(tTVVVT3v63cWva);kd@u&VRpGiZ2q2SLrmto@srhN
zYi-5z*ozCsx#T9qP988LKJhP`D4S?JZl}6xt*wP4AK&PA`;2j67vedTWb_S}T!>rP
zO`Gm7bOiBjDj`~?7NQZY>kZQi5tB}c*z`g)rWLkgMhcpVCi=`mB*{V#6S(9j#J;RT
ztoIjUT7VG40)_a7Rf@?j#1}b)h{`E=B1JB)#^e?vX&xb-;c{LfPIF;weSRV46%b+q
z4~Y7vpb+i2{jEu1W-1~?v7$ocD#p4}%-``ah$qej3$cU8O05m$&BBEEK3s_Y5kkas
z|48XlLbQmY02PI(T2qMmjfGedE5wJc<nVT1A?lCd-nwaAl%m}?WRVazY4_i@l!tb2
z5n{wXK^N*m3^*yok&8lv-(UeeZ+i0wAu8JxQ9Z9B))Z1iRJbDgR^#V}ipUtNi1-eQ
zXx>8+Df%no`4B}E9;t}8;}x-Ssv_#l!_SIX>{zRaX<HO=ZI2?R9#X`kQ@EsvinkPz
z|B)gN|E7q}pA@mrO1Gxz=;+d){$q2~UuqG$3l5_z;j(o5T7_XPI?8Tn5kJMy(QP~W
zMP<jZ_O*zULo6cuNcv-)KnIvJ==gRXaZBl7a~*xmZlMoW*^9mGi(GbfE&DB&J?+X4
zTxBnuvfoG9x!`XZd7OYhPZP<*V*v{BIDim_rFqIo1s>h-g^!Tk1IVY%%V(j>2Ug1`
zB+Dn=%7?JZ2X4wIMapL+%18CdhtSDKu*rvd@yIHN^QlYnF*))9G4k;!@?jkESrqbl
z2J#F2^2_V;+t2d5!7p=id99%KWkUH~FZnGe`7IjxZ4&ua1bOqjyaQX_pDb^Pl{aU~
z+XCgiVe-Bpd2@-pmqFeIAg@#h&q~d8JevOHwGT4L{RI_|*^4D@&S(q7s&(RRxz#1d
z>;=@b$Lxhw-{bZijvx8WXpF&lOvGfUm<G};W@8RWx0sIwSd5=R`URg^u@bAW25b(o
z9viV4Y#Ol*+p!b7u?K7|wbMphQZ?X&-R?NTl%qI?6F7-eID@lbn~Dp#h)cMPtGI>)
z+yL90-b#hI1G<hDbO$Zi2LwGV3wl%*^n@(v+*mxrbI{MQVE+(w8rxRTW2~U3SV2#*
zf=+S8AE5hH@e!Y(P@`Dj19m21g$+rO4D4JYB~l>`(jpx)fSpccMiw=8lP!J5?2P6>
zF62gD<X1;-viUoTGa3wbOA&@}lt4+8!sjT1D3k}gt*D5~sEX=fHx{)}2kg$GJ{q7g
z*tMPYV#B1&PkmRDdMr8BlONU2@RHPF0cFS;b<4J@OsvJ0rG9DMit+A3L=PnQqj-a<
zY>S0LOy$qSb*h%L>x3x0O^7c0g=ltEh{G4C-);&q>9r8=s8(vEr#hi(`K+QMPBd0T
zCN5W71}Ng$Tt$>$rwE^8R4vpH`>hVTjxNOQRAuR1yeYkz^U+_+v@-0EV^+|8FMEmX
zJzaM7E4!nVU9b)1(<?h3kx#^z&(N07?Um2@l#dORk5H43)sj!-k&iu*&q|PAN0(pL
zm0t^$U#gQ|T$0~^k>AZ2<Y?!-uU+1VEpGyrw|>fd1m$gGLf*9^?_ZEN637d$@_L)R
zCMG{{wb?=HA_g7tHHP2^jKWxq167xpgejPc>6nRGm<x5)79PH_kg-Krf?u!<lwPdH
zT5Lc(HeoAvU>Ek`FplFi&f^Nmn7EDmc!VdQA8zp)??C;?e$9<+u=Audk%E!bNRLeL
zLm+Y@59D9jf+&I@gdzfwU~`DFD2HfNLKRd)4b((!)Ww%*h(>6F7&P}$w{Nv=R&uDj
z_^dc$nbZSpRWTkDFbQm3u@5(K2Y10%7B;qO7I6QJh(HOH1l6ga8Wr3cDcGQb>Qit(
zomh!oxP}|JiQDi=!pAlVxd>t;6k&)!Lv+9}e2<a%5lgWRmv9x=a2=nJmIId}D2^b6
zpdQ*_2!>)9Mqn}6qr^E}wDL#&5+hge2U6OE_zZ<n1jSGbu^5QK7=rIG9~*EQ=Wreu
z@fMjmEDAw5A`pqj_y&`pVk)LPc-f3gc#XGshd<y?9a0hv&=^h73<EF&@z{(l*oJHP
zfGix3`6B??PzGP2F9u*B9GD}A+j+T+Ye>Kih~(6tD2=j+LV2{rx0sE2_z4TJ7k9uh
zD!mJ{pTmlLD2+yFie`wxAWXul6m0*sjI6^3oX2C>If6`%6i9`lsDKt|h1O_`;h2ey
z*n+Ltjs(0y8jeEKBLgxa95v7$ozOWI+rJAVW3T`_u?KsxANTM9SvZvSM*y;+4C<pB
zdZHJ4V+xkxAdcWDj^inOITX%;+{lA`sN~?K8NNY(48S1F#yXtD8Jxv=yg`bzLKHwD
z6h=|hL~9JjcNmJ{ScI*(h%2~?1bjpWj>#Rxc?m%%!qEVo@jZUTD2%}h?8Ob-#vR;)
zl|OO;D1lNajWUQqFO0)POu`gwz)?KFqx5Y5$BaBhD$We@APUi_fJ$hK0ho#zn2Fig
zj<a}<-|z}=kcqR4!l;7ksDYa3f}xm;1z3p18QJ~^7`cXb_!A!?I6cXMaMVQuG(=<c
z#aJxGO02>foW=wAa#~|YQY1$ql*3nuMN72CP)v95vH_d11>0~9zacf}Md^_NnGlW|
zXphc_LsyK&LhQmm?8iYoz(-{DW2Z%S<U~0%L{B*S@bV4%VLDdfC{E%O&fqsB<K!$K
z3Zf8-;0v^Z1K(jNhGP-7;v%l%8m{9LGID|!gfN8rv;9jj(g<Df1IA!1#$z=O;5P2#
z0Ujb5XNWma8c`^RXtY9KOolv*oQ|2;iqm+Cm-r2@kui|%Ux-7r%BYSSkcVttFcfpK
z01L4g2XG0m@ec3t0Rfz<mOy<pLSr;Ve~iO2tio!n#Th(+uOmA<3z8x^3Ly&3&;qe&
zh3_yG>#z}<umxA}94T^8+aWE|BLr2@8tu^mo$w>(Vk>sSv5S{IxQ(~SkdxXDe(*;r
z)JA7?LwEGVMEs0>IE2GEipQ|zVuwR6<VIdpL{s!Ze+<B&Tx|c@jI6^+oW(g@!0$+z
zn?J`Wf}$vn+GvY!F&rZ>5<g=HuHZUu;1(=-C=fzX0+A?%rs$r>!I26h<1qn~unvcD
z4-fGOPmnS%r9oLlqXH_SEe2pJW?~lRU<c0O1zzI~-Xcpr3WI8>>ENXn>YzJDU_KUO
z34Xz0+`tEj{G2Jl2e}c6FVPrH&<q1G0V}WuYayFR&fyVk1=!b+0*+L?6h#HJKx?!?
zJB+|AY{E8d$4=b98>IV;iV2zFhe*^yCv-(O^nh%aS%SSdh(kDnN1w6%m4Y1mA}4Yo
z4=SJudZQouV<2W>El%JJ&f+}YAVnemDxxropcrbQ4TfMChU0rI!FF6O#P&~M<T`Fb
zDa`gkC`up_rO*`JF&g7B0h6!}hj9-N@d!_lvIv_8Wf6@EsD!o{fT@^?Sq@(2U<c0O
z1zzI~-Xcp;HV>+yCTgJ$x?=?9V=<QC7aYb7e1IrMf#8GOh{Ts@j3#IX#{ga?U<KA-
zE!N{4ZsQYtic?d;if2d`M7q%!z0h0!9L&Cn&(NS2l@rp|<~U#t^$Yyg@)7UAo&I<R
z+2oi$Wd`L_e2c@jqP8SCe3&<W;wjrmMaiTFp0U+R>$%5=yB9@qky4HAY0IomI%6xG
z=(?T!U66X>jP0{n?-_zcO3_@@7hOdw5lZ82qFW(F$Upop^zVPC9y?<T^e^!b0ckJV
z{MCbJZE19C7@=lAXY==`5P!E$YPrkITH>5x)<|vEzb_7VT*z6M=x61=Pi@w}FHxlW
zLauO@^R_gJ8nDTg8hDP9hX3vAMyj!wnDKjN^eSm2ZRE0~et(-JHT6YXp!(K0V}x4k
z!at@cQcF?$3x@ZMbj}+1cPZjtI4)f5xL~W8XkF#RAm@B)(TlcJ(ViVd{^p++^>;fD
z7ve72va9D=n(lqVwD(DM$(AZnn&mBe>@R_8C8q1<(2}7J;x~z|hy<%;FB8A+l2-=g
z`bNr6fS>x9-+0BZyv!QqyR2J2_XBJ3%`WTWvtJ>8iZMP!i$AK5A1mXnS9IkHk{=X*
zwe%IQ-AdlFcIp!A-<x=^@&<_rZTZWLbMUbURPPz*aFsaVs;&grud+rBuIk=FzPB?&
zqxA8$t`WcA81E|a2Yvhw86SR4SK?r;#GS9{O3bC#tE~Sb;=M{7>@M+D;~d@P9GMaf
zbGS-eBSBZ<)Yn;~;re)a$;nybt@?O}jDKT{ca^yCb=~rx$@sR{btMkbN<5QjuYH=E
z!V*~j^Td0VIK*Az6gLcW%#(9ex?z~ZRpJ56;k8$ny~!GF(8p8BYbAcHk6$U{^WD@f
zKa~4poEd6%Q@8x=w}_uYyjRIWwGtmCS~orR2J3IVWmvvzuP%MdFvlr5M{naCt`aX}
z4zCh-z0Dfk)5nLoOB`@p7k^#GH@K}^BYE?c_9@WE*SbUee&W4K7N(W>1JSza<8QJ4
z;dcznca^yF9m5>TZRS{HoFh^#c8|Iuf!}zQc+OqcDAQftJILFiobfgJjn_JbYk$gy
z-qqEO@`fkp9NU>A(J@7^2<NcCc}&66JMP+wd+n{^{2gPi&vb9G>y9ljFye3iD#|5B
zsB?^S1>I$?$bXnCQcZnd_g)e5kGh{4bKjQEYsKXKNDgB#f5!dP<Hq0+^_el4Kiz(6
znFod?hpEjU7*>P7P=4wPV=!CV7))jDr)K-ru;fU!?60~dm(U70MjtGX=2jYmodx`8
z3=UDVKQt`aS->t2b*oW=Z93K%>?~k{F*ri~WDIr|u;wGfk|Wiwk94cyJS_85x9fxD
zVcB(Ku(N<gAM2JJ$=+M*v0=&10?sxDhp9UV_WB%gxaF^=dSX~^gj(#0VY$xY4KfBt
zs&l-9<!v9%9rUSpFw-es>Ze{S!A>YwBIc>rO32U<)u9jN7|LHgZVU}mpAnkq^C(xr
zx$Vk4Gb}ekZT?KR3LH84t1FD5)VTUk4x0ScY|nK|l?P2_pX*j3NY*-j>KJ1%w@@2{
zo!jlBF_?qq7q-|$A9Q(RNw_-pg{_=J-nk%k<jl%#IOEdo5Ke}}III4gbIEd=8<jW(
zM0(D?r1^C;bL-Od1D{5kMonp}LR75geGl5RkaU2i^>?%ee8(C3xDhmBL5$LTF^;A`
z<eaX#IE$t}mj?`g#frI{xzFdMccJFS&#V;uISrI%uG7q4&&na~7R~fMwA!KkUQOs>
z&d@^-v*sr>YtC?<icc3bxi4{Yi)K$W`99H3iJvTrQ}sY@vp}udnvu;EAz5QI`KBpC
zI<-ynfx9UrTW-FAiJu(xctPH_nwcXkLUM3rP@2WnKdB`bsHJXP%#(U>iCOxCOUqJn
zF2qS|+G%bMq(cjQHA>TDG~MtZ(`?PEU+6jlj_@_~$^hA!o3#9(CWy;&(&-nP6m*~<
zZAig02GA&@=0iT7V1jf-T)1SH4%bU-npNQGX&B4h5t4k=r}T~sw{VD6^?Aev&T<u3
zs>`)LX-O;1gx1_H;c}Y`ywXP(zxF)w1fedq7)mc_0+3R4)Z}L<mFTRg&rs^tnXAOz
z80p2uMajRXCW4`~#^oVH$=XYki=kAqx26F@sfSB@u0TseUFI^B3Voxg%us6OkT00p
zSF?_xbhp2z_yC>|fEq5p4CGmr*za<WM>0tk3L?n@N#DE77|e|+xWEI3q&Y)1ceyk!
zHBpB1_!0!V$Oi&RU%GT>D9LB`NIhJ}FqHO>^mdA$4{&+5+hn!q8(X%t$@o;;U`J9U
zSHF5=8<CWDA3+0@C>p<MuYHD(BMIZ_k)gO|STJpBE(;l2LTO*8D!Tu<W-HZ^^oXiR
z%0^Wrt)M!Rme$pzraF>ZQ58wmsg9&1JvAAqj^GeosgI-?R7Fy9sw1fpRgqMf>PWgz
z_2brb4sG^xX|0~GX-;({y`w6ULf2~6QyocLsfwgRR7cWUsv@cBUaFy{)Jf4)Mbb*D
zBWV{^k(BD9CYY*7>O^%Ug;5nrtErBpCR9aI4Aqe|m8wX}NOdHIQ58uysE(xMw>6m@
z)J2)FnyN?&r8<(9QWZ&KsEVXzR7FyEsv^ljRU{3eDw2|Mmy48@sz};JbtFBfDv~-=
z9Z4Oiiln?$N0MU)b&*t&sz{nfRU~btI+CKOilm!VN0L8Pk+d%bkA*@zsv{{yeoaoQ
zBc~D!@s#RF>O@r}&90=$OjQJ)Fj0$o2|K8Yq}vTNu~bFUTB;-I7pfw+m+iO{3@NE{
zqyjF{45b(sLDeJqyM!~8DpT`Ft>h=R6(bIp@2HBTf>b$DC6`?crFSkFse+^+m#S1h
zQX7{c45dC)J<>#%l?<hl)I3rHSq(Kn50}MMLDC+VS5!w*S*jsPK0!{}L^ULxb9qfw
zB&DT5Qhyhfq4Wz?k#wJ`NLoR4BspGD7fETTYNWz0RTxUGT?R9h+EDdKLtJJtlulCp
zB(|TbD1aw4b)!L8{%b>B5r<`1i}l!4iO>HQMt0*AF5wCiP^~gIdtd^lV__9$LeZ+U
z-QyE%)j0gXZKSHsRSRUV!I1)bV<0BuCv>2a>H~!eDj8BEYh6D7KQJ;0J?nAl3I}lv
z73$M2kC9(;oP-IOhm#GtI)QUvaisy*aTi--C<sn9XF3K@+l@rAmRxke72Lr){DFOK
zxQW2QOS85dk>PucL!)+FAjFH#T)9S?IMx&mx)6&Pw8ay=LjAs6g~p+NtQcAh;W`gu
z#}J3_rf`ghP19IG9GOWWP<{><3aau__ZMnGOvg`HzLX0?2wz662-|Yfg$H<qOe?7K
zk$)wd1A{OOv+xW0uchShUC$*Gq(dM^L&e|?T(QKt4Q&6*jMRyzWSFv%g<uX=;M!)k
zEk<r<8Wv$Ivh8H$pzLN_;sxF#kUBjVdf*#O!89D&PpWYSm$2#pm*=tXpo3o=WQ`8<
zCKv-1g^sYzkbwIbb(B9eID3qh!b`lu(NmNHhfZ@P8h6fesT66>ag7I&=SedbUZFrJ
zlfXeax?U&snC7_4PKD!-*>))Zjy)fAcqUS#4~C$d596rGeS!56l~fVcFf}>H!&sj}
z5nFHwr;s-lw;Q8JYK2ai6md13B5t8H_Y{`LHy8xRT3$BeWEMqSL;*iV1fexLV<!%Q
zC(Vge=pUenA8<K`BCaECE=BmECE8&#b|Xh_Zd^oXe2w4Xn}@jkifD^21(;qyafsRl
z710!rizwm`%qp&kh1eF%f^em@BJQAlv?97Aw1Of^;Z<dBrbhQFlmauWDq;Z+aRc@#
z46UVz(U`}d<0WWXk2lA8T*Du*)ORR6GF=gW;s|$bUqa7DED-gYD54p<qc0jaRXCC%
zoy`<60)@U(L@>U`Xq?0a9B8SCV;I_+>DZ1Pc-c-7pYXgr?}ut#6j9f~%Qf7_T|C0N
zUTjMw`I`GX@j17TM`6h@MXbPy5xfyvjwF>>inXXchJ6DEaS>rt6;T!)=TZnv#!MVq
z!ph<!97%pwL;~(%%rA<VA}v+KA|zR+h?JO%#aOqT&4R!coLnJjC7T0FS1Do>{5C2)
z<A|TJ9v!x@ozWA05xJEW!d*N;iEV8EsBN6NVFH$79UMDJF-GoI#8~V<por6Gb%-4b
z1&=5q1m}+`bX-f;PLf{4pJoTdr}ONv7Zma9Wi~IOuaF(AKs>f$FNR)a`;WS+hz-}+
zM%abJXnBXV$42bLsQZeTgxU`j(Fkc@C?Xp!zF`MN*5A2VAA#@54BDUzwh4<kgnB*}
z?$ES|Z_;vhiS6kv;sA~~csYYynJgkdqBC1WHEh5(l+R)jRgucyLjPCX-kZ}Ru48^a
zjt6n^GmE&1+jxX0c#ZcE1ubG=5sMgx`Jo(7!cl^64WMD9Ma00-za$e7UdkdqM`$IB
zD2sG_rN9qOsuPIbH3&w^FSx%L%di}&YjW=~#@FG#bo`9fn8$s+i}6PTi|}d4o#Krw
zq9cB9%ruN?$viDB4l#j|$xu35L{j8JL0Gz2gdIn50u{PjL~X=ylW;6v4zh@MnCg&c
z^A=HjFyC=NO?-*gXoLCq1vkI7h-cU}%pwk>%y5gSJe(OHGx8F}INT1yF#L$M+=aXg
z?;w7(h$Kjf7o#oW4GxcC#ZZvDl#8J;cPYn0;ZEf=2$*aU1rUKUID?CrHH8(zCTw@`
zas;Pw0oU;oAF*p1rN=Y8LC)zGQ3Su@HKxs=<k&rv6+tg<haQYib1WkHT#Kkbk8EMl
z0*hFKKOneCy3itv2*zAEmhh5-JEk)u^?Hl&N7;=QQ5`Sv9v_fo6KO>(n(wlRt{A=7
zA|@cy0agxo@dy<Uv(us(TA&>|;X91L_@nGA$a{+IpZ}Ca#A6QvPFqACbVPULKWh;s
za0v;>b&hGUT;LOdn-^J0Y`km{dyyo89T)z{ixSr<40@qI5^x{yZn2Ep>?@BPd=ws8
z#LA~E1Y5BezI@jqHA=tWi#FKuJDUkt-t(sD@xdbcp!uKdX!sT*Q0<dNG{6P^fM3Qd
zyp!V!-MeGEh3;E1)Q4Wpanixd8Ej8NAHvvUrz>DI;rkI?&;uheEiFCjVpRrua7Mn2
zKB5TzL>lfjKg_w{8O+Vb7j95EJFQ4)l!q_k;6Y*fbH&mk^!JGo;dI#vN1q7R2E#E4
zQ!pP(upUoo<9dgmD>E~SSEcV%^sVM224mtE%md##^u~<T$bv;!jiU|eRvNjuS-lX7
zARHB%&{=E~zWq~|kyx}v96oDGAZo<WsWGZIr$<>djHM*V+=`x?QM(&`T%##kBcMBP
zf?7T3ml_*;aRQ50U(@R?y7lAhM)+<3?QN*RS#kY=4m!LZ%9$-5;|=x?qpMRq98b#d
z9+nAYU?S<q@|iToVGH&`oki#In2iPa87q-=HW|U$1#Ew`SV-@+$h3&BIH4+M-CsC(
z313bZ-gvx%K6Bx-k`y8jB2fl)(G9~f6?4&r)Ac?`x0ZNhLw?*|=OgZ7)K>NzB<!GH
zU-Z~XTLFGNz|M!KaQw#0z~k%#cy)rq&XY7d;v!^!?FmSKjyFJ>3p6fZ(p9=jNAYW{
zAY?DyUttq=;sbmVh(%5uy6Yp3<I8*O*m#Dwcz=)W?{i=4L)!OOw$no&(F^+?(``3S
zJ@FAYu;M8TN1or<f$%-X<D0kiPK(z*Jnj<~U;21K4b;IBtb$Jx8Yj@u%E>G2HhM2W
z(`1|)w@Ak0eenP@lJl%&OiIN#zD!FHS|bkO>1d=wNqmm=>3KpoQfFp?$c}=DKq<&R
zF|AoRo%iF(@z|4<ucjd^fMp=5gYUDY$8v1KfIK_~9NF^nXmQ-h&*LMpqyP_h$M>9O
zx8$_C@&p<jPz^Qk1!|!->Y^T+VKJ8D60Re|M4DYt4i({;!OH?%!Zj3_#1m4{1kErS
z<8TT-oXZzNVYEja<oUf#1pK!g|Lu$>^97nr`=3_Kp%3`KD$Res0(^7qKbYyiDd9gY
zKTtS~+wQ-86FFbvdG$ZLS0r&v!2jm<cfY}ZGIV&Y&3~{d{*yQPhuHtO+dsf;`~Sn*
zdTrl-iu<>}<3@es4)||p{@;i*eE$D87WyA7<3HQ}f4AWOekV5h{F}YWfAa?aW}g2)
zw*Nn5qV0cF|C?=^e>F{YSnTE0RTjQ6&N(3e=7n&BIa){ZMH2j2hQ?0}Ez6zoNQk0+
z8Sl$;2{4-9SEOMSPw^gqRAwQx#t*|3B;YO<(kj0i&8u;t44Z3k6Fg)iyNX?o2DFso
zL}R`Wg2EkXX@_j={)j0wTu;Mmyv2>tw6>zkSnia^j48YcKB=@zPvy;M$leHL4nIRS
zYRk)mesgJ`M!^MK??l8xzE=dt)J5EJfX{yB5*|ijDtwl5trVj%8~5-8%a_q|j&{qr
zM1b8ia36qd%$|<po45pkyIYBeWiQJ?J(_`=;mUQsgMj=``1;Nh8oZ0W;#wkP6K@*G
zCf;vx)k+gB(j`|!0GbBUOpD<-fpytwpF#|cqODLTR1ux9lc!GXN6s>eC<>n{G?L+F
z4Vo3vytX3xp++6rH0#jdb>&Om2#=d7BH33w*PBOGT!L)4JdT{LSP&X?;?3}|E6sIy
z*OQhtg!G{)4^iJJq7q*BRk$mJc4#bsY^Pj_@M$!dVdqb*AY}7jl!KR>+gK2a?4ywq
zJ7~h&ov0bFDouE`QT4JSzC?=Kw5s7XEpa*T(yn}u`Oxl>BI0lu#}V^V5#QlDEpoT9
z^AnHFz-$}sQK%R|gGY5<&gRrw(lY0!$p=>oTEsOBD@>yX+^u8oMzN@}7EuY6Q5AQ~
z(F%jwG?3LtlIpZaz}+bJt`5`c^85|hv8JAdOG-4R)T6<}w?6Gl7=!0cEaDZq#?YpK
zG&F?yBdo1O)Iyel77>V;K^D;p?nW<nBbRK<I)abGxvgacD}epDG>XO!Jex#Q5#Hb}
zPR?>LGK&(^7IY7(f96f#M-xwWL~kWc7>i}NyN8k@-9A<X*^m>HFdc#W`5C#87hj_v
z9^x6w(A-lNU5{8qPwaIZrR5A8Xzn?N<=1KC!VeF5Q_Q5*WdZWhno<-!xY#`kdvO%Y
z({lEWU(<788)gk6X=xB?h!_l}QDg?b4dI*>jxrHEBnQd4TK*YomFC10{VH%OkA;=B
zhK@(|I8nv&20mgl{2S8nfwMGTT*R`*Oh*817TM93Hj6l<bG1(lYC|gvcDLgk7J*%S
zM1d}x@J4j=5vB1tqOhYU%|3WBkY}k3VueQdaD~-J*nZ?^#Eqf}2pvZ=gu5Lg-)!bb
zKYWY93u)ZI#>Je4OEfK9MyeH@y`%Xm8cJ5t;E`iBr{$<b+d&IhH;@fX-{d3KLbe-B
z$4=S`j$j+N0bIlfSMxySlRT>h2T##}1@$cL5r{rds|wa#qU8nd)Boky*<=W~L8ctM
zl)J;)U?@i5)(amhd75+Z6*j!#O%eMiH!C3E6YUIW$tinx>`y`GCODjuu2s;UGxffB
znU325((`jh9y@`IoOx$Q70$HlqDT%-c&qZ#o-^$(_$3!-)o7oalUbzXOuHcFV;OQ4
z;i@}I2GOGwa+RRZ66BAh!wASuzenR)X?pkhoCji*@#V{5oUxZ<S><{2Xx<b{umPPb
zaKpn76}S_q5`8ftOEngRF4gHi2uZmSA~!<o(0+iO^*J-god&cepk)&};KHM(lomgJ
z#XVYhiq{w#L-%KRh?kHZicY|>mfVfeiaVTI(cp2Ekz;ruCv@Ph3sme*Fdlr(+Cz4i
zw*>>a_dxb!mu46Z9JoE4h2sP55P#yp4|KAGc|Xz(4`kcK0UW{5v9x7CcCfS#G2{7t
z8D93{7>d&%5s81(nBi(`P*?ldE2}$w>;)9xzs5_*3I97U1=KY@_N*KgQ=jT^z$22(
z)}&{c8G*=#5Xd7BS$tWlivO}yf73+M{I52eXqseXJ5Azdnk)SLKQ+~yHfgTuG}+x`
zqpq^rGpGw}_6ClBQ=&@$ccuBOF#3W}h>-uH!AV>D&dKdnlx*ty<o2J{ektrr)G{gU
zH`J1;?A_vTrLy<5sv`>7{o)U0w%1D?-{&*?s0{HjQT7}5_*Y-ppQluE#NTad_pzuY
zV(i~4+34V+Y`RaMa>-4c=$~4<x&02u%W_y#{iTI{yE-P;J~h5aOM8@}WL1x}vNu)B
zw6>Q{8(!=8Jb%roaB)Fh-`ZYC4QOL8t#*_z+uPU+s_)y_m*me%6~X_``||F(=AmU!
z^v}dD^f^c6=-XYyA8TvRsHpea*%u@YO&TDY6%OFG>KX0r(ebz1+iNRoct?9@bx}uq
zg>*hXQ6hEeC~>}Tlvt9joM@I$_3dQuqW11&AF6)rWS^=|?`$s~f4s9jjiTO)v%ggn
zy4XLc30>`ZRBJc;)%bhe?4uO5cMtm{HC0bCxw)skK>WR)_E8qKcW?VewQe7Ks6+1B
zts(z$yeB?I`3&Y>0(N>y{!{qRJ?<XL+XtQhx;>%+n<m|_*fHgoM4xk$goqMy_=?(J
z4j<dJpSz`G_=)2-j_AdgqKoK+_;-EmC4EEc%@1o={-=@oto({^u5xckGyd|77W?cn
zt3GKW)9a^3#<v|{uc*)q?m}x9u}%#6HrTyREJ6O8MZE@gg3r~YgY3zZhkVyvJWnI+
zIX?ZV29>v`rzZ}pT4Ip>QRa%GvuGpY#IHQ0FNdhXcxTZ;bfPDaj7f*GC@Zq5jU4v=
zYg^jKC>sXb%PEnZK4oKi3e@b{BQCac(bipi#W|;?VOqt`ZQ_3Ik)uYN&K)}OqjS1U
zbGT6Z4YB91@UX#qIXOzcEa<=K`s}@mbG+K<gC_@{)W$oe-}iLFNiHyPUIICkxsgMe
zAD^|d&zZH|?Bo9Dmr=@;arSe55A4plWj^InWPasv)-d(yID1RW$>M6=@%CJfmqoR`
zxnMCWMt)zOp-e&phH?w_W5}#xIK!k2r!!2(P<}5tIm5#YWnvyOOv&&K!&D5@73Y>C
zhS?a(Bo$<smSK5@=@_<T$g1TQ-!hVc31b*$WH_54pCqw{VP=Ngi^pf0V4tL9l;7(v
zPZ4A(x{21#VMWz3*`8TFKhb_rDgW2_&ZH4+1Q{1Brv+vAe23I||31HvzjOx`HVX>V
z1?4jflKWxeCFL*+;w0TGD63geur4TrSx}HJD3w_dX>+|@cIVJ;4B~64x*&@)C`aNv
z73cfg-b?ymQ3p@97uQ8a=%U`3MuqF5o|{H_lCG`$L(?cv*0rcRrcs`>Yf%ZNQJ%bO
zQ5Q|4Jc-w$PMb!#Gat_WEBA_{hA5uz`&a7SQTt7!+_`s0?KF*Y=iVK)*)+<Xdw0}2
z(<pcD-BBw{qujZ7M=ddpa_8P1^^<9oJNNFWnWj<h+`FTum_~VWpV^uFaVAl+$0co#
z4yR_3Tj&SVC{OOSsG+7&p4@9ugG{45x!0n;F^%%%UW@8s8s*8o7S-7_%9DF7s;z01
zC-+)Z3)3i1?zN~Urcs{UXK`k=zDZO>qTFjyHBF;Dx!0nqm_~VWuSJzNjq>DPiz;mz
z<;lGk6>b{k$-Nd;+%(FQdo8M<X_P1TT2vm>C{OOSsBETDp4|I6bDzZ|ibwDNwcl$|
z=}e<Mx!0mnm_~VWuSHo+qdd9SqBx+|{q2z7%Jt-4i+Zn^MR{_sMZGeO^5kBNdTJWw
z$-Nf!z%<H}doAjgX_P1TS)IARY7!NeDEC^_dDAFQ?zO0srcs{UYf*<yqdd9SqV}3b
zd2+8sZ8web<X(%~Xd30oy%x2`G|H2EEozx*lqdIE)FRU;PwxGlxu0ti6`CmbTGVvY
zC{OOSs7a<#p4@9uV@#twx!0n;H;wY-UW@wHG|H2EEoy*ilqdIERBzKLPwus-Zl+P5
z+-p%CO`|-y4{+wbwMi6R3;k8+Xi+hyQJ&muQH@NaJh|7R>Y7G*a<4_zFpcu$UW=+^
z8s*8o78PY0<;lGkRnj!dlY1>H)HKSIdo8M{X_P1TfzI3)Fo}{!neO8pEh?93lqdIE
zRDfxeC-+)ZCetWS?zJcyDh%~~aH9HNi%Mo1<;lGk<!c({$-Nf!QJB4>C-+*^Thk~{
z?zO0wrcs{UYbTeFO`_x(lsorY)IHNEPwus-8>Ug7+-p&nO`|-y*P_mvMtSyoE$X;w
zlqdIE)IrlIPwus--KJ5V+-p%=O`|-y*P=F<MtO3toq??~iSnG*h6^p~7t<(D?zN}|
zrcs{UYf-aJqdd9SqNbWgd2+8sO)!n}<X(#!Wg6wly%sgxG|H2EEo!i7lqdIER6o-w
zckaVn=e4~IQF5<$@AvMgE~ZiL+`FUNn?|{F?~ZC|8s*NtJF1y!lsotCs0OA{?%cbh
zYMVy6bMKC-W*X(ry*sLcX_Pzn?x-@RQJ&muXJ92vqCDrdVXpJqVACj1?zLqVHjVP+
zUW>|S8s*8o7L~&^%9DF7DywOfC-+)Z2Gb}{?zN~?rcs{UYf*O7C{OOSD89`g|5_z_
z&WH2KhH9~0_7*9e{d;Szx&dm=A$EV+%=uR%Z?w8+m%Vz{EKD-(?^~!@cH0O2!|&tg
z?zXp(-HD&vu-85~WtNZh^U{*W39dqm*5C@XXp8u%r|iv?0Qu`3{J0alup4`@7x8J%
z*qiy-#JP_LX-rmop0^LNa>Kod+^D`kZ|`T@&Ug=@sQoY42Pr$%_ZRFRl^pT!F4}EL
F{tu?WYBvA?

diff --git a/usrguide/userguide.doc b/usrguide/userguide.doc
index 7588f021d967fb79e5b08c9c0784c5ceeea05f95..c329ef15705fe47031787ead346734086eda850c 100644
GIT binary patch
delta 34447
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

delta 32453
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
I(@)U-KQNvR?EnA(

diff --git a/xsdconvert/Annotation.cc b/xsdconvert/Annotation.cc
index eb5f612e2..66fe12bab 100644
--- a/xsdconvert/Annotation.cc
+++ b/xsdconvert/Annotation.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -8,34 +8,28 @@
 #include "Annotation.hh"
 #include "XMLParser.hh"
 
-extern bool c_flag_used;
-
 Annotation::Annotation(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct)
-: RootType(a_parser, a_module, a_construct)
-  {}
+: RootType(a_parser, a_module, a_construct) {
+}
 
-void Annotation::loadWithValues()
-{
-  switch (parser->getActualTagName())
-  {
-  case XMLParser::n_label:
-    addComment(Mstring("LABEL:"));
-    break;
-  case XMLParser::n_definition:
-    addComment(Mstring("DEFINITION:"));
-    break;
-  default:
-    break;
+void Annotation::loadWithValues() {
+  switch (parser->getActualTagName()) {
+    case n_label:
+      addComment(Mstring("LABEL:"));
+      break;
+    case n_definition:
+      addComment(Mstring("DEFINITION:"));
+      break;
+    default:
+      break;
   }
 }
 
-void Annotation::printToFile(FILE * file)
-{
+void Annotation::printToFile(FILE * file) {
   printComment(file);
   fprintf(file, "\n\n");
 }
 
-void Annotation::dump(unsigned int depth) const
-{
-  fprintf(stderr, "%*s Annotation at %p\n", depth * 2, "", (const void*)this);
+void Annotation::dump(unsigned int depth) const {
+  fprintf(stderr, "%*s Annotation at %p\n", depth * 2, "", (const void*) this);
 }
diff --git a/xsdconvert/Annotation.hh b/xsdconvert/Annotation.hh
index 3d1d6cb66..f49aa5bec 100644
--- a/xsdconvert/Annotation.hh
+++ b/xsdconvert/Annotation.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -23,21 +23,20 @@
  * 	* TTCN-3 comment
  *
  */
-class Annotation : public RootType
-{
+class Annotation : public RootType {
 public:
-  Annotation (XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
-  Annotation (const Annotation &); // not implemented
-  Annotation & operator = (const Annotation &); // not implemented
+  Annotation(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
+  Annotation(const Annotation &); // not implemented
+  Annotation & operator=(const Annotation &); // not implemented
   // Default destructor is used
 
   /** Virtual methods
    *  inherited from the abstract RootType
    */
-  void loadWithValues ();
-  void printToFile (FILE * file);
+  void loadWithValues();
+  void printToFile(FILE * file);
 
-  void dump (unsigned int depth) const;
+  void dump(unsigned int depth) const;
 };
 
 #endif /* ANNOTATION_HH_ */
diff --git a/xsdconvert/AttributeType.cc b/xsdconvert/AttributeType.cc
new file mode 100644
index 000000000..c1174dfff
--- /dev/null
+++ b/xsdconvert/AttributeType.cc
@@ -0,0 +1,248 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+#include "AttributeType.hh"
+
+AttributeType::AttributeType(ComplexType * a_complexType)
+: SimpleType(a_complexType->getParser(), a_complexType->getModule(), c_unknown)
+, isAnyAttr(false)
+, useVal(optional)
+, nameSpace(empty_string)
+, used(false)
+, origModule(a_complexType->getModule()) {
+  parent = a_complexType;
+}
+
+AttributeType::AttributeType(const AttributeType & other)
+: SimpleType(other)
+, isAnyAttr(other.isAnyAttr)
+, useVal(other.useVal)
+, nameSpace(other.nameSpace)
+, used(other.used)
+, origModule(other.getModule()) {
+}
+
+AttributeType::~AttributeType() {
+
+}
+
+void AttributeType::modifyValues() {
+  if (parser->getActualTagName() == n_attribute || parser->getActualTagName() == n_anyAttribute) {
+    ((ComplexType*) parent)->modifyAttributeParent();
+  }
+}
+
+void AttributeType::setTypeOfField(const Mstring& in) {
+  type.upload(in);
+}
+
+void AttributeType::setNameOfField(const Mstring& in) {
+  name.upload(in);
+}
+
+void AttributeType::setToAnyAttribute() {
+  isAnyAttr = true;
+}
+
+void AttributeType::setFieldPath(const Mstring path) {
+  if (path.empty()) {
+    actualPath = getName().convertedValue;
+  } else {
+    if ((parent->getMinOccurs() != 1 || parent->getMaxOccurs() != 1) && parent->getName().list_extension) {
+      actualPath = path + Mstring("[-].") + getName().convertedValue;
+    } else {
+      actualPath = path + Mstring(".") + getName().convertedValue;
+    }
+  }
+}
+
+void AttributeType::collectVariants(List<Mstring>& container) {
+
+  if (variant.empty() && hidden_variant.empty()) {
+    return;
+  }
+
+  if (!isVisible()) {
+    return;
+  }
+
+  for (List<Mstring>::iterator var2 = variant.end(); var2; var2 = var2->Prev) {
+    container.push_back(Mstring("variant (") + actualPath + Mstring(") ") + Mstring(var2->Data.c_str()) + Mstring(";\n"));
+  }
+  for (List<Mstring>::iterator hidden_var = hidden_variant.end(); hidden_var; hidden_var = hidden_var->Prev) {
+    container.push_back(Mstring("//variant (") + actualPath + Mstring(") ") + Mstring(hidden_var->Data.c_str()) + Mstring(";\n"));
+  }
+}
+
+void AttributeType::nameConversion_names(QualifiedNames& used_ns) {
+  //Do not convert invisible field names
+  if (!visible || useVal == prohibited) {
+    return;
+  }
+  Mstring res, var(module->getTargetNamespace());
+  QualifiedNames used_names = TTCN3ModuleInventory::getInstance().getTypenames();
+  for (QualifiedNames::iterator n = used_ns.begin(); n; n = n->Next) {
+    used_names.push_back(n->Data);
+  }
+  QualifiedName q;
+  if(!used_names.empty()){
+    q = used_names.back();
+  }else {
+    q = QualifiedName(empty_string, empty_string);
+  }
+  XSDName2TTCN3Name(name.convertedValue, used_names, field_name, res, var);
+  name.convertedValue = res;
+  addVariant(V_onlyValue, var);
+  if (q.name != used_names.back().name) {
+    //If the name is converted then push to the used names list
+    used_ns.push_back(used_names.back());
+  }
+
+  for (List<SimpleType*>::iterator st = nameDepList.begin(); st; st = st->Next) {
+    st->Data->setTypeValue(res);
+  }
+}
+
+void AttributeType::applyUseAttribute() {
+  if (isAnyAttr) {
+    return;
+  }
+  switch (useVal) {
+    case optional:
+      minOccurs = 0;
+      maxOccurs = 1;
+      break;
+    case required:
+      minOccurs = 1;
+      maxOccurs = 1;
+      break;
+    case prohibited:
+      minOccurs = 0;
+      maxOccurs = 0;
+      setInvisible();
+      break;
+  }
+  isOptional = isOptional || (minOccurs == 0 && maxOccurs == 1);
+}
+
+void AttributeType::applyNamespaceAttribute(VariantMode varLabel) {
+  List<Mstring> namespaces;
+  if (!nameSpace.empty()) {
+    expstring_t valueToSplitIntoTokens = mcopystr(nameSpace.c_str());
+    char * token;
+    token = strtok(valueToSplitIntoTokens, " ");
+    while (token != NULL) {
+      namespaces.push_back(Mstring(token));
+      token = strtok(NULL, " ");
+    }
+    Free(valueToSplitIntoTokens);
+  }
+
+  Mstring any_ns;
+  bool first = true;
+  // Note: libxml2 will verify the namespace list according to the schema
+  // of XML Schema. It is either ##any, ##other, ##local, ##targetNamespace,
+  // or a list of (namespace reference | ##local | ##targetNamespace).
+  for (List<Mstring>::iterator ns = namespaces.begin(); ns; ns = ns->Next) {
+    static const Mstring xxany("##any"), xxother("##other"), xxlocal("##local"),
+      xxtargetNamespace("##targetNamespace");
+    if (!first) any_ns += ", ";
+
+    if (ns->Data == xxany) {
+    }// this must be the only element, nothing to add
+    else if (ns->Data == xxother) { // this must be the only element
+      if(first){ any_ns += " except "; }
+      any_ns += "unqualified";
+      if (module->getTargetNamespace() != "NoTargetNamespace") {
+        any_ns += ", \'";
+        any_ns += parent->getModule()->getTargetNamespace();
+        any_ns += '\'';
+      }
+    }// The three cases below can happen multiple times
+    else {
+      if (first) any_ns += " from ";
+      // else a comma was already added
+      if (ns->Data == xxtargetNamespace) {
+        any_ns += '\'';
+        any_ns += parent->getModule()->getTargetNamespace();
+        any_ns += '\'';
+      } else if (ns->Data == xxlocal) {
+        any_ns += "unqualified";
+      } else {
+        any_ns += '\'';
+        any_ns += ns->Data;
+        any_ns += '\'';
+      }
+    }
+    if(!first || ns->Data != xxany){
+      first = false;
+    }
+  }
+
+  addVariant(varLabel, any_ns, true);
+}
+
+void AttributeType::applyMinMaxOccursAttribute(unsigned long long min, unsigned long long max) {
+  minOccurs = min;
+  maxOccurs = max;
+}
+
+void AttributeType::dump(unsigned int depth) const {
+  fprintf(stderr, "%*s %sField '%s' -> '%s' at %p\n", depth * 2, "", isVisible() ? "" : "(hidden)",
+    name.originalValueWoPrefix.c_str(), name.convertedValue.c_str(), (const void*) this);
+  fprintf(stderr, "%*s %s Type: \n", depth * 2, "", type.convertedValue.c_str());
+  fprintf(stderr, "%*s type %s \n", (depth + 1) * 2, "", type.convertedValue.c_str());
+  fprintf(stderr, "%*s (%llu .. %llu)\n", (depth + 1) * 2, "", minOccurs, maxOccurs);
+  fprintf(stderr, "%*s %d variants: ", (depth + 1) * 2, "", (int) variant.size());
+  for (List<Mstring>::iterator var = variant.begin(); var; var = var->Next) {
+    fprintf(stderr, "%s, ", var->Data.c_str());
+  }
+  fprintf(stderr, "\n%*s path =/%s/", (depth + 1) * 2, "", actualPath.c_str());
+}
+
+void AttributeType::printToFile(FILE* file, unsigned level) {
+  if (!isVisible()) {
+    return;
+  }
+  printComment(file, level);
+  indent(file, level);
+  if(enumeration.modified && hasVariant(Mstring("\"list\""))){
+    printMinOccursMaxOccurs(file, false);
+    fprintf(file, "enumerated {\n");
+    enumeration.sortFacets();
+    enumeration.printToFile(file);
+    indent(file, level);
+    fprintf(file, "\n} %s", name.convertedValue.c_str());
+  } else if (enumeration.modified) {
+    if (isFloatType(builtInBase)) {
+      fprintf(file, "%s %s (", type.convertedValue.c_str(), name.convertedValue.c_str());
+      enumeration.sortFacets();
+      enumeration.printToFile(file);
+      fputc(')', file);
+    } else {
+      fprintf(file, "enumerated {\n");
+      enumeration.sortFacets();
+      enumeration.printToFile(file);
+      fprintf(file, "\n");
+      indent(file, level);
+      fprintf(file, "} %s", name.convertedValue.c_str());
+    }
+  }else { 
+    printMinOccursMaxOccurs(file, false);
+    int multiplicity = multi(module, getReference(), this);
+    if ((multiplicity > 1) && getReference().get_ref()) {
+      fprintf(file, "%s.", getReference().get_ref()->getModule()->getModulename().c_str());
+    }
+    fprintf(file, "%s %s", type.convertedValue.c_str(), name.convertedValue.c_str());
+    getPattern().printToFile(file);
+    getValue().printToFile(file);
+    getLength().printToFile(file);
+  }
+    if (isOptional || isAnyAttr) {
+    fprintf(file, " optional");
+  }
+}
diff --git a/xsdconvert/AttributeType.hh b/xsdconvert/AttributeType.hh
new file mode 100644
index 000000000..118eb6b9e
--- /dev/null
+++ b/xsdconvert/AttributeType.hh
@@ -0,0 +1,131 @@
+///////////////////////////////////////////////////////////////////////////////
+// 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
+///////////////////////////////////////////////////////////////////////////////
+#ifndef ATTRIBUTETYPE_HH_
+#define ATTRIBUTETYPE_HH_
+
+#include "SimpleType.hh"
+#include "GeneralTypes.hh"
+#include "GeneralFunctions.hh"
+#include "GeneralFunctions.hh"
+#include "TTCN3Module.hh"
+#include "TTCN3ModuleInventory.hh"
+#include "ComplexType.hh"
+#include "Annotation.hh"
+
+/**
+ * Type that contains information of a field of a TTCN-3 record or union
+ *
+ */
+class AttributeType : public SimpleType {
+  bool isAnyAttr;
+
+  UseValue useVal;
+
+  Mstring actualPath;
+
+  Mstring nameSpace;
+
+  bool used; // To know if already in the extended or restricted type
+
+  TTCN3Module * origModule;
+
+public:
+  explicit AttributeType(ComplexType * a_complextype);
+  AttributeType(const AttributeType & other);
+  AttributeType & operator=(const AttributeType & rhs);
+  virtual ~AttributeType();
+  void setTypeOfField(const Mstring& in);
+  void setNameOfField(const Mstring& in);
+
+  void setOrigModule(TTCN3Module * m) {
+    origModule = m;
+  }
+
+  const TTCN3Module * getOrigModule() const {
+    return origModule;
+  }
+  void setToAnyAttribute();
+  void modifyValues();
+
+  void setUseVal(UseValue use_value) {
+    useVal = use_value;
+  }
+  void setFieldPath(const Mstring path);
+  void collectVariants(List<Mstring>& container);
+
+  UseValue getUseVal() const {
+    return useVal;
+  }
+
+  bool getUsed() const {
+    return used;
+  }
+
+  void setUsed(bool use) {
+    used = use;
+  }
+
+  const Mstring& getNameSpaceAttribute() const {
+    return nameSpace;
+  }
+
+  void addNameSpaceAttribute(Mstring namespace_) {
+    if(nameSpace.empty()){
+      nameSpace = namespace_;
+    }else {
+      nameSpace += " " + namespace_;
+    }
+  }
+  void nameConversion_names(QualifiedNames& used);
+  void applyUseAttribute();
+  void applyNamespaceAttribute(VariantMode varLabel);
+
+  void applyMinMaxOccursAttribute(unsigned long long min, unsigned long long max);
+
+  const Mstring& getPath() const {
+    return actualPath;
+  }
+
+  bool isAnyAttribute() const {
+    return isAnyAttr;
+  }
+
+  void printToFile(FILE* file, unsigned level);
+
+  void dump(unsigned int depth) const;
+
+};
+
+inline bool compareAttributeNameSpaces(AttributeType * lhs, AttributeType * rhs) {
+  if (lhs->isAnyAttribute()) {
+    return false;
+  }
+  if (lhs->getOrigModule()->getTargetNamespace() == Mstring("NoTargetNamespace") && rhs->getOrigModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+    return false;
+  } else if (lhs->getOrigModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+    return true;
+  } else if (rhs->getOrigModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+    return false;
+  } else {
+    return lhs->getOrigModule()->getTargetNamespace() <= rhs->getOrigModule()->getTargetNamespace();
+  }
+}
+
+inline bool compareAttributeTypes(AttributeType * lhs, AttributeType * rhs) {
+  if (lhs->isAnyAttribute()) {
+    return false;
+  }
+  if (lhs->getOrigModule()->getTargetNamespace() == rhs->getOrigModule()->getTargetNamespace()) {
+    return lhs->getName().originalValueWoPrefix < rhs->getName().originalValueWoPrefix;
+  } else {
+    return false;
+  }
+}
+
+
+#endif /* ATTRIBUTETYPE_HH_ */
diff --git a/xsdconvert/ComplexType.cc b/xsdconvert/ComplexType.cc
index 9c3b26215..9dfb32a1a 100644
--- a/xsdconvert/ComplexType.cc
+++ b/xsdconvert/ComplexType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -11,804 +11,742 @@
 #include "XMLParser.hh"
 #include "TTCN3Module.hh"
 #include "TTCN3ModuleInventory.hh"
-#include "SimpleType.hh"
-#include "FieldType.hh"
+#include "Annotation.hh"
 
 #include <assert.h>
 
 ComplexType::ComplexType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct)
-: RootType(a_parser, a_module, a_construct)
-, fields()
-, fields_final()
-, actualLevel(1)
-, actualPath()
-, ctmode()
-, fieldGenInfo()
-, recGenInfo()
-, attributeBases()
-, embed_inSequence()
-, embed_inChoice()
-, embed_inAll()
+: SimpleType(a_parser, a_module, a_construct)
+, top(true)
+, nillable(false)
+, enumerated(false)
+, embed(false)
 , with_union(false)
+, first_child(false)
+, fromAll(false)
+, max_alt(0)
+, skipback(0)
+, lastType()
+, actualPath(empty_string)
+, actfield(this)
+, nameDep(NULL)
+, nillable_field(NULL)
+, basefield(NULL)
+, cmode(CT_undefined_mode)
 , resolved(No)
-{
-  initialSettings();
-  ctmode.push_back(CT_undefined_mode);
+, complexfields()
+, attribfields()
+, enumfields()
+, tagNames() {
+  xsdtype = n_complexType;
 }
 
-ComplexType::ComplexType(const ComplexType & other)
-: RootType(other)
-, fields()
-, fields_final()
-, actualLevel(other.actualLevel)
-, actualPath(other.actualPath)
-, ctmode(other.ctmode)
-, fieldGenInfo(other.fieldGenInfo)
-, recGenInfo(other.recGenInfo)
-, attributeBases(other.attributeBases)
-, embed_inSequence(other.embed_inSequence)
-, embed_inChoice(other.embed_inChoice)
-, embed_inAll(other.embed_inAll)
+ComplexType::ComplexType(ComplexType & other)
+: SimpleType(other)
+, top(other.top)
+, nillable(other.nillable)
+, enumerated(other.enumerated)
+, embed(other.embed)
 , with_union(other.with_union)
-, resolved(other.resolved)
-{
-  for (List<FieldType*>::iterator field = other.fields.begin(); field; field = field->Next) {
-    fields.push_back(new FieldType(*(field->Data)));
+, first_child(other.first_child)
+, fromAll(other.fromAll)
+, max_alt(other.max_alt)
+, skipback(other.skipback)
+, lastType(other.lastType)
+, actualPath(other.actualPath)
+, actfield(this)
+, nameDep(other.nameDep)
+, nillable_field(NULL)
+, basefield(NULL)
+, cmode(other.cmode)
+, resolved(other.resolved) {
+  type.originalValueWoPrefix = other.type.originalValueWoPrefix;
+  for (List<AttributeType*>::iterator attr = other.attribfields.begin(); attr; attr = attr->Next) {
+    attribfields.push_back(new AttributeType(*attr->Data));
+    attribfields.back()->parent = this;
+  }
+
+  for (List<ComplexType*>::iterator field = other.complexfields.begin(); field; field = field->Next) {
+    complexfields.push_back(new ComplexType(*field->Data));
+    complexfields.back()->parent = this;
+    if(field->Data == other.basefield){
+      basefield = complexfields.back();
+    }else if(field->Data == other.nillable_field){
+      nillable_field = complexfields.back();
+    }
   }
-  for (List<FieldType*>::iterator field = other.fields_final.begin(); field; field = field->Next) {
-    fields_final.push_back(new FieldType(*(field->Data)));
+
+  if (other.nameDep != NULL) {
+    SimpleType* dep = other.nameDep;
+    if(dep->getSubstitution() != NULL){
+      dep->getSubstitution()->addToNameDepList(this);
+      nameDep = dep->getSubstitution();
+    }else {
+      other.nameDep->addToNameDepList(this);
+    }
   }
 }
 
-ComplexType::ComplexType(const SimpleType & other, CT_fromST c)
-: RootType(other)
-, fields()
-, fields_final()
-, actualLevel(1)
-, actualPath()
-, ctmode()
-, fieldGenInfo()
-, recGenInfo()
-, attributeBases()
-, embed_inSequence()
-, embed_inChoice()
-, embed_inAll()
+ComplexType::ComplexType(ComplexType * other)
+: SimpleType(other->getParser(), other->getModule(), c_unknown)
+, top(false)
+, nillable(false)
+, enumerated(false)
+, embed(false)
 , with_union(false)
+, first_child(false)
+, fromAll(false)
+, max_alt(0)
+, skipback(0)
+, lastType()
+, actualPath(empty_string)
+, actfield(this)
+, nameDep(NULL)
+, nillable_field(NULL)
+, basefield(NULL)
+, cmode(CT_undefined_mode)
 , resolved(No)
-{
-  initialSettings();
+, complexfields()
+, attribfields()
+, enumfields()
+, tagNames() {
+  xsdtype = n_complexType;
+  parent = other;
+  outside_reference = ReferenceData();
+}
 
-  module->replaceLastMainType(this);
-  module->setActualXsdConstruct(c_complexType);
-  construct = c_complexType;
-  ctmode.push_back(CT_simpletype_mode);
-
-  switch (c)
-  {
-  case fromTagUnion:
-    type.upload(Mstring("union"));
-    with_union = true;
-    break;
-  case fromTagNillable:
-    addVariant(V_useNil);
-    type.upload(Mstring("record"));
-    break;
-  case fromTagComplexType:
-    type.upload(Mstring("record"));
-    break;
+ComplexType::ComplexType(const SimpleType & other, CT_fromST c)
+: SimpleType(other)
+, top(true)
+, nillable(false)
+, enumerated(false)
+, embed(false)
+, with_union(false)
+, first_child(false)
+, fromAll(false)
+, max_alt(0)
+, skipback(0)
+, lastType()
+, actualPath(empty_string)
+, actfield(this)
+, nameDep(NULL)
+, nillable_field(NULL)
+, basefield(NULL)
+, cmode(CT_simpletype_mode)
+, resolved(No)
+, complexfields()
+, attribfields()
+, enumfields()
+, tagNames() {
+
+  if(c != fromTagSubstition){
+    module->replaceLastMainType(this);
+    module->setActualXsdConstruct(c_complexType);
   }
-}
+  construct = c_complexType;
 
-ComplexType::~ComplexType()
-{
-  for (List<FieldType*>::iterator field = fields.begin(); field; field = field->Next) {
-    delete(field->Data);
+  switch (c) {
+    case fromTagUnion:
+      type.upload(Mstring("union"));
+      with_union = true;
+      xsdtype = n_union;
+      break;
+    case fromTagNillable:
+      addVariant(V_useNil);
+      type.upload(Mstring("record"));
+      break;
+    case fromTagComplexType:
+      type.upload(Mstring("record"));
+      xsdtype = n_complexType;
+      break;
+    case fromTagSubstition:
+      type.upload(Mstring("union"));
+      name.upload(getName().originalValueWoPrefix + Mstring("_group"));
+      xsdtype = n_union;
+      subsGroup = this;
+      variant.clear();
+      enumeration.modified = false;
+      value.modified = false;
+      pattern.modified = false;
+      length.modified = false;
+      whitespace.modified = false;
+      break;
   }
 }
 
-void ComplexType::initialSettings()
-{
-  FieldType * invisibleField = new FieldType(this);
-  fields.push_back(invisibleField);
-
-  invisibleField->setNameOfField(Mstring("onlyForStoringAttributes"), false);
-  invisibleField->setInvisible();
+ComplexType::~ComplexType() {
+  for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+    delete field->Data;
+    field->Data = NULL;
+  }
+  complexfields.clear();
 
-  attributeBases.push_back(AttrBaseType(invisibleField));
-  recGenInfo.push_back(GenerationType(NULL, 2));
+  for (List<AttributeType*>::iterator field = attribfields.begin(); field; field = field->Next) {
+    delete field->Data;
+    field->Data = NULL;
+  }
+  attribfields.clear();
 }
 
-void ComplexType::loadWithValues()
-{
+void ComplexType::loadWithValues() {
+  //Find the last field where the tag is found
+  if (this != actfield) {
+    actfield->loadWithValues();
+    return;
+  }
+  
   const XMLParser::TagAttributes & atts = parser->getActualTagAttributes();
-
-  switch (parser->getActualTagName())
-  {
-  case XMLParser::n_sequence:
-    if (!embed_inChoice.empty() && embed_inChoice.back().valid) {
-      generateRecord(atts.minOccurs, atts.maxOccurs);
-      embed_inChoice.back().strictValid = false;
-    }
-    else if (atts.minOccurs != 1 || atts.maxOccurs != 1) {
-      generateRecord(atts.minOccurs, atts.maxOccurs);
-    }
-
-    embed_inSequence.push_back(EmbeddedType(parser->getActualDepth(), atts.minOccurs, atts.maxOccurs));
-    break;
-
-  case XMLParser::n_choice: {
-    if (module->getActualXsdConstruct() == c_group) {
-      type.upload(Mstring("union"));
+  
+  switch (parser->getActualTagName()) {
+    case n_sequence:
+      if (!top && xsdtype != n_sequence && xsdtype != n_complexType && xsdtype != n_extension && xsdtype != n_restriction && xsdtype != n_element) {
+        //Create new record
+        ComplexType * rec = new ComplexType(this);
+        rec->type.upload(Mstring("record"));
+        rec->name.upload(Mstring("sequence"));
+        rec->addVariant(V_untagged);
+        rec->setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+        rec->setXsdtype(n_sequence);
+        complexfields.push_back(rec);
+        actfield = rec;
+      } else {
+        //Do not create new record, it is an embedded sequence
+        if (xsdtype == n_sequence && atts.minOccurs == 1 && atts.maxOccurs == 1) {
+          skipback += 1;
+        }
+        type.upload(Mstring("record"));
+        xsdtype = n_sequence;
+        setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+      }
       break;
-    }
-    generateUnion(atts.minOccurs, atts.maxOccurs);
-
-    embed_inChoice.push_back(EmbeddedType(parser->getActualDepth()));
-    break; }
-
-  case XMLParser::n_all: {
-    FieldType * new_attribute = generateAttribute();
-    new_attribute->setTypeOfField(Mstring("enumerated"));
-    new_attribute->setNameOfField(Mstring("order"), false);
-    new_attribute->setBuiltInBase(Mstring("string"));
-    new_attribute->getEnumeration().modified = true;
-    new_attribute->applyMinMaxOccursAttribute(0, ULLONG_MAX);
-
-    if (recGenInfo.size() == 1) {
-      addVariant(V_useOrder); // use the default false - from TR HL10354
-    }
-    else {
-      recGenInfo.back().field->addVariant(V_useOrder); // use the default false - from TR HL10354
-    }
-
-    embed_inAll.push_back(EmbeddedType(parser->getActualDepth(), atts.minOccurs, atts.maxOccurs, new_attribute));
-    break; }
-
-  case XMLParser::n_restriction:
-  case XMLParser::n_extension:
-    if (atts.base.getValueWithoutPrefix(':') == name.convertedValue) // TODO recusivity
+    case n_choice:
+      if (!top || xsdtype != n_group) {
+        //Create new union field
+        ComplexType * choice = new ComplexType(this);
+        choice->type.upload(Mstring("union"));
+        choice->name.upload(Mstring("choice"));
+        choice->setXsdtype(n_choice);
+        choice->addVariant(V_untagged);
+        choice->setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+        actfield = choice;
+        complexfields.push_back(choice);
+      } else {
+        xsdtype = n_choice;
+        type.upload(Mstring("union"));
+      }
+      break;
+    case n_all:
     {
-      /*			fields_for_restriction.back()->setTypeOfField(name.value + "_anonymus_extension");
-			ComplexType * new_CT = new ComplexType(*this);
-			module->addMainType(new_CT);
-			new_CT->setNameOfMainType(name.value + "_anonymus_extension", doc->getSchemaname(), doc->getTargetNamespace());
-       */		}
-    else if (ctmode.back() == CT_simpletype_mode) {
-      if (!fieldGenInfo.empty()) {
-        fieldGenInfo.back().field->setTypeOfField(atts.base);
-        fieldGenInfo.back().field->setReference(atts.base);
-        if (parser->getActualTagName() == XMLParser::n_restriction)
-          fieldGenInfo.back().field->setMode(SimpleType::restrictionMode);
-        else
-          fieldGenInfo.back().field->setMode(SimpleType::extensionMode);
-        attributeBases.push_back(AttrBaseType(fieldGenInfo.back().field, parser->getActualDepth()));
-      }
-    }
-    else if (ctmode.back() == CT_complextype_mode){
-      FieldType * new_field = generateField();
-      new_field->setTypeOfField(atts.base);
-      new_field->setNameOfField(Mstring("base"), false);
-      new_field->setReference(atts.base);
-      if (parser->getActualTagName() == XMLParser::n_restriction)
-        fieldGenInfo.back().field->setMode(SimpleType::restrictionMode);
-      else
-        fieldGenInfo.back().field->setMode(SimpleType::extensionMode);
-      new_field->addVariant(V_untagged);
-      attributeBases.push_back(AttrBaseType(new_field, parser->getActualDepth()));
-      if (atts.base.getValueWithoutPrefix(':') == "anyType") new_field->setInvisible();
-    }
-    break;
-
-  case XMLParser::n_element: {
-    if (atts.nillable)
+      //Create the record of enumerated field
+      xsdtype = n_all;
+      ComplexType * enumField = new ComplexType(this);
+      enumField->setTypeValue(Mstring("enumerated"));
+      enumField->setNameValue(Mstring("order"));
+      enumField->setBuiltInBase(Mstring("string"));
+      enumField->enumerated = true;
+      enumField->setMinMaxOccurs(0, ULLONG_MAX, false);
+      setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+      addVariant(V_useOrder);
+      complexfields.push_back(enumField);
+      if (atts.minOccurs == 0) {
+        isOptional = true;
+      }
+      break;
+    }
+    case n_restriction:
+      mode = restrictionMode;
+      //If it is an xsd:union then call SimpleType::loadWithValues
+      if (parent != NULL && parent->with_union) {
+        SimpleType::loadWithValues();
+        break;
+      }
+      if (cmode == CT_simpletype_mode) {
+        //if it is from a SimpleType, then create a base field
+        ComplexType * f = new ComplexType(this);
+        f->name.upload(Mstring("base"));
+        f->type.upload(atts.base);
+        f->setReference(atts.base);
+        f->addVariant(V_untagged);
+        complexfields.push_back(f);
+        basefield = f;
+        actfield = f;
+      } else if (cmode == CT_complextype_mode) {
+        setReference(atts.base);
+        xsdtype = n_restriction;
+      }
+      break;
+    case n_extension:
+      mode = extensionMode;
+      if (cmode == CT_simpletype_mode) {
+        //if it is from a SimpleType, then create a base field
+        ComplexType * f = new ComplexType(this);
+        f->name.upload(Mstring("base"));
+        f->type.upload(atts.base);
+        f->setReference(atts.base);
+        f->addVariant(V_untagged);
+        complexfields.push_back(f);
+        basefield = f;
+        actfield = f;
+      } else if (cmode == CT_complextype_mode) {
+        setReference(atts.base);
+        xsdtype = n_extension;
+      }
+      break;
+    case n_element:
     {
-      FieldType * new_field = generateField();
-      if (ctmode.back() == CT_simpletype_mode) {
-        if (atts.type.empty()) {
-          new_field->setTypeOfField(Mstring("record"));
-          new_field->setNameOfField(Mstring("content"), true);
-          actualLevel++;
-          recGenInfo.push_back(GenerationType(new_field, parser->getActualDepth() + 2));
-        }
-        else {
-          new_field->setTypeOfField(atts.type);
-          new_field->setNameOfField(Mstring("content"), false);
-          new_field->setReference(atts.type, true);
-        }
-        new_field->applyMinMaxOccursAttribute(0, 1);
-      }
-      else {
-        new_field->setTypeOfField(Mstring("record"));
-        new_field->setNameOfField(atts.name, true);
-        new_field->addVariant(V_useNil, empty_string, true);
-        new_field->applyMinMaxOccursAttribute(atts.minOccurs, atts.maxOccurs, true);
-        actualLevel++;
-        recGenInfo.push_back(GenerationType(new_field, parser->getActualDepth()));
-        attributeBases.push_back(AttrBaseType(new_field, parser->getActualDepth()));
-
-        FieldType * new_field2 = generateField();
-        if (atts.type.empty()) {
-          new_field2->setTypeOfField(Mstring("record"));
-          new_field2->setNameOfField(Mstring("content"), true);
-          actualLevel++;
-          recGenInfo.push_back(GenerationType(new_field2, parser->getActualDepth() + 2));
-        }
-        else {
-          new_field2->setTypeOfField(atts.type);
-          new_field2->setNameOfField(Mstring("content"), false);
-          new_field2->setReference(atts.type, true);
+      if (atts.nillable) {
+        if(cmode == CT_simpletype_mode){
+          //If a simple top level element is nillable
+          ComplexType * nilrec = new ComplexType(this);
+          if (atts.type.empty()) {
+            nilrec->type.upload(Mstring("record"));
+          } else {
+            nilrec->type.upload(atts.type);
+          }
+          nilrec->name.upload(Mstring("content"));
+          nilrec->isOptional = true;
+          nilrec->nillable = true;
+          setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+          complexfields.push_back(nilrec);
+          type.upload(Mstring("record"));
+          name.upload(atts.name);
+          actfield = nilrec;
+          nillable_field = nilrec;
+        } else {
+          //From a complexType element is nillable
+          ComplexType * record = new ComplexType(this);
+          ComplexType * nilrec = new ComplexType(record);
+          if (atts.type.empty()) {
+            nilrec->type.upload(Mstring("record"));
+          } else {
+            nilrec->type.upload(atts.type);
+          }
+          record->name.upload(atts.name);
+          record->type.upload(Mstring("record"));
+          record->complexfields.push_back(nilrec);
+          record->addVariant(V_useNil);
+          record->nillable_field = nilrec;
+          record->setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+
+          nilrec->name.upload(Mstring("content"));
+          nilrec->nillable = true;
+          nilrec->isOptional = true;
+          nilrec->tagNames.push_back(parser->getActualTagName());
+          complexfields.push_back(record);
+          actfield = nilrec;
         }
-        new_field2->applyMinMaxOccursAttribute(0, 1);
-     }
-     ctmode.push_back(CT_simpletype_mode);
-     return;
-    }
-
-    FieldType * new_field = generateField();
-    unsigned long long int temp_minOccurs = atts.minOccurs;
-    unsigned long long int temp_maxOccurs = atts.maxOccurs;
-
-    if (!embed_inAll.empty() && embed_inAll.back().valid) {
-      assert((embed_inAll.back().minOccurs | 1ULL) == 1ULL); // 0 or 1
-      temp_minOccurs = llmin(atts.minOccurs, embed_inAll.back().minOccurs);
-      assert(embed_inAll.back().maxOccurs == 1ULL); // which makes the following somewhat redundant
-      temp_maxOccurs = llmax(atts.maxOccurs, embed_inAll.back().maxOccurs);
-
-      if (embed_inAll.back().depth + 1 == parser->getActualDepth()) {
-        // we are inside an <xs:all>
-        if ((temp_minOccurs | 1ULL) != 1ULL) {
-          printError(getModule()->getSchemaname(), name.convertedValue,
-            Mstring("Inside <all>, minOccurs must be 0 or 1"));
-          TTCN3ModuleInventory::incrNumErrors();
+      }else {
+        //It is a simple element
+        ComplexType* c = new ComplexType(this);
+        c->setXsdtype(n_element);
+        c->type.upload(atts.type);
+        c->name.upload(atts.name);
+        c->setReference(atts.type);
+        c->setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+        c->applyDefaultAttribute(atts.default_);
+        c->applyFixedAttribute(atts.fixed);
+        c->setElementFormAs(atts.form);
+        if (atts.ref.empty()) {
+          c->setReference(atts.type);
+        } else {
+          c->applyRefAttribute(atts.ref);
+          c->name.upload(atts.ref.getValueWithoutPrefix(':'));
+          c->type.upload(atts.ref);
         }
-
-        if (temp_maxOccurs != 1ULL) {
-          printError(getModule()->getSchemaname(), name.convertedValue,
-            Mstring("Inside <all>, maxOccurs must be 1"));
-          TTCN3ModuleInventory::incrNumErrors();
+        c->applySubstitionGroupAttribute(atts.substitionGroup);
+        c->applyBlockAttribute(atts.block);
+        actfield = c;
+
+        //Inside all have some special conditions
+        if (xsdtype == n_all) {
+          if (atts.minOccurs > 1) {
+            printError(getModule()->getSchemaname(), name.convertedValue,
+              Mstring("Inside <all>, minOccurs must be 0 or 1"));
+            TTCN3ModuleInventory::incrNumErrors();
+          }
+          if (atts.maxOccurs != 1) {
+            printError(getModule()->getSchemaname(), name.convertedValue,
+              Mstring("Inside <all>, maxOccurs must be 1"));
+            TTCN3ModuleInventory::incrNumErrors();
+          }
+          c->fromAll = true;
+          complexfields.push_back(c);
+          if (isOptional) {
+            c->isOptional = true;
+          }
+        } else {
+          complexfields.push_back(c);
         }
       }
-
-      Mstring res, var;
-      XSDName2TTCN3Name(atts.name, embed_inAll.back().order_attribute->getEnumeration().items_string,
-        enum_id_name, res, var);
-      embed_inAll.back().valid = false;
-      // We now throw away the result of the name transformation above.
-      // The only lasting effect is the addition to the enumeration items.
-    }
-    if (!embed_inSequence.empty() && embed_inSequence.back().valid) {
-      if (embed_inSequence.back().maxOccurs == 0) {
-        temp_minOccurs = 0;
-        temp_maxOccurs = 0;
-      }
-    }
-
-    if (atts.ref.empty()) {
-      new_field->setReference(atts.type, true);
-    }
-    else {
-      new_field->applyRefAttribute(atts.ref);
-    }
-    new_field->setTypeOfField(atts.type);
-    new_field->setNameOfField(atts.name, false);
-    new_field->applyDefaultAttribute(atts.default_);
-    new_field->applyFixedAttribute(atts.fixed);
-    new_field->applyMinMaxOccursAttribute(temp_minOccurs, temp_maxOccurs, true);
-    attributeBases.push_back(AttrBaseType(new_field, parser->getActualDepth()));
-
-    ctmode.push_back(CT_simpletype_mode);
-    break; }
-
-  case XMLParser::n_attribute: {
-    FieldType * new_attribute = generateAttribute();
-    if (module->getActualXsdConstruct() != c_attributeGroup) {
-      new_attribute->addVariant(V_attribute);
-    }
-    unsigned long long int temp_minOccurs = atts.minOccurs;
-    unsigned long long int temp_maxOccurs = atts.maxOccurs;
-    if (atts.ref.empty()) {
-      new_attribute->setReference(atts.type, true);
-    }
-    else {
-      new_attribute->applyRefAttribute(atts.ref);
-    }
-    new_attribute->setTypeOfField(atts.type);
-    new_attribute->setNameOfField(atts.name, false);
-    new_attribute->applyDefaultAttribute(atts.default_);
-    new_attribute->applyFixedAttribute(atts.fixed);
-    new_attribute->applyUseAttribute(atts.use, temp_minOccurs, temp_maxOccurs);
-    new_attribute->applyMinMaxOccursAttribute(temp_minOccurs, temp_maxOccurs, true);
-    ctmode.push_back(CT_simpletype_mode);
-    break; }
-
-  case XMLParser::n_any: {
-    FieldType * new_field = generateField();
-    new_field->setTypeOfField(Mstring("xsd:string"));
-    new_field->setNameOfField(Mstring("elem"), false);
-    new_field->applyMinMaxOccursAttribute(atts.minOccurs, atts.maxOccurs, true);
-    new_field->applyNamespaceAttribute(V_anyElement, atts.namespace_);
-    break; }
-
-  case XMLParser::n_anyAttribute: {
-    FieldType * new_field = generateAttribute();
-    new_field->setTypeOfField(Mstring("xsd:string"));
-    new_field->setNameOfField(Mstring("attr"), false);
-    new_field->setToAnyAttribute();
-    new_field->applyMinMaxOccursAttribute(0, ULLONG_MAX);
-    new_field->applyNamespaceAttribute(V_anyAttributes, atts.namespace_);
-    break; }
-
-  case XMLParser::n_attributeGroup:
-    name.upload(atts.name);
-    if (!atts.ref.empty()) {
-      FieldType * new_attribute = generateAttribute();
-      new_attribute->applyRefAttribute(atts.ref);
-    }
-    ctmode.push_back(CT_complextype_mode);
-    break;
-
-  case XMLParser::n_group: {
-    if (parser->getActualDepth() == 1) {
-      name.upload(atts.name);
       break;
     }
-
-    FieldType * new_field = generateField();
-    new_field->applyRefAttribute(atts.ref);
-    if (atts.minOccurs != 1 || atts.maxOccurs != 1) {
-      new_field->applyMinMaxOccursAttribute(atts.minOccurs, atts.maxOccurs, true);
-    }
-    ctmode.push_back(CT_complextype_mode);
-    break; }
-
-  case XMLParser::n_union: {
-    if (fieldGenInfo.empty()) {
-      type.upload(Mstring("union"));
-      addVariant(V_useUnion);
-    }
-    else {
-      fieldGenInfo.back().field->setTypeValue(Mstring("union"));
-      fieldGenInfo.back().field->addVariant(V_useUnion);
-      fieldGenInfo.push_back(GenerationType(fieldGenInfo.back().field, parser->getActualDepth()));
-      recGenInfo.push_back(GenerationType(fieldGenInfo.back().field, parser->getActualDepth()));
-      actualLevel++;
-      addToActualPath(fieldGenInfo.back().field->getVariantId() + ".");
-    }
-    with_union = true;
-    List<Mstring> types;
-    if (!atts.memberTypes.empty()) {
-      expstring_t valueToSplitIntoTokens = mcopystr(atts.memberTypes.c_str());
-      char * token;
-      token = strtok (valueToSplitIntoTokens," ");
-      while (token != NULL)
-      {
-        types.push_back(Mstring(token));
-        token = strtok (NULL, " ");
-      }
-      Free(valueToSplitIntoTokens);
-      for (List<Mstring>::iterator memberType = types.begin(); memberType; memberType = memberType->Next)
-      {
-        Mstring tmp_name = memberType->Data.getValueWithoutPrefix(':');
-        FieldType * new_field = generateField();
-        new_field->setNameOfField(tmp_name, false);
-        new_field->setTypeOfField(memberType->Data);
-        new_field->setReference(memberType->Data);
-      }
-    }
-    break; }
-
-  case XMLParser::n_simpleType:
-  case XMLParser::n_simpleContent: {
-    Mstring base;
-    if (with_union)
+    case n_attribute:
     {
-      expstring_t tmp_string = NULL;
-      if (recGenInfo.back().max_alt == 0) {
-        tmp_string = mcopystr("alt_");
+      AttributeType * attribute = new AttributeType(this);
+      attribute->addVariant(V_attribute);
+      attribute->applyMinMaxOccursAttribute(0, 1);
+      attribute->setXsdtype(n_attribute);
+      attribute->applyDefaultAttribute(atts.default_);
+      attribute->applyFixedAttribute(atts.fixed);
+      attribute->setUseVal(atts.use);
+      attribute->setAttributeFormAs(atts.form);
+      lastType = n_attribute;
+      if (atts.ref.empty()) {
+        attribute->setNameOfField(atts.name);
+        attribute->setTypeOfField(atts.type);
+        attribute->setReference(atts.type, true);
+      } else {
+        attribute->applyRefAttribute(atts.ref);
       }
-      else
-      {
-        tmp_string = mprintf("alt_%d", recGenInfo.back().max_alt);
+      actfield = attribute;
+      
+      //In case of nillable parent it is difficult...
+      if (nillable && parent != NULL) {
+        parent->attribfields.push_back(attribute);
+        attribute->parent = parent;
+      } else if (nillable && !complexfields.empty() && parent == NULL) {
+        complexfields.back()->attribfields.push_back(attribute);
+      } else if (parent != NULL && (parent->mode == extensionMode || parent->mode == restrictionMode) && name.convertedValue == Mstring("base")) {
+        parent->attribfields.push_back(attribute);
+        attribute->parent = parent;
+      } else {
+        attribfields.push_back(attribute);
       }
-      base = tmp_string; // NULL is OK
-      Free(tmp_string);
-      recGenInfo.back().max_alt++;
+      break;
     }
-    else {
-      base = "base";
+    case n_any:
+    {
+      ComplexType * any = new ComplexType(this);
+      any->name.upload(Mstring("elem"));
+      any->type.upload(Mstring("xsd:string"));
+      any->applyNamespaceAttribute(V_anyElement, atts.namespace_);
+      any->setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+      any->setXsdtype(n_any);
+      complexfields.push_back(any);
+      break;
     }
-    if (parser->getParentTagName() != XMLParser::n_element &&
-      parser->getParentTagName() != XMLParser::n_attribute)
+    case n_anyAttribute:
     {
-      FieldType * new_field = generateField();
-      new_field->setNameOfField(base, false);
-      if (new_field->getName().convertedValue == "base")
-      {
-        new_field->addVariant(V_untagged); // name = base
+      AttributeType * anyattr = new AttributeType(this);
+      anyattr->setXsdtype(n_anyAttribute);
+      anyattr->setNameOfField(Mstring("attr"));
+      anyattr->setTypeValue(Mstring("xsd:string"));
+      anyattr->setToAnyAttribute();
+      anyattr->applyMinMaxOccursAttribute(0, ULLONG_MAX);
+      anyattr->addNameSpaceAttribute(atts.namespace_);
+      actfield = anyattr;
+
+      //In case of nillable parent it is difficult...
+      if (nillable && parent != NULL) {
+        parent->attribfields.push_back(anyattr);
+        anyattr->parent = parent;
+      } else if (nillable && !complexfields.empty() && parent == NULL) {
+        complexfields.back()->attribfields.push_back(anyattr);
+      } else if (parent != NULL && (parent->mode == extensionMode || parent->mode == restrictionMode) && name.convertedValue == Mstring("base")) {
+        parent->attribfields.push_back(anyattr);
+        anyattr->parent = parent;
+      } else {
+        attribfields.push_back(anyattr);
       }
-      else
-      {
-        new_field->addVariant(V_nameAs, empty_string, true); // name = alt_x
-      }
-      if (!embed_inChoice.empty()) embed_inChoice.back().valid = false;
+      break;
     }
-    if (!embed_inChoice.empty()) embed_inChoice.back().strictValid = false;
-
-    ctmode.push_back(CT_simpletype_mode);
-    break; }
-
-  case XMLParser::n_complexType:
-    name.upload(atts.name);
-    // fall through
-  case XMLParser::n_complexContent:
-    if (!fieldGenInfo.empty())
+    case n_attributeGroup:
+      if (!atts.ref.empty()) {
+        ComplexType * g = new ComplexType(this);
+        g->setXsdtype(n_attributeGroup);
+        g->setReference(atts.ref);
+        complexfields.push_back(g);
+        actfield = g;
+      } else {
+        xsdtype = n_attributeGroup;
+        name.upload(Mstring(atts.name));
+        setInvisible();
+      }
+      break;
+    case n_group:
+      if (atts.ref.empty()) {
+        //It is a definition
+        xsdtype = n_group;
+        name.upload(atts.name);
+      } else {
+        //It is a reference
+        ComplexType* group = new ComplexType(this);
+        group->setXsdtype(n_group);
+        group->name.upload(atts.name);
+        group->setReference(Mstring(atts.ref));
+        group->setMinMaxOccurs(atts.minOccurs, atts.maxOccurs);
+        complexfields.push_back(group);
+        actfield = group;
+      }
+      break;
+    case n_union:
     {
-      if (fieldGenInfo.back().field->getType().convertedValue != "record") {
-        fieldGenInfo.back().field->setTypeOfField(Mstring("record"));
-        fieldGenInfo.back().field->setNameOfField(empty_string, true);
-        actualLevel++;
-        recGenInfo.push_back(GenerationType(fieldGenInfo.back().field, parser->getActualDepth()));
+      with_union = true;
+      xsdtype = n_union;
+      type.upload(Mstring("union"));
+      addVariant(V_useUnion);
+      if (!atts.memberTypes.empty()) {
+        List<Mstring> types;
+        //Get the union values
+        expstring_t valueToSplitIntoTokens = mcopystr(atts.memberTypes.c_str());
+        char * token;
+        token = strtok(valueToSplitIntoTokens, " ");
+        while (token != NULL) {
+          types.push_back(Mstring(token));
+          token = strtok(NULL, " ");
+        }
+        Free(valueToSplitIntoTokens);
+        
+        //Create the union elements and push into the container
+        for (List<Mstring>::iterator memberType = types.begin(); memberType; memberType = memberType->Next) {
+          Mstring tmp_name = memberType->Data.getValueWithoutPrefix(':');
+          ComplexType * f = new ComplexType(this);
+          f->name.upload(tmp_name);
+          f->type.upload(memberType->Data);
+          f->setXsdtype(n_simpleType);
+          f->setReference(memberType->Data);
+          complexfields.push_back(f);
+        }
       }
+      break;
     }
-    if (atts.mixed)
+    case n_simpleType:
+    case n_simpleContent:
     {
-      FieldType * new_attribute = generateAttribute();
-      new_attribute->setTypeOfField(Mstring("string"));
-      new_attribute->setNameOfField(Mstring("embed_values"), false);
-      new_attribute->applyMinMaxOccursAttribute(0, ULLONG_MAX);
-      if (attributeBases.size() == 1) {
-        addVariant(V_embedValues);
-      }
-      else {
-        attributeBases.back().base->addVariant(V_embedValues); // TR HL14121
+      xsdtype = parser->getActualTagName();
+      cmode = CT_simpletype_mode;
+      Mstring fieldname;
+      if (with_union) {
+        if (max_alt == 0) {
+          fieldname = Mstring("alt_");
+        } else {
+          fieldname = mprintf("alt_%d", max_alt);
+        }
+        max_alt++;
+        ComplexType * field = new ComplexType(this);
+        field->name.upload(fieldname);
+        field->setXsdtype(n_simpleType);
+        field->addVariant(V_nameAs, empty_string, true);
+        complexfields.push_back(field);
+        actfield = field;
       }
-      recGenInfo.back().embed_values_attribute = new_attribute;
-    }
-    ctmode.push_back(CT_complextype_mode);
-    if (!embed_inChoice.empty()) {
-      embed_inChoice.back().valid = false;
-      embed_inChoice.back().strictValid = false;
+      break;
     }
-    break;
-
-  case XMLParser::n_length:
-  case XMLParser::n_minLength:
-  case XMLParser::n_maxLength:
-  case XMLParser::n_pattern:
-  case XMLParser::n_enumeration:
-  case XMLParser::n_whiteSpace:
-  case XMLParser::n_minInclusive:
-  case XMLParser::n_maxInclusive:
-  case XMLParser::n_minExclusive:
-  case XMLParser::n_maxExclusive:
-  case XMLParser::n_totalDigits:
-    if (!fieldGenInfo.empty())
-      fieldGenInfo.back().field->loadWithValues();
-    break;
-
-  case XMLParser::n_annotation:
-  case XMLParser::n_documentation:
-    break;
-
-  case XMLParser::n_label:
-    addComment(Mstring("LABEL:"));
-    break;
-
-  case XMLParser::n_definition:
-    addComment(Mstring("DEFINITION:"));
-    break;
-
-  default:
-    break;
+    case n_complexType:
+      name.upload(atts.name);
+      type.upload(Mstring("record"));
+      applyAbstractAttribute(atts.abstract);
+      applySubstitionGroupAttribute(atts.substitionGroup);
+      applyBlockAttribute(atts.block);
+      // fall through
+    case n_complexContent:
+      tagNames.push_back(parser->getActualTagName());
+      cmode = CT_complextype_mode;
+      if (atts.mixed) {
+        ComplexType * mixed = new ComplexType(this);
+        mixed->name.upload(Mstring("embed_values"));
+        mixed->type.upload(Mstring("xsd:string"));
+        mixed->setMinMaxOccurs(0, ULLONG_MAX, false);
+        mixed->embed = true;
+        complexfields.push_back(mixed);
+        addVariant(V_embedValues);
+      }
+      break;
+    case n_list:
+    case n_length:
+    case n_minLength:
+    case n_maxLength:
+    case n_pattern:
+    case n_enumeration:
+    case n_whiteSpace:
+    case n_minInclusive:
+    case n_maxInclusive:
+    case n_minExclusive:
+    case n_maxExclusive:
+    case n_totalDigits:
+    case n_fractionDigits:
+      SimpleType::loadWithValues();
+      break;
+    case n_label:
+      addComment(Mstring("LABEL:"));
+      break;
+    case n_definition:
+      addComment(Mstring("DEFINITION:"));
+      break;
+    default:
+      break;
   }
 }
 
 // called from endelementHandler
-void ComplexType::modifyValues()
-{
-  if (!fieldGenInfo.empty() && parser->getActualDepth() == fieldGenInfo.back().depth) {
-    fieldGenInfo.pop_back();
+void ComplexType::modifyValues() {
+  if (this != actfield) {
+    actfield->modifyValues();
+    return;
+  }
+  if (xsdtype == n_sequence) {
+    skipback = skipback - 1;
   }
-  if (!recGenInfo.empty() && parser->getActualDepth() == recGenInfo.back().depth && recGenInfo.size() != 1) {
-    actualLevel--;
-
-    actualPath = truncatePathWithOneElement(actualPath);
 
-    if (recGenInfo.size() > 1) {
-      recGenInfo.pop_back();
+  if ((xsdtype == n_element || 
+       xsdtype == n_complexType || 
+       xsdtype == n_complexContent || 
+       xsdtype == n_all || 
+       xsdtype == n_attribute || 
+       xsdtype == n_anyAttribute ||
+       xsdtype == n_choice || 
+       xsdtype == n_group || 
+       xsdtype == n_attributeGroup || 
+       xsdtype == n_extension || 
+       xsdtype == n_restriction || 
+       xsdtype == n_simpleType || 
+       xsdtype == n_simpleContent ||
+       (xsdtype == n_sequence && skipback < 0)
+      ) 
+      && parent != NULL) {
+    if (!tagNames.empty() && tagNames.back() == parser->getParentTagName()) {
+      if (nillable && tagNames.back() == n_element) {
+        parent->modifyValues();
+      }
+      tagNames.pop_back();
+    } else if (tagNames.empty()) {
+      parent->actfield = parent;
+      parent->lastType = xsdtype;
     }
   }
-  if (!embed_inSequence.empty() && parser->getActualDepth() == embed_inSequence.back().depth + 1) {
-    embed_inSequence.back().valid = true;
-  }
-  if (!embed_inSequence.empty() && parser->getActualDepth() == embed_inSequence.back().depth) {
-    embed_inSequence.pop_back();
-  }
-  if (!embed_inChoice.empty() && parser->getActualDepth() == embed_inChoice.back().depth + 1) {
-    embed_inChoice.back().valid = true;
-    embed_inChoice.back().strictValid = true;
-  }
-  if (!embed_inChoice.empty() && parser->getActualDepth() == embed_inChoice.back().depth) {
-    embed_inChoice.pop_back();
-  }
-  if (!embed_inAll.empty() && parser->getActualDepth() == embed_inAll.back().depth + 1) {
-    embed_inAll.back().valid = true;
+}
+
+void ComplexType::referenceResolving() {
+  if (resolved != No) return; // nothing to do
+  if(this == subsGroup){
+    resolved = Yes;
+    return;
   }
-  if (!embed_inAll.empty() && parser->getActualDepth() == embed_inAll.back().depth) {
-    embed_inAll.pop_back();
+  resolved = InProgress;
+  for (List<ComplexType*>::iterator ct = complexfields.begin(); ct; ct = ct->Next) {
+    // Referenece resolving of ComplexTypes
+    ct->Data->referenceResolving();
   }
-  // why is there no "valid = true" for attributeBases?
-  if (!attributeBases.empty() && parser->getActualDepth() == attributeBases.back().depth) {
-    attributeBases.pop_back();
+  for (List<AttributeType*>::iterator attr = attribfields.begin(); attr; attr = attr->Next) {
+    //Reference resolving for Attributes
+    resolveAttribute(attr->Data);
   }
-
-  switch (parser->getActualTagName())
-  {
-  case XMLParser::n_simpleType:
-  case XMLParser::n_simpleContent:
-  case XMLParser::n_complexType:
-  case XMLParser::n_complexContent:
-  case XMLParser::n_element:
-  case XMLParser::n_attribute:
-  case XMLParser::n_group:
-  case XMLParser::n_attributeGroup:
-    if (ctmode.size() == 3 && ctmode.front() == CT_undefined_mode
-      && ctmode.begin()->Next->Data == CT_complextype_mode) {
-      // the first two are always: 1."undefined", 2."complex"
-      ctmode.front() = ctmode.back();
-    }
-    ctmode.pop_back();
-    break;
-  default:
-    break;
+  
+  reference_resolving_funtion();
+  
+  if(!substitionGroup.empty()){
+    addToSubstitutions();
   }
-  return;
-}
-
-FieldType * ComplexType::generateField()
-{
-  FieldType * new_field = new FieldType(this);
-  fields.push_back(new_field);
-
-  new_field->setLevel(actualLevel);
-  new_field->setElementFormAs(module->getElementFormDefault());
-
-  fieldGenInfo.push_back(GenerationType(new_field, parser->getActualDepth()));
-
-  return new_field;
+  resolved = Yes;
 }
 
-FieldType * ComplexType::generateAttribute()
-{
-  FieldType * theBase = attributeBases.back().base;
-  FieldType * new_attribute = new FieldType(this);
-  theBase->addAttribute(new_attribute);
-
-  new_attribute->setLevel(theBase->getLevel());
-  if (theBase->getType().convertedValue == "record" || theBase->getType().convertedValue == "union") {
-    new_attribute->incrLevel();
+void ComplexType::reference_resolving_funtion() {
+  //Every child element references are resolved here.
+  if (outside_reference.empty() && basefield == NULL) {
+    return;
   }
-  new_attribute->setAttributeFormAs(module->getAttributeFormDefault());
-
-  fieldGenInfo.push_back(GenerationType(new_attribute, parser->getActualDepth()));
 
-  return new_attribute;
-}
-
-FieldType * ComplexType::generateRecord(unsigned long long int a_minOccurs, unsigned long long int a_maxOccurs)
-{
-  FieldType * new_record = new FieldType(this);
-  fields.push_back(new_record);
-
-  new_record->setTypeOfField(Mstring("record"));
-  new_record->setNameOfField(Mstring("sequence"), true);
-  new_record->addVariant(V_untagged, empty_string, true);
-  new_record->setLevel(actualLevel++);
-  new_record->setElementFormAs(module->getElementFormDefault());
-  new_record->applyMinMaxOccursAttribute(a_minOccurs, a_maxOccurs, true);
+  SimpleType * st = (SimpleType*) TTCN3ModuleInventory::getInstance().lookup(this, want_BOTH);
+  if (st == NULL && basefield == NULL) {
+    printError(module->getSchemaname(), name.convertedValue,
+      "Reference for a non-defined type: " + getReference().repr());
+    TTCN3ModuleInventory::getInstance().incrNumErrors();
+    outside_reference.set_resolved(NULL);
+    return;
+  }
 
-  fieldGenInfo.push_back(GenerationType(new_record, parser->getActualDepth()));
-  recGenInfo.push_back(GenerationType(new_record, parser->getActualDepth()));
+  resolveAttributeGroup(st);
 
-  return new_record;
-}
+  resolveGroup(st);
 
-FieldType * ComplexType::generateUnion(unsigned long long int a_minOccurs, unsigned long long int a_maxOccurs)
-{
-  FieldType * new_union = new FieldType(this);
+  resolveElement(st);
 
-  fields.push_back(new_union);
+  resolveSimpleTypeExtension();
 
-  new_union->setTypeOfField(Mstring("union"));
-  new_union->setNameOfField(Mstring("choice"), true);
-  new_union->addVariant(V_untagged, empty_string, true);
-  new_union->setLevel(actualLevel++);
-  new_union->setElementFormAs(module->getElementFormDefault());
-  new_union->applyMinMaxOccursAttribute(a_minOccurs, a_maxOccurs, true);
+  resolveSimpleTypeRestriction();
 
-  fieldGenInfo.push_back(GenerationType(new_union, parser->getActualDepth()));
-  recGenInfo.push_back(GenerationType(new_union, parser->getActualDepth()));
+  resolveComplexTypeExtension();
 
-  return new_union;
-}
+  resolveComplexTypeRestriction();
 
-bool ComplexType::hasUnresolvedReference()
-{
-  for (List<FieldType*>::iterator field = fields.begin(); field; field = field->Next)
-  {
-    if (!field->Data->getReference().empty() && !field->Data->getReference().is_resolved()) return true;
+  resolveUnion(st);
 
-    for (List<FieldType*>::iterator attr = field->Data->getAttributes().begin(); attr; attr = attr->Next)
-    {
-      if (!attr->Data->getReference().empty() && !attr->Data->getReference().is_resolved()) return true;
-    }
-  }
-  return false;
 }
 
-void ComplexType::referenceResolving()
-{
-  if (resolved != No) return; // nothing to do
-  resolved = InProgress;
-  for (List<FieldType*>::iterator field = fields.begin(); field; field = field->Next) {
-    reference_resolving_funtion(field->Data->getAttributes());
-  }
-  reference_resolving_funtion(fields);
-  for (List<FieldType*>::iterator field = fields.begin(); field; field = field->Next) {
-    field->Data->sortAttributes();
-  }
-  resolved = Yes;
+void ComplexType::setParent(ComplexType * par, SimpleType * child) {
+  child->parent = par;
 }
 
-void ComplexType::reference_resolving_funtion(List<FieldType*> & container)
-{
-  if (container.empty()) return; // take a quick exit
-
-  List<FieldType*> temp_container;
-  List<ImportedField> temp_container_imported;
-
-  for (List<FieldType*>::iterator field = container.begin(), nextField; field; field = nextField)
-  {
-    nextField = field->Next;
-    if (field->Data->getReference().empty() || field->Data->getReference().is_resolved()) {
-      temp_container.push_back(field->Data);
-      continue;
-    }
-
-    SimpleType  * found_ST = static_cast<SimpleType*>(
-      TTCN3ModuleInventory::getInstance().lookup(field->Data, want_ST));
-    ComplexType * found_CT = static_cast<ComplexType*>(
-      TTCN3ModuleInventory::getInstance().lookup(field->Data, want_CT));
-    // It _is_ possible to find both, in which case the simpleType is selected
-    // for no apparent reason.
-
-    if (found_ST != NULL) {
-      field->Data->referenceForST(found_ST, temp_container); // does not affect temp_container_imported
-      found_ST->addToNameDepList(field->Data);
-    }
-    else if (found_CT != NULL) {
-      // HACK the function returns 0 if the field has been added to one of the containers
-      //        returns the field if a copy has been added to to one of the containers
-      //        in this case the field can be safely deleted
-      FieldType* ft = field->Data->referenceForCT(*found_CT, temp_container, temp_container_imported);
-      if (!ft) {
-        found_CT->addToNameDepList(field->Data);
-      }
-      delete ft;
-    }
-    else {
-      printError(module->getSchemaname(), name.convertedValue,
-        "Reference for a non-defined type: " + field->Data->getReference().repr());
+void ComplexType::applyReference(const SimpleType & other, const bool on_attributes) {
+  type.convertedValue = other.getType().convertedValue;
+  type.originalValueWoPrefix = other.getType().convertedValue;
+
+  if (other.getMinOccurs() > minOccurs || other.getMaxOccurs() < maxOccurs) {
+    if (!on_attributes) {
+      expstring_t temp = memptystr();
+      temp = mputprintf(
+        temp,
+        "The occurrence range (%llu .. %llu) of the element (%s) is not compatible "
+        "with the occurrence range (%llu .. %llu) of the referenced element.",
+        minOccurs,
+        maxOccurs,
+        name.originalValueWoPrefix.c_str(),
+        other.getMinOccurs(),
+        other.getMaxOccurs());
+      printError(module->getSchemaname(), parent->getName().originalValueWoPrefix,
+        Mstring(temp));
+      Free(temp);
       TTCN3ModuleInventory::getInstance().incrNumErrors();
-
-      delete field->Data; // this field will not be restored
     }
+  } else {
+    minOccurs = llmax(minOccurs, other.getMinOccurs());
+    maxOccurs = llmin(maxOccurs, other.getMaxOccurs());
   }
 
-  container.clear();
-
-  for (List<FieldType*>::iterator field = temp_container.begin(), nextField; field; field = nextField)
-  {
-    nextField = field->Next;
-
-    for (List<ImportedField>::iterator field_imp = temp_container_imported.begin(),
-      nextField_imp; field_imp; field_imp = nextField_imp)
-    {
-      nextField_imp = field_imp->Next;
-
-      if (field_imp->Data.field->getType().convertedValue == "record" ||
-        field_imp->Data.field->getType().convertedValue == "union")
-        continue;
-
-      if (field->Data->getName().convertedValue == field_imp->Data.field->getName().convertedValue)
-      {
-        field->Data->applyReference(*(field_imp->Data.field));
-        if (field->Data->getName().convertedValue == "onlyForStoringAttributes") {
-          container.push_back(field->Data);
-          temp_container.remove(field); // backwards remove cheap
-        }
-        delete field_imp->Data.field;
-        temp_container_imported.remove(field_imp); // backwards remove cheap
+  for (List<Mstring>::iterator var = other.getVariantRef().begin(); var; var = var->Next) {
+    bool found = false;
+    for (List<Mstring>::iterator var1 = variant.begin(); var1; var1 = var1->Next) {
+      if (var->Data == var1->Data) {
+        found = true;
         break;
       }
     }
-  }
-
-  // Restore the fields
-
-  List<ImportedField>::iterator it_imp = temp_container_imported.begin();
-  if (!container.empty()) {
-    // Restore the imported fields which we pretend to belong
-    // to "onlyForStoringAttributes" or any other field transferred above.
-    const FieldType * const last = container.back();
-    while (it_imp != NULL && it_imp->Data.orig == last) {
-      container.push_back(it_imp->Data.field);
-      it_imp = it_imp->Next;
+    if (!found) {
+      variant.push_back(var->Data);
+      variant_ref.push_back(var->Data);
     }
   }
 
-  for (List<FieldType*>::iterator it = temp_container.begin(); it; it = it->Next) {
-    // Restore an original field
-    container.push_back(it->Data);
-    // Merge in all imported fields which "belong" to the original field
-    while (it_imp != NULL && it_imp->Data.orig == it->Data) {
-      container.push_back(it_imp->Data.field);
-      it_imp = it_imp->Next;
-    }
-  }
+  builtInBase = other.getBuiltInBase();
 
-  // Handle leftovers
-  for (; it_imp; it_imp = it_imp->Next) {
-    container.push_back(it_imp->Data.field);
-  }
-}
-
-void ComplexType::everything_into_fields_final() // putting everything into 'fields_for_final' container
-{
-  for (List<FieldType*>::iterator field = fields.begin(); field; field = field->Next)
-  {
-    if (field->Data->getType().convertedValue == "record" || field->Data->getType().convertedValue == "union")
-    {
-      fields_final.push_back(field->Data);
-      for (List<FieldType*>::iterator attr = field->Data->getAttributes().begin(); attr; attr = attr->Next)
-      {
-        fields_final.push_back(attr->Data);
-      }
-    }
-    else {
-      for (List<FieldType*>::iterator attr = field->Data->getAttributes().begin(); attr; attr = attr->Next)
-      {
-        fields_final.push_back(attr->Data);
-      }
-      fields_final.push_back(field->Data);
-    }
-  }
+  length.applyReference(other.getLength());
+  pattern.applyReference(other.getPattern());
+  enumeration.applyReference(other.getEnumeration());
+  whitespace.applyReference(other.getWhitespace());
+  value.applyReference(other.getValue());
 }
 
-void ComplexType::nameConversion(NameConversionMode conversion_mode, const List<NamespaceType> & ns)
-{
-  switch (conversion_mode)
-  {
-  case nameMode:
-    nameConversion_names(ns);
-    break;
-  case typeMode:
-    nameConversion_types(ns);
-    break;
-  case fieldMode:
-    nameConversion_fields(ns);
-    break;
+void ComplexType::nameConversion(NameConversionMode conversion_mode, const List<NamespaceType> & ns) {
+  if(!visible) return;
+  switch (conversion_mode) {
+    case nameMode:
+      nameConversion_names(ns);
+      break;
+    case typeMode:
+      nameConversion_types(ns);
+      break;
+    case fieldMode:
+      nameConversion_fields(ns);
+      break;
   }
 }
 
-void ComplexType::nameConversion_names(const List<NamespaceType> & )
-{
+void ComplexType::nameConversion_names(const List<NamespaceType> &) {
   Mstring res, var(module->getTargetNamespace());
   XSDName2TTCN3Name(name.convertedValue, TTCN3ModuleInventory::getInstance().getTypenames(), type_name, res, var);
   name.convertedValue = res;
   bool found = false;
-  for (List<Mstring>::iterator vari = variant.begin(); vari; vari = vari->Next)
-  {
+  for (List<Mstring>::iterator vari = variant.begin(); vari; vari = vari->Next) {
     if (vari->Data == "\"untagged\"") {
       found = true;
       break;
@@ -817,472 +755,1240 @@ void ComplexType::nameConversion_names(const List<NamespaceType> & )
   if (!found) {
     addVariant(V_onlyValue, var);
   }
-  for (List<SimpleType*>::iterator st = nameDepList.begin(); st; st = st->Next) {
-    st->Data->setTypeValue(res); // FIXME: is this still needed ?
+  for (List<SimpleType*>::iterator dep = nameDepList.begin(); dep; dep = dep->Next) {
+    dep->Data->setTypeValue(res);
   }
 }
 
-void ComplexType::nameConversion_types(const List<NamespaceType> & ns)
-{
-  Mstring prefix, uri, value;
+void ComplexType::nameConversion_types(const List<NamespaceType> & ns) {
+  attribfields.sort(compareAttributeNameSpaces);
+  attribfields.sort(compareAttributeTypes);
+  for (List<AttributeType*>::iterator field = attribfields.begin(); field; field = field->Next) {
+    field->Data->nameConversion(typeMode, ns);
+  }
+
+  for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+    field->Data->nameConversion_types(ns);
+  }
+
+  Mstring prefix, uri, typeValue;
 
   if (type.convertedValue == "record" ||
     type.convertedValue == "set" ||
     type.convertedValue == "union" ||
-    type.convertedValue == "enumerated")
+    type.convertedValue == "enumerated") {
     return;
+  }
 
   prefix = type.convertedValue.getPrefix(':');
-  value  = type.convertedValue.getValueWithoutPrefix(':');
+  typeValue = type.convertedValue.getValueWithoutPrefix(':');
 
-  for (List<NamespaceType>::iterator namesp = ns.begin(); namesp; namesp = namesp->Next)
-  {
+  for (List<NamespaceType>::iterator namesp = ns.begin(); namesp; namesp = namesp->Next) {
     if (prefix == namesp->Data.prefix) {
       uri = namesp->Data.uri;
       break;
     }
   }
 
-  QualifiedName in(uri, value); // ns uri + original name
+  QualifiedName in(uri, typeValue); // ns uri + original name
 
   // Check all known types
   QualifiedNames::iterator origTN = TTCN3ModuleInventory::getInstance().getTypenames().begin();
-  for ( ; origTN; origTN = origTN->Next)
-  {
+  for (; origTN; origTN = origTN->Next) {
     if (origTN->Data == in) {
       QualifiedName tmp_name(module->getTargetNamespace(), name.convertedValue);
-      if (origTN->Data == tmp_name)
-        continue;
-      else
+      if (origTN->Data != tmp_name){
         break;
+      }
     }
   }
 
   if (origTN != NULL) {
     setTypeValue(origTN->Data.name);
-  }
-  else {
+  } else {
     Mstring res, var;
-    XSDName2TTCN3Name(value, TTCN3ModuleInventory::getInstance().getTypenames(), type_reference_name, res, var);
+    XSDName2TTCN3Name(typeValue, TTCN3ModuleInventory::getInstance().getTypenames(), type_reference_name, res, var, type.no_replace);
     setTypeValue(res);
   }
 }
 
-void ComplexType::nameConversion_fields(const List<NamespaceType> & ns)
-{
-  List< QualifiedNames > used_field_names_in_different_level;
+void ComplexType::nameConversion_fields(const List<NamespaceType> & ns) {
+  QualifiedNames used_field_names;
+  
+  for (List<AttributeType*>::iterator field = attribfields.begin(); field; field = field->Next) {
+    field->Data->nameConversion_names(used_field_names);
+  }
+
+  for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+    if (field->Data->getMinOccurs() == 0 && field->Data->getMaxOccurs() == 0) {
+      continue;
+    }
+    if (!field->Data->isVisible()) {
+      continue;
+    }
+    
+    field->Data->nameConversion_fields(ns);
 
-  for (List<FieldType*>::iterator field = fields_final.begin(); field; field = field->Next)
-  {
     Mstring prefix = field->Data->getType().convertedValue.getPrefix(':');
-    Mstring value = field->Data->getType().convertedValue.getValueWithoutPrefix(':');
-    Mstring uri;
-    for (List<NamespaceType>::iterator namesp = ns.begin(); namesp; namesp = namesp->Next)
-    {
-      if (prefix == namesp->Data.prefix) {
-        uri = namesp->Data.uri;
-        break;
+    Mstring typeValue = field->Data->getType().convertedValue.getValueWithoutPrefix(':');
+
+    Mstring res, var;
+    var = getModule()->getTargetNamespace();
+    XSDName2TTCN3Name(typeValue, TTCN3ModuleInventory::getInstance().getTypenames(), type_reference_name, res, var);
+
+    field->Data->addVariant(V_onlyValue, var);
+    var = getModule()->getTargetNamespace();
+
+    if (field->Data->getName().list_extension) {
+      field->Data->useNameListProperty();
+      XSDName2TTCN3Name(field->Data->getName().convertedValue,
+        used_field_names, field_name, res, var);
+      field->Data->setNameValue(res);
+      bool found_in_variant = false;
+      for (List<Mstring>::iterator vari = field->Data->getVariant().begin(); vari; vari = vari->Next) {
+        if (vari->Data == Mstring("\"untagged\"")) {
+          found_in_variant = true;
+          break;
+        }
+      }
+      if (!field->Data->getName().originalValueWoPrefix.empty() &&
+        field->Data->getName().originalValueWoPrefix != "sequence" &&
+        field->Data->getName().originalValueWoPrefix != "choice" &&
+        field->Data->getName().originalValueWoPrefix != "elem" &&
+        !found_in_variant) {
+        field->Data->addVariant(V_nameAs, field->Data->getName().originalValueWoPrefix);
       }
-    }
 
-    if (field == fields_final.begin()) {
-      QualifiedNames first_set_of_used_field_names;
-      used_field_names_in_different_level.push_back(first_set_of_used_field_names);
+
+      if (!found_in_variant) {
+        field->Data->addVariant(V_untagged, empty_string, true);
+      }
+    } else {
+      XSDName2TTCN3Name(field->Data->getName().convertedValue,
+        used_field_names, field_name, res, var);
+      field->Data->setNameValue(res);
+      field->Data->addVariant(V_onlyValue, var);
     }
-    else {
-      if (field->Data->getLevel() < field->Prev->Data->getLevel()) {
-        for (int k = 0; k != field->Prev->Data->getLevel() - field->Data->getLevel(); ++k) {
-          used_field_names_in_different_level.pop_back();
-        }
+
+  }
+}
+
+void ComplexType::setFieldPaths(Mstring path) {
+  if (path.empty()) {
+    if (!top) {
+      Mstring field_prefix = empty_string;
+      if(parent->minOccurs == 0 && parent->maxOccurs == ULLONG_MAX){
+        field_prefix = "[-].";
       }
-      else if (field->Data->getLevel() > field->Prev->Data->getLevel()) {
-        QualifiedNames set_of_used_field_names;
-        used_field_names_in_different_level.push_back(set_of_used_field_names);
+      path = field_prefix + getName().convertedValue;
+      actualPath = field_prefix + getName().convertedValue;
+    }else {
+      actualPath = getName().convertedValue;
+    }
+  } else if (parent != NULL && (parent->getMinOccurs() != 1 || parent->getMaxOccurs() != 1) &&
+             (parent->getName().list_extension || parent->mode == listMode)) {
+    path = path + Mstring("[-].") + getName().convertedValue;
+    actualPath = path;
+  } else {
+    path = path + Mstring(".") + getName().convertedValue;
+    actualPath = path;
+  }
+
+  for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+    field->Data->setFieldPaths(path);
+  }
+  for (List<AttributeType*>::iterator attr = attribfields.begin(); attr; attr = attr->Next) {
+    attr->Data->setFieldPath(path);
+  }
+}
+
+void ComplexType::finalModification2() {  
+  //Call SimpleType finalModification
+  SimpleType::finalModification();
+
+  //Set isOptional field
+  isOptional = isOptional || (minOccurs == 0 && maxOccurs == 1);
+  
+  //
+  List<Mstring> enumNames;
+  for (List<ComplexType*>::iterator field = complexfields.begin(), nextField; field; field = nextField) {
+    nextField = field->Next;
+    //Remove invisible fields
+    if ((field->Data->minOccurs == 0 && field->Data->maxOccurs == 0) || !field->Data->isVisible()) {
+      delete field->Data;
+      field->Data = NULL;
+      complexfields.remove(field);
+    } else {
+      //Recursive call
+      field->Data->finalModification2();
+      //collect <xsd:all> elements
+      if (field->Data->fromAll) {
+        enumNames.push_back(field->Data->getName().convertedValue);
       }
     }
+  }
 
-    if (field->Data->getMinOccurs() == 0 && field->Data->getMaxOccurs() == 0)
-      continue;
-    if (!field->Data->isVisible())
-      continue;
+  ComplexType * embedField = NULL;
+  ComplexType * enumField = NULL;
 
-    Mstring in, res, var;
+  //Find the embed and order fields, and remove them
+  for (List<ComplexType*>::iterator field = complexfields.begin(), nextField; field; field = nextField) {
+    nextField = field->Next;
+    if (field->Data->embed) {
+      embedField = new ComplexType(*field->Data);
+      embedField->parent = this;
+      delete field->Data;
+      field->Data = NULL;
+      complexfields.remove(field);
+    } else if (field->Data->enumerated) {
+      enumField = new ComplexType(*field->Data);
+      enumField->parent = this;
+      delete field->Data;
+      field->Data = NULL;
+      complexfields.remove(field);
+    }
+  }
 
-    XSDName2TTCN3Name(value, TTCN3ModuleInventory::getInstance().getTypenames(), type_reference_name, res, var);
-    if (field->Data->getType().convertedValue != "enumerated") {
-      field->Data->setTypeValue(res);
+  if (enumField != NULL) {
+    //Insert the order field in the front
+    complexfields.push_front(enumField);
+    //Push the field names into the order field
+    for (List<Mstring>::iterator field = enumNames.begin(); field; field = field->Next) {
+      enumField->enumfields.push_back(field->Data);
     }
-    field->Data->addVariant(V_onlyValue, var);
+  }
 
-    if (field->Data->getName().list_extension)
-    {
-      field->Data->useNameListProperty();
+  if (embedField != NULL) {
+    //Insert the embed field to the front
+    complexfields.push_front(embedField);
+  }
 
-      if (!used_field_names_in_different_level.empty()) {
-        XSDName2TTCN3Name(field->Data->getName().convertedValue,
-          used_field_names_in_different_level.back(), field_name, res, var);
-        field->Data->setNameValue(res);
-        if (!field->Data->getName().originalValueWoPrefix.empty() &&
-          field->Data->getName().originalValueWoPrefix != "sequence" &&
-          field->Data->getName().originalValueWoPrefix != "choice" &&
-          field->Data->getName().originalValueWoPrefix != "elem")
-        {
-          field->Data->addVariant(V_nameAs, field->Data->getName().originalValueWoPrefix);
+  if (with_union) {
+    unsigned number = 0;
+    for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+      if (field->Data->name.convertedValue.foundAt("alt_") == field->Data->name.convertedValue.c_str()) {
+        if (number == 0) {
+          field->Data->name.upload(Mstring("alt_"));
+        } else {
+          field->Data->name.upload(Mstring(mprintf("alt_%d", number)));
         }
+        number++;
       }
+    }
+  }
 
-      bool found_in_variant = false;
-      for (List<Mstring>::iterator vari = field->Data->getVariant().begin(); vari; vari = vari->Next)
-      {
-        if (vari->Data == "untagged") {
-          found_in_variant = true;
-          break;
+  AttributeType * anyAttr = NULL;
+  for (List<AttributeType*>::iterator field = attribfields.begin(), nextField; field; field = nextField) {
+    nextField = field->Next;
+    field->Data->applyUseAttribute();
+    //Find anyattribute, and remove it
+    if (field->Data->isAnyAttribute()) {
+      anyAttr = new AttributeType(*field->Data);
+      setParent(this, anyAttr);
+      delete field->Data;
+      field->Data = NULL;
+      attribfields.remove(field);
+    } else if (field->Data->getUseVal() == prohibited || !field->Data->isVisible()) {
+      //Not visible attribute removed
+      delete field->Data;
+      field->Data = NULL;
+      attribfields.remove(field);
+    } else {
+      field->Data->SimpleType::finalModification();
+    }
+  }
+  
+  //Push anyattribute to the front
+  if (anyAttr != NULL) {
+    anyAttr->applyNamespaceAttribute(V_anyAttributes);
+    attribfields.push_back(anyAttr);
+  }
+
+  //Substitution group ordering
+  if(subsGroup == this){ //We are a generated substitution group
+    //Substitution group never empty
+    ComplexType * front = complexfields.front();
+    List<ComplexType*>::iterator it = complexfields.begin();
+    complexfields.remove(it);
+    complexfields.sort(compareComplexTypeNameSpaces);
+    complexfields.sort(compareTypes);
+    complexfields.push_front(front);
+  }
+}
+
+void ComplexType::finalModification() {
+  finalModification2();
+  setFieldPaths(empty_string);
+  List<Mstring> container;
+  collectVariants(container);
+  variant.clear();
+  variant = container;
+}
+
+void ComplexType::printToFile(FILE * file) {
+  printToFile(file, 0, false);
+}
+
+void ComplexType::printToFile(FILE * file, const unsigned level, const bool is_union) {
+  if (!isVisible()) {
+    return;
+  }
+  printComment(file, level);
+  if (top) {
+    fprintf(file, "type ");
+    if(mode == listMode){
+      printMinOccursMaxOccurs(file, is_union);
+      fprintf(file, "%s", type.convertedValue.c_str());
+    }else {
+      fprintf(file, "%s %s", type.convertedValue.c_str(), name.convertedValue.c_str());
+    }
+    fprintf(file, "\n{\n");
+
+    if (attribfields.empty() && complexfields.empty()) {
+      fprintf(file, "\n");
+    }
+
+    for (List<ComplexType*>::iterator c = complexfields.begin(), nextField; c; c = nextField) {
+      nextField = c->Next;
+      if (c->Data->embed || c->Data->enumerated) {
+        c->Data->printToFile(file, level + 1, is_union);
+        if (c->Next != NULL || !attribfields.empty()) {
+          fprintf(file, ",\n");
+        } else {
+          fprintf(file, "\n");
         }
+        delete c->Data;
+        c->Data = NULL;
+        complexfields.remove(c);
       }
-      if (!found_in_variant) {
-        field->Data->addVariant(V_untagged, empty_string, true);
+    }
+
+    for (List<AttributeType*>::iterator f = attribfields.begin(); f; f = f->Next) {
+      f->Data->printToFile(file, level + 1);
+      if (f->Next != NULL || !complexfields.empty()) {
+        fprintf(file, ",\n");
+      } else {
+        fprintf(file, "\n");
       }
     }
-    else {
-      if (!used_field_names_in_different_level.empty()) {
-        XSDName2TTCN3Name(field->Data->getName().convertedValue,
-          used_field_names_in_different_level.back(), field_name, res, var);
-        field->Data->setNameValue(res);
-        field->Data->addVariant(V_onlyValue, var);
+
+    for (List<ComplexType*>::iterator c = complexfields.begin(); c; c = c->Next) {
+      c->Data->printToFile(file, level + 1, is_union);
+      if (c->Next != NULL) {
+        fprintf(file, ",\n");
+      } else {
+        fprintf(file, "\n");
       }
     }
+  } else {
+    const bool field_is_record = getType().convertedValue == Mstring("record");
+    const bool field_is_union = getType().convertedValue == "union";
+    if (complexfields.empty() && attribfields.empty() && (field_is_record || field_is_union)) {
+      if (field_is_record) {
+        indent(file, level);
+        printMinOccursMaxOccurs(file, is_union);
+        fprintf(file, "%s {\n", getType().convertedValue.c_str());
+        indent(file, level);
+        fprintf(file, "} %s", getName().convertedValue.c_str());
+        if (isOptional) {
+          fprintf(file, " optional");
+        }
+      } else if (field_is_union) {
+        indent(file, level);
+        printMinOccursMaxOccurs(file, is_union);
+        fprintf(file, "%s {\n", getType().convertedValue.c_str());
+        indent(file, level + 1);
+        fprintf(file, "record length(0 .. 1) of enumerated { NULL_ } choice\n");
+        indent(file, level);
+        fprintf(file, "} %s", getName().convertedValue.c_str());
+        if (isOptional) {
+          fprintf(file, " optional");
+        }
+      }
+    } else {
+      indent(file, level);
+      if (getEnumeration().modified) {
+        if (isFloatType(getBuiltInBase())) {
+          fprintf(file, "%s (", type.convertedValue.c_str());
+          getEnumeration().sortFacets();
+          getEnumeration().printToFile(file);
+          fprintf(file, ")");
+        } else {
+          printMinOccursMaxOccurs(file, with_union);
+          fprintf(file, "enumerated {\n");
+          //getEnumeration().sortFacets();
+          getEnumeration().printToFile(file, level);
+          fprintf(file, "\n");
+          indent(file, level);
+          fprintf(file, "} ");
+        }
+      } else {
+        int multiplicity = multi(module, getReference(), this);
+        if ((multiplicity > 1) && getReference().get_ref()) {
+          fprintf(file, "%s.", getReference().get_ref()->getModule()->getModulename().c_str());
+        }
+        if (field_is_record || field_is_union) {
+          printMinOccursMaxOccurs(file, with_union, !first_child || parent->getXsdtype() != n_choice);
+          fprintf(file, "%s {\n", getType().convertedValue.c_str());
+          for (List<AttributeType*>::iterator f = attribfields.begin(); f; f = f->Next) {
+            f->Data->printToFile(file, level + 1);
+            if (f->Next != NULL || !complexfields.empty()) {
+              fprintf(file, ",\n");
+            } else {
+              fprintf(file, "\n");
+            }
+          }
 
-    for (List<FieldType*>::iterator inner = fields_final.begin(); inner; inner = inner->Next)
-    {
-      if (field->Data->getName().list_extension) {
-        inner->Data->variantIdReplaceInPath(field->Data->getVariantId(),
-          field->Data->getName().convertedValue + "[-]");
+          for (List<ComplexType*>::iterator c = complexfields.begin(); c; c = c->Next) {
+            c->Data->printToFile(file, level + 1, is_union);
+            if (c->Next != NULL) {
+              fprintf(file, ",\n");
+            } else {
+              fprintf(file, "\n");
+            }
+          }
+        } else {
+          printMinOccursMaxOccurs(file, with_union, !first_child);
+          fprintf(file, "%s ", getType().convertedValue.c_str());
+          if (getName().convertedValue == Mstring("order") && getType().convertedValue == Mstring("enumerated")) {
+            fprintf(file, "{\n");
+            for (List<Mstring>::iterator e = enumfields.begin(); e; e = e->Next) {
+              indent(file, level + 1);
+              fprintf(file, "%s", e->Data.c_str());
+              if (e->Next != NULL) {
+                fprintf(file, ",\n");
+              } else {
+                fprintf(file, "\n");
+              }
+            }
+            indent(file, level);
+            fprintf(file, "} ");
+          }
+        }
       }
-      else {
-        inner->Data->variantIdReplaceInPath(field->Data->getVariantId(),
-          field->Data->getName().convertedValue);
+      if (field_is_record || field_is_union) {
+        indent(file, level);
+        fprintf(file, "} ");
       }
+
+      fprintf(file, "%s", getName().convertedValue.c_str());
+      getPattern().printToFile(file);
+      getValue().printToFile(file);
+      getLength().printToFile(file);
+      if (!with_union && isOptional) {
+        fprintf(file, " optional");
+      }
+    }
+  }
+
+  if (top) {
+    fprintf(file, "}");
+    if(mode == listMode){
+      fprintf(file, " %s", name.convertedValue.c_str());
     }
+    printVariant(file);
+    fprintf(file, ";\n\n\n");
   }
 }
 
-void ComplexType::finalModification()
-{
-  for (List<FieldType*>::iterator field = fields_final.begin(), nextField; field; field = nextField)
-  {
-    nextField = field->Next;
+void ComplexType::collectVariants(List<Mstring>& container) {
+
+  if (e_flag_used || !isVisible()) {
+    return;
+  }
+
+  if (top) {
+    bool useUnionVariantWhenMainTypeIsRecordOf = false;
+    for (List<Mstring>::iterator var = variant.end(); var; var = var->Prev) {
+      if ((minOccurs != 1 || maxOccurs != 1) && (var->Data == "\"useUnion\"")) { // main type is a record of
+        useUnionVariantWhenMainTypeIsRecordOf = true; // TR HL15893
+      } else {
+        container.push_back(Mstring("variant ") + Mstring(var->Data.c_str()) + Mstring(";\n"));
+      }
+    }
+    if (useUnionVariantWhenMainTypeIsRecordOf) {
+      container.push_back(Mstring("variant ([-]) \"useUnion\";\n"));
+    }
+  }
+
+  //Collect variants of attributes
+  for (List<AttributeType*>::iterator field = attribfields.begin(); field; field = field->Next) {
+    field->Data->collectVariants(container);
+  }
+
+  for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+
     if (!field->Data->isVisible()) {
-      fields_final.remove(field); // backwards remove cheap
       continue;
     }
-    if (field->Data->getMinOccurs() == 0 && field->Data->getMaxOccurs() == 0) {
-      fields_final.remove(field); // backwards remove cheap
+
+    if (field->Data->getVariant().empty() && field->Data->getHiddenVariant().empty() &&
+        field->Data->complexfields.empty() && field->Data->attribfields.empty() &&
+        field->Data->enumeration.variants.empty()) {
       continue;
     }
 
-    field->Data->finalModification();
+    bool already_used = false;
 
-    if (module->getElementFormDefault() == qualified &&
-      field->Data->getElementFormAs() == unqualified)
-    {
-      field->Data->addVariant(V_formAs, Mstring("unqualified"));
+    for (List<Mstring>::iterator var2 = field->Data->getVariant().end(); var2; var2 = var2->Prev) {
+      if (var2->Data == "\"untagged\"" && !already_used) {
+        container.push_back(Mstring("variant (") + field->Data->actualPath + Mstring(") ") + Mstring(var2->Data.c_str()) + Mstring(";\n"));
+        already_used = true;
+      } else {
+        if ((field->Data->getMinOccurs() != 1 || field->Data->getMaxOccurs() != 1) &&
+          (field->Data->getName().list_extension || var2->Data == "\"useUnion\"")) {
+          container.push_back(Mstring("variant (") + field->Data->actualPath + Mstring("[-]) ") + Mstring(var2->Data.c_str()) + Mstring(";\n"));
+        } else if (var2->Data != "\"untagged\"") {
+          container.push_back(Mstring("variant (") + field->Data->actualPath + Mstring(") ") + Mstring(var2->Data.c_str()) + Mstring(";\n"));
+        }
+      }
     }
-    if (module->getAttributeFormDefault() == qualified &&
-      field->Data->getAttributeFormAs() == unqualified)
-    {
-      field->Data->addVariant(V_formAs, Mstring("unqualified"));
+    for (List<Mstring>::iterator hidden_var = field->Data->getHiddenVariant().end();
+      hidden_var; hidden_var = hidden_var->Prev) {
+      if ((field->Data->getMinOccurs() != 1 || field->Data->getMaxOccurs() != 1) &&
+        field->Data->getName().list_extension) {
+        container.push_back(Mstring("//variant (") + field->Data->actualPath + Mstring("[-]) ") + Mstring(hidden_var->Data.c_str()) + Mstring(";\n"));
+      } else {
+        container.push_back(Mstring("//variant (") + field->Data->actualPath + Mstring(") ") + Mstring(hidden_var->Data.c_str()) + Mstring(";\n"));
+      }
+    }
+
+    if(field->Data->enumeration.modified){
+      Mstring path = empty_string;
+      if(field->Data->getMinOccurs() != 1 && field->Data->getMaxOccurs() != 1){
+        path = field->Data->actualPath + Mstring("[-]");
+      }else {
+        path = field->Data->actualPath;
+      }
+      for(List<Mstring>::iterator var = field->Data->enumeration.variants.end(); var; var = var->Prev){
+        if(var->Data.empty()) continue;
+        container.push_back("variant (" + path + ") " + var->Data + ";\n");
+      }
     }
+    //Recursive call
+    field->Data->collectVariants(container);
   }
 }
 
-void ComplexType::printToFile(FILE * file)
-{
-  if (!isVisible()) return;
-  const bool ct_is_union  = type.convertedValue == "union";
+void ComplexType::printVariant(FILE * file) {
+  if (e_flag_used) {
+    return;
+  }
+
+  bool foundAtLeastOneVariant = false;
+  bool foundAtLeastOneHiddenVariant = false;
+
+  if (!variant.empty()) {
+    for (List<Mstring>::iterator var = variant.begin(); var; var = var->Next) {
+      if (foundAtLeastOneVariant && foundAtLeastOneHiddenVariant) {
+        break;
+      }
+      if (var->Data[0] != '/') {
+        foundAtLeastOneVariant = true;
+      } else {
+        foundAtLeastOneHiddenVariant = true;
+      }
+    }
+  }
 
-  List<Mstring> rec_names;
-  List<FieldType*> choices;
+  if (!foundAtLeastOneVariant && !foundAtLeastOneHiddenVariant) {
+    return;
+  }
 
-  printComment(file);
+  if (!foundAtLeastOneVariant) {
+    //No other variants, only commented, so the 'with' must be commented also.
+    fprintf(file, ";\n//with {\n");
+  } else {
+    fprintf(file, "\nwith {\n");
+  }
 
-  fprintf(file, "type ");
-  printMinOccursMaxOccurs(file, false);
-  fprintf(file, "%s ", type.convertedValue.c_str());
-  if (minOccurs == 1 && maxOccurs == 1) { // if it is not a record of
-    fprintf(file, "%s", name.convertedValue.c_str());
+  for (List<Mstring>::iterator var = variant.begin(); var; var = var->Next) {
+    fprintf(file, "%s", var->Data.c_str());
   }
-  fprintf(file, "\n{\n");
 
-  for (List<FieldType*>::iterator fit = fields_final.begin(); fit; fit = fit->Next)
-  {
-    FieldType& field = *(fit->Data); // alas, cannot be const
-    const bool field_is_record = field.getType().convertedValue == "record";
-    const bool field_is_union  = field.getType().convertedValue == "union";
-    if (field_is_union) {
-      choices.push_back(&field);
+  if (!foundAtLeastOneVariant) {
+    fprintf(file, "//");
+  }
+  fprintf(file, "}");
+}
+
+void ComplexType::dump(unsigned int depth) const {
+  fprintf(stderr, "%*s %sComplexType at %p | Top:%s\n", depth * 2, "", isVisible() ? "" : "(hidden)", (const void*) this, top ? "true" : "false");
+  if (parent != NULL) {
+    fprintf(stderr, "%*s parent: %p | parent xsdtype: %i | my xsdtype: %i\n", depth * 2, "", (const void*) parent, parent->getXsdtype(), xsdtype);
+  } else {
+    fprintf(stderr, "%*s parent: %p | parent xsdtype: %s | my xsdtype: %i\n", depth * 2, "", "NULL", "NULL", xsdtype);
+  }
+  fprintf(stderr, "%*s name='%s' -> '%s', type='%s' %d complexfields | %s | %s | %s\n", depth * 2, "",
+    name.originalValueWoPrefix.c_str(), name.convertedValue.c_str(), type.convertedValue.c_str(), (int) complexfields.size(),
+    outside_reference.empty() ? "" : outside_reference.get_val().c_str(), mode == restrictionMode ? "restriction" : "",
+    mode == extensionMode ? "extension" : "");
+  for (List<ComplexType*>::iterator field = complexfields.begin(); field; field = field->Next) {
+    field->Data->dump(depth + 1);
+  }
+  fprintf(stderr, "%*s %d attribields\n", depth * 2, "", (int) attribfields.size());
+  for (List<AttributeType*>::iterator field = attribfields.begin(); field; field = field->Next) {
+    field->Data->dump(depth + 1);
+  }
+  fprintf(stderr, "%*s %d enumfields\n", depth * 2, "", (int) enumfields.size());
+  for (List<Mstring>::iterator field = enumfields.begin(); field; field = field->Next) {
+    fprintf(stderr, "%*s enum: %s\n", depth * 2 + depth, "", field->Data.c_str());
+  }
+  fprintf(stderr, "%*s (%llu .. %llu) | Optional:%s | List:%s\n", (depth + 1) * 2, "", minOccurs, maxOccurs, isOptional ? "true" : "false", name.list_extension ? "true" : "false");
+  fprintf(stderr, "%*s %d variants: ", (depth + 1) * 2, "", (int) variant.size());
+  for (List<Mstring>::iterator var = variant.begin(); var; var = var->Next) {
+    fprintf(stderr, "%s, ", var->Data.c_str());
+  }
+  fprintf(stderr, "%*s pattern:%s | length:%i \n ", (depth + 1) * 2, "", this->pattern.facet.c_str(), (int) (this->length.facet_maxLength));
+  fprintf(stderr, "%*s enum: %i \n", (depth + 1)*2, "", (int) this->enumeration.facets.size());
+  fprintf(stderr, "\n");
+}
+
+void ComplexType::setMinMaxOccurs(const unsigned long long min, const unsigned long long max, const bool generate_list_postfix) {
+
+  if (min != 1 || max != 1) {
+    if (xsdtype == n_choice) {
+      minOccurs = min;
+      maxOccurs = max;
+      addVariant(V_untagged);
+      first_child = false;
+    } else if (xsdtype == n_sequence) {
+      ComplexType * rec = new ComplexType(this);
+      rec->type.upload(Mstring("record"));
+      rec->name.upload(Mstring("sequence"));
+      rec->setXsdtype(n_sequence);
+      rec->addVariant(V_untagged);
+      rec->addVariant(V_untagged);
+      rec->minOccurs = min;
+      rec->maxOccurs = max;
+      complexfields.push_back(rec);
+      actfield = rec;
+      if ((rec->minOccurs == 0 && rec->maxOccurs > 1) || rec->minOccurs > 0) {
+        rec->name.list_extension = true;
+      }
+    } else {
+      minOccurs = min;
+      maxOccurs = max;
+      if ((minOccurs == 0 && maxOccurs > 1) || minOccurs > 0) {
+        if (generate_list_postfix) {
+          name.list_extension = true;
+        }
+      }
+      if (parent != NULL && parent->getXsdtype() == n_choice) {
+        name.list_extension = true;
+        if ((parent != NULL && parent->getXsdtype() == n_choice)) {
+          if (parent->first_child == false && minOccurs == 0) {
+            parent->first_child = true;
+            with_union = true;
+            first_child = false;
+          } else {
+            with_union = true;
+            first_child = true;
+          }
+        }
+      }
     }
+  }
 
-    bool last = false;
-    if (fit->Next == NULL)
-    {
-      /* A field of type record or union is normally followed by its subfields
-       * at level N+1. Therefore if a record or union is the last field,
-       * it is an empty record/union. */
-      if (field_is_record)
-      {
-        indent(file, field.getLevel());
-        field.printMinOccursMaxOccurs(file, ct_is_union);
-        fprintf(file, "%s {\n", field.getType().convertedValue.c_str());
-        indent(file, field.getLevel());
-        fprintf(file, "} %s", field.getName().convertedValue.c_str());
-        if (field.isOptional()) fprintf(file, " optional");
-        break;
+  if (maxOccurs > 1 && generate_list_postfix) {
+    name.list_extension = true;
+  }
+}
+
+void ComplexType::applyNamespaceAttribute(VariantMode varLabel, const Mstring& ns_list) {
+  List<Mstring> namespaces;
+  if (!ns_list.empty()) {
+    expstring_t valueToSplitIntoTokens = mcopystr(ns_list.c_str());
+    char * token;
+    token = strtok(valueToSplitIntoTokens, " ");
+    while (token != NULL) {
+      namespaces.push_back(Mstring(token));
+      token = strtok(NULL, " ");
+    }
+    Free(valueToSplitIntoTokens);
+  }
+
+  Mstring any_ns;
+  bool first = true;
+  // Note: libxml2 will verify the namespace list according to the schema
+  // of XML Schema. It is either ##any, ##other, ##local, ##targetNamespace,
+  // or a list of (namespace reference | ##local | ##targetNamespace).
+  for (List<Mstring>::iterator ns = namespaces.begin(); ns; ns = ns->Next) {
+    static const Mstring xxany("##any"), xxother("##other"), xxlocal("##local"),
+      xxtargetNamespace("##targetNamespace");
+    if (!first) any_ns += ',';
+
+    if (ns->Data == xxany) {
+    }// this must be the only element, nothing to add
+    else if (ns->Data == xxother) { // this must be the only element
+      any_ns += " except unqualified";
+      if (module->getTargetNamespace() != "NoTargetNamespace") {
+        any_ns += ", \'";
+        any_ns += parent->getModule()->getTargetNamespace();
+        any_ns += '\'';
       }
-      else if (field_is_union)
-      {
-        indent(file, field.getLevel());
-        field.printMinOccursMaxOccurs(file, ct_is_union);
-        fprintf(file, "%s {\n", field.getType().convertedValue.c_str());
-        indent(file, field.getLevel()+1);
-        fprintf(file, "record length(0 .. 1) of enumerated { NULL_ } choice\n");
-        indent(file, field.getLevel());
-        fprintf(file, "} %s", field.getName().convertedValue.c_str());
-        if (field.isOptional()) fprintf(file, " optional");
-        break;
+    }// The three cases below can happen multiple times
+    else {
+      if (first) any_ns += " from ";
+      // else a comma was already added
+      if (ns->Data == xxtargetNamespace) {
+        any_ns += '\'';
+        any_ns += parent->getModule()->getTargetNamespace();
+        any_ns += '\'';
+      } else if (ns->Data == xxlocal) {
+        any_ns += "unqualified";
+      } else {
+        any_ns += '\'';
+        any_ns += ns->Data;
+        any_ns += '\'';
       }
-      last = true;
     }
 
-    bool empty_allowed = true;
+    first = false;
+  }
+
+  addVariant(varLabel, any_ns, true);
+}
+
+void ComplexType::addComment(const Mstring& text) {
+  if (this == actfield) {
+    if (lastType == n_attribute) { // ez nem teljesen jo, stb, tobb lehetoseg, es rossy sorrend
+      if (!attribfields.empty()) {
+        attribfields.back()->addComment(text);
+      }
+    } else {
+      if (actfield->getName().convertedValue == Mstring("base") && parent != NULL) {
+        parent->getComment().push_back(Mstring("/* " + text + " */\n"));
+      } else {
+        comment.push_back(Mstring("/* " + text + " */\n"));
+      }
+    }
+  } else {
+    actfield->addComment(text);
+    return;
+  }
+}
 
-    for (List<FieldType*>::iterator p = fit->Prev; p; p = p->Prev) {
-      const int prevlevel = p->Data->getLevel();
-      if (prevlevel < field.getLevel()) break; // probably our parent, quit
-      if (prevlevel == field.getLevel()) { // same level
-        // If the earlier field can be empty, and our parent is a choice,
-        // then this field's minOccurs needs to be adjusted to 1
-        // so it's not a candidate for the empty list.
-        if (p->Data->getMinOccurs() == 0ULL
-          && !choices.empty()
-          &&  choices.back()->getLevel()+1 == field.getLevel()) {
-          empty_allowed = false;
+//Attribute extension logic when extending complextypes
+void ComplexType::applyAttributeExtension(ComplexType * found_CT, AttributeType * anyAttrib /* = NULL */) {
+  for (List<AttributeType*>::iterator attr = found_CT->attribfields.begin(); attr; attr = attr->Next) {
+    bool l = false;
+    if (anyAttrib != NULL && attr->Data->isAnyAttribute()) {
+      anyAttrib->addNameSpaceAttribute(attr->Data->getNameSpaceAttribute());
+      l = true;
+    } else {
+      for (List<AttributeType*>::iterator attr2 = attribfields.begin(); attr2; attr2 = attr2->Next) {
+        if (attr->Data->getName().convertedValue == attr2->Data->getName().convertedValue &&
+          attr->Data->getType().convertedValue == attr2->Data->getType().convertedValue) {
+          if (attr->Data->getUseVal() == optional) {
+            attr2->Data->setUseVal(optional);
+          }
+          l = true;
           break;
         }
       }
-      // Do not quit the loop if finding a prev. field with minOccurs > 0
-      // There may be a field with minOccurs == 0 before it.
     }
+    if (!l) {
+      AttributeType * newAttrib = new AttributeType(*attr->Data);
+      attribfields.push_back(newAttrib);
+      setParent(this, newAttrib);
+    }
+  }
+}
 
-    indent(file, field.getLevel());
+//Attribute restriction logic when restricting complextypes
+void ComplexType::applyAttributeRestriction(ComplexType * found_CT) {
+  for (List<AttributeType*>::iterator attr = attribfields.begin(), nextAttr; attr; attr = nextAttr) {
+    nextAttr = attr->Next;
+    bool l = false;
+    for (List<AttributeType*>::iterator attr2 = found_CT->attribfields.begin(); attr2; attr2 = attr2->Next) {
+      if (attr->Data->getName().convertedValue == attr2->Data->getName().convertedValue &&
+        attr->Data->getType().convertedValue == attr2->Data->getType().convertedValue) {
+        l = true;
+        break;
+      }
+    }
+    if (!l) {
+      delete attr->Data;
+      attr->Data = NULL;
+      attribfields.remove(attr);
+    }
+  }
+  size_t size = found_CT->attribfields.size();
+  size_t size2 = attribfields.size();
+  size_t i = 0;
+  List<AttributeType*>::iterator attr = found_CT->attribfields.begin();
+  for (; i < size; attr = attr->Next, i = i + 1) {
+    bool l = false;
+    size_t j = 0;
+    List<AttributeType*>::iterator attr2 = attribfields.begin();
+    for (; j < size2; attr2 = attr2->Next, j = j + 1) {
+      if (attr->Data->getName().convertedValue == attr2->Data->getName().convertedValue &&
+        attr->Data->getType().convertedValue == attr2->Data->getType().convertedValue && !attr2->Data->getUsed()) {
+        l = true;
+        attr2->Data->setUsed(true);
+        break;
+      }
+    }
+    if (!l) {
+      AttributeType * newAttrib = new AttributeType(*attr->Data);
+      attribfields.push_back(newAttrib);
+      setParent(this, newAttrib);
+    }
+  }
+}
 
-    field.printMinOccursMaxOccurs(file, ct_is_union, empty_allowed);
+void ComplexType::addNameSpaceAsVariant(RootType * root, RootType * other) {
+  if (other->getModule()->getTargetNamespace() != root->getModule()->getTargetNamespace() &&
+    other->getModule()->getTargetNamespace() != "NoTargetNamespace") {
+    root->addVariant(V_namespaceAs, other->getModule()->getTargetNamespace());
+  }
+}
 
-    if (field_is_record)
-    {
-      fprintf(file, "%s {\n", field.getType().convertedValue.c_str());
-      if (field.getLevel() >= fit->Next->Data->getLevel()) // the record is empty
-      {
-        indent(file, field.getLevel());
-        fprintf(file, "} %s", field.getName().convertedValue.c_str());
-        if (field.isOptional()) fprintf(file, " optional");
-      }
-      else // the record is not empty
-      {
-        if (field.isOptional()) {
-          rec_names.push_back(field.getName().convertedValue + " optional");
-        }
-        else {
-          rec_names.push_back(field.getName().convertedValue);
+void ComplexType::resolveAttribute(AttributeType* attr) {
+  if (attr->getXsdtype() == n_attribute && !attr->getReference().empty()) {
+    SimpleType * st = (SimpleType*) TTCN3ModuleInventory::getInstance().lookup(attr, want_BOTH);
+    if (st != NULL) {
+      if (attr->isFromRef()) {
+        addNameSpaceAsVariant(attr, st);
+        attr->setTypeOfField(st->getName().convertedValue);
+        attr->setNameOfField(st->getName().originalValueWoPrefix);
+        attr->setOrigModule(st->getModule());
+      } else {
+        attr->setTypeOfField(st->getName().convertedValue);
+        if (st->getType().convertedValue == "record" || st->getType().convertedValue == "union") {
+          st->addToNameDepList(attr);
         }
       }
+    } else {
+      printError(module->getSchemaname(), name.convertedValue,
+        "Reference for a non-defined type: " + attr->getReference().repr());
+      TTCN3ModuleInventory::getInstance().incrNumErrors();
     }
-    else if (field_is_union)
-    {
-      fprintf(file, "%s {\n", field.getType().convertedValue.c_str());
-      if (field.getLevel() >= fit->Next->Data->getLevel()) // the union is empty
-      {
-        indent(file, field.getLevel()+1);
-        fprintf(file, "record length(0 .. 1) of enumerated { NULL_ } choice\n");
-        indent(file, field.getLevel());
-        fprintf(file, "} %s", field.getName().convertedValue.c_str());
-        if (field.isOptional()) fprintf(file, " optional");
-      }
-      else // the union is not empty
-      {
-        if (field.isOptional()) {
-          rec_names.push_back(field.getName().convertedValue + " optional");
-        }
-        else {
-          rec_names.push_back(field.getName().convertedValue);
-        }
-      }
+  }
+}
 
+void ComplexType::resolveAttributeGroup(SimpleType * st) {
+  if (xsdtype == n_attributeGroup && !outside_reference.empty()) {
+    ComplexType * ct = (ComplexType*) st;
+    if(ct->resolved == No){
+      ct->referenceResolving();
+    }
+    outside_reference.set_resolved(ct);
+    setInvisible();
+    bool addNameSpaceas = false;
+    if (ct->getModule()->getTargetNamespace() != module->getTargetNamespace() &&
+      ct->getModule()->getTargetNamespace() != "NoTargetNamespace") {
+      addNameSpaceas = true;
+    }
+    ComplexType * par;
+    if(parent->nillable && parent->parent != NULL){
+      par = parent->parent;
+    }else {
+      par = parent;
+    }
+    List<AttributeType*>::iterator anyAttrib = par->attribfields.begin();
+    for (; anyAttrib; anyAttrib = anyAttrib->Next) {
+      if (anyAttrib->Data->isAnyAttribute()) {
+        break;
+      }
     }
-    else
-    {
-      if (field.getEnumeration().modified)
-      {
-        if (isFloatType(field.getBuiltInBase())) {
-          fprintf(file, "%s (", type.convertedValue.c_str());
-          field.getEnumeration().sortFacets();
-          field.getEnumeration().printToFile(file);
-          fprintf(file, ")");
-        }
-        else {
-          fprintf(file, "enumerated {\n");
-          if (!rec_names.empty() && rec_names.back() != "order") {
-            field.getEnumeration().sortFacets();
-          }
-          field.getEnumeration().printToFile(file, field.getLevel());
-          fprintf(file, "\n");
-          indent(file, field.getLevel());
-          fprintf(file, "} ");
+    for (List<AttributeType*>::iterator attr = ct->attribfields.begin(); attr; attr = attr->Next) {
+      AttributeType * attrib = new AttributeType(*attr->Data);
+      attr->Data->setOrigModule(ct->getModule());
+      if (addNameSpaceas) {
+        attrib->addVariant(V_namespaceAs, ct->getModule()->getTargetNamespace());
+      }
+      if (anyAttrib != NULL && attr->Data->isAnyAttribute()) {
+        anyAttrib->Data->addNameSpaceAttribute(attr->Data->getNameSpaceAttribute());
+      } else {
+        //Nillable attribute placement is hard...
+        if (parent->nillable && parent->parent != NULL) {
+          parent->parent->attribfields.push_back(attrib);
+          attrib->parent = parent->parent;
+          setParent(parent->parent, attrib);
+        } else if (parent->nillable && !parent->complexfields.empty()) {
+          parent->complexfields.back()->attribfields.push_back(attrib);
+          attrib->parent = parent->complexfields.back();
+        } else if (parent->parent != NULL && (parent->parent->mode == extensionMode || parent->parent->mode == restrictionMode)) {
+          parent->parent->attribfields.push_back(attrib);
+          setParent(parent->parent, attrib);
+        } else {
+          parent->attribfields.push_back(attrib);
+          setParent(parent, attrib);
         }
       }
-      else
-      {
-        int multiplicity = multi(module, field.getReference(), &field);
-        if ((multiplicity > 1) && field.getReference().get_ref()) {
-          fprintf(file, "%s.", field.getReference().get_ref()->getModule()->getModulename().c_str());
+    }
+  }
+}
+
+void ComplexType::resolveGroup(SimpleType *st) {
+  if (xsdtype == n_group && !outside_reference.empty()) {
+    ComplexType * ct = (ComplexType*) st;
+    outside_reference.set_resolved(ct);
+    setInvisible();
+    if(ct->resolved == No){
+      ct->referenceResolving();
+    }
+    //Decide if namespaceas variant needs to be added
+    bool addNameSpaceas = false;
+    if (ct->getModule()->getTargetNamespace() != module->getTargetNamespace() &&
+      ct->getModule()->getTargetNamespace() != "NoTargetNamespace") {
+      addNameSpaceas = true;
+    }
+    if (ct->getXsdtype() == n_sequence && minOccurs == 1 && maxOccurs == 1 && (parent->getXsdtype() == n_complexType || parent->getXsdtype() == n_sequence)) {
+      for (List<ComplexType*>::iterator c = ct->complexfields.begin(); c; c = c->Next) {
+        ComplexType * newField = new ComplexType(*c->Data);
+        parent->complexfields.push_back(newField);
+        setParent(parent, newField);
+        parent->complexfields.back()->setModule(getModule());
+        if (addNameSpaceas) {
+          parent->complexfields.back()->addVariant(V_namespaceAs, ct->getModule()->getTargetNamespace());
         }
-        fprintf(file, "%s ", field.getType().convertedValue.c_str());
-      }
-      fprintf(file, "%s", field.getName().convertedValue.c_str());
-      field.getValue().printToFile(file);
-      field.getLength().printToFile(file);
-      if (!ct_is_union && field.isOptional()) fprintf(file, " optional");
-    }
-    /* *******************************************************
-     * FINAL
-     * *******************************************************/
-    if (last) break;
-    /* *******************************************************/
-    if (field.getLevel() > fit->Next->Data->getLevel()) {
-      int diff = field.getLevel() - fit->Next->Data->getLevel();
-      fprintf(file, "\n");
-      for (int k = 0; k != diff; ++k)
-      {
-        indent(file, field.getLevel() - (k+1));
-        if (!rec_names.empty()) {
-          fprintf(file, "} %s", rec_names.back().c_str());
-          rec_names.pop_back();
+      }
+    } else if (ct->getXsdtype() == n_all) {
+      //If the parent optional, then every field is optional
+      for (List<ComplexType*>::iterator c = ct->complexfields.begin(); c; c = c->Next) {
+        ComplexType* f = new ComplexType(*c->Data);
+        if (minOccurs == 0 && !f->enumerated) {
+          f->isOptional = true;
         }
-        if (k + 1 == diff) {
-          fprintf(file, ",");
+        ((ComplexType*) parent)->complexfields.push_back(f);
+        setParent(parent, f);
+        f->setModule(getModule());
+        if (addNameSpaceas) {
+          f->addVariant(V_namespaceAs, ct->getModule()->getTargetNamespace());
         }
-        fprintf(file, "\n");
+      }
+      parent->addVariant(V_useOrder);
+    } else {
+      if (name.list_extension) {
+        addVariant(V_untagged);
+      }
+      type.upload(ct->getName().convertedValue);
+      name.upload(ct->getName().convertedValue);
+      ct->addToNameDepList(this);
+      nameDep = ct;
+      visible = true;
+      if (addNameSpaceas) {
+        addVariant(V_namespaceAs, ct->getModule()->getTargetNamespace());
       }
     }
-    else if (field.getLevel() == fit->Next->Data->getLevel()) {
-      fprintf(file, ",\n");
-    }
-  }
-  /* *******************************************************/
-  for (size_t j = 0; j < rec_names.size(); ) {
-    fprintf(file, "\n");
-    indent(file, rec_names.size());
-    fprintf(file, "} %s", rec_names.back().c_str());
-    rec_names.pop_back();
   }
-  /* *******************************************************/
-  fprintf(file, "\n}");
-  if (minOccurs != 1 || maxOccurs != 1) { // if it is a record of
-    fprintf(file, " %s", name.convertedValue.c_str());
+}
+
+void ComplexType::resolveElement(SimpleType *st) {
+  if (xsdtype == n_element && !outside_reference.empty()) {
+    outside_reference.set_resolved(st);
+    type.upload(st->getModule()->getTargetNamespaceConnector() + Mstring(":") + st->getName().convertedValue);
+    st->addToNameDepList(this);
+    nameDep = st;
+    if (name.originalValueWoPrefix.empty()) {
+      name.upload(st->getName().convertedValue);
+    }
+    if (fromRef) {
+      addNameSpaceAsVariant(this, st);
+    }
+    if(st->getSubstitution() != NULL){
+      st->getSubstitution()->addToNameDepList(this);
+      nameDep = st->getSubstitution();
+    }
   }
+}
 
-  printVariant(file);
+void ComplexType::resolveSimpleTypeExtension() {
+  if (mode == extensionMode && cmode == CT_simpletype_mode && basefield != NULL) {
+    SimpleType * st = (SimpleType*) TTCN3ModuleInventory::getInstance().lookup(basefield, want_BOTH);
+    if (st != NULL) {
+      if (st->getXsdtype() != n_NOTSET && ((ComplexType*) st)->basefield != NULL) { // if the xsdtype != simpletype
+        ComplexType * ct = (ComplexType*) st;
+        if (ct->resolved == No) {
+          ct->referenceResolving();
+        }
+        basefield->outside_reference.set_resolved(ct);
+        ct->basefield->addToNameDepList(basefield);
+        basefield->nameDep = ct->basefield;
+        basefield->mode = extensionMode;
+        basefield->applyReference(*ct->basefield, true);
+        addNameSpaceAsVariant(basefield, ct->basefield);
+        applyAttributeExtension(ct);
+      } else {
+        if (!st->getReference().empty() && !st->getReference().is_resolved()) {
+          st->referenceResolving();
+        }
+        st->addToNameDepList(basefield);
+        addNameSpaceAsVariant(basefield, st);
+        basefield->nameDep = st;
+      }
+    } else if(!isBuiltInType(basefield->getType().convertedValue)){
+         printError(module->getSchemaname(), name.convertedValue,
+          "Reference for a non-defined type: " + basefield->getReference().repr());
+       TTCN3ModuleInventory::getInstance().incrNumErrors();
+       return;
+    }
 
-  fprintf(file, ";\n\n\n");
+  }
 }
 
-void ComplexType::printVariant(FILE * file)
-{
-  if (e_flag_used) return;
-
-  bool foundAtLeastOneVariant = false;
-  if (!variant.empty())
-    foundAtLeastOneVariant = true;
-  for (List<FieldType*>::iterator field = fields_final.begin(); field; field = field->Next)
-  {
-    if (!field->Data->getVariant().empty()) {
-      foundAtLeastOneVariant = true;
-      break;
+void ComplexType::resolveSimpleTypeRestriction() {
+  if (mode == restrictionMode && cmode == CT_simpletype_mode && basefield != NULL && !basefield->outside_reference.empty()) {
+    SimpleType * st = (SimpleType*) TTCN3ModuleInventory::getInstance().lookup(basefield, want_BOTH);
+    if (st == NULL) {
+      printError(module->getSchemaname(), name.convertedValue,
+        "Reference for a non-defined type: " + basefield->getReference().repr());
+      TTCN3ModuleInventory::getInstance().incrNumErrors();
+      return;
+    }
+    basefield->outside_reference.set_resolved(st);
+    if (st->getXsdtype() != n_NOTSET) {
+      ComplexType * ct = (ComplexType*) st;
+      if (ct->resolved == No) {
+        ct->referenceResolving();
+      }
+      applyAttributeRestriction(ct);
+      basefield->mode = restrictionMode;
+      if (ct->cmode == CT_complextype_mode) {
+        applyReference(*ct, true);
+        type.upload(ct->getName().convertedValue);
+        basefield->setInvisible();
+      } else if (ct->basefield != NULL) {
+        basefield->applyReference(*ct->basefield);
+        addNameSpaceAsVariant(basefield, ct->basefield);
+      } else if (ct->basefield == NULL) {
+        basefield->applyReference(*ct);
+        addNameSpaceAsVariant(basefield, ct);
+      }
+    } else {
+      if (!st->getReference().empty() && !st->getReference().is_resolved()) {
+        st->referenceResolving();
+      }
+      if(xsdtype == n_simpleContent){
+        basefield->applyReference(*st, true);
+        addNameSpaceAsVariant(basefield, st);
+        basefield->mode = restrictionMode;
+      }else if(xsdtype == n_simpleType){
+        basefield->setInvisible();
+        applyReference(*basefield, true);
+        applyReference(*st, true);
+        addNameSpaceAsVariant(this, st);
+        basefield->mode = restrictionMode;
+        }
+    }
+  } else if (mode == restrictionMode && cmode == CT_simpletype_mode && basefield != NULL) {
+    ComplexType * ct = (ComplexType*) TTCN3ModuleInventory::getInstance().lookup(basefield, want_CT);
+    if (ct == NULL && !isBuiltInType(basefield->getType().convertedValue)) {
+      printError(module->getSchemaname(), name.convertedValue,
+        "Reference for a non-defined type: " + basefield->getReference().repr());
+      TTCN3ModuleInventory::getInstance().incrNumErrors();
+      return;
+    }
+    
+    basefield->outside_reference.set_resolved(ct);
+    if (ct != NULL) {
+      if (ct->resolved == No) {
+        ct->referenceResolving();
+      }
+      for (List<AttributeType*>::iterator f = ct->attribfields.begin(); f; f = f->Next) {
+        AttributeType * attr = new AttributeType(*f->Data);
+        attribfields.push_back(attr);
+        setParent(this, attr);
+      }
+      addNameSpaceAsVariant(this, ct);
+    }
+    if(!basefield->parent->top){
+      applyReference(*basefield, true);
+      basefield->setInvisible();
     }
   }
-  if (!foundAtLeastOneVariant) return;
+}
 
+void ComplexType::resolveComplexTypeExtension() {
+  if (mode == extensionMode && cmode == CT_complextype_mode && !outside_reference.empty()) {
+    ComplexType * ct = (ComplexType*) TTCN3ModuleInventory::getInstance().lookup(this, want_CT);
+    if (ct == NULL) {
+      printError(module->getSchemaname(), name.convertedValue,
+        "Reference for a non-defined type: " + getReference().repr());
+      TTCN3ModuleInventory::getInstance().incrNumErrors();
+      return;
+    }
+    if(ct->getXsdtype() != n_NOTSET){
+      outside_reference.set_resolved(ct);
+      if (ct->resolved == No) {
+        ct->referenceResolving();
+      }
+      List<AttributeType*>::iterator anyAttr = attribfields.begin();
+      for (; anyAttr; anyAttr = anyAttr->Next) {
+        if (anyAttr->Data->isAnyAttribute()) {
+          break;
+        }
+      }
 
-  fprintf(file, "\nwith {\n");
+      if (anyAttr != NULL) {
+        applyAttributeExtension(ct, anyAttr->Data);
+      } else {
+        applyAttributeExtension(ct);
+      }
 
-  bool useUnionVariantWhenMainTypeIsRecordOf = false;
-  for (List<Mstring>::iterator var = variant.end(); var; var = var->Prev)
-  {
-    if ((minOccurs != 1 || maxOccurs != 1) && (var->Data == "\"useUnion\"")) { // main type is a record of
-      useUnionVariantWhenMainTypeIsRecordOf = true;          // TR HL15893
+      if (ct->getName().convertedValue == outside_reference.get_val() && ct->getModule()->getTargetNamespace() == outside_reference.get_uri()) {
+        //Self recursion
+        outside_reference.set_resolved(ct);
+        for (List<ComplexType*>::iterator f = ct->complexfields.end(); f; f = f->Prev) {
+          if (f->Data != this) { //not a self recursive field
+            ComplexType * newField = new ComplexType(*f->Data);
+            complexfields.push_front(newField);
+            setParent(this, newField);
+          } else {
+            //Self recursive field
+            ComplexType * field = new ComplexType(this);
+            field->name.upload(f->Data->getName().convertedValue);
+            field->applyReference(*f->Data);
+            field->type.upload(ct->getName().convertedValue + Mstring(".") + f->Data->getName().convertedValue);
+            field->type.no_replace = true;
+            field->minOccurs = f->Data->minOccurs;
+            field->maxOccurs = f->Data->maxOccurs;
+            complexfields.push_front(field);
+            setParent(this, field);
+          }
+        }
+      } else {
+        //Normal extension
+        for (List<ComplexType*>::iterator f = ct->complexfields.end(); f; f = f->Prev) {
+          ComplexType * newField = new ComplexType(*f->Data);
+          complexfields.push_front(newField);
+          setParent(this, newField);
+        }
+      }
     }
-    else {
-      fprintf(file, "variant %s;\n", var->Data.c_str());
+  }
+}
+
+void ComplexType::resolveComplexTypeRestriction() {
+  if (mode == restrictionMode && cmode == CT_complextype_mode && !outside_reference.empty()) {
+    ComplexType * ct = (ComplexType*) TTCN3ModuleInventory::getInstance().lookup(this, want_CT);
+    if(ct->getXsdtype() != n_NOTSET){
+      if (ct->resolved == No) {
+        ct->referenceResolving();
+      }
+      outside_reference.set_resolved(ct);
+      applyAttributeRestriction(ct);
+
+      size_t size = complexfields.size();
+      size_t i = 0;
+      List<ComplexType*>::iterator field = complexfields.begin();
+      for (; i < size; field = field->Next, i = i + 1){
+        List<ComplexType*>::iterator field2 = ct->complexfields.begin();
+        for (; field2; field2 = field2->Next) {
+          if (field->Data->getName().convertedValue == field2->Data->getName().convertedValue &&
+            field->Data->getType().convertedValue == field2->Data->getType().convertedValue) {
+            field->Data->applyReference(*field2->Data, false);
+            break;
+          }
+        }
+        if(field2 == NULL){
+          field->Data->setInvisible();
+        }
+      }
     }
   }
-  if (useUnionVariantWhenMainTypeIsRecordOf) {
-    fprintf(file, "variant ([-]) \"useUnion\";\n");
+}
+
+void ComplexType::resolveUnion(SimpleType *st) {
+  if (parent != NULL && parent->with_union && xsdtype == n_simpleType && !outside_reference.empty()) {
+    if (st->getXsdtype() != n_NOTSET) {
+      ComplexType * ct = (ComplexType*) st;
+      outside_reference.set_resolved(ct);
+      for (List<ComplexType*>::iterator field = ct->complexfields.begin(); field; field = field->Next) {
+        ComplexType * newField = new ComplexType(*field->Data);
+        parent->complexfields.push_back(newField);
+        setParent(parent, newField);
+      }
+      setInvisible();
+    }
   }
+}
 
-  for (List<FieldType*>::iterator field = fields_final.begin(); field; field = field->Next)
-  {
-    if (field->Data->getVariant().empty()) continue;
+void ComplexType::modifyAttributeParent() {
+  if (nillable_field != NULL) {
+    ((ComplexType*) nillable_field)->actfield = nillable_field;
+  } else {
+    actfield = this;
+  }
+}
 
-    expstring_t localPath = mcopystr(field->Data->getPath().c_str());
-    localPath = mtruncstr(localPath, mstrlen(localPath)-1);
-    size_t loclen = mstrlen(localPath);
-    if (loclen >= 3) {
-      char * pointer = localPath + loclen - 3;
-      if (pointer[0]=='[' && pointer[1]=='-' && pointer[2]==']') {
-        localPath = mtruncstr(localPath, loclen - 3);
+void ComplexType::addSubstitution(SimpleType* st){
+  ComplexType * element;
+  if(st->getXsdtype() == n_NOTSET || !complexfields.empty()){
+    element = new ComplexType(*st, fromTagSubstition);
+  }else {
+    element = new ComplexType(*(ComplexType*)st);
+    element->variant.clear();
+  }
+  element->subsGroup = this;
+  element->parent = this;
+  if(complexfields.empty()){ //The first element(head)
+    element->setTypeValue(st->getType().convertedValue);
+    if(st->hasVariant(Mstring("\"abstract\""))){
+      element->addVariant(V_onlyValueHidden, Mstring("\"abstract\""));
+    }
+  }else {
+    Mstring newType;
+    if(st->getType().convertedValue == "anyType"){
+      newType = complexfields.front()->getType().convertedValue;
+    }else {
+      newType = st->getName().convertedValue;
+      st->addToNameDepList(element);
+    }
+    element->setTypeValue(newType);
+    BlockValue front_block = complexfields.front()->getBlock();
+    if(front_block == all || front_block == substitution){
+      element->addVariant(V_onlyValueHidden, Mstring("\"block\""));
+    }else if(front_block == restriction || front_block == extension){
+      const Mstring& head_type = complexfields.front()->getType().convertedValue.getValueWithoutPrefix(':');
+      Mstring elem_type = findRoot(front_block, st, head_type, true);
+      if(head_type == elem_type){
+        element->addVariant(V_onlyValueHidden, Mstring("\"block\""));
       }
     }
-    if (minOccurs != 1 || maxOccurs != 1) { // main type is a record of
-      expstring_t temp = mcopystr(localPath);
-      Free(localPath);
-      localPath = mprintf("[-].%s", temp);
-      Free(temp);
-    }
+  }
 
-    bool already_used = false;
+  element->setNameValue(st->getName().convertedValue);
+  element->top = false;
+  complexfields.push_back(element);
+}
 
-    for (List<Mstring>::iterator var2 = field->Data->getVariant().end(); var2; var2 = var2->Prev)
-    {
-      if (var2->Data == "\"untagged\"" && !already_used)
-      {
-        fprintf(file, "variant (%s) %s;\n", localPath, var2->Data.c_str());
-        already_used = true;
+Mstring ComplexType::findRoot(const BlockValue block_value, SimpleType* elem, const Mstring& head_type, const bool first){
+  if(!first && elem->getType().convertedValue.getValueWithoutPrefix(':') == head_type && !isFromRef()){
+    return elem->getType().convertedValue.getValueWithoutPrefix(':');
+  }else if(elem->getType().convertedValue.getValueWithoutPrefix(':') == head_type && (isFromRef() && ((elem->getMode() == restrictionMode && block_value == restriction) || (elem->getMode() == extensionMode && block_value == extension)))){
+    return elem->getType().convertedValue.getValueWithoutPrefix(':');
+  }else {
+    SimpleType * st = NULL;
+    if((elem->getMode() == restrictionMode && block_value == restriction) ||
+       (elem->getMode() == extensionMode && block_value == extension)){
+      if(!elem->getReference().is_resolved()){
+        elem->referenceResolving();
       }
-      else
-      {
-        if ((field->Data->getMinOccurs() != 1 || field->Data->getMaxOccurs() != 1) &&
-          field->Data->getName().list_extension) {
-          fprintf(file, "variant (%s[-]) %s;\n", localPath, var2->Data.c_str());
-        }
-        else {
-          fprintf(file, "variant (%s) %s;\n", localPath, var2->Data.c_str());
+      if(elem->getXsdtype() != n_NOTSET){
+        ComplexType * ct = (ComplexType*)elem;
+        if(ct->basefield != NULL && ct->basefield->getType().convertedValue.getValueWithoutPrefix(':') == head_type){
+          return head_type;
+        }else if(ct->basefield != NULL){
+          st = (SimpleType*)TTCN3ModuleInventory::getInstance().lookup(ct->basefield, want_BOTH);
         }
       }
+      if(st == NULL){
+        st = (SimpleType*)(elem->getReference().get_ref());
+      }
+    }else if(elem->getMode() == noMode && (block_value == restriction || block_value == extension)){
+      st = (SimpleType*)TTCN3ModuleInventory::getInstance().lookup(this, elem->getType().convertedValue, want_BOTH);
+    }
+    if(st != NULL && elem != st){
+      return findRoot(block_value, st, head_type, false);
     }
-    Free(localPath);
   }
-  fprintf(file, "}");
-}
-
-void ComplexType::dump(unsigned int depth) const
-{
-  fprintf(stderr, "%*s %sComplexType at %p\n", depth * 2, "", isVisible() ? "" : "(hidden)", (const void*)this);
-  fprintf(stderr, "%*s name='%s' -> '%s', %d fields\n", depth * 2, "",
-    name.originalValueWoPrefix.c_str(), name.convertedValue.c_str(), (int)fields.size());
-  for (List<FieldType*>::iterator field = fields.begin(); field; field = field->Next) {
-    field->Data->dump(depth+1);
-  }
-  fprintf(stderr, "%*s %d final fields\n", depth * 2, "", (int)fields_final.size());
-  for (List<FieldType*>::iterator field = fields_final.begin(); field; field = field->Next) {
-    field->Data->dump(depth+1);
+  if(elem->getMode() == noMode && !first){
+    return elem->getType().convertedValue.getValueWithoutPrefix(':');
+  }else {
+    return empty_string;
   }
 }
diff --git a/xsdconvert/ComplexType.hh b/xsdconvert/ComplexType.hh
index 1f99cc6d8..e310e32bc 100644
--- a/xsdconvert/ComplexType.hh
+++ b/xsdconvert/ComplexType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -9,64 +9,12 @@
 #define COMPLEXTYPE_H_
 
 #include "RootType.hh"
+#include "SimpleType.hh"
+#include "TTCN3Module.hh"
+#include "AttributeType.hh"
 
-class FieldType;
-class SimpleType;
-
-class EmbeddedType
-{
-public:
-  int depth;
-  bool valid;
-  bool strictValid;
-  unsigned long long int minOccurs;
-  unsigned long long int maxOccurs;
-  FieldType * order_attribute;
-
-  explicit EmbeddedType (int a_depth=0, unsigned long long int a_minOccurs=1, unsigned long long int a_maxOccurs=1,
-    FieldType * a_order_attribute=NULL)
-  : depth(a_depth)
-  , valid(true)
-  , strictValid(true)
-  , minOccurs(a_minOccurs)
-  , maxOccurs(a_maxOccurs)
-  , order_attribute(a_order_attribute)
-  {}
-};
-
-class GenerationType
-{
-public:
-  FieldType * field;
-  int depth;
-  FieldType * order_attribute;
-  FieldType * embed_values_attribute;
-  int max_alt;
-
-  explicit GenerationType (FieldType * a_field = NULL, int a_depth = 0,
-    FieldType * a_order_attribute = NULL, FieldType * a_embed_values_attribute = NULL, int a_max_alt = 0)
-  : field(a_field)
-  , depth(a_depth)
-  , order_attribute(a_order_attribute)
-  , embed_values_attribute(a_embed_values_attribute)
-  , max_alt(a_max_alt)
-  {}
-};
-
-class AttrBaseType
-{
-public:
-  FieldType * base;
-  int depth;
-  bool valid;
-
-  explicit AttrBaseType (FieldType * a_base = NULL, int a_depth = 0)
-  : base(a_base)
-  , depth(a_depth)
-  , valid(true)
-  {}
-};
 
+class AttributeType;
 
 /**
  * Type that contains information coming from XSD complexTypes, model group definitions
@@ -75,27 +23,29 @@ public:
  * Source in XSD:
  *
  * 	* <complexType>, <group> and <attributeGroup> element whose parent element is <schema>
+ *    * <element> if nillable, or is a child of <complexType>
  *
  * Result in TTCN-3:
  *
  * 	* TTCN-3 type
  *
  */
-class ComplexType : public RootType
-{
+class ComplexType : public SimpleType {
 public:
-  enum ComplexType_Mode
-  {
+
+  enum ComplexType_Mode {
     CT_simpletype_mode,
     CT_complextype_mode,
     CT_undefined_mode
   };
-  enum CT_fromST
-  {
+
+  enum CT_fromST {
     fromTagUnion,
     fromTagNillable,
-    fromTagComplexType
+    fromTagComplexType,
+    fromTagSubstition
   };
+
   enum Resolv_State {
     No,
     InProgress,
@@ -103,74 +53,103 @@ public:
   };
 
 private:
-  List<FieldType*> fields;
-  List<FieldType*> fields_final;
-
-  int actualLevel;
-  Mstring actualPath;
-
-  List<ComplexType_Mode> ctmode;
-  List<GenerationType> fieldGenInfo;
-  List<GenerationType> recGenInfo;
-  List<AttrBaseType> attributeBases;
-  List<EmbeddedType> embed_inSequence;
-  List<EmbeddedType> embed_inChoice;
-  List<EmbeddedType> embed_inAll;
+  //If the complextype is a top level component (child of schema)
+  bool top;
+  bool nillable;
+  bool enumerated;
+  bool embed;
   bool with_union;
+  bool first_child;
+  bool fromAll;
+  unsigned max_alt;
+  int skipback;
+  TagName lastType;
+  Mstring actualPath;
+  RootType * actfield;
+  SimpleType * nameDep;
+  RootType * nillable_field;
+  ComplexType * basefield;
+  ComplexType_Mode cmode;
   Resolv_State resolved;
 
-  FieldType * generateField ();
-  FieldType * generateAttribute ();
-  FieldType * generateRecord (unsigned long long int a_minOccurs, unsigned long long int a_maxOccurs);
-  FieldType * generateUnion (unsigned long long int a_minOccurs, unsigned long long int a_maxOccurs);
-
-  void initialSettings ();
-
-  void reference_resolving_funtion (List<FieldType*> & container);
-  void sortAttributes ();
-  void nameConversion_names (const List<NamespaceType> & ns);
-  void nameConversion_types (const List<NamespaceType> & ns);
-  void nameConversion_fields (const List<NamespaceType> & ns);
-  void indent (FILE * file, int x) { for (int l = 0; l < x; ++l) fprintf(file, "\t"); }
 
-  void printVariant (FILE * file);
+  void applyAttributeRestriction(ComplexType * found_CT);
+  void applyAttributeExtension(ComplexType * found_CT, AttributeType * anyAttr = NULL);
+  void nameConversion_names(const List<NamespaceType> & ns);
+  void nameConversion_types(const List<NamespaceType> & ns);
+  void nameConversion_fields(const List<NamespaceType> & ns);
+  void setFieldPaths(Mstring path);
+  void collectVariants(List<Mstring>& container);
+  void addNameSpaceAsVariant(RootType * type, RootType * other);
+  void setMinMaxOccurs(const unsigned long long min, const unsigned long long max, const bool generate_list_postfix = true);
+  void applyNamespaceAttribute(VariantMode varLabel, const Mstring& ns_list);
+  void applyReference(const SimpleType & other, const bool on_attributes = false);
+  void setParent(ComplexType * par, SimpleType * child);
+  void finalModification2();
+  Mstring findRoot(const BlockValue value, SimpleType * elem, const Mstring& head_type, const bool first);
+
+  //Reference resolving functions
+  void reference_resolving_funtion();
+  void resolveAttribute(AttributeType *attr);
+  void resolveAttributeGroup(SimpleType *st);
+  void resolveGroup(SimpleType *st);
+  void resolveElement(SimpleType *st);
+  void resolveSimpleTypeExtension();
+  void resolveSimpleTypeRestriction();
+  void resolveComplexTypeExtension();
+  void resolveComplexTypeRestriction();
+  void resolveUnion(SimpleType *st);
+
+  void printVariant(FILE * file);
 
 public:
-  ComplexType (XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
-  ComplexType (const ComplexType & other);
-  ComplexType (const SimpleType & other, CT_fromST c);
-  ~ComplexType ();
+  List<ComplexType*> complexfields;
+  List<AttributeType*> attribfields;
+  List<Mstring> enumfields;
+  List<TagName> tagNames;
+
+  ComplexType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
+  ComplexType(ComplexType & other);
+  ComplexType(const SimpleType & other, CT_fromST c);
+  ComplexType(ComplexType * other);
+  ~ComplexType();
+  
+  void modifyAttributeParent();
+  void addSubstitution(SimpleType* st);
 
   /** Virtual methods
    *  inherited from RootType
    */
-  void loadWithValues ();
-  void printToFile (FILE * file);
+  void loadWithValues();
+  void addComment(const Mstring& text);
+  void printToFile(FILE * file);
+  void printToFile(FILE * file, const unsigned level, const bool is_union);
 
-  void modifyValues ();
-  void referenceResolving ();
-  void nameConversion (NameConversionMode mode, const List<NamespaceType> & ns);
-  void finalModification ();
-  bool hasUnresolvedReference ();
-  void dump (unsigned int depth) const ;
+  void modifyValues();
+  void referenceResolving();
+  void nameConversion(NameConversionMode mode, const List<NamespaceType> & ns);
+  void finalModification();
+  bool hasUnresolvedReference(){ return resolved == No; }
 
-  void everything_into_fields_final ();
+  void dump(unsigned int depth) const;
 
-  void addToActualPath (const Mstring& text) {actualPath += text;}
-
-  void setWithUnion (bool b) {with_union = b;}
+};
 
-  const List<EmbeddedType> & getEmbedInChoice () const {return embed_inChoice;}
+inline bool compareComplexTypeNameSpaces(ComplexType * lhs, ComplexType * rhs) {
+  if (lhs->getModule()->getTargetNamespace() == Mstring("NoTargetNamespace") && rhs->getModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+    return false;
+  } else if (lhs->getModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+    return true;
+  } else if (rhs->getModule()->getTargetNamespace() == Mstring("NoTargetNamespace")) {
+    return false;
+  } else {
+    return lhs->getModule()->getTargetNamespace() <= rhs->getModule()->getTargetNamespace();
+  }
+}
 
-  const List<FieldType*> & getFields () const {return fields;}
-  const List<FieldType*> & getFieldsFinal () const {return fields_final;}
-  bool getWithUnion () const {return with_union;}
+inline bool compareTypes(ComplexType * lhs, ComplexType * rhs) {
+  return lhs->getName().convertedValue < rhs->getName().convertedValue;
+}
 
-  int getActualLevel () const {return actualLevel;}
-  const Mstring & getActualPath () const {return actualPath;}
-  ComplexType_Mode getMode() const {
-    return ctmode.empty() ? CT_undefined_mode : ctmode.front();
-  }
-};
 
 #endif /* COMPLEXTYPE_H_ */
diff --git a/xsdconvert/FieldType.cc b/xsdconvert/FieldType.cc
deleted file mode 100644
index 986fc6ce4..000000000
--- a/xsdconvert/FieldType.cc
+++ /dev/null
@@ -1,587 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 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
-///////////////////////////////////////////////////////////////////////////////
-#include "FieldType.hh"
-
-#include "GeneralFunctions.hh"
-#include "TTCN3Module.hh"
-#include "TTCN3ModuleInventory.hh"
-#include "ComplexType.hh"
-
-int FieldType::variantIdCounter = 0;
-
-FieldType::FieldType(ComplexType * a_complexType)
-: SimpleType(a_complexType->getParser(), a_complexType->getModule(), c_unknown)
-, parent(a_complexType)
-, attributes()
-, level(1)
-, isAnyAttr(false)
-, path()
-, variantID()
-{}
-
-FieldType::FieldType(const FieldType & other)
-: SimpleType(other)
-, parent(other.parent)
-, attributes()
-, level(other.level)
-, isAnyAttr(other.isAnyAttr)
-, path(other.path)
-, variantID(other.variantID)
-{
-  for (List<FieldType*>::iterator attr = other.attributes.begin(); attr; attr = attr->Next) {
-    attributes.push_back(new FieldType(*(attr->Data)));
-  }
-}
-
-FieldType::~FieldType()
-{
-  for (List<FieldType*>::iterator attr = attributes.begin(); attr; attr = attr->Next) {
-    delete(attr->Data);
-  }
-}
-
-void FieldType::setTypeOfField(const Mstring& in)
-{
-  type.upload(in);
-}
-
-void FieldType::setNameOfField(const Mstring& in, bool add_to_path_for_later_use, bool from_ref_attribute)
-{
-  if (from_ref_attribute)
-    name.convertedValue = in; // name.originalValueWoPrefix not set
-  else
-    name.upload(in);
-
-  variantID = generateVariantId();
-  path = parent->getActualPath() + variantID + ".";
-  if (add_to_path_for_later_use) parent->addToActualPath(variantID + ".");
-}
-
-void FieldType::setToAnyAttribute()
-{
-	isAnyAttr = true;
-}
-
-Mstring FieldType::generateVariantId()
-{
-  expstring_t tmp_string = memptystr();
-  Mstring name1(parent->getName().convertedValue.c_str());
-  Mstring name2(name.convertedValue.c_str());
-  for (size_t i = 0; i != name1.size(); ++i) {
-    if (name1[i] == '.') name1[i] = '_';
-  }
-  for (size_t i = 0; i != name2.size(); ++i) {
-    if (name2[i] == '.') name2[i] = '_';
-  }
-  tmp_string = mputprintf(tmp_string,
-    "##%s%d%s#",
-    name1.c_str(),
-    variantIdCounter++,
-    name2.c_str());
-
-  Mstring retval(tmp_string);
-  Free(tmp_string);
-  return retval;
-}
-
-void FieldType::applyRefAttribute(const Mstring& ref_value)
-{
-  if (!ref_value.empty()) {
-    setNameOfField(ref_value, false, true);
-    setTypeOfField(ref_value);
-    setReference(ref_value);
-  }
-}
-
-void FieldType::applyUseAttribute(UseValue use_value, unsigned long long & minOcc, unsigned long long & maxOcc)
-{
-  switch (use_value)
-  {
-  case optional:
-    minOcc = 0;
-    maxOcc = 1;
-    break;
-  case required:
-    minOcc = 1;
-    maxOcc = 1;
-    break;
-  case prohibited:
-    minOcc = 0;
-    maxOcc = 0;
-    break;
-  }
-}
-
-void FieldType::applyNamespaceAttribute(VariantMode varLabel, const Mstring& ns_list)
-{
-  List<Mstring> namespaces;
-  if (!ns_list.empty()) {
-    expstring_t valueToSplitIntoTokens = mcopystr(ns_list.c_str());
-    char * token;
-    token = strtok (valueToSplitIntoTokens," ");
-    while (token != NULL)
-    {
-      namespaces.push_back(Mstring(token));
-      token = strtok (NULL, " ");
-    }
-    Free(valueToSplitIntoTokens);
-  }
-
-  Mstring any_ns;
-  bool first = true;
-  // Note: libxml2 will verify the namespace list according to the schema
-  // of XML Schema. It is either ##any, ##other, ##local, ##targetNamespace,
-  // or a list of (namespace reference | ##local | ##targetNamespace).
-  for (List<Mstring>::iterator ns = namespaces.begin(); ns; ns = ns->Next)
-  {
-    static const Mstring xxany("##any"), xxother("##other"), xxlocal("##local"),
-      xxtargetNamespace("##targetNamespace");
-    if (!first) any_ns += ',';
-
-    if (ns->Data == xxany) {} // this must be the only element, nothing to add
-    else if (ns->Data == xxother) { // this must be the only element
-      any_ns += " except unqualified";
-      if (module->getTargetNamespace() != "NoTargetNamespace") {
-        any_ns += ", \'";
-        any_ns += parent->getModule()->getTargetNamespace();
-        any_ns += '\'';
-      }
-    }
-    // The three cases below can happen multiple times
-    else {
-      if (first) any_ns += " from ";
-      // else a comma was already added
-      if (ns->Data == xxtargetNamespace) {
-        any_ns += '\'';
-        any_ns += parent->getModule()->getTargetNamespace();
-        any_ns += '\'';
-      }
-      else if (ns->Data == xxlocal) {
-        any_ns += "unqualified";
-      }
-      else {
-        any_ns += '\'';
-        any_ns += ns->Data;
-        any_ns += '\'';
-      }
-    }
-
-    first = false;
-  }
-
-  addVariant(varLabel, any_ns, true);
-}
-
-void FieldType::applyMinMaxOccursAttribute(
-  unsigned long long minOccurs_value, unsigned long long maxOccurs_value,
-  bool generate_list_postfix)
-{
-  minOccurs = minOccurs_value;
-  maxOccurs = maxOccurs_value;
-
-  if (generate_list_postfix) {
-    if (minOccurs == 1 && maxOccurs == 1) {}
-    else if (minOccurs == 0 && maxOccurs == 1) {
-      // This would be an optional field...
-      if (!parent->getEmbedInChoice().empty()
-        && parent->getEmbedInChoice().back().strictValid) {
-        // except in a choice we can't have optional, so we simulate it
-        // with a record length(0..1) of ...
-        name.list_extension = true;
-      }
-    }
-    else {
-      name.list_extension = true;
-    }
-  }
-}
-
-void FieldType::setLevel(int l)
-{
-  level = l;
-  for (List<FieldType*>::iterator attr = attributes.begin(); attr; attr = attr->Next) {
-    attr->Data->level = l;
-  }
-}
-
-void FieldType::variantIdReplaceInPath(const Mstring& varid, const Mstring& text)
-{
-  const char * const temp_path = path.c_str();
-  const char * temp_path_end = temp_path + path.size();
-  const char * found_begin = strstr(temp_path, varid.c_str());
-  const char * found_end = found_begin + varid.size();
-
-  expstring_t result = NULL;
-
-  if (found_begin != NULL)
-  {
-    result = mcopystrn(temp_path, (found_begin - temp_path));
-    result = mputstr(result, text.c_str());
-    result = mputstrn(result, found_end, (temp_path_end - found_end));
-    path = result;
-  }
-
-  Free(result);
-}
-
-void FieldType::applyReference(const FieldType & other, bool on_attributes)
-{
-  type.convertedValue = other.type.convertedValue;
-  type.originalValueWoPrefix = other.type.convertedValue;
-
-  if (other.minOccurs > minOccurs || other.maxOccurs < maxOccurs) {
-    if (!on_attributes) {
-      expstring_t temp = memptystr();
-      temp = mputprintf(
-        temp,
-        "The occurrence range (%llu .. %llu) of the element (%s) is not compatible "
-        "with the occurrence range (%llu .. %llu) of the referenced element.",
-        minOccurs,
-        maxOccurs,
-        name.originalValueWoPrefix.c_str(),
-        other.minOccurs,
-        other.maxOccurs);
-      printError(module->getSchemaname(), parent->getName().originalValueWoPrefix,
-        Mstring(temp));
-      Free(temp);
-      TTCN3ModuleInventory::getInstance().incrNumErrors();
-    }
-  }
-  else {
-    minOccurs = llmax(minOccurs, other.minOccurs);
-    maxOccurs = llmin(maxOccurs, other.maxOccurs);
-  }
-
-  for (List<Mstring>::iterator var = other.variant_ref.begin(); var; var = var->Next) {
-    bool found = false;
-    for (List<Mstring>::iterator var1 = variant.begin(); var1; var1 = var1->Next) {
-      if (var->Data == var1->Data) {
-        found = true;
-      }
-    }
-    if (!found) {
-      variant.push_back(var->Data);
-      variant_ref.push_back(var->Data);
-    }
-  }
-  //	comment;
-
-  builtInBase = other.getBuiltInBase();
-
-  length.applyReference(other.length);
-  pattern.applyReference(other.pattern);
-  enumeration.applyReference(other.enumeration);
-  whitespace.applyReference(other.whitespace);
-  value.applyReference(other.value);
-
-  //	reference_for_other = resolved;
-
-  checkSortAndAddAttributes(other.attributes);
-
-  setLevel(level + other.getLevel() - 1);
-}
-
-void FieldType::referenceForST(SimpleType const * const found_ST,
-  List<FieldType*> & temp_container)
-{
-  outside_reference.set_resolved(found_ST);
-
-  if (!in_name_only) {
-    type = found_ST->getName();
-    if (name.originalValueWoPrefix.empty()) {
-      name.convertedValue = found_ST->getName().originalValueWoPrefix;
-    }
-    builtInBase = found_ST->getBuiltInBase();
-    for (List<Mstring>::iterator var = found_ST->getVariantRef().begin(); var; var = var->Next) {
-      variant.push_back(var->Data);
-    }
-    if (found_ST->getModule()->getTargetNamespace() != module->getTargetNamespace() &&
-      found_ST->getModule()->getTargetNamespace() != "NoTargetNamespace") {
-      addVariant(V_namespaceAs, found_ST->getModule()->getTargetNamespace());
-    }
-  }
-  temp_container.push_back(this);
-}
-
-static const Mstring attribute_variant("\"attribute\"");
-// The field (which may become a record field or maybe a union alternative)
-// refers to a complexType
-FieldType* FieldType::referenceForCT(ComplexType & found_CT,
-  List<FieldType*> & temp_container, List<ImportedField> & temp_container_imported)
-{
-  found_CT.referenceResolving();
-  outside_reference.set_resolved(&found_CT);
-  if (in_name_only) {
-    temp_container.push_back(this);
-    return 0;
-  }
-
-  switch (found_CT.getOrigin())
-  {
-  case from_element:
-  case from_attribute:
-  case from_simpleType: {
-    bool is_attribute = false;
-    for (List<Mstring>::iterator it = variant.begin(); it; it = it->Next) {
-      if (it->Data == attribute_variant) {
-        is_attribute = true;
-        break;
-      }
-    }
-
-    if (!is_attribute && found_CT.getWithUnion())
-    {
-      // Import fields (union alternatives) from the referenced type
-      for (List<FieldType*>::iterator field = found_CT.getFields().begin(); field; field = field->Next)
-      {
-        ImportedField fl = {
-          new FieldType(*(field->Data)),
-          temp_container.size() ? temp_container.back() : NULL
-        };
-        fl.field->level = level;
-
-        temp_container_imported.push_back(fl);
-      }
-    }
-    else // just refer to the found type
-    {
-      type.convertedValue = found_CT.getName().convertedValue;
-      name.convertedValue = found_CT.getName().convertedValue;
-      for (List<Mstring>::iterator var = found_CT.getVariantRef().begin(); var; var = var->Next) {
-        variant.push_back(var->Data);
-      }
-      if (found_CT.getModule()->getTargetNamespace() != module->getTargetNamespace() &&
-        found_CT.getModule()->getTargetNamespace() != "NoTargetNamespace") {
-        addVariant(V_namespaceAs, found_CT.getModule()->getTargetNamespace());
-      }
-      //already done: outside_reference.set_resolved(&found_CT);
-      temp_container.push_back(this);
-    }
-    break; }
-
-  case from_complexType: {
-    List<FieldType*> import;
-    for (List<FieldType*>::iterator field = found_CT.getFields().begin(); field; field = field->Next)
-    {
-      FieldType *newField = new FieldType(*(field->Data)); // deep copy
-
-      // Hook up the imported field with its new environment
-      newField->path      = truncatePathWithOneElement(path);
-      newField->variantID = newField->generateVariantId();
-      newField->path     += newField->variantID + ".";
-
-      import.push_back(newField);
-    }
-
-    import.begin()->Data->checkSortAndAddAttributes(attributes);
-
-    for (List<FieldType*>::iterator attribute = attributes.begin(); attribute; attribute = attribute->Next) {
-      delete attribute->Data;
-    }
-    attributes.clear();
-
-    bool found = false;
-    if (parent->getMode() != ComplexType::CT_complextype_mode)
-    {
-      for (List<FieldType*>::iterator imp = import.begin(), nextField; imp; imp = nextField)
-      {
-        nextField = imp->Next;
-
-        if (imp->Data->getName().originalValueWoPrefix == name.originalValueWoPrefix) {
-          // If an imported field has the same name as ourselves,...
-          FieldType* newField = new FieldType(*this);
-          newField->applyReference(*(imp->Data));
-          if (found_CT.getModule()->getTargetNamespace() != module->getTargetNamespace() &&
-            found_CT.getModule()->getTargetNamespace() != "NoTargetNamespace") {
-            newField->addVariant(V_namespaceAs, found_CT.getModule()->getTargetNamespace());
-          }
-          //already done: outside_reference.set_resolved(&found_CT);
-          temp_container.push_back(newField); 
-          delete imp->Data;
-          import.remove(imp); // backwards remove cheap
-          found = true;
-          break;
-        }
-      }
-    }
-
-    if (!found) {
-      visible = isBuiltInType(type.convertedValue);
-      FieldType* newField = new FieldType(*this);
-      if (found_CT.getModule()->getTargetNamespace() != module->getTargetNamespace() &&
-        found_CT.getModule()->getTargetNamespace() != "NoTargetNamespace") {
-        newField->addVariant(V_namespaceAs, found_CT.getModule()->getTargetNamespace());
-      }
-      //already done: outside_reference.set_resolved(&found_CT);
-      found_CT.addToNameDepList(newField);
-      temp_container.push_back(newField);
-    }
-
-    for (List<FieldType*>::iterator imp = import.begin(); imp; imp = imp->Next)
-    {
-      ImportedField fl = {
-        new FieldType(*(imp->Data)),
-        temp_container.size() ? temp_container.back() : NULL
-      };
-      fl.field->setLevel(level + imp->Data->getLevel() - 1);
-      if (mode == SimpleType::restrictionMode) fl.field->visible = false;
-
-      temp_container_imported.push_back(fl);
-      delete imp->Data;
-    }
-    return this;
-  }
-
-  case from_group:
-    type.originalValueWoPrefix.clear();
-    type.convertedValue = found_CT.getName().convertedValue;
-    name.convertedValue = found_CT.getName().convertedValue;
-    for (List<Mstring>::iterator var = found_CT.getVariantRef().begin(); var; var = var->Next) {
-      variant.push_back(var->Data);
-    }
-    if (found_CT.getModule()->getTargetNamespace() != module->getTargetNamespace() &&
-      found_CT.getModule()->getTargetNamespace() != "NoTargetNamespace") {
-      addVariant(V_namespaceAs, found_CT.getModule()->getTargetNamespace());
-    }
-    //already done: outside_reference.set_resolved(&found_CT);
-    temp_container.push_back(this);
-    break;
-
-  case from_attributeGroup:
-    for (List<FieldType*>::iterator refAttr = found_CT.getFields().back()->attributes.begin(); refAttr; refAttr = refAttr->Next)
-    {
-      ImportedField fl = {
-        new FieldType(*(refAttr->Data)),
-        temp_container.size() ? temp_container.back() : NULL
-      };
-
-      if (fl.field->getName().originalValueWoPrefix != "attr") {
-        fl.field->addVariant(V_attribute);
-      }
-      if (found_CT.getModule()->getTargetNamespace() != module->getTargetNamespace() &&
-        found_CT.getModule()->getTargetNamespace() != "NoTargetNamespace") {
-        fl.field->addVariant(V_namespaceAs, found_CT.getModule()->getTargetNamespace());
-      }
-
-      temp_container_imported.push_back(fl);
-    }
-    return this;
-
-  case from_unknown:
-    break;
-  }
-  return 0;
-}
-
-void FieldType::addAttribute(FieldType * attr)
-{
-  attributes.push_back(attr);
-}
-
-void FieldType::sortAttributes()
-{
-  bool found = false;
-  for (List<FieldType*>::iterator attr = attributes.begin(); attr; attr = attr->Next)
-  {
-    if (attr->Data->getName().convertedValue == "order" || attr->Data->getName().convertedValue == "embed_values") {
-      FieldType * temp = attr->Data;
-      attr->Data = attributes.begin()->Data;
-      attributes.begin()->Data = temp;
-      found = true;
-      break;
-    }
-  }
-  for (List<FieldType*>::iterator attr = attributes.begin(); attr; attr = attr->Next)
-  {
-    if (attr == attributes.begin() && found)
-      continue;
-    for (List<FieldType*>::iterator attr2 = attr->Next; attr2; attr2 = attr2->Next)
-    {
-      if (attr->Data->getName().convertedValue > attr2->Data->getName().convertedValue) {
-        FieldType * temp = attr->Data;
-        attr->Data = attr2->Data;
-        attr2->Data = temp;
-      }
-    }
-  }
-
-  // AnyAttribute must be after the other attributes in the generated tccn files:
-  for (List<FieldType*>::iterator attr = attributes.begin(); attr; attr = attr->Next)
-  {
-    if (attr->Data->isAnyAttribute())
-    {
-      FieldType * temp = attr->Data;
-      for (List<FieldType*>::iterator attr2 = attr; attr2->Next; attr2 = attr2->Next)
-      {
-        attr2->Data = attr2->Next->Data;
-      }
-      attributes.end()->Data = temp;
-      break;
-    }
-  }
-}
-
-void FieldType::checkSortAndAddAttributes(const List<FieldType*> & referencedAttributes)
-{
-  const List<FieldType*> origAttributes(attributes); // copy the pointers
-  attributes.clear();
-
-  // Creates a modifiable list with copies of the elements.
-  // Note that the elements are pointers; they are aliased!
-  List<FieldType*> refAttributes(referencedAttributes);
-
-  for (List<FieldType*>::iterator origAttr = origAttributes.begin(), nextAttr; origAttr; origAttr = nextAttr)
-  {
-    nextAttr = origAttr->Next;
-
-    bool found = false;
-    for (List<FieldType*>::iterator refAttr = refAttributes.begin(); refAttr; refAttr = refAttr->Next)
-    {
-      if (origAttr->Data->getName().convertedValue == refAttr->Data->getName().convertedValue) {
-        origAttr->Data->applyReference(*(refAttr->Data), true);
-        attributes.push_back(origAttr->Data);
-        refAttributes.remove(refAttr); // backwards remove cheap
-        found = true;
-        break;
-      }
-    }
-    if (!found) {
-      attributes.push_back(origAttr->Data);
-    }
-  }
-
-  for (List<FieldType*>::iterator refAttr = refAttributes.begin(); refAttr; refAttr = refAttr->Next)
-  {
-    FieldType * newAttribute = new FieldType(*(refAttr->Data));
-    newAttribute->path = truncatePathWithOneElement(path);
-    newAttribute->variantID = newAttribute->generateVariantId();
-    newAttribute->path += newAttribute->variantID + ".";
-    attributes.push_back(newAttribute);
-  }
-
-  sortAttributes();
-}
-
-void FieldType::dump(unsigned int depth) const
-{
-  fprintf(stderr, "%*s %sField '%s' -> '%s' at %p\n",    depth * 2, "", isVisible() ? "" : "(hidden)",
-    name.originalValueWoPrefix.c_str(), name.convertedValue.c_str(), (const void*)this);
-  fprintf(stderr, "%*s type %s, level %d\n", (depth+1) * 2, "", type.convertedValue.c_str(), level);
-  fprintf(stderr, "%*s (%llu .. %llu)\n"   , (depth+1) * 2, "", minOccurs, maxOccurs);
-  fprintf(stderr, "%*s %d attributes\n"    , (depth+1) * 2, "", (int)attributes.size());
-
-  for (List<FieldType*>::iterator attr = attributes.begin(); attr; attr = attr->Next) {
-    attr->Data->dump(depth+2);
-  }
-  fprintf(stderr, "%*s %d variants: ", (depth+1) * 2, "", (int)variant.size());
-  for (List<Mstring>::iterator var = variant.begin(); var; var = var->Next) {
-    fprintf(stderr, "%s, ", var->Data.c_str());
-  }
-  fprintf(stderr, "\n%*s path =/%s/"  , (depth+1) * 2, "", path.c_str());
-  fprintf(stderr, "\n%*s varid=|%s|\n", (depth+1) * 2, "", variantID.c_str());
-}
diff --git a/xsdconvert/FieldType.hh b/xsdconvert/FieldType.hh
deleted file mode 100644
index fd2050653..000000000
--- a/xsdconvert/FieldType.hh
+++ /dev/null
@@ -1,98 +0,0 @@
-///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 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
-///////////////////////////////////////////////////////////////////////////////
-#ifndef FIELDTYPE_HH_
-#define FIELDTYPE_HH_
-
-#include "SimpleType.hh"
-#include "GeneralTypes.hh"
-
-class ComplexType;
-class FieldType;
-
-struct ImportedField {
-  /// The imported field
-  FieldType *field;
-
-  /** The original field (probably called "base") which caused the import,
-   *  or any other previous field. The point is that the imported field
-   *  follows the "original" field. */
-  FieldType *orig;
-};
-
-/**
- * Type that contains information of a field of a TTCN-3 record or union
- *
- */
-class FieldType : public SimpleType
-{
-  ComplexType * parent;
-
-  List<FieldType*> attributes;
-
-  int level;
-
-  bool isAnyAttr;
-
-  /// Attribute qualifier
-  Mstring path;
-  Mstring variantID;
-
-  static int variantIdCounter;
-
-public:
-  explicit FieldType (ComplexType * a_complextype);
-  FieldType (const FieldType & other);
-  FieldType & operator = (const FieldType & rhs);
-  virtual ~FieldType ();
-
-  void setTypeOfField (const Mstring& in);
-  void setNameOfField (const Mstring& in, bool add_to_path_for_later_use, bool from_ref_attribute = false);
-  void setToAnyAttribute();
-  void applyRefAttribute (const Mstring& ref_value);
-  void applyUseAttribute (UseValue use_value, unsigned long long & minOcc, unsigned long long & maxOcc);
-  void applyNillableAttribute (const Mstring& nil_value);
-  void applyNamespaceAttribute (VariantMode varLabel, const Mstring& ns_list);
-
-  void applyMinMaxOccursAttribute (unsigned long long minOccurs_value, unsigned long long maxOccurs_value,
-    bool generate_list_postfix = false);
-
-  void setLevel (int l);
-  void incrLevel () {level++;}
-
-  int getLevel () const {return level;}
-  const Mstring& getPath () const {return path;}
-  const Mstring& getVariantId () const {return variantID;}
-
-  bool isOptional () const {return minOccurs == 0 && maxOccurs == 1 && !name.list_extension;}
-  bool isAnyAttribute() const {return isAnyAttr;}
-
-  Mstring generateVariantId ();
-  void variantIdReplaceInPath (const Mstring& varid, const Mstring& text);
-
-  void applyReference (const FieldType & other, bool on_attributes = false);
-
-  void referenceForST (SimpleType const * const found_ST,
-    List<FieldType*> & temp_container);
-
-  /**  Resolves the reference to the given ComplexType. The fields of the referenced type
-   * will be copied into one of the containers.
-   * @return 0 if the current field has been added to the container (the field can not be deleted)
-   *         "this" if a copy of the field has been added (the field can be deleted)
-   */
-  FieldType* referenceForCT (ComplexType & found_CT,
-    List<FieldType*> & temp_container, List<ImportedField> & temp_container_imported);
-
-  List<FieldType*> & getAttributes () {return attributes;}
-  void addAttribute (FieldType * attr);
-  void sortAttributes ();
-  void checkSortAndAddAttributes (const List<FieldType*> & referencedAttributes);
-
-  void dump (unsigned int depth) const;
-};
-
-#endif /* FIELDTYPE_HH_ */
diff --git a/xsdconvert/GeneralFunctions.cc b/xsdconvert/GeneralFunctions.cc
index e2d8a5c9c..f4817a658 100644
--- a/xsdconvert/GeneralFunctions.cc
+++ b/xsdconvert/GeneralFunctions.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -13,6 +13,7 @@
 #include <cstring>
 #include <cstdio>
 #include <cmath>
+#include <regex.h>
 
 extern bool w_flag_used;
 
@@ -24,11 +25,10 @@ extern bool w_flag_used;
 //				res - generated result
 // 				variant - generated variant string for TTCN-3
 //
+
 void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType type_of_the_name,
-  Mstring & res, Mstring & variant)
-{
-  static const char* TTCN3_reserved_words[] =
-  {
+  Mstring & res, Mstring & variant, bool no_replace) {
+  static const char* TTCN3_reserved_words[] = {
     "action", "activate", "address", "alive", "all", "alt", "altstep", "and", "and4b", "any", "anytype", "apply",
     "bitstring", "boolean", "break",
     "call", "case", "catch", "char", "charstring", "check", "clear", "complement", "component", "connect",
@@ -56,15 +56,14 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
     "xor", "xor4b",
     NULL
   };
-  static const char* TTCN3_predefined_functions[] =
-  {
+  static const char* TTCN3_predefined_functions[] = {
     "bit2int", "bit2hex", "bit2oct", "bit2str",
     "char2int", "char2oct",
     "decomp", "decvalue",
     "encvalue", "enum2int",
     "float2int", "float2str",
     "hex2bit", "hex2int", "hex2oct", "hex2str",
-    "int2bit", "int2char", "int2float", "int2hex", "int2oct", "int2str", "int2unichar",
+    "int2bit", "int2char", "int2enum", "int2float", "int2hex", "int2oct", "int2str", "int2unichar",
     "isvalue", "ischosen", "ispresent",
     "lengthof", "log2str",
     "oct2bit", "oct2char", "oct2hex", "oct2int", "oct2str", "oct2unichar"
@@ -74,8 +73,7 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
     "unichar2int", "unichar2char", "unichar2oct",
     NULL
   };
-  static const char* ASN1_reserved_words[] =
-  {
+  static const char* ASN1_reserved_words[] = {
     "ABSENT", "ABSTRACT-SYNTAX", "ALL", "APPLICATION", "AUTOMATIC",
     "BEGIN", "BIT", "BMPString", "BOOLEAN", "BY",
     "CHARACTER", "CHOICE", "CLASS", "COMPONENT", "COMPONENTS", "CONSTRAINED", "CONTAINING",
@@ -113,8 +111,7 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
     // If the type or field reference name is an XSD built-in type then it will be capitalized and get a prefix "XSD."
     // if (type_of_the_name == type_reference_name || type_of_the_name == field_reference_name) {
 
-    if (type_of_the_name == type_reference_name)
-    {
+    if (type_of_the_name == type_reference_name) {
       if (isBuiltInType(res)) {
         res[0] = toupper(res[0]);
         res = "XSD." + res;
@@ -122,19 +119,16 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
       }
       if (res == "record" ||
         res == "union" ||
-        res == "set" )
-      {
+        res == "set") {
         return;
       }
     }
 
-    if (type_of_the_name == enum_id_name)
-    {
+    if (type_of_the_name == enum_id_name) {
       bool found = false;
-      for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next)
-      {
+      for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next) {
         QualifiedName tmp(empty_string, res);
-        if (tmp == used->Data) {
+        if (tmp.nsuri == used->Data.nsuri && tmp.orig_name == used->Data.orig_name) {
           found = true;
           break;
         }
@@ -150,52 +144,59 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
     // the characters ' '(SPACE), '.'(FULL STOP) and '-'(HYPEN-MINUS)shall all be replaced by a "_" (LOW LINE)
     for (size_t i = 0; i != res.size(); ++i) {
       if ((res[i] == ' ') ||
-        (res[i] == '.') ||
-        (res[i] == '-'))
-      {
+        (res[i] == '.' && !no_replace) ||
+        (res[i] == '-')) {
         res[i] = '_';
       }
     }
     // any character except "A" to "Z", "a" to "z" or "0" to "9" and "_" shall be removed
     for (size_t i = 0; i != res.size(); ++i) {
-      if (!isalpha((const unsigned char)res[i]) && !isdigit((const unsigned char)res[i]) && (res[i] != '_')) {
-        res.eraseChar(i);
+      if (!isalpha((const unsigned char) res[i]) && !isdigit((const unsigned char) res[i]) && (res[i] != '_')) {
+        if (!no_replace && res[i] != '.') {
+          res.eraseChar(i);
+          i--;
+        }
       }
     }
     // a sequence of two of more "_" (LOW LINE) shall be replaced with a single "_" (LOW LINE)
     for (size_t i = 1; i < res.size(); ++i) {
-      if (res[i] == '_' && res[i-1] == '_') {
-        res.eraseChar(i--);
+      if (res[i] == '_' && res[i - 1] == '_') {
+        res.eraseChar(i);
+        i--;
       }
     }
     // "_" (LOW LINE) characters occurring at the end of the name shall be removed
-    if (!res.empty() && res[res.size()-1] == '_') res.eraseChar(res.size()-1);
+    if (!res.empty() && res[res.size() - 1] == '_') {
+      res.eraseChar(res.size() - 1);
+    }
     // "_" (LOW LINE) characters occurring at the beginning of the name shall be removed
-    if (!res.empty() && res[0] == '_') res.eraseChar(0);
+    if (!res.empty() && res[0] == '_') {
+      res.eraseChar(0);
+    }
   }
 
-  switch (type_of_the_name)
-  {
-  case type_reference_name:
-  case type_name:
-    if (res.empty()) {
-      res = "X";
-    }
-    else {
-      if (islower((const unsigned char)res[0])) res.setCapitalized();
-      else if (isdigit((const unsigned char)res[0])) res.insertChar(0, 'X');
-    }
-    break;
-  case field_name:
-  case enum_id_name:
-    if (res.empty()) {
-      res = "x";
-    }
-    else {
-      if (isupper((const unsigned char)res[0])) res.setUncapitalized();
-      else if (isdigit((const unsigned char)res[0])) res.insertChar(0, 'x');
-    }
-    break;
+  switch (type_of_the_name) {
+    case type_reference_name:
+    case type_name:
+      if (res.empty()) {
+        res = "X";
+      } else {
+        if (islower((const unsigned char) res[0])) {
+          res.setCapitalized();
+        } else if (isdigit((const unsigned char) res[0])) {
+          res.insertChar(0, 'X');
+        }
+      }
+      break;
+    case field_name:
+    case enum_id_name:
+      if (res.empty()) {
+        res = "x";
+      } else {
+        if (isupper((const unsigned char) res[0])) res.setUncapitalized();
+        else if (isdigit((const unsigned char) res[0])) res.insertChar(0, 'x');
+      }
+      break;
   }
   /********************************************************
    * STEP 2 - process if the generated name is
@@ -210,100 +211,93 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
    * according to paragraph a)
    * ******************************************************/
   bool postfixing = false;
-  QualifiedName qual_name(ns_uri, res);
-
-  switch (type_of_the_name)
-  {
-  // Do not use "res" in this switch; only qual_name
-  case type_name: {
-    for (int k = 0; ASN1_reserved_words[k]; k++) {
-      if (qual_name.name == ASN1_reserved_words[k]) {
-        postfixing = true;
-        break;
-      }
-    }
+  QualifiedName qual_name(ns_uri, res, in);
 
-    for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next)
-    {
-      if (qual_name == used->Data) {
-        postfixing = true;
-        break;
-      }
-    }
 
-    if (postfixing)
+  switch (type_of_the_name) {
+      // Do not use "res" in this switch; only qual_name
+    case type_name:
     {
-      bool found = false;
-      int counter = 1;
-      expstring_t tmpname = NULL;
-      do {
-        found = false;
-        Free(tmpname);
-        tmpname = mprintf("%s_%d", qual_name.name.c_str(), counter);
-        for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next)
-        {
-          if (QualifiedName(/* empty_string ? */ ns_uri, Mstring(tmpname)) == used->Data) {
-            found = true;
-            break;
-          }
+      for (int k = 0; ASN1_reserved_words[k]; k++) {
+        if (qual_name.name == ASN1_reserved_words[k]) {
+          postfixing = true;
+          break;
         }
-        counter++;
-      } while (found);
-      qual_name.name = tmpname; // NULL will result in an empty string
-      Free(tmpname);
-      postfixing = false;
-    }
-    break; }
-  case field_name:
-  case enum_id_name:
-    for (int k = 0; TTCN3_reserved_words[k]; k++) {
-      if (qual_name.name == TTCN3_reserved_words[k]) postfixing = true;
-    }
-    for (int k = 0; TTCN3_predefined_functions[k]; k++) {
-      if (qual_name.name == TTCN3_predefined_functions[k]) postfixing = true;
-    }
-    if (postfixing)
-    {
-      qual_name.name += "_";
-      postfixing = false;
-    }
+      }
 
-    for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next)
-    {
-      if (qual_name == used->Data) postfixing = true;
-    }
+      for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next) {
+        if (qual_name == used->Data) {
+          postfixing = true;
+          break;
+        }
+      }
 
-    if (postfixing)
-    {
-      bool found = false;
-      int counter = 0;
-      if (type_of_the_name == field_name) counter = 1;
-      else if (type_of_the_name == enum_id_name) counter = 0;
-      if (qual_name.name[qual_name.name.size()-1] == '_')
-        qual_name.name.eraseChar(qual_name.name.size()-1);
-      expstring_t tmpname = mprintf("%s_%d", qual_name.name.c_str(), counter);
-      do {
-        found = false;
-        if (counter > 0) {
+      if (postfixing) {
+        bool found = false;
+        int counter = 1;
+        expstring_t tmpname = NULL;
+        do {
+          found = false;
           Free(tmpname);
           tmpname = mprintf("%s_%d", qual_name.name.c_str(), counter);
-        }
-        for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next)
-        {
-          if (QualifiedName(/* empty_string ? */ns_uri, Mstring(tmpname)) == used->Data) {
-            found = true;
-            break;
+          for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next) {
+            if (QualifiedName(/* empty_string ? */ ns_uri, Mstring(tmpname)) == used->Data) {
+              found = true;
+              break;
+            }
           }
-        }
-        counter++;
-      } while (found);
-      qual_name.name = tmpname;
-      Free(tmpname);
-      postfixing = false;
+          counter++;
+        } while (found);
+        qual_name.name = tmpname; // NULL will result in an empty string
+        Free(tmpname);
+        postfixing = false;
+      }
+      break;
     }
-    break;
-  default:
-    break;
+    case field_name:
+    case enum_id_name:
+      for (int k = 0; TTCN3_reserved_words[k]; k++) {
+        if (qual_name.name == TTCN3_reserved_words[k]) postfixing = true;
+      }
+      for (int k = 0; TTCN3_predefined_functions[k]; k++) {
+        if (qual_name.name == TTCN3_predefined_functions[k]) postfixing = true;
+      }
+      if (postfixing) {
+        qual_name.name += "_";
+        postfixing = false;
+      }
+
+      for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next) {
+        if (qual_name == used->Data) postfixing = true;
+      }
+
+      if (postfixing) {
+        bool found = false;
+        int counter = 1;
+        if (qual_name.name[qual_name.name.size() - 1] == '_')
+          qual_name.name.eraseChar(qual_name.name.size() - 1);
+        expstring_t tmpname = mprintf("%s_%d", qual_name.name.c_str(), counter);
+        do {
+          found = false;
+          if (counter > 0) {
+            Free(tmpname);
+            tmpname = mprintf("%s_%d", qual_name.name.c_str(), counter);
+          }
+          for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next) {
+            if (QualifiedName(/* empty_string ? */ns_uri, Mstring(tmpname)) == used->Data) {
+              found = true;
+              break;
+            }
+          }
+          counter++;
+        } while (found);
+        qual_name.name = tmpname;
+        Free(tmpname);
+        postfixing = false;
+      }
+      break;
+    default:
+      break;
   }
 
   res = qual_name.name;
@@ -312,11 +306,9 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
    * STEP 3 - the defined name is put into the set of "not_av_names"
    * ******************************************************/
   // Finally recently defined name will be put into the set of "set<string> not_av_names"
-  if (type_of_the_name != type_reference_name)
-  {
+  if (type_of_the_name != type_reference_name) {
     bool found = false;
-    for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next)
-    {
+    for (QualifiedNames::iterator used = used_names.begin(); used; used = used->Next) {
       if (qual_name == used->Data) {
         found = true;
         break;
@@ -334,8 +326,7 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
   if (in == "sequence" ||
     in == "choice" ||
     in == "sequence_list" ||
-    in == "choice_list")
-  {
+    in == "choice_list") {
     return;
   }
   /********************************************************
@@ -349,135 +340,143 @@ void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType
     Mstring tmp2 = res;
     tmp1.setUncapitalized();
     tmp2.setUncapitalized();
-    switch (type_of_the_name)
-    {
-    case type_name:
-      if (tmp1 == tmp2) {				// If the only difference is the case of the first letter
-        if (isupper(in[0])) variant += "\"name as capitalized\"";
-        else 				variant += "\"name as uncapitalized\"";
-      } else {						// Otherwise if other letters have changed too
-        variant += "\"name as '" + in + "'\"";
-      }
-      break;
-    case field_name:
-      // Creating a variant string from a field of a complex type needs to write out the path of the fieldname
-      if (tmp1 == tmp2) {				// If the only difference is the case of the first letter
-        if (isupper(in[0])) variant += "\"name as capitalized\"";
-        else				variant += "\"name as uncapitalized\"";
-      } else {						// Otherwise if other letters have changed too
-        variant += "\"name as '" + in + "'\"";
-      }
-      break;
-    case enum_id_name:
-      if (tmp1 == tmp2) {				// If the only difference is the case of the first letter
-        if ( isupper(in[0]) ) {
-          variant += "\"text \'" + res + "\' as capitalized\"";
-        } else {
-          variant += "\"text \'" + res + "\' as uncapitalized\"";
+    switch (type_of_the_name) {
+      case type_name:
+        if (tmp1 == tmp2) { // If the only difference is the case of the first letter
+          if (isupper(in[0])) {
+            variant += "\"name as capitalized\"";
+          } else {
+            variant += "\"name as uncapitalized\"";
+          }
+        } else { // Otherwise if other letters have changed too
+          variant += "\"name as '" + in + "'\"";
         }
-      } else {						// Otherwise if other letters have changed too
-        variant += "\"text \'" + res + "\' as '" + in + "'\"";
-      }
-      break;
-    default:
-      break;
+        break;
+      case field_name:
+        // Creating a variant string from a field of a complex type needs to write out the path of the fieldname
+        if (tmp1 == tmp2) { // If the only difference is the case of the first letter
+          if (isupper(in[0])) {
+            variant += "\"name as capitalized\"";
+          } else {
+            variant += "\"name as uncapitalized\"";
+          }
+        } else { // Otherwise if other letters have changed too
+          variant += "\"name as '" + in + "'\"";
+        }
+        break;
+      case enum_id_name:
+        if (tmp1 == tmp2) { // If the only difference is the case of the first letter
+          if (isupper(in[0])) {
+            variant += "\"text \'" + res + "\' as capitalized\"";
+          } else {
+            variant += "\"text \'" + res + "\' as uncapitalized\"";
+          }
+        } else { // Otherwise if other letters have changed too
+          variant += "\"text \'" + res + "\' as '" + in + "'\"";
+        }
+        break;
+      default:
+        break;
     }
   }
 }
 
-bool isBuiltInType(const Mstring& in)
-{
+bool isBuiltInType(const Mstring& in) {
   static const char* XSD_built_in_types[] = {
     "string", "normalizedString", "token", "Name", "NMTOKEN", "NCName", "ID", "IDREF", "ENTITY",
     "hexBinary", "base64Binary", "anyURI", "language", "integer", "positiveInteger", "nonPositiveInteger",
     "negativeInteger", "nonNegativeInteger", "long", "unsignedLong", "int", "unsignedInt", "short",
     "unsignedShort", "byte", "unsignedByte", "decimal", "float", "double", "duration", "dateTime", "time",
     "date", "gYearMonth", "gYear", "gMonthDay", "gDay", "gMonth", "NMTOKENS", "IDREFS", "ENTITIES",
-    "QName", "boolean",	"anyType", "anySimpleType",	NULL
+    "QName", "boolean", "anyType", "anySimpleType", NULL
   };
   const Mstring& name = in.getValueWithoutPrefix(':');
   for (int i = 0; XSD_built_in_types[i]; ++i) {
-    if (name  ==  XSD_built_in_types[i]) return true;
+    if (name == XSD_built_in_types[i]) {
+      return true;
+    }
   }
   return false;
 }
 
-bool isStringType(const Mstring& in)
-{
+bool isStringType(const Mstring& in) {
   static const char* string_types[] = {
     "string", "normalizedString", "token", "Name", "NMTOKEN", "NCName", "ID", "IDREF", "ENTITY",
-    "hexBinary", "base64Binary", "anyURI", "language",	NULL
+    "hexBinary", "base64Binary", "anyURI", "language", NULL
   };
   const Mstring& name = in.getValueWithoutPrefix(':');
   for (int i = 0; string_types[i]; ++i) {
-    if (name == string_types[i]) return true;
+    if (name == string_types[i]) {
+      return true;
+    }
   }
   return false;
 }
 
-bool isIntegerType(const Mstring& in)
-{
+bool isIntegerType(const Mstring& in) {
   static const char* integer_types[] = {
     "integer", "positiveInteger", "nonPositiveInteger", "negativeInteger", "nonNegativeInteger", "long",
-    "unsignedLong", "int", "unsignedInt", "short", "unsignedShort", "byte", "unsignedByte",	NULL
+    "unsignedLong", "int", "unsignedInt", "short", "unsignedShort", "byte", "unsignedByte", NULL
   };
   const Mstring& name = in.getValueWithoutPrefix(':');
   for (int i = 0; integer_types[i]; ++i) {
-    if (name == integer_types[i]) return true;
+    if (name == integer_types[i]) {
+      return true;
+    }
   }
   return false;
 }
 
-bool isFloatType(const Mstring& in)
-{
+bool isFloatType(const Mstring& in) {
   static const char* float_types[] = {
     "decimal", "float", "double", NULL
   };
   const Mstring& name = in.getValueWithoutPrefix(':');
   for (int i = 0; float_types[i]; ++i) {
-    if (name == float_types[i]) return true;
+    if (name == float_types[i]) {
+      return true;
+    }
   }
   return false;
 }
 
-bool isTimeType(const Mstring& in)
-{
+bool isTimeType(const Mstring& in) {
   static const char* time_types[] = {
     "duration", "dateTime", "time", "date", "gYearMonth", "gYear", "gMonthDay", "gDay", "gMonth", NULL
   };
   const Mstring& name = in.getValueWithoutPrefix(':');
   for (int i = 0; time_types[i]; ++i) {
-    if (name == time_types[i]) return true;
+    if (name == time_types[i]) {
+      return true;
+    }
   }
   return false;
 }
 
-bool isSequenceType(const Mstring& in)
-{
+bool isSequenceType(const Mstring& in) {
   static const char* sequence_types[] = {
     "NMTOKENS", "IDREFS", "ENTITIES", "QName", NULL
   };
   const Mstring& name = in.getValueWithoutPrefix(':');
   for (int i = 0; sequence_types[i]; ++i) {
-    if (name == sequence_types[i]) return true;
+    if (name == sequence_types[i]) {
+      return true;
+    }
   }
   return false;
 }
 
-bool isBooleanType(const Mstring& in)
-{
+bool isBooleanType(const Mstring& in) {
   static const Mstring booltype("boolean");
   return booltype == in.getValueWithoutPrefix(':');
 }
 
-bool isQNameType(const Mstring& in)
-{
+bool isQNameType(const Mstring& in) {
   static const Mstring qntype("QName");
   return qntype == in.getValueWithoutPrefix(':');
 }
 
-bool isAnyType(const Mstring& in)
-{
+bool isAnyType(const Mstring& in) {
   static const char* any_types[] = {
     "anyType", "anySimpleType", NULL
   };
@@ -488,8 +487,71 @@ bool isAnyType(const Mstring& in)
   return false;
 }
 
-void printError(const Mstring& filename, int lineNumber, const Mstring& text)
-{
+bool matchDates(const char * string, const char * type) {
+  const Mstring day("(0[1-9]|[12][0-9]|3[01])");
+  const Mstring month("(0[1-9]|1[0-2])");
+  const Mstring year("([0-9][0-9][0-9][0-9])");
+  const Mstring hour("([01][0-9]|2[0-3])");
+  const Mstring minute("([0-5][0-9])");
+  const Mstring second("([0-5][0-9])");
+  const Mstring endofdayext("24:00:00(.0?)?");
+  const Mstring yearext("((-)([1-9][0-9]*)?)?");
+  const Mstring timezone("(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?");
+  const Mstring fraction("(.[0-9]+)?");
+  const Mstring nums("[0-9]+");
+  const Mstring durtime("(T[0-9]+"
+    "(H([0-9]+(M([0-9]+(S|.[0-9]+S))?|.[0-9]+S|S))?|"
+    "M([0-9]+(S|.[0-9]+S)|.[0-9]+M)?|S|.[0-9]+S))");
+
+  Mstring pattern;
+  if (strcmp(type, "gDay") == 0) {
+    pattern = Mstring("(---)") + day + timezone;
+  } else if (strcmp(type, "gMonth") == 0) {
+    pattern = Mstring("(--)") + month + timezone;
+  } else if (strcmp(type, "gYear") == 0) {
+    pattern = yearext + year + timezone;
+  } else if (strcmp(type, "gYearMonth") == 0) {
+    pattern = yearext + year + Mstring("(-)") + month + timezone;
+  } else if (strcmp(type, "gMonthDay") == 0) {
+    pattern = Mstring("(--)") + month + Mstring("(-)") + day + timezone;
+  } else if (strcmp(type, "date") == 0) {
+    pattern = yearext + year + Mstring("(-)") + month + Mstring("(-)") + day + timezone;
+  } else if (strcmp(type, "time") == 0) {
+    pattern = Mstring("(") + hour + Mstring(":") + minute + Mstring(":") + second +
+      fraction + Mstring("|") + endofdayext + Mstring(")") + timezone;
+  } else if (strcmp(type, "dateTime") == 0) {
+    pattern = yearext + year + Mstring("(-)") + month + Mstring("(-)") + day +
+      Mstring("T(") + hour + Mstring(":") + minute + Mstring(":") + second +
+      fraction + Mstring("|") + endofdayext + Mstring(")") + timezone;
+  } else if (strcmp(type, "duration") == 0) {
+    pattern = Mstring("(-)?P(") + nums + Mstring("(Y(") + nums + Mstring("(M(") +
+      nums + Mstring("D") + durtime + Mstring("?|") + durtime + Mstring("?|D") +
+      durtime + Mstring("?)|") + durtime + Mstring("?)|M") + nums + Mstring("D") +
+      durtime + Mstring("?|") + durtime + Mstring("?)|D") + durtime +
+      Mstring("?)|") + durtime + Mstring(")");
+  } else {
+    return false;
+  }
+
+  pattern = Mstring("^") + pattern + Mstring("$");
+  return matchRegexp(string, pattern.c_str());
+}
+
+bool matchRegexp(const char * string, const char * pattern) {
+  int status;
+  regex_t re;
+  if (regcomp(&re, pattern, REG_EXTENDED | REG_NOSUB) != 0) {
+    return (false); /* report error */
+  }
+  status = regexec(&re, string, (size_t) 0, NULL, 0);
+  regfree(&re);
+  if (status != 0) {
+    return (false); /* report error */
+  }
+  return (true);
+}
+
+void printError(const Mstring& filename, int lineNumber, const Mstring& text) {
   fprintf(stderr,
     "ERROR:\n"
     "%s (in line %d): "
@@ -499,8 +561,7 @@ void printError(const Mstring& filename, int lineNumber, const Mstring& text)
     text.c_str());
 }
 
-void printError(const Mstring& filename, const Mstring& typeName, const Mstring& text)
-{
+void printError(const Mstring& filename, const Mstring& typeName, const Mstring& text) {
   fprintf(stderr,
     "ERROR:\n"
     "%s (in type %s): "
@@ -510,8 +571,7 @@ void printError(const Mstring& filename, const Mstring& typeName, const Mstring&
     text.c_str());
 }
 
-void printWarning(const Mstring& filename, int lineNumber, const Mstring& text)
-{
+void printWarning(const Mstring& filename, int lineNumber, const Mstring& text) {
   if (w_flag_used) return;
   fprintf(stderr,
     "WARNING:\n"
@@ -522,8 +582,7 @@ void printWarning(const Mstring& filename, int lineNumber, const Mstring& text)
     text.c_str());
 }
 
-void printWarning(const Mstring& filename, const Mstring& typeName, const Mstring& text)
-{
+void printWarning(const Mstring& filename, const Mstring& typeName, const Mstring& text) {
   if (w_flag_used) return;
   fprintf(stderr,
     "WARNING:\n"
@@ -534,45 +593,59 @@ void printWarning(const Mstring& filename, const Mstring& typeName, const Mstrin
     text.c_str());
 }
 
-long double stringToLongDouble(const char *input)
-{
+void indent(FILE* file, const int x) {
+  for (int l = 0; l < x; ++l) {
+    fprintf(file, "\t");
+  }
+}
+
+long double stringToLongDouble(const char *input) {
   long double result = 0.0;
   // `strtold()' is not available on older platforms.
   sscanf(input, "%Lf", &result);
   return result;
 }
 
-Mstring truncatePathWithOneElement(const Mstring& path)
-{
-  Mstring result;
-  size_t pathlen = path.size();
-  if (pathlen > 1) {
-    expstring_t temp = mcopystr(path.c_str()); // modifiable copy
-    temp[pathlen - 1] = '\0'; // ignore last character
-    char * point = strrchr(temp, '.');
-    if (point != NULL) {
-      point[1] = '\0'; // truncate just past the dot
-      result = Mstring(temp);
+const Mstring& getNameSpaceByPrefix(const RootType * root, const Mstring& prefix){
+  for(List<NamespaceType>::iterator mod = root->getModule()->getDeclaredNamespaces().begin(); mod; mod = mod->Next){
+    if(mod->Data.prefix == prefix){
+      return mod->Data.uri;
     }
-    Free(temp);
   }
-  return result;
+  return empty_string;
+}
+
+const Mstring& getPrefixByNameSpace(const RootType * root, const Mstring& namespace_){
+  for(List<NamespaceType>::iterator mod = root->getModule()->getDeclaredNamespaces().begin(); mod; mod = mod->Next){
+    if(mod->Data.uri == namespace_){
+      return mod->Data.prefix;
+    }
+  }
+  return empty_string;
+}
+
+const Mstring findBuiltInType(const RootType* ref, Mstring type){
+  RootType * root = TTCN3ModuleInventory::getInstance().lookup(ref, type, want_BOTH);
+  if(root != NULL && isBuiltInType(root->getType().originalValueWoPrefix)){
+    return root->getType().originalValueWoPrefix;
+  }else if(root != NULL){
+    return findBuiltInType(root, root->getType().originalValueWoPrefix);
+  }else {
+    return type;
+  }
 }
 
-RootType * lookup (const List<TTCN3Module*> mods,  const SimpleType * reference, wanted w)
-{
+RootType * lookup(const List<TTCN3Module*> mods, const SimpleType * reference, wanted w) {
   const Mstring& uri = reference->getReference().get_uri();
   const Mstring& name = reference->getReference().get_val();
 
   return lookup(mods, name, uri, reference, w);
 }
 
-RootType * lookup (const List<TTCN3Module*> mods,
-  const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w)
-{
+RootType * lookup(const List<TTCN3Module*> mods,
+  const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w) {
   RootType *ret = NULL;
-  for (List<TTCN3Module*>::iterator module = mods.begin(); module; module = module->Next)
-  {
+  for (List<TTCN3Module*>::iterator module = mods.begin(); module; module = module->Next) {
     ret = lookup1(module->Data, name, nsuri, reference, w);
     if (ret != NULL) break;
   } // next doc
@@ -581,38 +654,35 @@ RootType * lookup (const List<TTCN3Module*> mods,
 }
 
 RootType *lookup1(const TTCN3Module *module,
-  const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w)
-{
+  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:
-    case c_element:
-    case c_attribute:
-      if (w == want_ST) {
-        if ((const RootType*)reference != type->Data
-          && name == type->Data->getName().convertedValue) {
-          return type->Data;
+  for (List<RootType*>::iterator type = module->getDefinedTypes().begin(); type; type = type->Next) {
+    switch (type->Data->getConstruct()) {
+      case c_simpleType:
+      case c_element:
+      case c_attribute:
+        if (w == want_ST || w == want_BOTH) {
+          if ((const RootType*) reference != type->Data
+            && name == type->Data->getName().originalValueWoPrefix) {
+            return type->Data;
+          }
         }
-      }
-      break;
+        break;
 
-    case c_complexType:
-    case c_group:
-    case c_attributeGroup:
-      if (w == want_CT) {
-        if ((const RootType*)reference != type->Data
-          && name == type->Data->getName().convertedValue) {
-          return type->Data;
+      case c_complexType:
+      case c_group:
+      case c_attributeGroup:
+        if (w == want_CT || w == want_BOTH) {
+          if ((const RootType*) reference != type->Data
+            && name == type->Data->getName().originalValueWoPrefix) {
+            return type->Data;
+          }
         }
-      }
-      break;
+        break;
 
-    default:
-      break;
+      default:
+        break;
     }
   }
 
@@ -620,23 +690,20 @@ RootType *lookup1(const TTCN3Module *module,
 }
 
 int multi(const TTCN3Module *module, ReferenceData const& outside_reference,
-  const RootType *obj)
-{
+  const RootType *obj) {
   int multiplicity = 0;
 
   RootType * st = ::lookup1(module, outside_reference.get_val(), outside_reference.get_uri(), obj, want_ST);
   RootType * ct = ::lookup1(module, outside_reference.get_val(), outside_reference.get_uri(), obj, want_CT);
   if (st || ct) {
     multiplicity = 1; // locally defined, no qualif needed
-  }
-  else for (List<const TTCN3Module*>::iterator it = module->getImportedModules().begin(); it; it = it->Next) {
-    // Artificial lookup
-    st = ::lookup1(it->Data, outside_reference.get_val(), it->Data->getTargetNamespace(), obj, want_ST);
-    ct = ::lookup1(it->Data, outside_reference.get_val(), it->Data->getTargetNamespace(), obj, want_CT);
-    if (st || ct) {
-      ++multiplicity;
+  } else for (List<const TTCN3Module*>::iterator it = module->getImportedModules().begin(); it; it = it->Next) {
+      // Artificial lookup
+      st = ::lookup1(it->Data, outside_reference.get_val(), it->Data->getTargetNamespace(), obj, want_ST);
+      ct = ::lookup1(it->Data, outside_reference.get_val(), it->Data->getTargetNamespace(), obj, want_CT);
+      if (st || ct) {
+        ++multiplicity;
+      }
     }
-  }
   return multiplicity;
 }
-
diff --git a/xsdconvert/GeneralFunctions.hh b/xsdconvert/GeneralFunctions.hh
index 9ab3b74c9..ac98df655 100644
--- a/xsdconvert/GeneralFunctions.hh
+++ b/xsdconvert/GeneralFunctions.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -14,56 +14,65 @@
 
 typedef List<QualifiedName> QualifiedNames;
 
-enum modeType {type_reference_name, type_name, field_name, enum_id_name};
+enum modeType {
+    type_reference_name, type_name, field_name, enum_id_name
+};
 
-void XSDName2TTCN3Name (const Mstring& in, QualifiedNames & used_names, modeType type_of_the_name,
-  Mstring & res, Mstring & variant);
+void XSDName2TTCN3Name(const Mstring& in, QualifiedNames & used_names, modeType type_of_the_name,
+        Mstring & res, Mstring & variant, bool no_replace = false);
 
 class ReferenceData;
 
 
-bool isBuiltInType (const Mstring& in);
-bool isStringType (const Mstring& in);
-bool isIntegerType (const Mstring& in);
-bool isFloatType (const Mstring& in);
-bool isTimeType (const Mstring& in);
-bool isSequenceType (const Mstring& in);
-bool isBooleanType (const Mstring& in);
-bool isQNameType (const Mstring& in);
-bool isAnyType (const Mstring& in);
+bool isBuiltInType(const Mstring& in);
+bool isStringType(const Mstring& in);
+bool isIntegerType(const Mstring& in);
+bool isFloatType(const Mstring& in);
+bool isTimeType(const Mstring& in);
+bool isSequenceType(const Mstring& in);
+bool isBooleanType(const Mstring& in);
+bool isQNameType(const Mstring& in);
+bool isAnyType(const Mstring& in);
 
-void printWarning (const Mstring& filename, int lineNumber, const Mstring& text);
-void printWarning (const Mstring& filename, const Mstring& typeName, const Mstring& text);
-void printError (const Mstring& filename, int lineNumber, const Mstring& text);
-void printError (const Mstring& filename, const Mstring& typeName, const Mstring& text);
+bool matchDates(const char * string, const char * type);
+bool matchRegexp(const char * string, const char * pattern);
 
-long double stringToLongDouble (const char * input);
+void printWarning(const Mstring& filename, int lineNumber, const Mstring& text);
+void printWarning(const Mstring& filename, const Mstring& typeName, const Mstring& text);
+void printError(const Mstring& filename, int lineNumber, const Mstring& text);
+void printError(const Mstring& filename, const Mstring& typeName, const Mstring& text);
+void indent(FILE * file, const int x);
 
-Mstring truncatePathWithOneElement (const Mstring& path);
+long double stringToLongDouble(const char * input);
 
 class RootType;
 class SimpleType;
 class TTCN3Module;
 
+const Mstring& getNameSpaceByPrefix(const RootType * root, const Mstring& prefix);
+const Mstring& getPrefixByNameSpace(const RootType * root, const Mstring& namespace_);
+
+const Mstring findBuiltInType(const RootType * ref, Mstring type);
+
 /// Lookup in a list of modules
-RootType * lookup (const List<TTCN3Module*> mods,
-  const SimpleType * reference, wanted w);
+RootType * lookup(const List<TTCN3Module*> mods,
+        const SimpleType * reference, wanted w);
 /// Lookup in a list of modules
-RootType * lookup (const List<TTCN3Module*> mods,
-  const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w);
+RootType * lookup(const List<TTCN3Module*> mods,
+        const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w);
 /// Lookup inside one module
 RootType *lookup1(const TTCN3Module *module,
-  const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w);
+        const Mstring& name, const Mstring& nsuri, const RootType *reference, wanted w);
 
 int multi(const TTCN3Module *module, ReferenceData const& outside_reference,
-  const RootType *obj);
+        const RootType *obj);
 
 inline unsigned long long llmin(unsigned long long l, unsigned long long r) {
-  return l < r ? l : r;
+    return l < r ? l : r;
 }
 
 inline unsigned long long llmax(unsigned long long l, unsigned long long r) {
-  return l > r ? l : r;
+    return l > r ? l : r;
 }
 
 #endif /* GENERALFUNCTIONS_HH_ */
diff --git a/xsdconvert/GeneralTypes.hh b/xsdconvert/GeneralTypes.hh
index 1215e95d0..c736ceca7 100644
--- a/xsdconvert/GeneralTypes.hh
+++ b/xsdconvert/GeneralTypes.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,8 +10,7 @@
 
 #include "Mstring.hh"
 
-enum ConstructType
-{
+enum ConstructType {
   c_unknown,
   c_schema,
   c_simpleType,
@@ -22,47 +21,109 @@ enum ConstructType
   c_group,
   c_annotation,
   c_include,
-  c_import
+  c_import,
+  c_idattrib
 };
 
-enum NameConversionMode
-{
+enum NameConversionMode {
   nameMode,
   typeMode,
   fieldMode
 };
 
-enum UseValue
-{
+enum UseValue {
   optional,
   prohibited,
   required
 };
 
-enum FormValue
-{
+enum FormValue {
   notset,
   qualified,
   unqualified
 };
 
+enum BlockValue {
+  not_set,
+  all,
+  substitution,
+  restriction,
+  extension
+};
+
+enum TagName {
+  // XSD Elements:
+  n_all,
+  n_annotation,
+  n_any,
+  n_anyAttribute,
+  n_appinfo,
+  n_attribute,
+  n_attributeGroup,
+  n_choice,
+  n_complexContent,
+  n_complexType,
+  n_documentation,
+  n_element,
+  n_extension,
+  n_field, // Not supported by now
+  n_group,
+  n_import,
+  n_include,
+  n_key, // Not supported by now
+  n_keyref, // Not supported by now
+  n_list,
+  n_notation, // Not supported by now
+  n_redefine,
+  n_restriction,
+  n_schema,
+  n_selector, // Not supported by now
+  n_sequence,
+  n_simpleContent,
+  n_simpleType,
+  n_union,
+  n_unique, // Not supported by now
+
+  // XSD Restrictions / Facets for Datatypes:
+  n_enumeration,
+  n_fractionDigits, // Not supported by now
+  n_length,
+  n_maxExclusive,
+  n_maxInclusive,
+  n_maxLength,
+  n_minExclusive,
+  n_minInclusive,
+  n_minLength,
+  n_pattern,
+  n_totalDigits,
+  n_whiteSpace,
+
+  // Others - non-standard, but used:
+  n_label, // ???
+  n_definition, // ???
+
+  n_NOTSET
+};
+
 /** This type just stores the textual information about an XML namespace */
-class NamespaceType
-{
+class NamespaceType {
 public:
   Mstring prefix;
   Mstring uri;
 
   NamespaceType()
-  : prefix(), uri()
-  {}
+  : prefix(), uri() {
+  }
 
   NamespaceType(const Mstring& p, const Mstring& u)
-  : prefix(p), uri(u)
-  {}
+  : prefix(p), uri(u) {
+  }
 
-  bool operator < (const NamespaceType & rhs) const { return uri < rhs.uri; }
-  bool operator== (const NamespaceType & rhs) const {
+  bool operator<(const NamespaceType & rhs) const {
+    return uri < rhs.uri;
+  }
+
+  bool operator==(const NamespaceType & rhs) const {
     return (uri == rhs.uri) && (prefix == rhs.prefix);
   }
 };
@@ -71,22 +132,36 @@ class QualifiedName {
 public:
   Mstring nsuri;
   Mstring name;
-  bool    dup;
+  Mstring orig_name;
+  bool dup;
 
   QualifiedName()
-  : nsuri(), name(), dup(false)
-  {}
+  : nsuri(), name(), orig_name(), dup(false) {
+  }
 
   QualifiedName(const Mstring& ns, const Mstring nm)
-  : nsuri(ns), name(nm), dup(false)
-  {}
+  : nsuri(ns), name(nm), dup(false) {
+  }
+
+  QualifiedName(const Mstring& ns, const Mstring nm, const Mstring orig)
+  : nsuri(ns), name(nm), orig_name(orig), dup(false) {
+  }
+
+  bool operator<(const QualifiedName& rhs) const {
+    return name < rhs.name;
+  }
 
-  bool operator <(const QualifiedName& rhs) const { return name < rhs.name; }
   bool operator==(const QualifiedName& rhs) const {
     return (nsuri == rhs.nsuri) && (name == rhs.name);
   }
+  
+  bool operator!=(const QualifiedName& rhs) const {
+    return (nsuri != rhs.nsuri) || (name != rhs.name);
+  }
 };
 
-enum wanted { want_CT, want_ST };
+enum wanted {
+  want_CT, want_ST, want_BOTH
+};
 
 #endif /*GENERAL_TYPES_H_*/
diff --git a/xsdconvert/ImportStatement.cc b/xsdconvert/ImportStatement.cc
index 43d4f53c9..5ae9fb198 100644
--- a/xsdconvert/ImportStatement.cc
+++ b/xsdconvert/ImportStatement.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -11,49 +11,44 @@
 #include "TTCN3Module.hh"
 #include "TTCN3ModuleInventory.hh"
 
-extern bool c_flag_used;
-
 ImportStatement::ImportStatement(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct)
 : RootType(a_parser, a_module, a_construct)
 , from_namespace()
 , from_schemaLocation()
-, source_module()
-{}
+, source_module() {
+}
 
-void ImportStatement::loadWithValues()
-{
+void ImportStatement::loadWithValues() {
   const XMLParser::TagAttributes & attr = parser->getActualTagAttributes();
 
-  switch (parser->getActualTagName())
-  {
-  case XMLParser::n_import:
-    name.upload(Mstring("import"));
-    type.upload(Mstring("import"));
-    from_namespace = attr.namespace_;
-    from_schemaLocation = attr.schemaLocation;
-    break;
-  case XMLParser::n_include:
-    name.upload(Mstring("include"));
-    type.upload(Mstring("include"));
-    from_namespace = attr.namespace_;
-    from_schemaLocation = attr.schemaLocation;
-    break;
-  case XMLParser::n_label:
-    addComment(Mstring("LABEL:"));
-    break;
-  case XMLParser::n_definition:
-    addComment(Mstring("DEFINITION:"));
-    break;
-
-  default:
-    break;
+  switch (parser->getActualTagName()) {
+    case n_import:
+      name.upload(Mstring("import"));
+      type.upload(Mstring("import"));
+      from_namespace = attr.namespace_;
+      from_schemaLocation = attr.schemaLocation;
+      break;
+    case n_include:
+      name.upload(Mstring("include"));
+      type.upload(Mstring("include"));
+      from_namespace = attr.namespace_;
+      from_schemaLocation = attr.schemaLocation;
+      break;
+    case n_label:
+      addComment(Mstring("LABEL:"));
+      break;
+    case n_definition:
+      addComment(Mstring("DEFINITION:"));
+      break;
+
+    default:
+      break;
   }
 }
 
 const Mstring XMLSchema("http://www.w3.org/2001/XMLSchema");
 
-void ImportStatement::referenceResolving(void)
-{
+void ImportStatement::referenceResolving(void) {
   if (from_namespace == XMLSchema) {
     visible = false;
     return;
@@ -61,8 +56,7 @@ void ImportStatement::referenceResolving(void)
 
   TTCN3ModuleInventory& modules = TTCN3ModuleInventory::getInstance();
 
-  for (List<TTCN3Module*>::iterator mod = modules.getModules().begin(); mod; mod = mod->Next)
-  {
+  for (List<TTCN3Module*>::iterator mod = modules.getModules().begin(); mod; mod = mod->Next) {
     if (module == mod->Data) {
       // it's the module that *contains* the import statement
       continue;
@@ -84,22 +78,19 @@ void ImportStatement::referenceResolving(void)
 
   if (!source_module) // still not found
   {
-    if (from_schemaLocation.empty())
-    {
+    if (from_schemaLocation.empty()) {
       printWarning(module->getSchemaname(), getName().convertedValue,
         "The \'" + from_namespace + "\' specified in the \'namespace\' attribute"
         " is not resolvable.");
       modules.incrNumWarnings();
-    }
-    else // schemaLocation is not empty
+    } else // schemaLocation is not empty
     {
       if (from_schemaLocation.isFound("http://") || from_schemaLocation.isFound("urn:")) {
         printWarning(module->getSchemaname(), getName().convertedValue,
           "It is not supported using a URI (\'" + from_schemaLocation +
           "\') in the \'schemalocation\' attribute to get access to a file.");
         modules.incrNumWarnings();
-      }
-      else {
+      } else {
         printWarning(module->getSchemaname(), getName().convertedValue,
           "The \'" + from_schemaLocation + "\' specified in the \'schemaLocation\' attribute"
           " is not resolvable.");
@@ -107,12 +98,10 @@ void ImportStatement::referenceResolving(void)
       }
     }
     visible = false;
-  }
-  else module->addImportedModule(source_module);
+  } else module->addImportedModule(source_module);
 }
 
-void ImportStatement::printToFile(FILE * file)
-{
+void ImportStatement::printToFile(FILE * file) {
   if (!visible) return;
 
   if (from_namespace == module->getTargetNamespace()) return;
@@ -120,41 +109,40 @@ void ImportStatement::printToFile(FILE * file)
 
   printComment(file);
 
-  switch (getConstruct())
-  {
-  case c_import: {
-    bool found = false;
-    for (List<TTCN3Module*>::iterator wImport = TTCN3ModuleInventory::getInstance().getWrittenImports().begin(); wImport; wImport = wImport->Next)
+  switch (getConstruct()) {
+    case c_import:
     {
-      if (wImport->Data == source_module) {
-        found = true;
-        break;
+      bool found = false;
+      for (List<TTCN3Module*>::iterator wImport = TTCN3ModuleInventory::getInstance().getWrittenImports().begin(); wImport; wImport = wImport->Next) {
+        if (wImport->Data == source_module) {
+          found = true;
+          break;
+        }
       }
+      if (!found) {
+        fprintf(file, "import from %s all;\n\n\n", source_module->getModulename().c_str());
+        TTCN3ModuleInventory::getInstance().getWrittenImports().push_back(source_module);
+      }
+      break;
     }
-    if (!found) {
-      fprintf(file, "import from %s all;\n\n\n", source_module->getModulename().c_str());
-      TTCN3ModuleInventory::getInstance().getWrittenImports().push_back(source_module);
-    }
-    break; }
-  case c_include: {
-    for (List<TTCN3Module*>::iterator mod = TTCN3ModuleInventory::getInstance().getModules().begin(); mod; mod = mod->Next)
+    case c_include:
     {
-      if (mod->Data->getSchemaname() == from_schemaLocation)
-      {
-        mod->Data->generate_TTCN3_types(file);
-        break;
+      for (List<TTCN3Module*>::iterator mod = TTCN3ModuleInventory::getInstance().getModules().begin(); mod; mod = mod->Next) {
+        if (mod->Data->getSchemaname() == from_schemaLocation) {
+          mod->Data->generate_TTCN3_types(file);
+          break;
+        }
       }
+      break;
     }
-    break; }
-  default:
-    break;
+    default:
+      break;
   }
 }
 
-void ImportStatement::dump(unsigned int depth) const
-{
+void ImportStatement::dump(unsigned int depth) const {
   fprintf(stderr, "%*s Import statement at %p, ns='%s' loc='%s'\n", depth * 2, "",
-    (const void*)this, from_namespace.c_str(), from_schemaLocation.c_str());
+    (const void*) this, from_namespace.c_str(), from_schemaLocation.c_str());
   fprintf(stderr, "%*s import from %s into %s\n", depth * 2 + 2, "",
     (source_module ? source_module->getModulename().c_str() : "**unknown**"),
     module->getModulename().c_str());
diff --git a/xsdconvert/ImportStatement.hh b/xsdconvert/ImportStatement.hh
index e4b231574..829631892 100644
--- a/xsdconvert/ImportStatement.hh
+++ b/xsdconvert/ImportStatement.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -24,31 +24,32 @@
  * 	* Real inclusion of the referenced datatypes
  *
  */
-class ImportStatement : public RootType
-{
-  /// Originally, the "namespace" attribute of the <import>
-  Mstring from_namespace;
-  /// Originally, the "schemaLocation" attribute of the <import>
-  Mstring from_schemaLocation;
-  /// Result of the reference resolving function:
-  /// The module we want to import from. Not owned.
-  TTCN3Module *source_module;
+class ImportStatement : public RootType {
+    /// Originally, the "namespace" attribute of the <import>
+    Mstring from_namespace;
+    /// Originally, the "schemaLocation" attribute of the <import>
+    Mstring from_schemaLocation;
+    /// Result of the reference resolving function:
+    /// The module we want to import from. Not owned.
+    TTCN3Module *source_module;
 
-  ImportStatement (const ImportStatement &); // not implemented
-  ImportStatement & operator = (const ImportStatement &); // not implemented
-  // Default destructor is used
+    ImportStatement(const ImportStatement &); // not implemented
+    ImportStatement & operator=(const ImportStatement &); // not implemented
+    // Default destructor is used
 public:
-  ImportStatement (XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
+    ImportStatement(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
 
-  /** Virtual methods
-   *  inherited from the abstract RootType
-   */
-  void loadWithValues ();
-  void referenceResolving ();
-  void validityChecking () {}
-  void printToFile (FILE * file);
+    /** Virtual methods
+     *  inherited from the abstract RootType
+     */
+    void loadWithValues();
+    void referenceResolving();
 
-  void dump (unsigned int depth) const;
+    void validityChecking() {
+    }
+    void printToFile(FILE * file);
+
+    void dump(unsigned int depth) const;
 };
 
 #endif /* IMPORTSTATEMENT_HH_ */
diff --git a/xsdconvert/List.hh b/xsdconvert/List.hh
index dd9510783..c52b197d5 100644
--- a/xsdconvert/List.hh
+++ b/xsdconvert/List.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -12,13 +12,10 @@
 #include <cstdlib>
 #include <cstring>
 
-
-
 template <class T>
-class Item
-{
+class Item {
   Item(const Item<T> & other); // not implemented
-  Item<T> & operator = (const Item<T> & rhs); // not implemented
+  Item<T> & operator=(const Item<T> & rhs); // not implemented
   // Default destructor is used
 public:
   Item();
@@ -32,12 +29,11 @@ template <class T>
 Item<T>::Item()
 : Data(T())
 , Next(NULL)
-, Prev(NULL)
-{}
+, Prev(NULL) {
+}
 
 template <class T>
-class List
-{
+class List {
 private:
 
   /**
@@ -63,7 +59,7 @@ private:
 public:
   List();
   List(const List<T> & other);
-  List<T> & operator = (const List<T> & other);
+  List<T> & operator=(const List<T> & other);
   ~List();
 
   typedef Item<T> * iterator;
@@ -71,13 +67,20 @@ public:
   /**
    * Returns the size of the list
    */
-  size_t length() const {return Size;}
-  size_t size() const {return Size;}
+  size_t length() const {
+    return Size;
+  }
+
+  size_t size() const {
+    return Size;
+  }
 
   /**
    * True if List is empty, false otherwise
    */
-  bool empty() const {return Size == 0;}
+  bool empty() const {
+    return Size == 0;
+  }
 
   /**
    * Clear list
@@ -99,30 +102,49 @@ public:
   /**
    * Returns with a pointer to the begin of the list
    */
-  Item<T> * begin() const {return First;}
+  Item<T> * begin() const {
+    return First;
+  }
 
   /**
    * Returns with a pointer to the end of the list
    */
-  Item<T> * end() const {return Last;}
+  Item<T> * end() const {
+    return Last;
+  }
 
   /**
    * Returns with reference to the first element
    */
-  T & front() {return First->Data;}
-  const T & front() const {return First->Data;}
+  T & front() {
+    return First->Data;
+  }
+
+  const T & front() const {
+    return First->Data;
+  }
 
   /**
    * Returns with reference to the last element
    */
-  T & back() {return Last->Data;}
-  const T & back() const {return Last->Data;}
+  T & back() {
+    return Last->Data;
+  }
+
+  const T & back() const {
+    return Last->Data;
+  }
 
   /**
    * Pushes element at the end of the list
    */
   void push_back(const T & element);
 
+  /**
+   * Pushes element at the front of the list
+   */
+  void push_front(const T & element);
+
   /**
    * Removes the final element in the list
    */
@@ -132,30 +154,32 @@ public:
    * Removes the node from the list
    */
   void remove(iterator& node);
-};
 
+  /**
+   * Removes duplicated elements from the list.
+   */
+  void remove_dups();
+};
 
 template <class T>
 List<T>::List()
 : Size(0)
 , First(NULL)
-, Last(NULL)
-{}
+, Last(NULL) {
+}
 
 template <class T>
 List<T>::List(const List<T> & other)
 : Size(0)
 , First(NULL)
-, Last(NULL)
-{
+, Last(NULL) {
   if (other.empty()) return;
 
   Item<T> * CurrentNode = other.First;
   Item<T> * MyFinalNode = NULL;
 
-  while (CurrentNode != NULL)
-  {
-    if (MyFinalNode == NULL)						// first element
+  while (CurrentNode != NULL) {
+    if (MyFinalNode == NULL) // first element
     {
       MyFinalNode = new Item<T>;
       MyFinalNode->Data = CurrentNode->Data;
@@ -163,9 +187,7 @@ List<T>::List(const List<T> & other)
       MyFinalNode->Prev = NULL;
       First = MyFinalNode;
       Last = MyFinalNode;
-    }
-    else
-    {
+    } else {
       MyFinalNode->Next = new Item<T>;
       MyFinalNode->Next->Data = CurrentNode->Data;
       MyFinalNode->Next->Next = NULL;
@@ -180,14 +202,12 @@ List<T>::List(const List<T> & other)
 }
 
 template <class T>
-List<T>::~List()
-{
+List<T>::~List() {
   freeMemory();
 }
 
 template <class T>
-List<T> & List<T>::operator = (const List<T> & other)
-{
+List<T> & List<T>::operator=(const List<T> & other) {
   freeMemory();
 
   if (other.empty()) return *this;
@@ -195,19 +215,15 @@ List<T> & List<T>::operator = (const List<T> & other)
   Item<T> * CurrentNode = other.First;
   Item<T> * MyFinalNode = NULL;
 
-  while (CurrentNode != NULL)
-  {
-    if (MyFinalNode == NULL)
-    {
+  while (CurrentNode != NULL) {
+    if (MyFinalNode == NULL) {
       MyFinalNode = new Item<T>;
       MyFinalNode->Data = CurrentNode->Data;
       MyFinalNode->Next = NULL;
       MyFinalNode->Prev = NULL;
       First = MyFinalNode;
       Last = MyFinalNode;
-    }
-    else
-    {
+    } else {
       MyFinalNode->Next = new Item<T>;
       MyFinalNode->Next->Data = CurrentNode->Data;
       MyFinalNode->Next->Next = CurrentNode->Next;
@@ -224,15 +240,13 @@ List<T> & List<T>::operator = (const List<T> & other)
 }
 
 template <class T>
-void List<T>::freeMemory()
-{
-  if (Size > 0)		// if list is not empty
+void List<T>::freeMemory() {
+  if (Size > 0) // if list is not empty
   {
     Item<T> * CurrentNode = First;
     Item<T> * NodeForDelete = NULL;
 
-    for (size_t i = 0; i != Size; ++i)
-    {
+    for (size_t i = 0; i != Size; ++i) {
       NodeForDelete = CurrentNode;
       CurrentNode = CurrentNode->Next;
       delete NodeForDelete;
@@ -246,27 +260,22 @@ void List<T>::freeMemory()
 }
 
 template <class T>
-void List<T>::remove(iterator& node)
-{
+void List<T>::remove(iterator& node) {
   if (Size == 0) return;
 
   if (node == NULL) return;
 
-  if (node->Prev == NULL)			// if this node was the first element in the list
+  if (node->Prev == NULL) // if this node was the first element in the list
   {
     First = node->Next;
-  }
-  else
-  {
+  } else {
     node->Prev->Next = node->Next;
   }
 
-  if (node->Next == NULL)			// if this node was the last element in the list
+  if (node->Next == NULL) // if this node was the last element in the list
   {
     Last = node->Prev;
-  }
-  else
-  {
+  } else {
     node->Next->Prev = node->Prev;
   }
 
@@ -277,14 +286,12 @@ void List<T>::remove(iterator& node)
 }
 
 template <class T>
-void List<T>::clear()
-{
+void List<T>::clear() {
   freeMemory();
 }
 
 template <class T>
-void List<T>::sort()
-{
+void List<T>::sort() {
   if (Size <= 1) return;
 
   // Selection sort
@@ -303,15 +310,14 @@ void List<T>::sort()
 }
 
 template <class T>
-void List<T>::sort(bool (*comparison_function)(const T lhs, const T rhs))
-{
+void List<T>::sort(bool (*comparison_function)(const T lhs, const T rhs)) {
   if (Size <= 1) return;
 
   // Selection sort
   for (Item<T>* left = First; left; left = left->Next) {
     Item<T>* mini = left;
     for (Item<T>* curr = left->Next; curr; curr = curr->Next) {
-      if (comparison_function(curr->Data , mini->Data)) mini = curr;
+      if (comparison_function(curr->Data, mini->Data)) mini = curr;
     }
 
     if (mini) { // swap!
@@ -323,20 +329,17 @@ void List<T>::sort(bool (*comparison_function)(const T lhs, const T rhs))
 }
 
 template <class T>
-void List<T>::push_back(const T & element)
-{
+void List<T>::push_back(const T & element) {
   Item<T> * NewNode = new Item<T>;
   NewNode->Data = element;
   NewNode->Next = NULL;
 
-  if (Size == 0)		// if list is empty
+  if (Size == 0) // if list is empty
   {
     NewNode->Prev = NULL;
     First = NewNode;
     Last = NewNode;
-  }
-  else
-  {
+  } else {
     NewNode->Prev = Last;
     Last->Next = NewNode;
     Last = NewNode;
@@ -346,19 +349,35 @@ void List<T>::push_back(const T & element)
 }
 
 template <class T>
-void List<T>::pop_back()
-{
-  Item<T> * LastNode = Last;
+void List<T>::push_front(const T & element) {
+  Item<T> * NewNode = new Item<T>;
+  NewNode->Data = element;
+  NewNode->Prev = NULL;
 
-  if (Size == 1)
+  if (Size == 0) // if list is empty
   {
+    NewNode->Next = NULL;
+    First = NewNode;
+    Last = NewNode;
+  } else {
+    NewNode->Next = First;
+    First->Prev = NewNode;
+    First = NewNode;
+  }
+
+  ++Size;
+}
+
+template <class T>
+void List<T>::pop_back() {
+  Item<T> * LastNode = Last;
+
+  if (Size == 1) {
     First = NULL;
     Last = NULL;
     delete(LastNode);
     --Size;
-  }
-  else if (Size > 1)
-  {
+  } else if (Size > 1) {
     Last->Prev->Next = NULL;
     Last = Last->Prev;
     delete(LastNode);
@@ -366,4 +385,31 @@ void List<T>::pop_back()
   }
 }
 
+template <class T>
+void List<T>::remove_dups() {
+  Item<T>* ptr1 = First, *ptr2, *dup;
+
+  while (ptr1 != NULL && ptr1->Next != NULL) {
+    ptr2 = ptr1;
+    while (ptr2->Next != NULL) {
+      if (ptr1->Data == ptr2->Next->Data) {
+        dup = ptr2->Next;
+        ptr2->Next = ptr2->Next->Next;
+        //If the last element is a duplicate
+        if (ptr2->Next == NULL) {
+          Last = ptr2;
+        } else {
+          ptr2->Next->Prev = ptr2;
+        }
+        delete(dup);
+        Size--;
+      } else {
+        ptr2 = ptr2->Next;
+      }
+    }
+    ptr1 = ptr1->Next;
+  }
+
+}
+
 #endif /* LIST_HH_ */
diff --git a/xsdconvert/Makefile b/xsdconvert/Makefile
index 4b128d9c1..e77d3f2d4 100644
--- a/xsdconvert/Makefile
+++ b/xsdconvert/Makefile
@@ -1,5 +1,5 @@
 ###############################################################################
-# Copyright (c) 2000-2014 Ericsson Telecom AB
+# 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
@@ -10,7 +10,7 @@ include $(TOP)/Makefile.cfg
 
 SOURCES :=	converter.cc \
 			XMLParser.cc TTCN3Module.cc TTCN3ModuleInventory.cc \
-			RootType.cc SimpleType.cc FieldType.cc ComplexType.cc \
+			RootType.cc SimpleType.cc AttributeType.cc ComplexType.cc \
 			Annotation.cc ImportStatement.cc \
 			PredefinedModules.cc GeneralFunctions.cc \
 			Mstring.cc
@@ -78,4 +78,4 @@ else
 	cp -f $(TARGETS) $(BINDIR)
 endif
 
-include $(TOP)/Makefile.genrules
+include $(TOP)/Makefile.genrules
\ No newline at end of file
diff --git a/xsdconvert/Mstring.cc b/xsdconvert/Mstring.cc
index 15e17defb..4347eefff 100644
--- a/xsdconvert/Mstring.cc
+++ b/xsdconvert/Mstring.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -17,58 +17,50 @@
 const Mstring empty_string;
 
 Mstring::Mstring()
-: text(memptystr())
-{}
+: text(memptystr()) {
+}
 
 Mstring::Mstring(const Mstring & other)
-: text(mcopystr(other.text))
-{}
+: text(mcopystr(other.text)) {
+}
 
 Mstring::Mstring(const char * s)
-: text(mcopystr(s))
-{}
+: text(mcopystr(s)) {
+}
 
 Mstring::Mstring(size_t len, const char *s)
-: text((expstring_t)Malloc(len+1))
-{
+: text((expstring_t) Malloc(len + 1)) {
   memcpy(text, s, len);
   text[len] = 0;
 }
 
 Mstring::Mstring(char c)
-: text(memptystr())
-{
+: text(memptystr()) {
   text = mputc(text, c);
 }
 
-Mstring::~Mstring()
-{
+Mstring::~Mstring() {
   Free(text);
 }
 
-bool Mstring::empty() const
-{
+bool Mstring::empty() const {
   return mstrlen(text) == 0;
 }
 
-size_t Mstring::size() const
-{
+size_t Mstring::size() const {
   return mstrlen(text);
 }
 
-void Mstring::clear()
-{
+void Mstring::clear() {
   Free(text);
   text = memptystr();
 }
 
-const char * Mstring::c_str() const
-{
+const char * Mstring::c_str() const {
   return text;
 }
 
-void Mstring::eraseChar(size_t pos)
-{
+void Mstring::eraseChar(size_t pos) {
   Mstring temp;
   for (size_t i = 0; i != size(); ++i)
     if (i != pos) temp += text[i];
@@ -76,79 +68,71 @@ void Mstring::eraseChar(size_t pos)
   text = mcopystr(temp.text);
 }
 
-void Mstring::insertChar(size_t pos, char c)
-{
+void Mstring::insertChar(size_t pos, char c) {
   Mstring temp;
   for (size_t i = 0; i != size(); ++i)
     if (i == pos) {
       temp += c;
       temp += text[i];
-    }
-    else temp += text[i];
+    } else temp += text[i];
   Free(text);
   text = mcopystr(temp.text);
 }
 
-bool Mstring::isFound(const Mstring & s)
-{
+bool Mstring::isFound(const Mstring & s) {
   return strstr(text, s.text);
 }
 
-bool Mstring::isFound(const char * s)
-{
+bool Mstring::isFound(const char * s) {
   return strstr(text, s);
 }
 
-bool Mstring::isFound(char c)
-{
+bool Mstring::isFound(char c) {
   return strchr(text, c);
 }
 
-void Mstring::setCapitalized()
-{
+char * Mstring::foundAt(const char * s) {
+  return strstr(text, s);
+}
+
+void Mstring::setCapitalized() {
   text[0] = toupper(text[0]);
 }
 
-void Mstring::setUncapitalized()
-{
+void Mstring::setUncapitalized() {
   text[0] = tolower(text[0]);
 }
 
-Mstring Mstring::getPrefix(const char delimiter) const
-{
+Mstring Mstring::getPrefix(const char delimiter) const {
   Mstring result;
   char * pos = strchr(text, delimiter);
   if (pos != NULL) for (int i = 0; text + i != pos; ++i) result += text[i];
   return result;
 }
 
-Mstring Mstring::getValueWithoutPrefix(const char delimiter) const
-{
+Mstring Mstring::getValueWithoutPrefix(const char delimiter) const {
   char * pos = strrchr(text, delimiter);
-  if (pos != NULL) return Mstring(pos+1);
+  if (pos != NULL) return Mstring(pos + 1);
   else return *this;
 }
 
-void Mstring::removeWSfromBegin()
-{
+void Mstring::removeWSfromBegin() {
   size_t i = 0;
   size_t s = mstrlen(text);
-  for ( ; i < s; ++i)
-    if (!isspace((const unsigned char)text[i])) break;
-  memmove(text, text+i, s-i);
-  text = mtruncstr(text, s-i);
+  for (; i < s; ++i)
+    if (!isspace((const unsigned char) text[i])) break;
+  memmove(text, text + i, s - i);
+  text = mtruncstr(text, s - i);
 }
 
-void Mstring::removeWSfromEnd()
-{
+void Mstring::removeWSfromEnd() {
   int i = mstrlen(text);
-  for ( ; i > 0; --i)
-    if (!isspace((const unsigned char)text[i-1])) break;
+  for (; i > 0; --i)
+    if (!isspace((const unsigned char) text[i - 1])) break;
   text = mtruncstr(text, i);
 }
 
-char & Mstring::operator [](size_t pos)
-{
+char & Mstring::operator[](size_t pos) {
   size_t s = mstrlen(text);
   if (pos < s)
     return text[pos];
@@ -158,8 +142,7 @@ char & Mstring::operator [](size_t pos)
   }
 }
 
-const char & Mstring::operator [](size_t pos) const
-{
+const char & Mstring::operator[](size_t pos) const {
   size_t s = mstrlen(text);
   if (pos < s)
     return text[pos];
@@ -169,8 +152,7 @@ const char & Mstring::operator [](size_t pos) const
   }
 }
 
-Mstring & Mstring::operator =(const Mstring & other)
-{
+Mstring & Mstring::operator=(const Mstring & other) {
   if (&other != this) {
     Free(text);
     text = mcopystr(other.text);
@@ -178,202 +160,174 @@ Mstring & Mstring::operator =(const Mstring & other)
   return *this;
 }
 
-Mstring & Mstring::operator =(const char * s)
-{
+Mstring & Mstring::operator=(const char * s) {
   Free(text);
   text = mcopystr(s);
   return *this;
 }
 
-Mstring & Mstring::operator =(char c)
-{
+Mstring & Mstring::operator=(char c) {
   Free(text);
   text = memptystr();
   text = mputc(text, c);
   return *this;
 }
 
-Mstring & Mstring::operator +=(const Mstring & other)
-{
+Mstring & Mstring::operator+=(const Mstring & other) {
   text = mputstr(text, other.text);
   return *this;
 }
 
-Mstring & Mstring::operator +=(const char * s)
-{
+Mstring & Mstring::operator+=(const char * s) {
   text = mputstr(text, s);
   return *this;
 }
 
-Mstring & Mstring::operator +=(char c)
-{
+Mstring & Mstring::operator+=(char c) {
   text = mputc(text, c);
   return *this;
 }
 
-const Mstring operator +(const Mstring & lhs, const Mstring & rhs)
-{
+const Mstring operator+(const Mstring & lhs, const Mstring & rhs) {
   return Mstring(lhs) += rhs;
 }
 
-const Mstring operator +(const char * lhs, const Mstring & rhs)
-{
+const Mstring operator+(const char * lhs, const Mstring & rhs) {
   return Mstring(lhs) += rhs;
 }
 
-const Mstring operator +(char lhs, const Mstring & rhs)
-{
+const Mstring operator+(char lhs, const Mstring & rhs) {
   return Mstring(lhs) += rhs;
 }
 
-const Mstring operator +(const Mstring & lhs, const char * rhs)
-{
+const Mstring operator+(const Mstring & lhs, const char * rhs) {
   return Mstring(lhs) += rhs;
 }
 
-const Mstring operator +(const Mstring & lhs, char rhs)
-{
+const Mstring operator+(const Mstring & lhs, char rhs) {
   return Mstring(lhs) += rhs;
 }
 
-bool operator ==(const Mstring & lhs, const Mstring & rhs)
-{
+bool operator==(const Mstring & lhs, const Mstring & rhs) {
   if (strcmp(lhs.text, rhs.text) == 0) // they are equal
     return true;
   else
     return false;
 }
 
-bool operator ==(const char * lhs, const Mstring & rhs)
-{
+bool operator==(const char * lhs, const Mstring & rhs) {
   if (strcmp(lhs, rhs.text) == 0) // they are equal
     return true;
   else
     return false;
 }
 
-bool operator ==(const Mstring & lhs, const char * rhs)
-{
+bool operator==(const Mstring & lhs, const char * rhs) {
   if (strcmp(lhs.text, rhs) == 0) // they are equal
     return true;
   else
     return false;
 }
 
-bool operator !=(const Mstring & lhs, const Mstring & rhs)
-{
+bool operator!=(const Mstring & lhs, const Mstring & rhs) {
   if (strcmp(lhs.text, rhs.text) != 0) // they are NOT equal
     return true;
   else
     return false;
 }
 
-bool operator !=(const char * lhs, const Mstring & rhs)
-{
+bool operator!=(const char * lhs, const Mstring & rhs) {
   if (strcmp(lhs, rhs.text) != 0) // they are NOT equal
     return true;
   else
     return false;
 }
 
-bool operator !=(const Mstring & lhs, const char * rhs)
-{
+bool operator!=(const Mstring & lhs, const char * rhs) {
   if (strcmp(lhs.text, rhs) != 0) // they are NOT equal
     return true;
   else
     return false;
 }
 
-bool operator <(const Mstring & lhs, const Mstring & rhs)
-{
+bool operator<(const Mstring & lhs, const Mstring & rhs) {
   if (strcmp(lhs.text, rhs.text) < 0)
     return true;
   else
     return false;
 }
 
-bool operator <(const char * lhs, const Mstring & rhs)
-{
+bool operator<(const char * lhs, const Mstring & rhs) {
   if (strcmp(lhs, rhs.text) < 0)
     return true;
   else
     return false;
 }
 
-bool operator <(const Mstring & lhs, const char * rhs)
-{
+bool operator<(const Mstring & lhs, const char * rhs) {
   if (strcmp(lhs.text, rhs) < 0)
     return true;
   else
     return false;
 }
 
-bool operator >(const Mstring & lhs, const Mstring & rhs)
-{
+bool operator>(const Mstring & lhs, const Mstring & rhs) {
   if (strcmp(lhs.text, rhs.text) > 0)
     return true;
   else
     return false;
 }
 
-bool operator >(const char * lhs, const Mstring & rhs)
-{
+bool operator>(const char * lhs, const Mstring & rhs) {
   if (strcmp(lhs, rhs.text) > 0)
     return true;
   else
     return false;
 }
 
-bool operator >(const Mstring & lhs, const char * rhs)
-{
+bool operator>(const Mstring & lhs, const char * rhs) {
   if (strcmp(lhs.text, rhs) > 0)
     return true;
   else
     return false;
 }
 
-bool operator <=(const Mstring & lhs, const Mstring & rhs)
-{
+bool operator<=(const Mstring & lhs, const Mstring & rhs) {
   if (strcmp(lhs.text, rhs.text) <= 0)
     return true;
   else
     return false;
 }
 
-bool operator <=(const char * lhs, const Mstring & rhs)
-{
+bool operator<=(const char * lhs, const Mstring & rhs) {
   if (strcmp(lhs, rhs.text) <= 0)
     return true;
   else
     return false;
 }
 
-bool operator <=(const Mstring & lhs, const char * rhs)
-{
+bool operator<=(const Mstring & lhs, const char * rhs) {
   if (strcmp(lhs.text, rhs) <= 0)
     return true;
   else
     return false;
 }
 
-bool operator >=(const Mstring & lhs, const Mstring & rhs)
-{
+bool operator>=(const Mstring & lhs, const Mstring & rhs) {
   if (strcmp(lhs.text, rhs.text) >= 0)
     return true;
   else
     return false;
 }
 
-bool operator >=(const char * lhs, const Mstring & rhs)
-{
+bool operator>=(const char * lhs, const Mstring & rhs) {
   if (strcmp(lhs, rhs.text) >= 0)
     return true;
   else
     return false;
 }
 
-bool operator >=(const Mstring & lhs, const char * rhs)
-{
+bool operator>=(const Mstring & lhs, const char * rhs) {
   if (strcmp(lhs.text, rhs) >= 0)
     return true;
   else
diff --git a/xsdconvert/Mstring.hh b/xsdconvert/Mstring.hh
index cef415578..dce732fa7 100644
--- a/xsdconvert/Mstring.hh
+++ b/xsdconvert/Mstring.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,8 +10,7 @@
 
 #include "../common/memory.h"
 
-class Mstring
-{
+class Mstring {
   expstring_t text;
 
 public:
@@ -108,6 +107,14 @@ public:
    */
   bool isFound(char c);
 
+  /**
+   * Look for c-string content
+   * and returns a pointer to the first
+   * character where the matching found,
+   * returns null otherwise
+   */
+  char * foundAt(const char * c);
+
   /**
    * The first character of the Mstring is set to uppercase
    */
@@ -149,17 +156,21 @@ public:
    * Get character in string
    * Returns a reference the character at position pos in the string.
    */
-  char & operator [](size_t pos);
-  const char & operator [](size_t pos) const;
+  char & operator[](size_t pos);
+  const char & operator[](size_t pos) const;
 
   /**
    * Mstring assignment
    * Sets a copy of the argument as the new content for the string object.
    * The previous content is dropped.
    */
-  Mstring & operator =(const Mstring & str);
-  Mstring & operator =(const char * s);
-  Mstring & operator =(char c);
+  Mstring & operator=(const Mstring & str);
+  Mstring & operator=(const char * s);
+  Mstring & operator=(char c);
+
+  const Mstring * operator*() const {
+    return this;
+  }
 
   /**
    * Append to Mstring
@@ -167,73 +178,73 @@ public:
    * The new Mstring content is the content existing in the string object before the call
    * followed by the content of the argument.
    */
-  Mstring & operator +=(const Mstring & str);
-  Mstring & operator +=(const char * s);
-  Mstring & operator +=(char c);
+  Mstring & operator+=(const Mstring & str);
+  Mstring & operator+=(const char * s);
+  Mstring & operator+=(char c);
 
   /**
    * String comparison operators
    * These overloaded global operator functions perform the appropriate comparison operation between lhs and rhs.
    *
    */
-  friend bool operator ==(const Mstring & lhs, const Mstring & rhs);
-  friend bool operator ==(const char * lhs, const Mstring & rhs);
-  friend bool operator ==(const Mstring & lhs, const char * rhs);
+  friend bool operator==(const Mstring & lhs, const Mstring & rhs);
+  friend bool operator==(const char * lhs, const Mstring & rhs);
+  friend bool operator==(const Mstring & lhs, const char * rhs);
 
-  friend bool operator !=(const Mstring & lhs, const Mstring & rhs);
-  friend bool operator !=(const char * lhs, const Mstring & rhs);
-  friend bool operator !=(const Mstring & lhs, const char * rhs);
+  friend bool operator!=(const Mstring & lhs, const Mstring & rhs);
+  friend bool operator!=(const char * lhs, const Mstring & rhs);
+  friend bool operator!=(const Mstring & lhs, const char * rhs);
 
-  friend bool operator <(const Mstring & lhs, const Mstring & rhs);
-  friend bool operator <(const char * lhs, const Mstring & rhs);
-  friend bool operator <(const Mstring & lhs, const char * rhs);
+  friend bool operator<(const Mstring & lhs, const Mstring & rhs);
+  friend bool operator<(const char * lhs, const Mstring & rhs);
+  friend bool operator<(const Mstring & lhs, const char * rhs);
 
-  friend bool operator >(const Mstring & lhs, const Mstring & rhs);
-  friend bool operator >(const char * lhs, const Mstring & rhs);
-  friend bool operator >(const Mstring & lhs, const char * rhs);
+  friend bool operator>(const Mstring & lhs, const Mstring & rhs);
+  friend bool operator>(const char * lhs, const Mstring & rhs);
+  friend bool operator>(const Mstring & lhs, const char * rhs);
 
-  friend bool operator <=(const Mstring & lhs, const Mstring & rhs);
-  friend bool operator <=(const char * lhs, const Mstring & rhs);
-  friend bool operator <=(const Mstring & lhs, const char * rhs);
+  friend bool operator<=(const Mstring & lhs, const Mstring & rhs);
+  friend bool operator<=(const char * lhs, const Mstring & rhs);
+  friend bool operator<=(const Mstring & lhs, const char * rhs);
 
-  friend bool operator >=(const Mstring & lhs, const Mstring & rhs);
-  friend bool operator >=(const char * lhs, const Mstring & rhs);
-  friend bool operator >=(const Mstring & lhs, const char * rhs);
+  friend bool operator>=(const Mstring & lhs, const Mstring & rhs);
+  friend bool operator>=(const char * lhs, const Mstring & rhs);
+  friend bool operator>=(const Mstring & lhs, const char * rhs);
 };
 
 /*
  * Add strings
  * Returns an Mstring object whose contents are the combination of the content of lhs followed by those of rhs.
  */
-const Mstring operator +(const Mstring & lhs, const Mstring & rhs);
-const Mstring operator +(const char * lhs, const Mstring & rhs);
-const Mstring operator +(char lhs, const Mstring & rhs);
-const Mstring operator +(const Mstring & lhs, const char * rhs);
-const Mstring operator +(const Mstring & lhs, char rhs);
-
-bool operator ==(const Mstring & lhs, const Mstring & rhs);
-bool operator ==(const char * lhs, const Mstring & rhs);
-bool operator ==(const Mstring & lhs, const char * rhs);
-
-bool operator !=(const Mstring & lhs, const Mstring & rhs);
-bool operator !=(const char * lhs, const Mstring & rhs);
-bool operator !=(const Mstring & lhs, const char * rhs);
-
-bool operator <(const Mstring & lhs, const Mstring & rhs);
-bool operator <(const char * lhs, const Mstring & rhs);
-bool operator <(const Mstring & lhs, const char * rhs);
-
-bool operator >(const Mstring & lhs, const Mstring & rhs);
-bool operator >(const char * lhs, const Mstring & rhs);
-bool operator >(const Mstring & lhs, const char * rhs);
-
-bool operator <=(const Mstring & lhs, const Mstring & rhs);
-bool operator <=(const char * lhs, const Mstring & rhs);
-bool operator <=(const Mstring & lhs, const char * rhs);
-
-bool operator >=(const Mstring & lhs, const Mstring & rhs);
-bool operator >=(const char * lhs, const Mstring & rhs);
-bool operator >=(const Mstring & lhs, const char * rhs);
+const Mstring operator+(const Mstring & lhs, const Mstring & rhs);
+const Mstring operator+(const char * lhs, const Mstring & rhs);
+const Mstring operator+(char lhs, const Mstring & rhs);
+const Mstring operator+(const Mstring & lhs, const char * rhs);
+const Mstring operator+(const Mstring & lhs, char rhs);
+
+bool operator==(const Mstring & lhs, const Mstring & rhs);
+bool operator==(const char * lhs, const Mstring & rhs);
+bool operator==(const Mstring & lhs, const char * rhs);
+
+bool operator!=(const Mstring & lhs, const Mstring & rhs);
+bool operator!=(const char * lhs, const Mstring & rhs);
+bool operator!=(const Mstring & lhs, const char * rhs);
+
+bool operator<(const Mstring & lhs, const Mstring & rhs);
+bool operator<(const char * lhs, const Mstring & rhs);
+bool operator<(const Mstring & lhs, const char * rhs);
+
+bool operator>(const Mstring & lhs, const Mstring & rhs);
+bool operator>(const char * lhs, const Mstring & rhs);
+bool operator>(const Mstring & lhs, const char * rhs);
+
+bool operator<=(const Mstring & lhs, const Mstring & rhs);
+bool operator<=(const char * lhs, const Mstring & rhs);
+bool operator<=(const Mstring & lhs, const char * rhs);
+
+bool operator>=(const Mstring & lhs, const Mstring & rhs);
+bool operator>=(const char * lhs, const Mstring & rhs);
+bool operator>=(const Mstring & lhs, const char * rhs);
 
 extern const Mstring empty_string;
 
diff --git a/xsdconvert/PredefinedModules.cc b/xsdconvert/PredefinedModules.cc
index c774ff6ce..b7fa64afb 100644
--- a/xsdconvert/PredefinedModules.cc
+++ b/xsdconvert/PredefinedModules.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -12,8 +12,7 @@
  * Modules are generated always when conversion is called
  *
  */
-const char * moduleUsefulTtcn3Types =
-{
+const char * moduleUsefulTtcn3Types = {
   "module UsefulTtcn3Types {\n\n\n"
 
 
@@ -92,8 +91,7 @@ const char * moduleUsefulTtcn3Types =
 
 };
 
-const char * moduleXSD =
-{
+const char * moduleXSD = {
 
   "module XSD {\n\n"
 
@@ -103,7 +101,7 @@ const char * moduleXSD =
   "const charstring\n"
   "  dash := \"-\",\n"
   "  cln  := \":\",\n"
-  "  year := \"(0(0(0[1-9]|[1-9][0-9])|[1-9][0-9][0-9])|[1-9][0-9][0-9][0-9])\",\n"
+  "  year := \"[0-9]#4\",\n"
   "  yearExpansion := \"(-([1-9][0-9]#(0,))#(,1))#(,1)\",\n"
   "  month := \"(0[1-9]|1[0-2])\",\n"
   "  dayOfMonth := \"(0[1-9]|[12][0-9]|3[01])\",\n"
diff --git a/xsdconvert/RootType.cc b/xsdconvert/RootType.cc
index cee420c1b..f80a19a2b 100644
--- a/xsdconvert/RootType.cc
+++ b/xsdconvert/RootType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -9,12 +9,11 @@
 
 #include "TTCN3Module.hh"
 
-RootType::RootType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct)
+RootType::RootType(XMLParser * a_parser, TTCN3Module * a_module, const ConstructType a_construct)
 : parser(a_parser)
 , module(a_module)
 , name()
 , type()
-, id()
 , minOccurs(1)
 , maxOccurs(1)
 , variant()
@@ -23,130 +22,142 @@ RootType::RootType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a
 , construct(a_construct)
 , origin(from_unknown)
 , visible(true)
-, nameDepList()
-{
-  switch (a_construct)
-  {
-  case c_schema:
-  case c_annotation:
-  case c_include:
-  case c_import:
-    //redundant: origin = from_unknown;
-    break;
-  case c_unknown: // because when using fields in complextypes we set construct to c_unknown
-  case c_simpleType:
-    origin = from_simpleType;
-    type.upload(Mstring("anySimpleType"));
-    break;
-  case c_element:
-    origin = from_element;
-    type.upload(Mstring("anyType"));
-    addVariant(V_element);
-    break;
-  case c_attribute:
-    origin = from_attribute;
-    type.upload(Mstring("anySimpleType"));
-    addVariant(V_attribute);
-    break;
-  case c_complexType:
-    origin = from_complexType;
-    type.upload(Mstring("record"));
-    break;
-  case c_group:
-    origin = from_group;
-    type.upload(Mstring("record"));
-    addVariant(V_untagged);
-    break;
-  case c_attributeGroup:
-    origin = from_attributeGroup;
-    type.upload(Mstring("record"));
-    addVariant(V_attributeGroup);
-    visible = false;
-    break;
+, nameDepList() {
+  switch (a_construct) {
+    case c_schema:
+    case c_annotation:
+    case c_include:
+    case c_import:
+      //redundant: origin = from_unknown;
+      break;
+    case c_unknown: // because when using fields in complextypes we set construct to c_unknown
+    case c_simpleType:
+      origin = from_simpleType;
+      type.upload(Mstring("anySimpleType"));
+      break;
+    case c_element:
+      origin = from_element;
+      type.upload(Mstring("anyType"));
+      addVariant(V_element);
+      break;
+    case c_attribute:
+      origin = from_attribute;
+      type.upload(Mstring("anySimpleType"));
+      addVariant(V_attribute);
+      break;
+    case c_complexType:
+      origin = from_complexType;
+      type.upload(Mstring("record"));
+      break;
+    case c_group:
+      origin = from_group;
+      type.upload(Mstring("record"));
+      addVariant(V_untagged);
+      break;
+    case c_attributeGroup:
+      origin = from_attributeGroup;
+      type.upload(Mstring("record"));
+      addVariant(V_attributeGroup);
+      visible = false;
+      break;
+    default:
+      break;
   }
 }
 
-void RootType::addVariant(VariantMode var, const Mstring& var_value, bool into_variant_ref)
-{
+void RootType::addVariant(const VariantMode var, const Mstring& var_value, const bool into_variant_ref) {
   Mstring variantstring;
 
-  switch (var)
-  {
-  case V_anyAttributes:
-    variantstring = "\"anyAttributes" + var_value + "\"";
-    break;
-  case V_anyElement:
-    variantstring = "\"anyElement" + var_value + "\"";
-    break;
-  case V_attribute:
-    variantstring = "\"attribute\"";
-    break;
-  case V_attributeFormQualified:
-    variantstring = "\"attributeFormQualified\"";
-    break;
-  case V_attributeGroup:
-    variantstring = "\"attributeGroup\"";
-    break;
-  case V_controlNamespace:
-    variantstring = "\"controlNamespace" + var_value + "\"";
-    break;
-  case V_defaultForEmpty:
-    variantstring = "\"defaultForEmpty as \'" + var_value + "\'\"";  // chapter 7.1.5
-    break;
-  case V_element:
-    variantstring = "\"element\"";
-    break;
-  case V_elementFormQualified:
-    variantstring = "\"elementFormQualified\"";
-    break;
-  case V_embedValues:
-    variantstring = "\"embedValues\"";
-    break;
-  case V_formAs:
-    variantstring = "\"form as " + var_value + "\"";
-    break;
-  case V_list:
-    variantstring = "\"list\"";
-    break;
-  case V_nameAs:
-    variantstring = "\"name as \'" + var_value + "\'\"";
-    break;
-  case V_namespaceAs: {
-    Mstring prefix;
-    Mstring uri;
-    for (List<NamespaceType>::iterator namesp = module->getDeclaredNamespaces().begin(); namesp; namesp = namesp->Next) {
-      if (namesp->Data.uri == var_value) {
-        prefix = namesp->Data.prefix;
-        uri = namesp->Data.uri;
+  switch (var) {
+    case V_abstract:
+      variantstring = "\"abstract\"";
+      break;
+    case V_anyAttributes:
+      variantstring = "\"anyAttributes" + var_value + "\"";
+      break;
+    case V_anyElement:
+      variantstring = "\"anyElement" + var_value + "\"";
+      break;
+    case V_attribute:
+      variantstring = "\"attribute\"";
+      break;
+    case V_attributeFormQualified:
+      variantstring = "\"attributeFormQualified\"";
+      break;
+    case V_attributeGroup:
+      variantstring = "\"attributeGroup\"";
+      break;
+    case V_block:
+      variantstring = "\"block\"";
+      break;
+    case V_controlNamespace:
+      variantstring = "\"controlNamespace" + var_value + "\"";
+      break;
+    case V_defaultForEmpty:
+      variantstring = "\"defaultForEmpty as \'" + var_value + "\'\""; // chapter 7.1.5
+      break;
+    case V_element:
+      variantstring = "\"element\"";
+      break;
+    case V_elementFormQualified:
+      variantstring = "\"elementFormQualified\"";
+      break;
+    case V_embedValues:
+      variantstring = "\"embedValues\"";
+      break;
+    case V_formAs:
+      variantstring = "\"form as " + var_value + "\"";
+      break;
+    case V_list:
+      variantstring = "\"list\"";
+      break;
+    case V_nameAs:
+      variantstring = "\"name as \'" + var_value + "\'\"";
+      break;
+    case V_namespaceAs:
+    {
+      Mstring prefix;
+      Mstring uri;
+      for (List<NamespaceType>::iterator namesp = module->getDeclaredNamespaces().begin(); namesp; namesp = namesp->Next) {
+        if (namesp->Data.uri == var_value) {
+          prefix = namesp->Data.prefix;
+          uri = namesp->Data.uri;
+          break;
+        }
+      }
+      if (prefix.empty() || uri.empty()) {
         break;
       }
-    }
-    if (prefix.empty() || uri.empty()) {
+      variantstring = "\"namespace as \'" + uri + "\' prefix \'" + prefix + "\'\"";
       break;
     }
-    variantstring = "\"namespace as \'" + uri + "\' prefix \'" + prefix + "\'\"";
-    break; }
-  case V_onlyValue:
-    variantstring = var_value;
-    break;
-  case V_untagged:
-    variantstring = "\"untagged\"";
-    break;
-  case V_useNil:
-    variantstring = "\"useNil\"";
-    break;
-  case V_useNumber:
-    variantstring = "\"useNumber\"";
-    break;
-  case V_useOrder:
-    variantstring = "\"useOrder\"";
-    break;
-  case V_useUnion:
-    variantstring = "\"useUnion\"";
-    break;
-  case V_whiteSpace:
-    variantstring = "\"whiteSpace " + var_value + "\"";
-    break;
+    case V_onlyValue:
+      variantstring = var_value;
+      break;
+    case V_onlyValueHidden:
+      hidden_variant.push_back(var_value);
+      break;
+    case V_untagged:
+      variantstring = "\"untagged\"";
+      break;
+    case V_useNil:
+      variantstring = "\"useNil\"";
+      break;
+    case V_useNumber:
+      variantstring = "\"useNumber\"";
+      break;
+    case V_useOrder:
+      variantstring = "\"useOrder\"";
+      break;
+    case V_useUnion:
+      variantstring = "\"useUnion\"";
+      break;
+    case V_whiteSpace:
+      variantstring = "\"whiteSpace " + var_value + "\"";
+      break;
+    case V_fractionDigits:
+      //variantstring = "\"fractionDigits " + var_value + "\"";
+      break;
   }
 
   if (!variantstring.empty()) {
@@ -157,40 +168,45 @@ void RootType::addVariant(VariantMode var, const Mstring& var_value, bool into_v
   }
 }
 
-void RootType::printVariant(FILE * file)
-{
-  if (!e_flag_used && !variant.empty())
-  {
+void RootType::printVariant(FILE * file) {
+  if (!e_flag_used && !variant.empty()) {
     fprintf(file, "\nwith {\n");
-    for (List<Mstring>::iterator var = variant.end(); var; var = var->Prev)
-    {
+    for (List<Mstring>::iterator var = variant.end(); var; var = var->Prev) {
       fprintf(file, "variant %s;\n", var->Data.c_str());
     }
+    for (List<Mstring>::iterator var = hidden_variant.end(); var; var = var->Prev) {
+      fprintf(file, "//variant %s;\n", var->Data.c_str());
+    }
     fprintf(file, "}");
+  } else if (!e_flag_used && type.originalValueWoPrefix == Mstring("boolean")) {
+    fprintf(file, ";\n//with {\n");
+    for (List<Mstring>::iterator var = hidden_variant.end(); var; var = var->Prev) {
+      fprintf(file, "//variant %s;\n", var->Data.c_str());
+    }
+    fprintf(file, "//}");
   }
 }
 
-void RootType::addComment(const Mstring& text)
-{
-  comment += "/* " + text + " */\n";
+void RootType::addComment(const Mstring& text) {
+  comment.push_back(Mstring("/* " + text + " */\n"));
 }
 
-void RootType::printComment(FILE * file)
-{
-  if (!c_flag_used)
-  {
-    fprintf(file, "%s", comment.c_str());
+void RootType::printComment(FILE * file, int level) {
+  if (!c_flag_used && !comment.empty()) {
+    for (List<Mstring>::iterator c = comment.begin(); c; c = c->Next) {
+      indent(file, level);
+      fprintf(file, "%s", c->Data.c_str());
+    }
   }
 }
 
-void RootType::printMinOccursMaxOccurs(FILE * file, bool inside_union,
-  bool empty_allowed /* = true */) const
-{
+void RootType::printMinOccursMaxOccurs(FILE * file, const bool inside_union,
+  const bool empty_allowed /* = true */) const {
+
   unsigned long long tmp_minOccurs = minOccurs;
   if (minOccurs == 0 && !empty_allowed) tmp_minOccurs = 1ULL;
 
-  if (maxOccurs == 1)
-  {
+  if (maxOccurs == 1) {
     if (minOccurs == 0) {
       if (inside_union || name.list_extension) {
         fputs("record length(", file);
@@ -199,22 +215,32 @@ void RootType::printMinOccursMaxOccurs(FILE * file, bool inside_union,
         fputs("1) of ", file);
       }
       // else it's optional which is not printed from here
-    }
-    else if (minOccurs == 1) {
+    } else if (minOccurs == 1) {
       // min==max==1; do nothing unless...
-      if (name.convertedValue == "embed_values") fputs("record length(1) of ", file);
+      if (name.convertedValue == "embed_values") {
+        fputs("record length(1) of ", file);
+      }
     }
-  }
-  else if (maxOccurs == ULLONG_MAX) {
+  } else if (maxOccurs == ULLONG_MAX) {
     if (minOccurs == 0) {
       fputs("record ", file);
       if (!empty_allowed) fputs("length(1 .. infinity) ", file);
       fputs("of ", file);
+    } else fprintf(file, "record length(%llu .. infinity) of ", tmp_minOccurs);
+  } else {
+    if (tmp_minOccurs == maxOccurs) {
+      fprintf(file, "record length(%llu) of ", tmp_minOccurs);
+    } else {
+      fprintf(file, "record length(%llu .. %llu) of ", tmp_minOccurs, maxOccurs);
     }
-    else fprintf(file, "record length(%llu .. infinity) of ", tmp_minOccurs);
-  }
-  else
-  {
-    fprintf(file, "record length(%llu .. %llu) of ", tmp_minOccurs, maxOccurs);
   }
 }
+
+bool RootType::hasVariant(const Mstring& var) const{
+  for(List<Mstring>::iterator vars = variant.begin(); vars; vars = vars->Next){
+    if(vars->Data.isFound(var)){
+      return true;
+    }
+  }
+  return false;
+}
\ No newline at end of file
diff --git a/xsdconvert/RootType.hh b/xsdconvert/RootType.hh
index b2921b510..16a5f1528 100644
--- a/xsdconvert/RootType.hh
+++ b/xsdconvert/RootType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -30,14 +30,14 @@
 extern bool c_flag_used;
 extern bool e_flag_used;
 
-
-enum VariantMode
-{
+enum VariantMode {
+  V_abstract,
   V_anyAttributes,
   V_anyElement,
   V_attribute,
   V_attributeFormQualified,
   V_attributeGroup,
+  V_block,
   V_controlNamespace,
   V_defaultForEmpty,
   V_element,
@@ -48,16 +48,17 @@ enum VariantMode
   V_nameAs,
   V_namespaceAs,
   V_onlyValue,
+  V_onlyValueHidden,
   V_untagged,
   V_useNil,
   V_useNumber,
   V_useOrder,
   V_useUnion,
-  V_whiteSpace
+  V_whiteSpace,
+  V_fractionDigits
 };
 
-enum OriginType
-{
+enum OriginType {
   from_simpleType,
   from_element,
   from_attribute,
@@ -67,18 +68,18 @@ enum OriginType
   from_unknown
 };
 
-class NameType
-{
+class NameType {
 public:
   Mstring originalValueWoPrefix;
   Mstring convertedValue;
   bool list_extension;
+  bool no_replace;
 
-  NameType (): originalValueWoPrefix(), convertedValue(), list_extension(false) {}
+  NameType() : originalValueWoPrefix(), convertedValue(), list_extension(false), no_replace(false) {
+  }
   // Default copy constructor, assignment operator and destructor are used
 
-  void upload (const Mstring& input)
-  {
+  void upload(const Mstring& input) {
     if (input.empty()) return;
     convertedValue = input;
     originalValueWoPrefix = input.getValueWithoutPrefix(':');
@@ -97,77 +98,144 @@ class TTCN3Module;
  *
  */
 
-class RootType
-{
+class RootType {
 protected:
-  XMLParser * 	parser; // no responsibility for this member
-  TTCN3Module *	module; // no responsibility for this member
+  XMLParser * parser; // no responsibility for this member
+  TTCN3Module * module; // no responsibility for this member
 
   NameType name;
   NameType type;
-  Mstring id;
   unsigned long long int minOccurs;
   unsigned long long int maxOccurs;
   List<Mstring> variant;
   List<Mstring> variant_ref;
-  Mstring comment;
+  List<Mstring> hidden_variant;
+  List<Mstring> comment;
 
   ConstructType construct;
   OriginType origin;
   bool visible;
+
   /// List of types that depend on this one.
   /// Used to propagate the effect of name conversion to the dependents
   List<SimpleType*> nameDepList; // no responsibility for elements
 
 public:
-  RootType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
-  virtual ~RootType () {}
+  RootType(XMLParser * a_parser, TTCN3Module * a_module, const ConstructType a_construct);
+
+  virtual ~RootType() {
+  }
   // Default copy constructor and assignment operator is used
 
-  virtual void loadWithValues () = 0;
-  virtual void printToFile (FILE * file) = 0;
+  virtual void loadWithValues() = 0;
+  virtual void printToFile(FILE * file) = 0;
 
-  virtual void modifyValues () {}
+  virtual void modifyValues() {
+  }
 
-  virtual void referenceResolving () {}
-  virtual void nameConversion (NameConversionMode, const List<NamespaceType> &) {}
-  virtual void finalModification () {}
+  virtual void referenceResolving() {
+  }
 
-  virtual bool hasUnresolvedReference () {return false;}
-  virtual void dump (unsigned int) const {}
+  virtual void nameConversion(const NameConversionMode, const List<NamespaceType> &) {
+  }
+
+  virtual void finalModification() {
+  }
 
-  void setNameValue (const Mstring& str) {name.convertedValue = str;}
-  void setTypeValue (const Mstring& str) {type.convertedValue = str;}
-  void useNameListProperty () {name.convertedValue += "_list";}
-  void setInvisible () {visible = false;}
-  void addToNameDepList (SimpleType * t) {nameDepList.push_back(t);}
+  virtual bool hasUnresolvedReference() {
+    return false;
+  }
+
+  virtual void dump(const unsigned int) const {
+  }
+
+  void setNameValue(const Mstring& str) {
+    name.convertedValue = str;
+  }
+
+  void setTypeValue(const Mstring& str) {
+    type.convertedValue = str;
+  }
+
+  void useNameListProperty() {
+    name.convertedValue += "_list";
+  }
+
+  void setInvisible() {
+    visible = false;
+  }
+
+  const NameType & getName() const {
+    return name;
+  }
+
+  const NameType & getType() const {
+    return type;
+  }
+
+  unsigned long long int getMinOccurs() const {
+    return minOccurs;
+  }
+
+  unsigned long long int getMaxOccurs() const {
+    return maxOccurs;
+  }
+
+  const List<Mstring> & getVariant() const {
+    return variant;
+  }
+
+  const List<Mstring> & getVariantRef() const {
+    return variant_ref;
+  }
+
+  const List<Mstring> & getHiddenVariant() const {
+    return hidden_variant;
+  }
+
+  ConstructType getConstruct() const {
+    return construct;
+  }
+
+  OriginType getOrigin() const {
+    return origin;
+  }
+
+  bool isVisible() const {
+    return visible;
+  }
+
+  List<Mstring> & getComment() {
+    return comment;
+  }
+
+  XMLParser * getParser() const {
+    return parser;
+  }
+
+  TTCN3Module * getModule() const {
+    return module;
+  }
+
+  void setModule(TTCN3Module * mod) {
+    module = mod;
+  }
 
-  const NameType & getName () const {return name;}
-  const NameType & getType () const {return type;}
-  unsigned long long int getMinOccurs () const {return minOccurs;}
-  unsigned long long int getMaxOccurs () const {return maxOccurs;}
-  const List<Mstring> & getVariant () const {return variant;}
-  const List<Mstring> & getVariantRef () const {return variant_ref;}
-  ConstructType getConstruct () const {return construct;}
-  OriginType getOrigin () const {return origin;}
-  bool isVisible () const {return visible;}
-  XMLParser * getParser () const {return parser;}
-  TTCN3Module * getModule () const {return module;}
+  bool hasVariant(const Mstring& var) const;
 
-  void addVariant (VariantMode var, const Mstring& var_value = empty_string, bool into_variant_ref = false);
-  void printVariant (FILE * file);
+  void addVariant(const VariantMode var, const Mstring& var_value = empty_string, const bool into_variant_ref = false);
+  virtual void printVariant(FILE * file);
 
-  void addComment (const Mstring& text);
-  void printComment (FILE * file);
+  virtual void addComment(const Mstring& text);
+  virtual void printComment(FILE * file, int level = 0);
 
-  void printMinOccursMaxOccurs (FILE * file, bool inside_union,
-    bool empty_allowed = true) const;
+  void printMinOccursMaxOccurs(FILE * file, const bool inside_union,
+      const bool empty_allowed = true) const;
 
-  friend bool compareTypes (RootType * lhs, RootType * rhs);
+  friend bool compareTypes(RootType * lhs, RootType * rhs);
 };
 
-inline bool compareTypes (RootType * lhs, RootType * rhs)
-{
+inline bool compareTypes(RootType * lhs, RootType * rhs) {
   return lhs->name.originalValueWoPrefix < rhs->name.originalValueWoPrefix;
 }
 
diff --git a/xsdconvert/SimpleType.cc b/xsdconvert/SimpleType.cc
index 16d80d046..db39ef0bf 100644
--- a/xsdconvert/SimpleType.cc
+++ b/xsdconvert/SimpleType.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -12,38 +12,51 @@
 #include "TTCN3ModuleInventory.hh"
 #include "TTCN3Module.hh"
 #include "ComplexType.hh"
-#include "FieldType.hh"
 
+extern bool g_flag_used;
 
 SimpleType::SimpleType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct)
 : RootType(a_parser, a_module, a_construct)
-  , builtInBase()
-  , length(this)
-  , pattern(this)
-  , enumeration(this)
-  , whitespace(this)
-  , value(this)
-  , element_form_as(notset)
-  , attribute_form_as(notset)
-  , mode(noMode)
-  , outside_reference()
-  , in_name_only(false)
-  {}
+, builtInBase()
+, length(this)
+, pattern(this)
+, enumeration(this)
+, whitespace(this)
+, value(this)
+, element_form_as(notset)
+, attribute_form_as(notset)
+, mode(noMode)
+, outside_reference()
+, in_name_only(false)
+, fromRef(false)
+, xsdtype(n_NOTSET)
+, isOptional(false)
+, substitionGroup(empty_string)
+, subsGroup(NULL)
+, block(not_set)
+, parent(NULL) {
+}
 
 SimpleType::SimpleType(const SimpleType& other)
 : RootType(other)
-  , builtInBase(other.builtInBase)
-  , length(other.length)
-  , pattern(other.pattern)
-  , enumeration(other.enumeration)
-  , whitespace(other.whitespace)
-  , value(other.value)
-  , element_form_as(other.element_form_as)
-  , attribute_form_as(other.attribute_form_as)
-  , mode(other.mode)
-  , outside_reference(other.outside_reference)
-  , in_name_only(other.in_name_only)
-{
+, builtInBase(other.builtInBase)
+, length(other.length)
+, pattern(other.pattern)
+, enumeration(other.enumeration)
+, whitespace(other.whitespace)
+, value(other.value)
+, element_form_as(other.element_form_as)
+, attribute_form_as(other.attribute_form_as)
+, mode(other.mode)
+, outside_reference(other.outside_reference)
+, in_name_only(other.in_name_only)
+, fromRef(other.fromRef)
+, xsdtype(other.xsdtype)
+, isOptional(other.isOptional)
+, substitionGroup(other.substitionGroup)
+, subsGroup(other.subsGroup)
+, block(other.block)
+, parent(NULL) {
   length.parent = this;
   pattern.parent = this;
   enumeration.parent = this;
@@ -51,193 +64,266 @@ SimpleType::SimpleType(const SimpleType& other)
   value.parent = this;
 }
 
-void SimpleType::loadWithValues()
-{
+void SimpleType::loadWithValues() {
   const XMLParser::TagAttributes & atts = parser->getActualTagAttributes();
-
-  switch (parser->getActualTagName())
-  {
-  case XMLParser::n_restriction:
-    type.upload(atts.base);
-    setReference(atts.base);
-    mode = restrictionMode;
-    break;
-  case XMLParser::n_list:
-    type.upload(atts.itemType);
-    setReference(atts.itemType);
-    minOccurs = 0;
-    maxOccurs = ULLONG_MAX;
-    addVariant(V_list);
-    mode = listMode;
-    break;
-  case XMLParser::n_union: { // generating complextype from simpletype
-    ComplexType * new_complextype = new ComplexType(*this, ComplexType::fromTagUnion);
-    new_complextype->loadWithValues();
-    break; }
-  case XMLParser::n_element:
-    name.upload(atts.name);
-    type.upload(atts.type);
-    setReference(atts.type, true);
-    applyDefaultAttribute(atts.default_);
-    applyFixedAttribute(atts.fixed);
-    applyNillableAttribute(atts.nillable);
-    break;
-  case XMLParser::n_attribute:
-    name.upload(atts.name);
-    type.upload(atts.type);
-    setReference(atts.type, true);
-    applyDefaultAttribute(atts.default_);
-    applyFixedAttribute(atts.fixed);
-    break;
-  case XMLParser::n_simpleType:
-    name.upload(atts.name);
-    break;
-  case XMLParser::n_complexType: { // generating complextype from simpletype
-    ComplexType * new_complextype = new ComplexType(*this, ComplexType::fromTagComplexType);
-    new_complextype->loadWithValues();
-    break; }
-  case XMLParser::n_length:
-    if (mode == listMode) {
-      minOccurs = strtoull(atts.value.c_str(), NULL, 0);
-      maxOccurs = strtoull(atts.value.c_str(), NULL, 0);
+  switch (parser->getActualTagName()) {
+    case n_restriction:
+      type.upload(atts.base);
+      setReference(atts.base);
+      mode = restrictionMode;
       break;
-    }
-    length.facet_minLength = strtoull(atts.value.c_str(), NULL, 0);
-    length.facet_maxLength = strtoull(atts.value.c_str(), NULL, 0);
-    length.modified = true;
-    break;
-  case XMLParser::n_minLength:
-    if (mode == listMode) {
-      minOccurs = strtoull(atts.value.c_str(), NULL, 0);
+    case n_list:
+      type.upload(atts.itemType);
+      setReference(atts.itemType);
+      minOccurs = 0;
+      maxOccurs = ULLONG_MAX;
+      addVariant(V_list);
+      mode = listMode;
       break;
-    }
-    length.facet_minLength = strtoull(atts.value.c_str(), NULL, 0);
-    length.modified = true;
-    break;
-  case XMLParser::n_maxLength:
-    if (mode == listMode) {
-      maxOccurs = strtoull(atts.value.c_str(), NULL, 0);
+    case n_union:
+    { // generating complextype from simpletype
+      ComplexType * new_complextype = new ComplexType(*this, ComplexType::fromTagUnion);
+      new_complextype->loadWithValues();
       break;
     }
-    length.facet_maxLength = strtoull(atts.value.c_str(), NULL, 0);
-    length.modified = true;
-    break;
-  case XMLParser::n_pattern:
-    pattern.facet = atts.value;
-    pattern.modified = true;
-    break;
-  case XMLParser::n_enumeration:
-    enumeration.facets.push_back(atts.value);
-    enumeration.modified = true;
-    break;
-  case XMLParser::n_whiteSpace:
-    whitespace.facet = atts.value;
-    whitespace.modified = true;
-    break;
-  case XMLParser::n_minInclusive:
-    if (atts.value == "NaN") {}
-    else if (atts.value == "-INF") {
-      value.facet_minInclusive = -DBL_MAX;
-    }
-    else if (atts.value == "INF") {
-      value.facet_minInclusive = DBL_MAX;
-    }
-    else {
-      value.facet_minInclusive = stringToLongDouble(atts.value.c_str());
-    }
-    value.modified = true;
-    break;
-  case XMLParser::n_maxInclusive:
-    if (atts.value == "NaN") {}
-    else if (atts.value == "-INF") {
-      value.facet_maxInclusive = -DBL_MAX;
-    }
-    else if (atts.value == "INF") {
-      value.facet_maxInclusive = DBL_MAX;
-    }
-    else {
-      value.facet_maxInclusive = stringToLongDouble(atts.value.c_str());
-    }
-    value.modified = true;
-    break;
-  case XMLParser::n_minExclusive:
-    if (atts.value == "NaN") {}
-    else if (atts.value == "-INF") {
-      value.facet_minExclusive = -DBL_MAX;
-    }
-    else if (atts.value == "INF") {
-      value.facet_minExclusive = DBL_MAX;
-    }
-    else {
-      value.facet_minExclusive = stringToLongDouble(atts.value.c_str());
-    }
-    value.modified = true;
-    value.lowerExclusive = true;
-    break;
-  case XMLParser::n_maxExclusive:
-    if (atts.value == "NaN") {}
-    else if (atts.value == "-INF") {
-      value.facet_maxExclusive = -DBL_MAX;
-    }
-    else if (atts.value == "INF") {
-      value.facet_maxExclusive = DBL_MAX;
-    }
-    else {
-      value.facet_maxExclusive = stringToLongDouble(atts.value.c_str());
+    case n_element:
+      name.upload(atts.name);
+      type.upload(atts.type);
+      setReference(atts.type, true);
+      if (!atts.nillable) {
+        applyDefaultAttribute(atts.default_);
+        applyFixedAttribute(atts.fixed);
+      }
+      applyAbstractAttribute(atts.abstract);
+      applySubstitionGroupAttribute(atts.substitionGroup);
+      applyBlockAttribute(atts.block);
+      //This shall be the last instruction always
+      applyNillableAttribute(atts.nillable);
+      break;
+    case n_attribute:
+      name.upload(atts.name);
+      type.upload(atts.type);
+      xsdtype = n_attribute;
+      setReference(atts.type, true);
+      applyDefaultAttribute(atts.default_);
+      applyFixedAttribute(atts.fixed);
+      break;
+    case n_simpleType:
+      name.upload(atts.name);
+      break;
+    case n_complexType:
+    { // generating complextype from simpletype
+      ComplexType * new_complextype = new ComplexType(*this, ComplexType::fromTagComplexType);
+      new_complextype->loadWithValues();
+      break;
     }
-    value.modified = true;
-    value.upperExclusive = true;
-    break;
-  case XMLParser::n_totalDigits:
-    value.facet_totalDigits = strtoul(atts.value.c_str(), NULL, 0);
-    value.modified = true;
-    break;
-  case XMLParser::n_annotation:
-  case XMLParser::n_documentation:
-    break;
-  case XMLParser::n_label:
-    addComment(Mstring("LABEL:"));
-    break;
-  case XMLParser::n_definition:
-    addComment(Mstring("DEFINITION:"));
-    break;
-  default:
-    break;
+    case n_length:
+      if (mode == listMode) {
+        minOccurs = strtoull(atts.value.c_str(), NULL, 0);
+        maxOccurs = strtoull(atts.value.c_str(), NULL, 0);
+        break;
+      }
+      length.facet_minLength = strtoull(atts.value.c_str(), NULL, 0);
+      length.facet_maxLength = strtoull(atts.value.c_str(), NULL, 0);
+      length.modified = true;
+      break;
+    case n_minLength:
+      if (mode == listMode) {
+        minOccurs = strtoull(atts.value.c_str(), NULL, 0);
+        break;
+      }
+      length.facet_minLength = strtoull(atts.value.c_str(), NULL, 0);
+      length.modified = true;
+      break;
+    case n_maxLength:
+      if (mode == listMode) {
+        maxOccurs = strtoull(atts.value.c_str(), NULL, 0);
+        break;
+      }
+      length.facet_maxLength = strtoull(atts.value.c_str(), NULL, 0);
+      length.modified = true;
+      break;
+    case n_pattern:
+      pattern.facet = atts.value;
+      pattern.modified = true;
+      break;
+    case n_enumeration:
+      enumeration.facets.push_back(atts.value);
+      enumeration.modified = true;
+      break;
+    case n_whiteSpace:
+      whitespace.facet = atts.value;
+      whitespace.modified = true;
+      break;
+    case n_minInclusive:
+      if (atts.value == "NaN") {
+        value.not_a_number = true;
+      } else if (atts.value == "-INF") {
+        value.facet_minInclusive = -DBL_MAX;
+      } else if (atts.value == "INF") {
+        value.facet_minInclusive = DBL_MAX;
+      } else {
+        value.facet_minInclusive = stringToLongDouble(atts.value.c_str());
+      }
+      value.modified = true;
+      break;
+    case n_maxInclusive:
+      if (atts.value == "NaN") {
+        value.not_a_number = true;
+      } else if (atts.value == "-INF") {
+        value.facet_maxInclusive = -DBL_MAX;
+      } else if (atts.value == "INF") {
+        value.facet_maxInclusive = DBL_MAX;
+      } else {
+        value.facet_maxInclusive = stringToLongDouble(atts.value.c_str());
+      }
+      value.modified = true;
+      break;
+    case n_minExclusive:
+      if (atts.value == "NaN") {
+        setInvisible();
+      } else if (atts.value == "-INF") {
+        value.facet_minExclusive = -DBL_MAX;
+      } else if (atts.value == "INF") {
+        setInvisible();
+      } else {
+        value.facet_minExclusive = stringToLongDouble(atts.value.c_str());
+      }
+      value.modified = true;
+      value.lowerExclusive = true;
+      break;
+    case n_maxExclusive:
+      if (atts.value == "NaN") {
+        setInvisible();
+      } else if (atts.value == "-INF") {
+        setInvisible();
+      } else if (atts.value == "INF") {
+        value.facet_maxExclusive = DBL_MAX;
+      } else {
+        value.facet_maxExclusive = stringToLongDouble(atts.value.c_str());
+      }
+      value.modified = true;
+      value.upperExclusive = true;
+      break;
+    case n_totalDigits:
+      value.facet_totalDigits = strtoul(atts.value.c_str(), NULL, 0);
+      value.modified = true;
+      break;
+    case n_fractionDigits:
+      //addVariant(V_fractionDigits, atts.value);
+      break;
+    case n_label:
+      addComment(Mstring("LABEL:"));
+      break;
+    case n_definition:
+      addComment(Mstring("DEFINITION:"));
+      break;
+    default:
+      break;
   }
 }
 
-void SimpleType::applyDefaultAttribute(const Mstring& default_value)
-{
+void SimpleType::applyDefaultAttribute(const Mstring& default_value) {
   if (!default_value.empty()) {
     value.default_value = default_value;
-    addVariant(V_defaultForEmpty, default_value);
+  const Mstring nameT = type.originalValueWoPrefix.getValueWithoutPrefix(':');
+    //Not supported for hexBinary and base64Binary
+    if (nameT != "hexBinary" && nameT != "base64Binary") {
+      addVariant(V_defaultForEmpty, default_value);
+    }
   }
 }
 
-void SimpleType::applyFixedAttribute(const Mstring& fixed_value)
-{
+void SimpleType::applyFixedAttribute(const Mstring& fixed_value) {
   if (!fixed_value.empty()) {
     value.fixed_value = fixed_value;
-    addVariant(V_defaultForEmpty, fixed_value);
+    value.modified = true;
+    const Mstring nameT = type.originalValueWoPrefix.getValueWithoutPrefix(':');
+    //Not supported for hexBinary and base64Binary
+    if (nameT != "hexBinary" && nameT != "base64Binary") {
+      addVariant(V_defaultForEmpty, fixed_value);
+    }
   }
 }
 
-void SimpleType::applyNillableAttribute(bool nillable)
-{
-  if (nillable)
-  {
+void SimpleType::applyNillableAttribute(const bool nillable) {
+  if (nillable) {
     ComplexType * new_complextype = new ComplexType(*this, ComplexType::fromTagNillable); // generating complextype from simpletype
     new_complextype->loadWithValues();
   }
 }
 
-void SimpleType::setReference(const Mstring& ref, bool only_name_dependency)
-{
+void SimpleType::applyAbstractAttribute(const bool abstract_value) {
+  if (abstract_value) {
+    addVariant(V_onlyValueHidden, Mstring("\"abstract\""));
+  }
+}
+
+void SimpleType::applySubstitionGroupAttribute(const Mstring& substition_group){
+  if(!substition_group.empty()){
+    substitionGroup = substition_group;
+  }
+}
+
+void SimpleType::applyBlockAttribute(const BlockValue block_){
+  if(block_ == not_set){
+    block = getModule()->getBlockDefault();
+  }else {
+    block = block_;
+  }
+}
+
+void SimpleType::addToSubstitutions(){
+  if(!g_flag_used){
+    return;
+  }
+  SimpleType * st_ = (SimpleType*) TTCN3ModuleInventory::getInstance().lookup(this, substitionGroup, want_BOTH);
+  if(st_ == NULL){
+    printError(module->getSchemaname(), name.convertedValue,
+        "Reference for a non-defined type: " + substitionGroup);
+      TTCN3ModuleInventory::getInstance().incrNumErrors();
+      return;
+    return;
+  }
+  SimpleType * st = (SimpleType*)st_;
+  if(st->getSubstitution() != NULL){
+    st = st->getSubstitution();
+  }
+
+  st->referenceResolving();
+  substitionGroup = empty_string;
+  //Simpletype
+  if(st->subsGroup == NULL){
+    ComplexType * head_element = new ComplexType(*st, ComplexType::fromTagSubstition);
+    for(List<SimpleType*>::iterator simpletype = st->nameDepList.begin(); simpletype; simpletype = simpletype->Next){
+      head_element->nameDepList.push_back(simpletype->Data);
+    }
+    st->nameDepList.clear();
+    st->getModule()->addMainType(head_element);
+    head_element->addVariant(V_untagged);
+    head_element->addSubstitution(st);
+    head_element->addSubstitution(this);
+    //if st->subsGroup == this, then it is a generated subs group
+    st->subsGroup = head_element;
+    st->setInvisible();
+  }else {
+    st->subsGroup->addSubstitution(this);
+  }
+}
+
+void SimpleType::setReference(const Mstring& ref, bool only_name_dependency) {
   if (ref.empty()) {
     return;
   }
   if (isBuiltInType(ref)) {
     builtInBase = ref.getValueWithoutPrefix(':');
+    if (name.convertedValue.empty()) {
+      name.upload(ref);
+    }
+    if (type.convertedValue.empty() || type.convertedValue == "anySimpleType") {
+      type.upload(ref.getValueWithoutPrefix(':'));
+    }
+    fromRef = true;
     return;
   }
 
@@ -246,8 +332,7 @@ void SimpleType::setReference(const Mstring& ref, bool only_name_dependency)
   Mstring refUri;
   // Find the URI amongst the known namespace URIs
   List<NamespaceType>::iterator declNS;
-  for (declNS = module->getDeclaredNamespaces().begin(); declNS; declNS = declNS->Next)
-  {
+  for (declNS = module->getDeclaredNamespaces().begin(); declNS; declNS = declNS->Next) {
     if (refPrefix == declNS->Data.prefix) {
       refUri = declNS->Data.uri;
       break;
@@ -258,11 +343,9 @@ void SimpleType::setReference(const Mstring& ref, bool only_name_dependency)
   if (refUri.empty()) { // not found
     if (refPrefix == "xml") {
       refUri = "http://www.w3.org/XML/1998/namespace";
-    }
-    else if (refPrefix == "xmlns") {
+    } else if (refPrefix == "xmlns") {
       refUri = "http://www.w3.org/2000/xmlns";
-    }
-    else if (refPrefix.empty() && module->getTargetNamespace() == "NoTargetNamespace") {
+    } else if (refPrefix.empty() && module->getTargetNamespace() == "NoTargetNamespace") {
       refUri = "NoTargetNamespace";
     }
   }
@@ -271,11 +354,10 @@ void SimpleType::setReference(const Mstring& ref, bool only_name_dependency)
     if (refPrefix.empty()) {
       printError(module->getSchemaname(), parser->getActualLineNumber(),
         Mstring("The absent namespace must be imported because "
-          "it is not the same as the target namespace of the current schema."));
+        "it is not the same as the target namespace of the current schema."));
       parser->incrNumErrors();
       return;
-    }
-    else {
+    } else {
       printError(module->getSchemaname(), parser->getActualLineNumber(),
         "The value \'" + ref + "\' is incorrect: "
         "A namespace prefix does not denote any URI.");
@@ -285,43 +367,52 @@ void SimpleType::setReference(const Mstring& ref, bool only_name_dependency)
   }
 
   if (only_name_dependency) {
-    //name_dependency   = refUri + "|" + refValue;
     in_name_only = true;
   }
 
-  //reference_for_other = refUri + "|" + refValue;
   outside_reference.load(refUri, refValue, &declNS->Data);
 }
 
-void SimpleType::referenceResolving()
-{
-  if (outside_reference.empty()) return;
+void SimpleType::referenceResolving() {
+  if (outside_reference.empty() && substitionGroup.empty()) return;
   if (outside_reference.is_resolved()) return;
 
-  SimpleType * found_ST = static_cast<SimpleType*>(
-    TTCN3ModuleInventory::getInstance().lookup(this, want_ST));
-  ComplexType * found_CT = static_cast<ComplexType*>(
-    TTCN3ModuleInventory::getInstance().lookup(this, want_CT));
-  // It _is_ possible to find both
-
-  if (found_ST != NULL) {
-    referenceForST(found_ST);
-    found_ST->addToNameDepList(this);
-  }
-  else if (found_CT != NULL) {
-    referenceForCT(found_CT);
-    found_CT->addToNameDepList(this);
-  }
-  else {
-    printError(module->getSchemaname(), name.convertedValue,
-      "Reference for a non-defined type: " + outside_reference.repr());
-    TTCN3ModuleInventory::getInstance().incrNumErrors();
-    outside_reference.set_resolved(NULL);
+  if(!outside_reference.empty()){
+    SimpleType * found_ST = static_cast<SimpleType*> (
+      TTCN3ModuleInventory::getInstance().lookup(this, want_ST));
+    ComplexType * found_CT = static_cast<ComplexType*> (
+      TTCN3ModuleInventory::getInstance().lookup(this, want_CT));
+    // It _is_ possible to find both
+
+    if (found_ST != NULL) {
+      if (!found_ST->outside_reference.empty() && !found_ST->outside_reference.is_resolved() && found_ST != this) {
+        found_ST->outside_reference.set_resolved(NULL);
+        found_ST->referenceResolving();
+      }
+      referenceForST(found_ST);
+      if (!isBuiltInType(type.convertedValue)) {
+        found_ST->addToNameDepList(this);
+      }
+    } else if (found_CT != NULL) {
+      referenceForCT(found_CT);
+      if (!isBuiltInType(type.convertedValue)) {
+        found_CT->addToNameDepList(this);
+      }
+    }else {
+      printError(module->getSchemaname(), name.convertedValue,
+        "Reference for a non-defined type: " + outside_reference.repr());
+      TTCN3ModuleInventory::getInstance().incrNumErrors();
+      outside_reference.set_resolved(NULL);
+    }
+    if(!substitionGroup.empty()){
+      addToSubstitutions();
+    }
+  }else if(!substitionGroup.empty()){
+    addToSubstitutions();
   }
 }
 
-void SimpleType::referenceForST(SimpleType const * const found_ST)
-{
+void SimpleType::referenceForST(SimpleType * found_ST) {
   outside_reference.set_resolved(found_ST);
 
   if (in_name_only)
@@ -333,7 +424,9 @@ void SimpleType::referenceForST(SimpleType const * const found_ST)
   if (mode == listMode)
     return;
 
-  builtInBase = found_ST->builtInBase;
+  if (!found_ST->builtInBase.empty()) {
+    builtInBase = found_ST->builtInBase;
+  }
 
   length.applyReference(found_ST->length);
   pattern.applyReference(found_ST->pattern);
@@ -342,74 +435,96 @@ void SimpleType::referenceForST(SimpleType const * const found_ST)
   value.applyReference(found_ST->value);
 
   mode = found_ST->mode;
+  if (found_ST->mode != listMode) {
+    type.upload(found_ST->getType().convertedValue);
+  }
 }
 
-void SimpleType::referenceForCT(ComplexType const * const found_CT)
-{
+void SimpleType::referenceForCT(ComplexType * found_CT) {
   outside_reference.set_resolved(found_CT);
 
   if (in_name_only)
     return;
 
+  // Section 7.5.3 Example5
+  if (found_CT->getType().convertedValue == Mstring("union") && mode == restrictionMode) {
+    for (List<Mstring>::iterator facet = enumeration.facets.begin(); facet; facet = facet->Next) {
+      enumeration.items_misc.push_back(facet->Data);
+    }
+  }
+  size_t value_size = value.items_with_value.size(); //Used to check changes
   enumeration.modified = false;
-  for (List<Mstring>::iterator itemMisc = enumeration.items_misc.begin(); itemMisc; itemMisc = itemMisc->Next)
-  {
-    if (isdigit(itemMisc->Data[0]))
-    {
-      for (List<FieldType*>::iterator field = found_CT->getFields().begin(); field; field = field->Next)
-      {
-        if (isIntegerType(field->Data->getType().convertedValue))
-        {
+  for (List<Mstring>::iterator itemMisc = enumeration.items_misc.begin(); itemMisc; itemMisc = itemMisc->Next) {
+    size_t act_size = value.items_with_value.size(); //Used to detect if field did not match any field
+    for (List<ComplexType*>::iterator field = found_CT->complexfields.begin(); field; field = field->Next) {
+      if (isIntegerType(field->Data->getType().convertedValue)) {
+        int read_chars = -1;
+        int val = -1;
+        sscanf(itemMisc->Data.c_str(), "%d%n", &val, &read_chars);
+        if ((size_t) read_chars == itemMisc->Data.size()) {
           expstring_t tmp_string = mprintf("{%s:=%d}",
-            field->Data->getName().convertedValue.c_str(), atoi(itemMisc->Data.c_str()));
+            field->Data->getName().convertedValue.c_str(), val);
           value.items_with_value.push_back(Mstring(tmp_string));
+          break;
         }
-        else if (isFloatType(field->Data->getType().convertedValue))
-        {
+      }
+
+      if (isFloatType(field->Data->getType().convertedValue)) {
+        int read_chars = -1;
+        float val = -1.0;
+        sscanf(itemMisc->Data.c_str(), "%f%n", &val, &read_chars);
+        if ((size_t) read_chars == itemMisc->Data.size()) {
           expstring_t tmp_string = mprintf("{%s:=%f}",
-            field->Data->getName().convertedValue.c_str(), atof(itemMisc->Data.c_str()));
-          value.items_with_value.push_back(Mstring(tmp_string));
-        }
-        else if (isTimeType(field->Data->getType().convertedValue))
-        {
-          expstring_t tmp_string = mprintf("{%s;=%s}",
-            field->Data->getName().convertedValue.c_str(), itemMisc->Data.c_str());
+            field->Data->getName().convertedValue.c_str(), val);
           value.items_with_value.push_back(Mstring(tmp_string));
+          break;
         }
       }
-    }
-    else {
-      for (List<FieldType*>::iterator field = found_CT->getFields().begin(); field; field = field->Next)
-      {
-        if (isStringType(field->Data->getType().convertedValue))
-        {
+
+      if (isTimeType(field->Data->getType().convertedValue)) {
+        if (matchDates(itemMisc->Data.c_str(), field->Data->getType().originalValueWoPrefix.c_str())) {
           expstring_t tmp_string = mprintf("{%s:=\"%s\"}",
             field->Data->getName().convertedValue.c_str(), itemMisc->Data.c_str());
           value.items_with_value.push_back(Mstring(tmp_string));
+          break;
         }
       }
+
+      if (isStringType(field->Data->getType().convertedValue)) {
+        expstring_t tmp_string = mprintf("{%s:=\"%s\"}",
+          field->Data->getName().convertedValue.c_str(), itemMisc->Data.c_str());
+        value.items_with_value.push_back(Mstring(tmp_string));
+        break;
+      }
+    }
+
+    if (act_size == value.items_with_value.size()) {
+      printWarning(getModule()->getSchemaname(), getName().convertedValue,
+        Mstring("The following enumeration did not match any field: ") + itemMisc->Data + Mstring("."));
+      TTCN3ModuleInventory::getInstance().incrNumWarnings();
     }
   }
-}
 
+  if (value_size != value.items_with_value.size()) {
+    value.modified = true;
+  }
+}
 
-void SimpleType::nameConversion(NameConversionMode conversion_mode, const List<NamespaceType> & ns)
-{
-  switch (conversion_mode)
-  {
-  case nameMode:
-    nameConversion_names();
-    break;
-  case typeMode:
-    nameConversion_types(ns);
-    break;
-  case fieldMode:
-    break;
+void SimpleType::nameConversion(NameConversionMode conversion_mode, const List<NamespaceType> & ns) {
+  if(!visible) return;
+  switch (conversion_mode) {
+    case nameMode:
+      nameConversion_names();
+      break;
+    case typeMode:
+      nameConversion_types(ns);
+      break;
+    case fieldMode:
+      break;
   }
 }
 
-void SimpleType::nameConversion_names()
-{
+void SimpleType::nameConversion_names() {
   Mstring res, var(module->getTargetNamespace());
   XSDName2TTCN3Name(name.convertedValue, TTCN3ModuleInventory::getInstance().getTypenames(), type_name, res, var);
   name.convertedValue = res;
@@ -419,17 +534,15 @@ void SimpleType::nameConversion_names()
   }
 }
 
-void SimpleType::nameConversion_types(const List<NamespaceType> & ns)
-{
+void SimpleType::nameConversion_types(const List<NamespaceType> & ns) {
   if (type.convertedValue == "record" || type.convertedValue == "set"
-    ||type.convertedValue == "union"  || type.convertedValue == "enumerated") return;
+    || type.convertedValue == "union" || type.convertedValue == "enumerated") return;
 
-  Mstring prefix    = type.convertedValue.getPrefix(':');
+  Mstring prefix = type.convertedValue.getPrefix(':');
   Mstring value_str = type.convertedValue.getValueWithoutPrefix(':');
 
   Mstring uri;
-  for (List<NamespaceType>::iterator namesp = ns.begin(); namesp; namesp = namesp->Next)
-  {
+  for (List<NamespaceType>::iterator namesp = ns.begin(); namesp; namesp = namesp->Next) {
     if (prefix == namesp->Data.prefix) {
       uri = namesp->Data.uri;
       break;
@@ -439,8 +552,7 @@ void SimpleType::nameConversion_types(const List<NamespaceType> & ns)
   QualifiedName tmp(uri, value_str);
 
   QualifiedNames::iterator origTN = TTCN3ModuleInventory::getInstance().getTypenames().begin();
-  for ( ; origTN; origTN = origTN->Next)
-  {
+  for (; origTN; origTN = origTN->Next) {
     if (tmp == origTN->Data) {
       QualifiedName tmp_name(module->getTargetNamespace(), name.convertedValue);
       if (tmp_name == origTN->Data)
@@ -454,16 +566,14 @@ void SimpleType::nameConversion_types(const List<NamespaceType> & ns)
     // This      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ is always value_str
     // The only effect here is to remove the "xs:" prefix from type.convertedValue,
     // otherwise the new value is always the same as the old.
-  }
-  else {
+  } else {
     Mstring res, var;
     XSDName2TTCN3Name(value_str, TTCN3ModuleInventory::getInstance().getTypenames(), type_reference_name, res, var);
     setTypeValue(res);
   }
 }
 
-void SimpleType::finalModification()
-{
+void SimpleType::finalModification() {
   value.applyFacets();
   length.applyFacets();
   pattern.applyFacet();
@@ -473,44 +583,81 @@ void SimpleType::finalModification()
   if (module->getElementFormDefault() == qualified &&
     element_form_as == unqualified) {
     addVariant(V_formAs, Mstring("unqualified"));
+  } else if (module->getElementFormDefault() != qualified &&
+    element_form_as == qualified) {
+    addVariant(V_formAs, Mstring("qualified"));
   }
+
   if (module->getAttributeFormDefault() == qualified &&
     attribute_form_as == unqualified) {
     addVariant(V_formAs, Mstring("unqualified"));
+  } else if (module->getAttributeFormDefault() != qualified &&
+    attribute_form_as == qualified) {
+    addVariant(V_formAs, Mstring("qualified"));
+  }
+
+  if (type.originalValueWoPrefix == Mstring("boolean")) {
+    addVariant(V_onlyValueHidden, Mstring("\"text 'false' as '0'\""));
+    addVariant(V_onlyValueHidden, Mstring("\"text 'true' as '1'\""));
+  }
+
+  isOptional = isOptional || (minOccurs == 0 && maxOccurs == 0);
+
+  // If the type name is the same as the identifier then we have to prefix it 
+  // with the module identifier.
+  if (type.convertedValue == name.convertedValue && !outside_reference.empty()) {
+    List<const TTCN3Module*>::iterator import_module = module->getImportedModules().begin();
+    for (; import_module; import_module = import_module->Next) {
+      if (import_module->Data->getTargetNamespace() == outside_reference.get_uri()) {
+        type.upload(import_module->Data->getModulename() + Mstring(".") + type.convertedValue);
+        break;
+      }
+    }
   }
 }
 
-bool SimpleType::hasUnresolvedReference()
-{
-  if (!outside_reference.empty() && !outside_reference.is_resolved())
+bool SimpleType::hasUnresolvedReference() {
+  if (!outside_reference.empty() && !outside_reference.is_resolved()) {
     return true;
-  else
+  } else {
     return false;
+  }
 }
 
+void SimpleType::applyRefAttribute(const Mstring& ref_value) {
+  if (!ref_value.empty()) {
+    setReference(ref_value);
+    fromRef = true;
+  }
+}
 
-void SimpleType::printToFile(FILE * file)
-{
-  if (!visible) return;
+void SimpleType::printToFile(FILE * file) {
+  if (!visible) {
+    return;
+  }
 
   printComment(file);
 
   fputs("type ", file);
-  if (enumeration.modified) {
+  if(enumeration.modified && hasVariant(Mstring("\"list\""))){
+    printMinOccursMaxOccurs(file, false);
+    fprintf(file, "enumerated\n{\n");
+    enumeration.sortFacets();
+    enumeration.printToFile(file);
+    fprintf(file, "\n} %s", name.convertedValue.c_str());
+  } else if (enumeration.modified) {
     if (isFloatType(builtInBase)) {
       fprintf(file, "%s %s (", type.convertedValue.c_str(), name.convertedValue.c_str());
       enumeration.sortFacets();
       enumeration.printToFile(file);
       fputc(')', file);
-    }
-    else {
+    } else {
       fprintf(file, "enumerated %s\n{\n", name.convertedValue.c_str());
       enumeration.sortFacets();
       enumeration.printToFile(file);
       fputs("\n}", file);
     }
-  }
-  else {
+  } else {
     printMinOccursMaxOccurs(file, false);
 
     int multiplicity = multi(module, outside_reference, this);
@@ -526,18 +673,18 @@ void SimpleType::printToFile(FILE * file)
     value.printToFile(file);
     length.printToFile(file);
   }
+  enumeration.insertVariants();
   printVariant(file);
   fputs(";\n\n\n", file);
 }
 
-void SimpleType::dump(unsigned int depth) const
-{
+void SimpleType::dump(unsigned int depth) const {
   static const char *modes[] = {
     "", "restriction", "extension", "list"
   };
   fprintf(stderr, "%*s SimpleType '%s' -> '%s' at %p\n", depth * 2, "",
     name.originalValueWoPrefix.c_str(), name.convertedValue.c_str(),
-    (const void*)this);
+    (const void*) this);
   fprintf(stderr, "%*s   type '%s' -> '%s'\n", depth * 2, "",
     type.originalValueWoPrefix.c_str(), type.convertedValue.c_str());
 
@@ -545,23 +692,22 @@ void SimpleType::dump(unsigned int depth) const
     fprintf(stderr, "%*s   %s, base='%s'\n", depth * 2, "", modes[mode], builtInBase.c_str());
   }
 
-//  fprintf  (stderr, "%*s   rfo='%s' n_d='%s'\n", depth * 2, "",
-//    reference_for_other.c_str(), name_dependency.c_str());
+  //  fprintf  (stderr, "%*s   rfo='%s' n_d='%s'\n", depth * 2, "",
+  //    reference_for_other.c_str(), name_dependency.c_str());
 }
 
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
 LengthType::LengthType(SimpleType * a_simpleType)
 : parent(a_simpleType)
-  , modified(false)
-  , facet_minLength(0)
-  , facet_maxLength(ULLONG_MAX)
-  , lower(0)
-  , upper(ULLONG_MAX)
-{}
-
-void LengthType::applyReference(const LengthType & other)
-{
+, modified(false)
+, facet_minLength(0)
+, facet_maxLength(ULLONG_MAX)
+, lower(0)
+, upper(ULLONG_MAX) {
+}
+
+void LengthType::applyReference(const LengthType & other) {
   if (!modified) modified = other.modified;
   if (other.facet_minLength > facet_minLength) facet_minLength = other.facet_minLength;
   if (other.facet_maxLength < facet_maxLength) facet_maxLength = other.facet_maxLength;
@@ -571,30 +717,27 @@ void LengthType::applyFacets() // only for string types and list types without Q
 {
   if (!modified) return;
 
-  switch (parent->getMode())
-  {
-  case SimpleType::restrictionMode: {
-    const Mstring & base = parent->getBuiltInBase();
-    if ((isStringType(base) || (isSequenceType(base) && base != "QName") || isAnyType(base)) || base.empty() )
+  switch (parent->getMode()) {
+    case SimpleType::restrictionMode:
     {
+      const Mstring & base = parent->getBuiltInBase();
+      if ((isStringType(base) || (isSequenceType(base) && base != "QName") || isAnyType(base)) || base.empty()) {
+        lower = facet_minLength;
+        upper = facet_maxLength;
+      } else {
+        printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
+          Mstring("Length restriction is not supported on type '") + base + Mstring("'."));
+        TTCN3ModuleInventory::getInstance().incrNumWarnings();
+      }
+      break;
+    }
+    case SimpleType::extensionMode:
+    case SimpleType::listMode:
       lower = facet_minLength;
       upper = facet_maxLength;
-    }
-    else
-    {
-      printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
-        Mstring("Length restriction is not supported on type '") +	base + Mstring("'."));
-      TTCN3ModuleInventory::getInstance().incrNumWarnings();
-    }
-    break; }
-  case SimpleType::extensionMode:
-    break;
-  case SimpleType::listMode:
-    lower = facet_minLength;
-    upper = facet_maxLength;
-    break;
-  case SimpleType::noMode:
-    break;
+      break;
+    case SimpleType::noMode:
+      break;
   }
   if (lower > upper) {
     printError(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
@@ -604,25 +747,18 @@ void LengthType::applyFacets() // only for string types and list types without Q
   }
 }
 
-void LengthType::printToFile(FILE * file) const
-{
+void LengthType::printToFile(FILE * file) const {
   if (!modified) return;
   if (parent->getEnumeration().modified) return;
 
-  if (lower == upper)
-  {
+  if (lower == upper) {
     fprintf(file, " length(%llu)", lower);
-  }
-  else
-  {
+  } else {
     fprintf(file, " length(%llu .. ", lower);
 
-    if (upper == ULLONG_MAX)
-    {
+    if (upper == ULLONG_MAX) {
       fputs("infinity", file);
-    }
-    else
-    {
+    } else {
       fprintf(file, "%llu", upper);
     }
 
@@ -634,13 +770,12 @@ void LengthType::printToFile(FILE * file) const
 
 PatternType::PatternType(SimpleType * a_simpleType)
 : parent(a_simpleType)
-  , modified(false)
-  , facet()
-  , value()
-  {}
+, modified(false)
+, facet()
+, value() {
+}
 
-void PatternType::applyReference(const PatternType & other)
-{
+void PatternType::applyReference(const PatternType & other) {
   if (!modified) modified = other.modified;
   if (facet.empty()) facet = other.facet;
 }
@@ -650,156 +785,177 @@ void PatternType::applyFacet() // only for time types and string types without h
   if (!modified) return;
 
   const Mstring & base = parent->getBuiltInBase();
-  if (((isStringType(base) && base != "hexBinary") || isTimeType(base) || isAnyType(base)) || base.empty())
-  {
+  if (((isStringType(base) && base != "hexBinary") || isTimeType(base) || isAnyType(base)) || base.empty()) {
     // XSD pattern to TTCN-3 pattern; ETSI ES 201 873-9 clause 6.1.4
     // FIXME a proper scanner is needed, e.g. from flex
     int charclass = 0;
-    for (size_t i = 0; i != facet.size(); ++i)
-    {
+    for (size_t i = 0; i != facet.size(); ++i) {
       char c = facet[i];
       switch (c) {
-      case '(': case ')': case '/': case '^':
-        value += c;
-        break;
-      case '[':
-        value += c;
-        ++charclass;
-        break;
-      case ']':
-        value += c;
-        --charclass;
-        break;
-      case '.': // any character
-        value += '?';
-        break;
-      case '*': // 0 or more
-        value += '*'; //#(0,)
-        break;
-      case '+':
-        value += '+'; //#(1,)
-        break;
-      case '?':
-        value += "#(0,1)";
-        break;
-      case '"':
-        value += "\"\"";
-      case '{': {
-        Mstring s;
-        int k = 1;
-        while (facet[i + k] != '}') {
-          s += facet[i + k];
-          ++k;
-        }
-        if (s.isFound(',')) {
-          value += "#(";
-          value += s;
-          value += ')';
-        }
-        else {
-          value += '#';
-          value += s;
-        }
-        i = i + k;
-        break; }
-      case '\\': {
-        // Appendix G1.1 of XML Schema Datatypes: Character class escapes;
-        // specifically, http://www.w3.org/TR/xmlschema11-2/#nt-MultiCharEsc
-        char cn = facet[i+1];
-        switch (cn) {
-        case 'c':
-          value += charclass ? "\\w\\d.\\-_:"
-            :                 "[\\w\\d.\\-_:]";
+        case '(':
+          value += charclass ? "\\("
+            : "(";
           break;
-        case 'C':
-          value += charclass ? "^\\w\\d.\\-_:"
-            :                 "[^\\w\\d.\\-_:]";
+        case ')':
+          value += charclass ? "\\)"
+            : ")";
           break;
-        case 'D':
-          value += charclass ? "^\\d"
-            :                 "[^\\d]";
+        case '/':
+          value += '/';
           break;
-        case 'i':
-          value += charclass ? "\\w\\d:"
-            :                 "[\\w\\d:]";
+        case '^':
+          value += charclass ? "\\^"
+            : "^";
           break;
-        case 'I':
-          value += charclass ? "^\\w\\d:"
-            :                 "[^\\w\\d:]";
+        case '[':
+          value += c;
+          ++charclass;
           break;
-        case 's':
-          value += charclass ? "\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r"
-            :                 "[\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r]";
+        case ']':
+          value += c;
+          --charclass;
           break;
-        case 'S':
-          value += charclass ? "^\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r"
-            :                 "[^\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r]";
+        case '.': // any character
+          value += charclass ? '.'
+            : '?';
           break;
-        case 'W':
-          value += charclass ? "^\\w"
-            :                 "[^\\w]";
+        case '*': // 0 or more
+          value += '*'; //#(0,)
           break;
-        case 'p':
-          printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
-            Mstring("Character categories and blocks are not supported."));
-          TTCN3ModuleInventory::getInstance().incrNumWarnings();
-          parent->addComment(
-            Mstring("Pattern is not converted due to using character categories and blocks in patterns is not supported."));
-          value.clear();
-          return;
-
-        case '.':
-          value += '.';
+        case '+':
+          value += '+'; //#(1,)
           break;
-        default:
-          // backslash + another: pass unmodified; this also handles \d and \w
-          value += c;
-          value += cn;
+        case '?':
+          value += charclass ? "?"
+            : "#(0,1)";
           break;
-        }
-        ++i;
-        break; }
-      case '&':
-        if (facet[i + 1] == '#') { // &#....;
-          Mstring s;
-          int k = 2;
-          while (facet[i + k] != ';') {
-            s += facet[i + k];
-            ++k;
+        case '"':
+          value += "\"\"";
+        case '{':
+        {
+          if (charclass == 0) {
+            Mstring s;
+            int k = 1;
+            while (facet[i + k] != '}') {
+              s += facet[i + k];
+              ++k;
+            }
+            int a, b, match;
+            match = sscanf(s.c_str(), "%i,%i", &a, &b);
+            if (match == 1 || match == 2) {
+              value += "#(";
+              value += s;
+              value += ')';
+              i = i + k;
+            } else {
+              value += "\\{";
+            }
+          } else {
+            value += "\\{";
           }
-          long long int d = atoll(s.c_str());
-          if (d < 0 || d > 2147483647) {
-            printError(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
-              Mstring("Invalid unicode character."));
-            TTCN3ModuleInventory::getInstance().incrNumErrors();
+          break;
+        }
+        case '}':
+          value += charclass ? "\\}"
+            : "}";
+          break;
+        case '\\':
+        {
+          // Appendix G1.1 of XML Schema Datatypes: Character class escapes;
+          // specifically, http://www.w3.org/TR/xmlschema11-2/#nt-MultiCharEsc
+          char cn = facet[i + 1];
+          switch (cn) {
+            case 'c':
+              value += charclass ? "\\w\\d.\\-_:"
+                : "[\\w\\d.\\-_:]";
+              break;
+            case 'C':
+              value += charclass ? "^\\w\\d.\\-_:"
+                : "[^\\w\\d.\\-_:]";
+              break;
+            case 'D':
+              value += charclass ? "^\\d"
+                : "[^\\d]";
+              break;
+            case 'i':
+              value += charclass ? "\\w\\d:"
+                : "[\\w\\d:]";
+              break;
+            case 'I':
+              value += charclass ? "^\\w\\d:"
+                : "[^\\w\\d:]";
+              break;
+            case 's':
+              value += charclass ? "\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r"
+                : "[\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r]";
+              break;
+            case 'S':
+              value += charclass ? "^\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r"
+                : "[^\\q{0,0,0,20}\\q{0,0,0,10}\\t\\r]";
+              break;
+            case 'W':
+              value += charclass ? "^\\w"
+                : "[^\\w]";
+              break;
+            case 'p':
+              printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
+                Mstring("Character categories and blocks are not supported."));
+              TTCN3ModuleInventory::getInstance().incrNumWarnings();
+              parent->addComment(
+                Mstring("Pattern is not converted due to using character categories and blocks in patterns is not supported."));
+              value.clear();
+              return;
+
+            case '.':
+              value += '.';
+              break;
+            default:
+              // backslash + another: pass unmodified; this also handles \d and \w
+              value += c;
+              value += cn;
+              break;
           }
-          unsigned char group = (d >> 24) & 0xFF;
-          unsigned char plane = (d >> 16) & 0xFF;
-          unsigned char row = (d >> 8) & 0xFF;
-          unsigned char cell = d & 0xFF;
-
-          expstring_t res = mprintf("\\q{%d, %d, %d, %d}", group, plane, row, cell);
-          value += res;
-          Free(res);
-          i = i + k;
+          ++i;
+          break;
         }
-        // else fall through
-      default: //just_copy:
-        value += c;
-        break;
+        case '&':
+          if (facet[i + 1] == '#') { // &#....;
+            Mstring s;
+            int k = 2;
+            while (facet[i + k] != ';') {
+              s += facet[i + k];
+              ++k;
+            }
+            long long int d = atoll(s.c_str());
+            if (d < 0 || d > 2147483647) {
+              printError(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
+                Mstring("Invalid unicode character."));
+              TTCN3ModuleInventory::getInstance().incrNumErrors();
+            }
+            unsigned char group = (d >> 24) & 0xFF;
+            unsigned char plane = (d >> 16) & 0xFF;
+            unsigned char row = (d >> 8) & 0xFF;
+            unsigned char cell = d & 0xFF;
+
+            expstring_t res = mprintf("\\q{%d, %d, %d, %d}", group, plane, row, cell);
+            value += res;
+            Free(res);
+            i = i + k;
+          }
+          // else fall through
+        default: //just_copy:
+          value += c;
+          break;
       } // switch(c)
     } // next i
-  }
-  else
-  {
+  } else {
     printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
       Mstring("Pattern restriction is not supported on type '") + base + Mstring("'."));
     TTCN3ModuleInventory::getInstance().incrNumWarnings();
   }
 }
 
-void PatternType::printToFile(FILE * file) const
-{
+void PatternType::printToFile(FILE * file) const {
   if (!modified || value.empty()) return;
   if (parent->getEnumeration().modified) return;
 
@@ -817,13 +973,12 @@ EnumerationType::EnumerationType(SimpleType * a_simpleType)
 , items_float()
 , items_time()
 , items_misc()
-{}
+, variants() {
+}
 
-void EnumerationType::applyReference(const EnumerationType & other)
-{
+void EnumerationType::applyReference(const EnumerationType & other) {
   if (!modified) modified = other.modified;
-  for (List<Mstring>::iterator facet = other.facets.begin(); facet; facet = facet->Next)
-  {
+  for (List<Mstring>::iterator facet = other.facets.begin(); facet; facet = facet->Next) {
     facets.push_back(facet->Data);
   }
 }
@@ -832,16 +987,16 @@ void EnumerationType::applyFacets() // string types, integer types, float types,
 {
   if (!modified) return;
 
+  facets.remove_dups();
+
   const Mstring & base = parent->getBuiltInBase();
 
   if (isStringType(base)) // here length restriction is applicable
   {
     List<Mstring> text_variants;
-    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next)
-    {
+    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next) {
       const LengthType & length = parent->getLength();
-      if (length.lower <= facet->Data.size() && facet->Data.size() <= length.upper)
-      {
+      if (length.lower <= facet->Data.size() && facet->Data.size() <= length.upper) {
         Mstring res, var;
         XSDName2TTCN3Name(facet->Data, items_string, enum_id_name, res, var);
         text_variants.push_back(var);
@@ -849,20 +1004,16 @@ void EnumerationType::applyFacets() // string types, integer types, float types,
     }
     text_variants.sort();
     for (List<Mstring>::iterator var = text_variants.end(); var; var = var->Prev) {
-      parent->addVariant(V_onlyValue, var->Data);
+      variants.push_back(var->Data);
     }
-  }
-  else if (isIntegerType(base)) // here value restriction is applicable
+  } else if (isIntegerType(base)) // here value restriction is applicable
   {
-    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next)
-    {
+    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next) {
       int int_value = atoi(facet->Data.c_str());
       const ValueType & value = parent->getValue();
-      if (value.lower <= int_value && int_value <= value.upper)
-      {
+      if (value.lower <= int_value && int_value <= value.upper) {
         bool found = false;
-        for (List<int>::iterator itemInt = items_int.begin(); itemInt; itemInt = itemInt->Next)
-        {
+        for (List<int>::iterator itemInt = items_int.begin(); itemInt; itemInt = itemInt->Next) {
           if (int_value == itemInt->Data) {
             found = true;
             break;
@@ -870,23 +1021,19 @@ void EnumerationType::applyFacets() // string types, integer types, float types,
         }
         if (!found) items_int.push_back(int_value);
 
-        if (parent->getVariant().empty() || parent->getVariant().back() != "\"useNumber\"") {
-          parent->addVariant(V_useNumber);
+        if (variants.empty() || variants.back() != "\"useNumber\"") {
+          variants.push_back(Mstring("\"useNumber\""));
         }
       }
     }
-  }
-  else if (isFloatType(base)) // here value restriction is applicable
+  } else if (isFloatType(base)) // here value restriction is applicable
   {
-    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next)
-    {
+    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next) {
       double float_value = atof(facet->Data.c_str());
       const ValueType & value = parent->getValue();
-      if (value.lower <= float_value && float_value <= value.upper)
-      {
+      if (value.lower <= float_value && float_value <= value.upper) {
         bool found = false;
-        for (List<double>::iterator itemFloat = items_float.begin(); itemFloat; itemFloat = itemFloat->Next)
-        {
+        for (List<double>::iterator itemFloat = items_float.begin(); itemFloat; itemFloat = itemFloat->Next) {
           if (float_value == itemFloat->Data) {
             found = true;
             break;
@@ -894,31 +1041,23 @@ void EnumerationType::applyFacets() // string types, integer types, float types,
         }
         if (!found) {
           items_float.push_back(float_value);
-
         }
       }
     }
-  }
-  else if (isTimeType(base))
-  {
+  } else if (isTimeType(base)) {
     List<Mstring> text_variants;
-    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next)
-    {
+    for (List<Mstring>::iterator facet = facets.begin(); facet; facet = facet->Next) {
       Mstring res, var;
       XSDName2TTCN3Name(facet->Data, items_time, enum_id_name, res, var);
       text_variants.push_back(var);
     }
     text_variants.sort();
     for (List<Mstring>::iterator var = text_variants.end(); var; var = var->Prev) {
-      parent->addVariant(V_onlyValue, var->Data);
+      variants.push_back(var->Data);
     }
-  }
-  else if (isAnyType(base))
-  {}
-  else if (base.empty())
-  {}
-  else
-  {
+  } else if (isAnyType(base)) {
+  } else if (base.empty()) {
+  } else {
     printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
       Mstring("Enumeration restriction is not supported on type '") + base + Mstring("'."));
     TTCN3ModuleInventory::getInstance().incrNumWarnings();
@@ -926,63 +1065,48 @@ void EnumerationType::applyFacets() // string types, integer types, float types,
   }
 }
 
-void EnumerationType::sortFacets()
-{
+void EnumerationType::sortFacets() {
   items_string.sort();
   items_int.sort();
   items_float.sort();
   items_time.sort();
 }
 
-void EnumerationType::printToFile(FILE * file, unsigned int indent_level) const
-{
+void EnumerationType::printToFile(FILE * file, unsigned int indent_level) const {
   if (!modified) return;
 
   const Mstring & base = parent->getBuiltInBase();
-  if (isStringType(base))
-  {
-    for (QualifiedNames::iterator itemString = items_string.begin(); itemString; itemString = itemString->Next)
-    {
+  if (isStringType(base)) {
+    for (QualifiedNames::iterator itemString = items_string.begin(); itemString; itemString = itemString->Next) {
       if (itemString != items_string.begin()) fputs(",\n", file);
       for (unsigned int l = 0; l != indent_level; ++l) fputs("\t", file);
       fprintf(file, "\t%s", itemString->Data.name.c_str());
     }
-  }
-  else if (isIntegerType(base))
-  {
-    for (List<int>::iterator itemInt = items_int.begin(); itemInt; itemInt = itemInt->Next)
-    {
+  } else if (isIntegerType(base)) {
+    for (List<int>::iterator itemInt = items_int.begin(); itemInt; itemInt = itemInt->Next) {
       if (itemInt != items_int.begin()) fputs(",\n", file);
       for (unsigned int l = 0; l != indent_level; ++l) fputs("\t", file);
       if (itemInt->Data < 0) {
         fprintf(file, "\tint_%d(%d)", abs(itemInt->Data), itemInt->Data);
-      }
-      else {
+      } else {
         fprintf(file, "\tint%d(%d)", itemInt->Data, itemInt->Data);
       }
     }
-  }
-  else if (isFloatType(base))
-  {
-    for (List<double>::iterator itemFloat = items_float.begin(); itemFloat; itemFloat = itemFloat->Next)
-    {
+  } else if (isFloatType(base)) {
+    for (List<double>::iterator itemFloat = items_float.begin(); itemFloat; itemFloat = itemFloat->Next) {
       if (itemFloat != items_float.begin()) fputs(", ", file);
 
       double intpart = 0;
       double fracpart = 0;
       fracpart = modf(itemFloat->Data, &intpart);
       if (fracpart == 0) {
-        fprintf(file, "%lld.0", (long long int)(itemFloat->Data));
-      }
-      else {
+        fprintf(file, "%lld.0", (long long int) (itemFloat->Data));
+      } else {
         fprintf(file, "%g", itemFloat->Data);
       }
     }
-  }
-  else if (isTimeType(base))
-  {
-    for (QualifiedNames::iterator itemTime = items_time.begin(); itemTime; itemTime = itemTime->Next)
-    {
+  } else if (isTimeType(base)) {
+    for (QualifiedNames::iterator itemTime = items_time.begin(); itemTime; itemTime = itemTime->Next) {
       if (itemTime != items_time.begin()) fputs(",\n", file);
       for (unsigned int l = 0; l != indent_level; ++l) fputs("\t", file);
       fprintf(file, "\t%s", itemTime->Data.name.c_str());
@@ -990,17 +1114,28 @@ void EnumerationType::printToFile(FILE * file, unsigned int indent_level) const
   }
 }
 
+void EnumerationType::insertVariants(){
+  if(!modified) return;
+
+  Mstring pre_connector = empty_string;
+  if(parent->getMinOccurs() == 0 && parent->getMaxOccurs() == ULLONG_MAX){
+    pre_connector = "([-]) ";
+  }
+  for(List<Mstring>::iterator var = variants.begin(); var; var = var->Next){
+    parent->addVariant(V_onlyValue, pre_connector + var->Data);
+  }
+}
+
 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * */
 
 WhitespaceType::WhitespaceType(SimpleType * a_simpleType)
 : p_parent(a_simpleType)
 , modified(false)
 , facet()
-, value()
-{}
+, value() {
+}
 
-void WhitespaceType::applyReference(const WhitespaceType & other)
-{
+void WhitespaceType::applyReference(const WhitespaceType & other) {
   if (!modified) modified = other.modified;
   if (facet.empty()) facet = other.facet;
 }
@@ -1011,12 +1146,9 @@ void WhitespaceType::applyFacet() // only for string types: string, normalizedSt
 
   const Mstring & base = p_parent->getBuiltInBase();
   if (base == "string" || base == "normalizedString" || base == "token" || base == "language" ||
-    base == "Name" || base == "NCName" || isAnyType(base) || base.empty())
-  {
+    base == "Name" || base == "NCName" || isAnyType(base) || base.empty()) {
     p_parent->addVariant(V_whiteSpace, facet);
-  }
-  else
-  {
+  } else {
     printWarning(p_parent->getModule()->getSchemaname(), p_parent->getName().convertedValue,
       Mstring("Facet 'whiteSpace' is not applicable for type '") + base + Mstring("'."));
     TTCN3ModuleInventory::getInstance().incrNumWarnings();
@@ -1030,183 +1162,196 @@ ValueType::ValueType(SimpleType * a_simpleType)
 , facet_maxInclusive(DBL_MAX)
 , facet_minExclusive(-DBL_MAX)
 , facet_maxExclusive(DBL_MAX)
-, facet_totalDigits(0)
+, facet_totalDigits(-1)
 , lower(-DBL_MAX)
 , upper(DBL_MAX)
 , lowerExclusive(false)
 , upperExclusive(false)
+, not_a_number(false)
 , fixed_value()
 , default_value()
-, items_with_value()
-{}
+, items_with_value() {
+}
 
-void ValueType::applyReference(const ValueType & other)
-{
-  if (!modified) modified = other.modified;
+void ValueType::applyReference(const ValueType & other) {
+  if (!modified) {
+    modified = other.modified;
+  }
+  if (not_a_number) {
+    return;
+  }
+  if (other.not_a_number) not_a_number = true;
   if (other.facet_minInclusive > facet_minInclusive) facet_minInclusive = other.facet_minInclusive;
   if (other.facet_maxInclusive < facet_maxInclusive) facet_maxInclusive = other.facet_maxInclusive;
   if (other.facet_minExclusive > facet_minExclusive) facet_minExclusive = other.facet_minExclusive;
   if (other.facet_maxExclusive < facet_maxExclusive) facet_maxExclusive = other.facet_maxExclusive;
-  if (other.facet_totalDigits < facet_totalDigits) facet_totalDigits = other.facet_totalDigits;
+  //-1 in case when it is not modified
+  if (other.facet_totalDigits < facet_totalDigits || facet_totalDigits == -1) facet_totalDigits = other.facet_totalDigits;
+  if (!other.default_value.empty()) {
+    default_value = other.default_value;
+    parent->addVariant(V_defaultForEmpty, default_value);
+  }
+  if (!other.fixed_value.empty()) {
+    fixed_value = other.fixed_value;
+    parent->addVariant(V_defaultForEmpty, fixed_value);
+  }
 }
 
 void ValueType::applyFacets() // only for integer and float types
 {
-  if (!modified) return;
+  if (!modified) {
+    return;
+  }
+
+  if (not_a_number) {
+    return;
+  }
 
   const Mstring & base = parent->getBuiltInBase();
   /*
    * Setting of default value range of built-in types
    */
-  if (base == "positiveInteger")
-  {
+  if (base == "positiveInteger") {
     lower = 1;
-  }
-  else if (base == "nonPositiveInteger")
-  {
+  } else if (base == "nonPositiveInteger") {
     upper = 0;
-  }
-  else if (base == "negativeInteger")
-  {
+  } else if (base == "negativeInteger") {
     upper = -1;
-  }
-  else if (base == "nonNegativeInteger")
-  {
+  } else if (base == "nonNegativeInteger") {
     lower = 0;
-  }
-  else if (base == "unsignedLong")
-  {
+  } else if (base == "unsignedLong") {
     lower = 0;
     upper = ULLONG_MAX;
-  }
-  else if (base == "int")
-  {
+  } else if (base == "int") {
     lower = INT_MIN;
     upper = INT_MAX;
-  }
-  else if (base == "unsignedInt")
-  {
+  } else if (base == "unsignedInt") {
     lower = 0;
     upper = UINT_MAX;
-  }
-  else if (base == "short")
-  {
+  } else if (base == "short") {
     lower = SHRT_MIN;
     upper = SHRT_MAX;
-  }
-  else if (base == "unsignedShort")
-  {
+  } else if (base == "unsignedShort") {
     lower = 0;
     upper = USHRT_MAX;
-  }
-  else if (base == "byte")
-  {
+  } else if (base == "byte") {
     lower = CHAR_MIN;
     upper = CHAR_MAX;
-  }
-  else if (base == "unsignedByte")
-  {
+  } else if (base == "unsignedByte") {
     lower = 0;
     upper = UCHAR_MAX;
   }
 
-  if (isIntegerType(base))
-  {
+  if (isIntegerType(base)) {
     if (facet_minInclusive != -DBL_MAX && facet_minInclusive > lower) lower = facet_minInclusive;
     if (facet_maxInclusive != DBL_MAX && upper > facet_maxInclusive) upper = facet_maxInclusive;
     if (facet_minExclusive != -DBL_MAX && lower < facet_minExclusive) lower = facet_minExclusive;
     if (facet_maxExclusive != DBL_MAX && upper > facet_maxExclusive) upper = facet_maxExclusive;
-  }
-  else if (isFloatType(base))
-  {
+  } else if (isFloatType(base)) {
     if (facet_minInclusive != -DBL_MAX && lower < facet_minInclusive) lower = facet_minInclusive;
     if (facet_maxInclusive != DBL_MAX && upper > facet_maxInclusive) upper = facet_maxInclusive;
     if (facet_minExclusive != -DBL_MAX && lower < facet_minExclusive) lower = facet_minExclusive;
     if (facet_maxExclusive != DBL_MAX && upper > facet_maxExclusive) upper = facet_maxExclusive;
-  }
-  else if (isAnyType(base))
-  {}
-  else if (base.empty())
-  {}
-  else
-  {
+  } else if (isAnyType(base) || isTimeType(base) || isBooleanType(base)) {
+  } else if (isStringType(base) && (
+    base.getValueWithoutPrefix(':') != "hexBinary" && base.getValueWithoutPrefix(':') != "base64Binary")) {
+  } else if (base.empty()) {
+  } else {
     printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
       Mstring("Value restriction is not supported on type '") + base + Mstring("'."));
     TTCN3ModuleInventory::getInstance().incrNumWarnings();
   }
 
   // totalDigits facet is only for integer types and decimal
-  if (facet_totalDigits != 0) // if this facet is used
+  if (facet_totalDigits > 0) // if this facet is used
   {
     double r = pow(10.0, facet_totalDigits);
 
-    if (base == "integer")
-    {
-      lower = (int) -(r-1);
-      upper = (int)  (r-1);
-    }
-    else if (base == "positiveInteger")
-    {
+    if (base == "integer") {
+      lower = (int) -(r - 1);
+      upper = (int) (r - 1);
+    } else if (base == "positiveInteger") {
       lower = 1;
-      upper = (int)  (r-1);
-    }
-    else if (base == "nonPositiveInteger")
-    {
-      lower = (int) -(r-1);
+      upper = (int) (r - 1);
+    } else if (base == "nonPositiveInteger") {
+      lower = (int) -(r - 1);
       upper = 0;
-    }
-    else if (base == "negativeInteger")
-    {
-      lower = (int) -(r-1);
+    } else if (base == "negativeInteger") {
+      lower = (int) -(r - 1);
       upper = -1;
-    }
-    else if (base == "nonNegativeInteger")
-    {
+    } else if (base == "nonNegativeInteger") {
       lower = 0;
-      upper = (int)  (r-1);
-    }
-    else if (base == "long" ||
+      upper = (int) (r - 1);
+    } else if (base == "long" ||
       base == "unsignedLong" ||
       base == "int" ||
       base == "unsignedInt" ||
       base == "short" ||
       base == "unsignedShort" ||
       base == "byte" ||
-      base == "unsignedByte")
-    {
-      lower = (int) -(r-1);
-      upper = (int)  (r-1);
-    }
-    else if (base == "decimal")
-    {
-      lower = (int) -(r-1);
-      upper = (int) (r-1);
-    }
-    else {
+      base == "unsignedByte") {
+      lower = (int) -(r - 1);
+      upper = (int) (r - 1);
+    } else if (base == "decimal") {
+      lower = (int) -(r - 1);
+      upper = (int) (r - 1);
+    } else {
       printWarning(parent->getModule()->getSchemaname(), parent->getName().convertedValue,
         Mstring("Facet 'totalDigits' is not applicable for type '") + base + Mstring("'."));
       TTCN3ModuleInventory::getInstance().incrNumWarnings();
     }
   }
+  items_with_value.sort();
 }
 
-void ValueType::printToFile(FILE * file) const
-{
+void ValueType::printToFile(FILE * file) const {
   if (!modified) return;
   if (parent->getEnumeration().modified) return;
 
-  if (!fixed_value.empty())
-  {
-    fprintf(file, " (\"%s\")", fixed_value.c_str());
+  if (not_a_number) {
+    fprintf(file, " ( not_a_number )");
     return;
   }
-  if (!items_with_value.empty())
-  {
-    fputs(" (", file);
-    for (List<Mstring>::iterator itemWithValue = items_with_value.begin(); itemWithValue; itemWithValue = itemWithValue->Next)
-    {
-      if (itemWithValue != items_with_value.begin()) fputs(", ", file);
-      fprintf(file, "%s", itemWithValue->Data.c_str());
+  if (!fixed_value.empty()) {
+    //Base64binary and hexbyte does not supported
+    Mstring type;
+    if(isBuiltInType(parent->getType().originalValueWoPrefix)){
+      type = parent->getType().originalValueWoPrefix; 
+    }else {
+      type = getPrefixByNameSpace(parent, parent->getReference().get_uri()) + Mstring(":") + parent->getReference().get_val();
+    }
+    if(!isBuiltInType(type)){
+      type = findBuiltInType(parent, type);
+    }
+    if (isStringType(type) || isTimeType(type) || isQNameType(type) || isAnyType(type)) {
+      const Mstring& name = type.getValueWithoutPrefix(':');
+      if (name != "hexBinary" && name != "base64Binary") {
+        fprintf(file, " (\"%s\")", fixed_value.c_str());
+      }
+    } else if (isBooleanType(type)) {
+      Mstring val;
+      if (fixed_value == "1") {
+        val = "true";
+      } else if (fixed_value == "0") {
+        val = "false";
+      } else {
+        val = fixed_value;
+      }
+      fprintf(file, " (%s)", val.c_str());
+    } else {
+      fprintf(file, " (%s)", fixed_value.c_str());
+    }
+    return;
+  }
+  if (!items_with_value.empty()) {
+    fputs(" (\n", file);
+    for (List<Mstring>::iterator itemWithValue = items_with_value.begin(); itemWithValue; itemWithValue = itemWithValue->Next) {
+      fprintf(file, "\t%s", itemWithValue->Data.c_str());
+      if (itemWithValue != items_with_value.end()) {
+        fputs(",\n", file);
+      } else {
+        fputs("\n", file);
+      }
     }
     fputc(')', file);
     return;
@@ -1216,23 +1361,17 @@ void ValueType::printToFile(FILE * file) const
 
   fputs(" (", file);
 
-  if (isIntegerType(parent->getBuiltInBase()))
-  {
+  if (isIntegerType(parent->getBuiltInBase())) {
     if (lowerExclusive) {
       fputc('!', file);
     }
 
-    if (lower == -DBL_MAX)
-    {
+    if (lower == -DBL_MAX) {
       fputs("-infinity", file);
-    }
-    else if (lower < 0)
-    {
+    } else if (lower < 0) {
       long double temp_lower = -lower;
       fprintf(file, "-%.0Lf", temp_lower);
-    }
-    else
-    {
+    } else {
       fprintf(file, "%.0Lf", lower);
     }
 
@@ -1241,39 +1380,28 @@ void ValueType::printToFile(FILE * file) const
       fputc('!', file);
     }
 
-    if (upper == DBL_MAX)
-    {
+    if (upper == DBL_MAX) {
       fputs("infinity", file);
-    }
-    else if (upper < 0)
-    {
+    } else if (upper < 0) {
       long double temp_upper = -upper;
       fprintf(file, "-%.0Lf", temp_upper);
-    }
-    else
-    {
+    } else {
       fprintf(file, "%.0Lf", upper);
     }
-  }
-  else if (isFloatType(parent->getBuiltInBase()))
-  {
+  } else if (isFloatType(parent->getBuiltInBase())) {
     if (lowerExclusive) {
       fputc('!', file);
     }
 
-    if (lower == -DBL_MAX)
-    {
+    if (lower == -DBL_MAX) {
       fputs("-infinity", file);
-    }
-    else
-    {
+    } else {
       double intpart = 0;
       double fracpart = 0;
       fracpart = modf(lower, &intpart);
       if (fracpart == 0) {
         fprintf(file, "%.1Lf", lower);
-      }
-      else {
+      } else {
         fprintf(file, "%Lg", lower);
       }
     }
@@ -1283,19 +1411,15 @@ void ValueType::printToFile(FILE * file) const
       fputc('!', file);
     }
 
-    if (upper == DBL_MAX)
-    {
+    if (upper == DBL_MAX) {
       fputs("infinity", file);
-    }
-    else
-    {
+    } else {
       double intpart = 0;
       double fracpart = 0;
       fracpart = modf(upper, &intpart);
       if (fracpart == 0) {
         fprintf(file, "%.1Lf", upper);
-      }
-      else {
+      } else {
         fprintf(file, "%Lg", upper);
       }
     }
diff --git a/xsdconvert/SimpleType.hh b/xsdconvert/SimpleType.hh
index 0c2041411..c4ea1069f 100644
--- a/xsdconvert/SimpleType.hh
+++ b/xsdconvert/SimpleType.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -12,9 +12,8 @@
 
 class SimpleType;
 
-class LengthType
-{
-  LengthType & operator = (const LengthType &); // not implemented
+class LengthType {
+  LengthType & operator=(const LengthType &); // not implemented
   // it's a bit strange that it has copy constructor but no assignment
 public:
   SimpleType * parent; // no responsibility for this member
@@ -24,17 +23,16 @@ public:
   unsigned long long int lower;
   unsigned long long int upper;
 
-  LengthType (SimpleType * p_parent);
+  LengthType(SimpleType * p_parent);
   // Default copy constructor and destructor are used
 
-  void applyReference (const LengthType & other);
-  void applyFacets ();
-  void printToFile (FILE * file) const;
+  void applyReference(const LengthType & other);
+  void applyFacets();
+  void printToFile(FILE * file) const;
 };
 
-class PatternType
-{
-  PatternType & operator = (const PatternType &); // not implemented
+class PatternType {
+  PatternType & operator=(const PatternType &); // not implemented
   // it's a bit strange that it has copy constructor but no assignment
 public:
   SimpleType * parent; // no responsibility for this member
@@ -42,17 +40,16 @@ public:
   Mstring facet;
   Mstring value;
 
-  PatternType (SimpleType * p_parent);
+  PatternType(SimpleType * p_parent);
   // Default copy constructor and destructor are used
 
-  void applyReference (const PatternType & other);
-  void applyFacet ();
-  void printToFile (FILE * file) const;
+  void applyReference(const PatternType & other);
+  void applyFacet();
+  void printToFile(FILE * file) const;
 };
 
-class EnumerationType
-{
-  EnumerationType & operator = (const EnumerationType &); // not implemented
+class EnumerationType {
+  EnumerationType & operator=(const EnumerationType &); // not implemented
   // it's a bit strange that it has copy constructor but no assignment
 public:
   SimpleType * parent; // no responsibility for this member
@@ -63,19 +60,20 @@ public:
   List<double> items_float;
   List<QualifiedName> items_time;
   List<Mstring> items_misc;
+  List<Mstring> variants;
 
-  EnumerationType (SimpleType * p_parent);
+  EnumerationType(SimpleType * p_parent);
   // Default copy constructor and destructor are used
 
-  void applyReference (const EnumerationType & other);
-  void applyFacets ();
-  void sortFacets ();
-  void printToFile (FILE * file, unsigned int indent_level = 0) const;
+  void applyReference(const EnumerationType & other);
+  void applyFacets();
+  void sortFacets();
+  void printToFile(FILE * file, unsigned int indent_level = 0) const;
+  void insertVariants();
 };
 
-class WhitespaceType
-{
-  WhitespaceType & operator = (const WhitespaceType &); // not implemented
+class WhitespaceType {
+  WhitespaceType & operator=(const WhitespaceType &); // not implemented
   // it's a bit strange that it has copy constructor but no assignment
 public:
   SimpleType * p_parent; // no responsibility for this member
@@ -83,17 +81,16 @@ public:
   Mstring facet;
   Mstring value;
 
-  WhitespaceType (SimpleType * p_parent);
+  WhitespaceType(SimpleType * p_parent);
   // Default copy constructor and destructor are used
 
-  void applyReference (const WhitespaceType & other);
-  void applyFacet ();
-  void printToFile (FILE * file) const;
+  void applyReference(const WhitespaceType & other);
+  void applyFacet();
+  void printToFile(FILE * file) const;
 };
 
-class ValueType
-{
-  ValueType & operator = (const ValueType &); // not implemented
+class ValueType {
+  ValueType & operator=(const ValueType &); // not implemented
   // it's a bit strange that it has copy constructor but no assignment
 public:
   SimpleType * parent; // no responsibility for this member
@@ -107,55 +104,72 @@ public:
   long double upper;
   bool lowerExclusive;
   bool upperExclusive;
+  bool not_a_number;
   Mstring fixed_value;
   Mstring default_value;
   List<Mstring> items_with_value;
 
-  ValueType (SimpleType * p_parent);
+  ValueType(SimpleType * p_parent);
   // Default copy constructor and destructor are used
 
-  void applyReference (const ValueType & other);
-  void applyFacets ();
-  void printToFile (FILE * file) const;
+  void applyReference(const ValueType & other);
+  void applyFacets();
+  void printToFile(FILE * file) const;
 };
 
 class ComplexType;
 
 class ReferenceData {
 public: // interface
+
   ReferenceData()
   : nst(0)
   , uri()
   , value()
   , resolved(false)
-  , ref(NULL)
-  {}
+  , ref(NULL) {
+  }
 
-  void load(const Mstring& u, const Mstring& v, NamespaceType *n)
-  {
+  void load(const Mstring& u, const Mstring& v, NamespaceType *n) {
     uri = u;
     value = v;
     nst = n;
   }
 
-  const Mstring& get_uri() const { return uri; }
-  const Mstring& get_val() const { return value; }
-  const RootType *get_ref() const { return ref; }
+  const Mstring& get_uri() const {
+    return uri;
+  }
+
+  const Mstring& get_val() const {
+    return value;
+  }
+
+  RootType *get_ref() const {
+    return ref;
+  }
 
   bool empty() const {
     return uri.empty() && value.empty();
   }
 
-  bool is_resolved() const { return resolved; }
-  void set_resolved(RootType const *st /*= NULL*/) { resolved = true; ref = st; }
+  bool is_resolved() const {
+    return resolved;
+  }
 
-  Mstring repr() const { return uri + Mstring("|") + value; }
+  void set_resolved(RootType *st /*= NULL*/) {
+    resolved = true;
+    ref = st;
+  }
+
+  Mstring repr() const {
+    return uri + Mstring("|") + value;
+  }
 private: // implementation
-  NamespaceType    *nst;
-  Mstring           uri;
-  Mstring           value;
-  bool              resolved;
-  const RootType   *ref; // not owned
+  NamespaceType *nst;
+  Mstring uri;
+  Mstring value;
+  bool resolved;
+  RootType *ref; // not owned
 };
 
 /**
@@ -170,11 +184,10 @@ private: // implementation
  * 	* TTCN-3 type
  *
  */
-class SimpleType : public RootType
-{
+class SimpleType : public RootType {
 public:
-  enum Mode
-  {
+
+  enum Mode {
     noMode,
     restrictionMode,
     extensionMode,
@@ -200,50 +213,144 @@ protected:
   /// true if name_dependency would be set (not empty)
   bool in_name_only;
 
-  void referenceForST (SimpleType  const * const found_ST);
-  void referenceForCT (ComplexType const * const found_CT);
+  // True if element or attribute used with ref attribute
+  bool fromRef;
+  // XSD Type of the type
+  TagName xsdtype;
+  bool isOptional;
+  Mstring substitionGroup;
+  ComplexType * subsGroup;
+  BlockValue block;
+
 
-  void nameConversion_names ();
-  void nameConversion_types (const List<NamespaceType> & ns);
+  void addToSubstitutions();
+  void nameConversion_names();
+  virtual void nameConversion_types(const List<NamespaceType> & ns);
 
-  SimpleType & operator = (const SimpleType &); // not implemented
+  SimpleType & operator=(const SimpleType &); // not implemented
   // it's a bit strange that it has copy constructor but no assignment
 public:
-  SimpleType (XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
+  SimpleType(XMLParser * a_parser, TTCN3Module * a_module, ConstructType a_construct);
   SimpleType(const SimpleType& other);
   // Default destructor is used
 
+  // Parent of the element (both complexType, and AttributeType) has this
+  // Not responsible for this member
+  ComplexType * parent;
+
   /** Virtual methods
    *  inherited from RootType
    */
-  void loadWithValues ();
-  void printToFile (FILE * file);
-  void referenceResolving ();
-  void nameConversion (NameConversionMode mode, const List<NamespaceType> & ns);
-  void finalModification ();
-  bool hasUnresolvedReference ();
-  void dump (unsigned int depth) const;
-
-  void applyDefaultAttribute (const Mstring& default_value);
-  void applyFixedAttribute (const Mstring& fixed_value);
-  void applyNillableAttribute (bool nillable_value);
-
-  const Mstring & getBuiltInBase () const {return builtInBase;}
-  const LengthType & getLength () const {return length;}
-  const ValueType & getValue () const {return value;}
-  FormValue getElementFormAs () const {return element_form_as;}
-  FormValue getAttributeFormAs () const {return attribute_form_as;}
-  Mode getMode () const {return mode;}
-  const ReferenceData& getReference() const { return outside_reference; }
-
-  EnumerationType & getEnumeration () {return enumeration;}
-
-  void setBuiltInBase (const Mstring& base) {builtInBase = base;}
-  void setMode (Mode m) {mode = m;}
-  void setElementFormAs (FormValue f) {element_form_as = f;}
-  void setAttributeFormAs (FormValue f) {attribute_form_as = f;}
-
-  void setReference (const Mstring& ref, bool only_name_dependency = false);
+  void loadWithValues();
+  void printToFile(FILE * file);
+  void referenceResolving();
+  void nameConversion(const NameConversionMode mode, const List<NamespaceType> & ns);
+  void finalModification();
+  virtual bool hasUnresolvedReference();
+  void dump(const unsigned int depth) const;
+
+  void applyDefaultAttribute(const Mstring& default_value);
+  void applyFixedAttribute(const Mstring& fixed_value);
+  void applyNillableAttribute(const bool nillable_value);
+  void applyAbstractAttribute(const bool abstract_value);
+  void applySubstitionGroupAttribute(const Mstring& substition_group);
+  void applyBlockAttribute(const BlockValue block_);
+  void applyRefAttribute(const Mstring& ref_value);
+
+  const Mstring & getBuiltInBase() const {
+    return builtInBase;
+  }
+
+  const LengthType & getLength() const {
+    return length;
+  }
+
+  const ValueType & getValue() const {
+    return value;
+  }
+
+  const PatternType & getPattern() const {
+    return pattern;
+  }
+
+  const WhitespaceType & getWhitespace() const {
+    return whitespace;
+  }
+
+  const EnumerationType & getEnumeration() const {
+    return enumeration;
+  }
+
+  FormValue getElementFormAs() const {
+    return element_form_as;
+  }
+
+  FormValue getAttributeFormAs() const {
+    return attribute_form_as;
+  }
+
+  Mode getMode() const {
+    return mode;
+  }
+
+  bool isFromRef() const {
+    return fromRef;
+  }
+
+  const ReferenceData& getReference() const {
+    return outside_reference;
+  }
+
+  EnumerationType & getEnumeration() {
+    return enumeration;
+  }
+
+  void setBuiltInBase(const Mstring& base) {
+    builtInBase = base;
+  }
+
+  void setMode(Mode m) {
+    mode = m;
+  }
+
+  void setElementFormAs(FormValue f) {
+    element_form_as = f;
+  }
+
+  void setAttributeFormAs(FormValue f) {
+    attribute_form_as = f;
+  }
+
+  void setReference(const Mstring& ref, bool only_name_dependency = false);
+
+  void referenceForST(SimpleType * found_ST);
+  void referenceForCT(ComplexType * found_CT);
+
+  void setXsdtype(TagName xsdtype_) {
+    xsdtype = xsdtype_;
+  }
+
+  TagName getXsdtype() const {
+    return xsdtype;
+  }
+
+  ComplexType * getSubstitution() const {
+      return subsGroup;
+  }
+
+  BlockValue getBlock() const {
+      return block;
+  }
+  
+  void addToNameDepList(SimpleType * t) {
+      if(subsGroup != NULL && this != (SimpleType*)subsGroup){
+          SimpleType * substitution = (SimpleType*)subsGroup;
+          substitution->addToNameDepList(t);
+      }else {
+          nameDepList.push_back(t);
+      }
+  }
+
 };
 
 #endif /* SIMPLETYPE_H_ */
diff --git a/xsdconvert/TTCN3Module.cc b/xsdconvert/TTCN3Module.cc
index 2b6ac7158..a0c276389 100644
--- a/xsdconvert/TTCN3Module.cc
+++ b/xsdconvert/TTCN3Module.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -41,21 +41,21 @@ TTCN3Module::TTCN3Module(const char * a_filename, XMLParser * a_parser)
 , declaredNamespaces()
 , elementFormDefault(notset)
 , attributeFormDefault(notset)
+, blockDefault(not_set)
 //, importedModules()
 , variant()
 , moduleNotIntoFile(false)
-, moduleNotIntoNameConversion(false)
-{
+, moduleNotIntoNameConversion(false) {
 #if defined(WIN32) && !defined(MINGW)
   // Transform a Windows style path: "C:\cygwin\tmp\a.xsd"
   // into a POSIX style path: "/home/a/xsd", so getValueWithoutPrefix('/')
   // can chop off the directory path.
 #if CYGWIN_VERSION_DLL_MAJOR >= 1007
   char *posix = NULL;
-  ssize_t needed = cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_RELATIVE, a_filename, NULL, 0);
+  ssize_t needed = cygwin_conv_path(CCP_WIN_A_TO_POSIX | CCP_RELATIVE, a_filename, NULL, 0);
   if (needed >= 0) {
-    posix = (char*)Malloc(needed);
-    if (cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_RELATIVE, a_filename, posix, needed)) {
+    posix = (char*) Malloc(needed);
+    if (cygwin_conv_path(CCP_WIN_A_TO_POSIX | CCP_RELATIVE, a_filename, posix, needed)) {
       posix = NULL; // conversion failed
     }
   }
@@ -73,16 +73,14 @@ TTCN3Module::TTCN3Module(const char * a_filename, XMLParser * a_parser)
   schemaname = filename.getValueWithoutPrefix('/'); // excludes the path of the input file
 }
 
-TTCN3Module::~TTCN3Module()
-{
+TTCN3Module::~TTCN3Module() {
   for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next) {
-    delete(type->Data);
+    delete type->Data;
   }
 }
 
 void TTCN3Module::loadValuesFromXMLDeclaration(const char *a_version,
-  const char *a_encoding, int a_standalone)
-{
+  const char *a_encoding, int a_standalone) {
   xsdVersion = a_version;
   xsdEncoding = a_encoding;
   xsdStandalone = a_standalone;
@@ -90,12 +88,11 @@ void TTCN3Module::loadValuesFromXMLDeclaration(const char *a_version,
 
 void TTCN3Module::loadValuesFromSchemaTag(const Mstring& a_targetNamespace,
   List<NamespaceType> a_declaredNamespaces,
-  FormValue a_elementFormDefault, FormValue a_attributeFormDefault)
-{
+  FormValue a_elementFormDefault, FormValue a_attributeFormDefault,
+  BlockValue a_blockDefault) {
   if (a_targetNamespace.empty()) {
     targetNamespace = "NoTargetNamespace";
-  }
-  else {
+  } else {
     if (a_targetNamespace == "http://www.w3.org/2001/XMLSchema") {
       notIntoFile();
     }
@@ -104,11 +101,11 @@ void TTCN3Module::loadValuesFromSchemaTag(const Mstring& a_targetNamespace,
 
   elementFormDefault = a_elementFormDefault;
   attributeFormDefault = a_attributeFormDefault;
+  blockDefault = a_blockDefault;
 
   declaredNamespaces = a_declaredNamespaces;
 
-  for (List<NamespaceType>::iterator ns = declaredNamespaces.begin(); ns; ns = ns->Next)
-  {
+  for (List<NamespaceType>::iterator ns = declaredNamespaces.begin(); ns; ns = ns->Next) {
     if (ns->Data.uri == targetNamespace) {
       targetNamespace_connectedPrefix = ns->Data.prefix;
       break;
@@ -116,94 +113,118 @@ void TTCN3Module::loadValuesFromSchemaTag(const Mstring& a_targetNamespace,
   }
 }
 
-void TTCN3Module::addMainType(ConstructType typeOfMainType)
-{
-  switch (typeOfMainType)
-  {
-  case c_simpleType: {
-    SimpleType * new_ST = new SimpleType(parser, this, c_simpleType);
-    definedTypes.push_back(new_ST);
-    new_ST->loadWithValues();
-    break; }
-  case c_element: {
-    SimpleType * new_ST = new SimpleType(parser, this, c_element);
-    definedTypes.push_back(new_ST);
-    new_ST->loadWithValues();
-    break; }
-  case c_attribute: {
-    SimpleType * new_ST = new SimpleType(parser, this, c_attribute);
-    definedTypes.push_back(new_ST);
-    new_ST->loadWithValues();
-    break; }
-  case c_complexType: {
-    ComplexType * new_CT = new ComplexType(parser, this, c_complexType);
-    definedTypes.push_back(new_CT);
-    new_CT->loadWithValues();
-    break; }
-  case c_group: {
-    ComplexType * new_CT = new ComplexType(parser, this, c_group);
-    definedTypes.push_back(new_CT);
-    new_CT->loadWithValues();
-    break; }
-  case c_attributeGroup: {
-    ComplexType * new_CT = new ComplexType(parser, this, c_attributeGroup);
-    definedTypes.push_back(new_CT);
-    new_CT->loadWithValues();
-    break; }
-  case c_include: {
-    ImportStatement * new_INCL = new ImportStatement(parser, this, c_include);
-    definedTypes.push_back(new_INCL);
-    new_INCL->loadWithValues();
-    break; }
-  case c_import: {
-    ImportStatement * new_IMP = new ImportStatement(parser, this, c_import);
-    definedTypes.push_back(new_IMP);
-    new_IMP->loadWithValues();
-    break; }
-  case c_annotation: {
-    Annotation * new_ANN = new Annotation(parser, this, c_annotation);
-    definedTypes.push_back(new_ANN);
-    new_ANN->loadWithValues();
-    break; }
-  case c_unknown:
-  case c_schema:
-    break;
+void TTCN3Module::addMainType(const ConstructType typeOfMainType) {
+  switch (typeOfMainType) {
+    case c_simpleType:
+    {
+      SimpleType * new_ST = new SimpleType(parser, this, c_simpleType);
+      definedTypes.push_back(new_ST);
+      new_ST->loadWithValues();
+      break;
+    }
+    case c_element:
+    {
+      SimpleType * new_ST = new SimpleType(parser, this, c_element);
+      definedTypes.push_back(new_ST);
+      new_ST->loadWithValues();
+      break;
+    }
+    case c_attribute:
+    {
+      SimpleType * new_ST = new SimpleType(parser, this, c_attribute);
+      definedTypes.push_back(new_ST);
+      new_ST->loadWithValues();
+      break;
+    }
+    case c_complexType:
+    {
+      ComplexType * new_CT = new ComplexType(parser, this, c_complexType);
+      definedTypes.push_back(new_CT);
+      new_CT->loadWithValues();
+      break;
+    }
+    case c_group:
+    {
+      ComplexType * new_CT = new ComplexType(parser, this, c_group);
+      definedTypes.push_back(new_CT);
+      new_CT->loadWithValues();
+      break;
+    }
+    case c_attributeGroup:
+    {
+      ComplexType * new_CT = new ComplexType(parser, this, c_attributeGroup);
+      definedTypes.push_back(new_CT);
+      new_CT->loadWithValues();
+      break;
+    }
+    case c_include:
+    {
+      ImportStatement * new_INCL = new ImportStatement(parser, this, c_include);
+      definedTypes.push_back(new_INCL);
+      new_INCL->loadWithValues();
+      break;
+    }
+    case c_import:
+    {
+      ImportStatement * new_IMP = new ImportStatement(parser, this, c_import);
+      definedTypes.push_back(new_IMP);
+      new_IMP->loadWithValues();
+      break;
+    }
+    case c_annotation:
+    {
+      Annotation * new_ANN = new Annotation(parser, this, c_annotation);
+      definedTypes.push_back(new_ANN);
+      new_ANN->loadWithValues();
+      break;
+    }
+    case c_idattrib:
+    {
+      Mstring type = empty_string;
+      if (hasDefinedMainType()) {
+        type = getLastMainType().getName().convertedValue;
+      }
+      printWarning(getSchemaname(), type,
+        Mstring("The mapping of ID attribute is not supported."));
+      TTCN3ModuleInventory::getInstance().incrNumWarnings();
+      break;
+    }
+    case c_unknown:
+    case c_schema:
+      break;
   }
 
   actualXsdConstruct = typeOfMainType;
 }
 
-void TTCN3Module::replaceLastMainType(RootType * t)
-{
+void TTCN3Module::replaceLastMainType(RootType * t) {
   delete(definedTypes.back());
   definedTypes.pop_back();
   definedTypes.push_back(t);
   actualXsdConstruct = t->getConstruct();
 }
 
-void TTCN3Module::generate_TTCN3_header(FILE * file)
-{
+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 {
+      );
+  } else {
     fprintf(file,
-      "* Copyright Ericsson Telecom AB %-4d\n"
+      "* 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"
@@ -218,32 +239,30 @@ void TTCN3Module::generate_TTCN3_header(FILE * file)
     "//  Rev:\n"
     "//  Prodnr:\n",
     modulename.c_str()
-  );
+    );
   if (t_flag_used) {
     fprintf(file,
       "//  Updated:\n"
-    );
-  }
-  else {
+      );
+  } 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)
-{
+void TTCN3Module::generate_TTCN3_fileinfo(FILE * file) {
   fprintf(file,
     "//\t- %s\n"
     "//\t\t\t/* xml ",
     schemaname.c_str()
-  );
+    );
 
   if (!xsdVersion.empty()) {
     fprintf(file, "version = \"%s\" ", xsdVersion.c_str());
@@ -252,27 +271,25 @@ void TTCN3Module::generate_TTCN3_fileinfo(FILE * file)
     fprintf(file, "encoding = \"%s\" ", xsdEncoding.c_str());
   }
 
-  switch (xsdStandalone)
-  {
-  case 0:
-    fprintf(file, "standalone = \"no\" ");
-    break;
-  case 1:
-    fprintf(file, "standalone = \"yes\" ");
-    break;
-  default:
-    break;
+  switch (xsdStandalone) {
+    case 0:
+      fprintf(file, "standalone = \"no\" ");
+      break;
+    case 1:
+      fprintf(file, "standalone = \"yes\" ");
+      break;
+    default:
+      break;
   }
 
   fprintf(file,
     "*/\n"
     "//\t\t\t/* targetnamespace = \"%s\" */\n",
     targetNamespace.c_str()
-  );
+    );
 }
 
-void TTCN3Module::generate_TTCN3_modulestart(FILE * file)
-{
+void TTCN3Module::generate_TTCN3_modulestart(FILE * file) {
   fprintf(file,
     "module %s {\n"
     "\n"
@@ -281,55 +298,46 @@ void TTCN3Module::generate_TTCN3_modulestart(FILE * file)
     "\n"
     "\n",
     modulename.c_str()
-  );
+    );
 }
 
-void TTCN3Module::generate_TTCN3_import_statements(FILE * file)
-{
-  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next)
-  {
-    if (type->Data->getConstruct() == c_import)
-    {
+void TTCN3Module::generate_TTCN3_import_statements(FILE * file) {
+  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next) {
+    if (type->Data->getConstruct() == c_import) {
       type->Data->printToFile(file);
     }
   }
 }
 
-void TTCN3Module::generate_TTCN3_included_types(FILE * file)
-{
-  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next)
-  {
-    if (type->Data->getConstruct() == c_include)
-    {
+void TTCN3Module::generate_TTCN3_included_types(FILE * file) {
+  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next) {
+    if (type->Data->getConstruct() == c_include) {
       type->Data->printToFile(file);
     }
   }
 }
 
-void TTCN3Module::generate_TTCN3_types(FILE * file)
-{
-  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next)
-  {
-    if (type->Data->getConstruct() != c_include && type->Data->getConstruct() != c_import)
-    {
+void TTCN3Module::generate_TTCN3_types(FILE * file) {
+  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next) {
+    if (type->Data->getConstruct() != c_include && type->Data->getConstruct() != c_import) {
       type->Data->printToFile(file);
     }
   }
 }
 
-void TTCN3Module::generate_with_statement(FILE * file, List<NamespaceType> used_namespaces)
-{
-  if (e_flag_used) return;
+void TTCN3Module::generate_with_statement(FILE * file, List<NamespaceType> used_namespaces) {
+  if (e_flag_used) {
+    return;
+  }
 
   fprintf(file,
     "with {\n"
     "encode \"XML\";\n"
-  );
+    );
 
   bool xsi = false;
 
-  for (List<NamespaceType>::iterator usedNS = used_namespaces.begin(); usedNS; usedNS = usedNS->Next)
-  {
+  for (List<NamespaceType>::iterator usedNS = used_namespaces.begin(); usedNS; usedNS = usedNS->Next) {
     if (usedNS->Data.uri == "http://www.w3.org/2001/XMLSchema") {
       xsi = true;
       continue;
@@ -337,10 +345,9 @@ void TTCN3Module::generate_with_statement(FILE * file, List<NamespaceType> used_
     if (usedNS->Data.uri == "NoTargetNamespace") {
       continue;
     }
-// XXX this inner loop is either redundant now, or it should be elsewhere.
-// It is quite dodgy to modify(!) namespaces when we are already generating code.
-    for (List<NamespaceType>::iterator usedNS2 = usedNS->Next; usedNS2; usedNS2 = usedNS2->Next)
-    {
+    // XXX this inner loop is either redundant now, or it should be elsewhere.
+    // It is quite dodgy to modify(!) namespaces when we are already generating code.
+    for (List<NamespaceType>::iterator usedNS2 = usedNS->Next; usedNS2; usedNS2 = usedNS2->Next) {
       if (usedNS->Data.uri == usedNS2->Data.uri) {
         if (usedNS2->Data.prefix.empty())
           usedNS2->Data.prefix = usedNS->Data.prefix;
@@ -351,8 +358,9 @@ void TTCN3Module::generate_with_statement(FILE * file, List<NamespaceType> used_
 
   if (targetNamespace != "NoTargetNamespace") {
     fprintf(file, "variant \"namespace as \'%s\'", targetNamespace.c_str());
-    if (!targetNamespace_connectedPrefix.empty())
+    if (!targetNamespace_connectedPrefix.empty()) {
       fprintf(file, " prefix \'%s\'", targetNamespace_connectedPrefix.c_str());
+    }
     fprintf(file, "\";\n");
   }
 
@@ -373,17 +381,25 @@ void TTCN3Module::generate_with_statement(FILE * file, List<NamespaceType> used_
     "}\n");
 }
 
-void TTCN3Module::TargetNamespace2ModuleName()
-{
+void TTCN3Module::TargetNamespace2ModuleName() {
   Mstring res(targetNamespace);
 
   if (z_flag_used) {
-    if (res.isFound("http://"))
-      for (int i = 0; i != 7; ++i)
+    char * found;
+    found = res.foundAt("http://");
+    //check if the http:// is at the beginning of the namespace
+    if (found == res.c_str()) { //res.c_str() returns a pointer to the first char
+      for (int i = 0; i != 7; ++i) {
         res.eraseChar(0);
-    if (res.isFound("urn:"))
-      for (int i = 0; i != 4; ++i)
+      }
+    }
+    found = res.foundAt("urn:");
+    //check if the urn: is at the beginning of the namespace
+    if (found == res.c_str()) { //res.c_str() returns a pointer to the first char
+      for (int i = 0; i != 4; ++i) {
         res.eraseChar(0);
+      }
+    }
   }
 
   // the characters ' '(SPACE), '.'(FULL STOP) and '-'(HYPEN-MINUS)
@@ -394,45 +410,81 @@ void TTCN3Module::TargetNamespace2ModuleName()
       (res[i] == '-') ||
       (res[i] == '/') ||
       (res[i] == '#') ||
-      (res[i] == ':'))
-    {
+      (res[i] == ':')) {
       res[i] = '_';
     }
   }
   // any character except "A" to "Z", "a" to "z" or "0" to "9" and "_" shall be removed
   for (size_t i = 0; i != res.size(); ++i) {
-    if (!isalpha((const unsigned char)res[i]) && !isdigit((const unsigned char)res[i]) && (res[i] != '_')) {
+    if (!isalpha((const unsigned char) res[i]) && !isdigit((const unsigned char) res[i]) && (res[i] != '_')) {
       res.eraseChar(i);
+      i--;
     }
   }
   // a sequence of two of more "_" (LOW LINE) shall be replaced with a single "_" (LOW LINE)
   for (size_t i = 1; i < res.size(); ++i) {
-    while (res[i] == '_' && res[i-1] == '_') {
-      res.eraseChar(i--);
+    if (res[i] == '_' && res[i - 1] == '_') {
+      res.eraseChar(i);
+      i--;
+    }
+  }
+
+  if (!res.empty()) {
+    // "_" (LOW LINE) characters occurring at the beginning of the name shall be removed
+    if (res[0] == '_') {
+      res.eraseChar(0);
+    }
+  }
+  if (!res.empty()) {
+    // "_" (LOW LINE) characters occurring at the end of the name shall be removed
+    if (res[res.size() - 1] == '_') {
+      res.eraseChar(res.size() - 1);
     }
   }
-  // "_" (LOW LINE) characters occurring at the beginning of the name shall be removed
-  if (res[0] == '_') res.eraseChar(0);
-  // "_" (LOW LINE) characters occurring at the end of the name shall be removed
-  if (res[res.size()-1] == '_') res.eraseChar(res.size()-1);
 
   if (res.empty()) {
     res = "x";
-  }
-  else if (isdigit((const unsigned char)res[0])) {
+  } else if (isdigit((const unsigned char) res[0])) {
     res.insertChar(0, 'x');
   }
 
+  //Postfix with _i if the targetnamespace is different
+  bool postfixing = false;
+  for (List<TTCN3Module*>::iterator mod = TTCN3ModuleInventory::getInstance().getModules().begin(); mod; mod = mod->Next) {
+    if (mod->Data != this && mod->Data->getModulename() == res && mod->Data->getTargetNamespace() != targetNamespace) {
+      postfixing = true;
+      break;
+    }
+  }
+
+  if(postfixing){
+    bool found;
+    int counter = 1;
+    expstring_t tmpname = NULL;
+    do {
+      found = false;
+      Free(tmpname);
+      tmpname = mprintf("%s_%d", res.c_str(), counter);
+      for(List<TTCN3Module*>::iterator mod = TTCN3ModuleInventory::getInstance().getModules().begin(); mod; mod = mod->Next){
+        if(mod->Data != this && mod->Data->getModulename() == Mstring(tmpname)){
+          found = true;
+          break;
+        }
+      }
+      counter++;
+    } while (found);
+    res = Mstring(tmpname);
+    Free(tmpname);
+  }
+
   modulename = res;
 }
 
-void TTCN3Module::dump() const
-{
+void TTCN3Module::dump() const {
   fprintf(stderr, "Module '%s' at %p (from %s)\n",
-    modulename.c_str(), (const void*)this, schemaname.c_str());
+    modulename.c_str(), (const void*) this, schemaname.c_str());
 
-  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next)
-  {
+  for (List<RootType*>::iterator type = definedTypes.begin(); type; type = type->Next) {
     type->Data->dump(1);
   }
 }
diff --git a/xsdconvert/TTCN3Module.hh b/xsdconvert/TTCN3Module.hh
index b932b933d..cfa0abacb 100644
--- a/xsdconvert/TTCN3Module.hh
+++ b/xsdconvert/TTCN3Module.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -10,6 +10,8 @@
 
 #include "XMLParser.hh"
 #include "GeneralTypes.hh"
+#include "GeneralFunctions.hh"
+#include "TTCN3ModuleInventory.hh"
 
 class TTCN3ModuleInventory;
 class RootType;
@@ -21,8 +23,7 @@ class RootType;
  * Types defined in the module are stored in a list
  *
  */
-class TTCN3Module
-{
+class TTCN3Module {
   /**
    * this module is connected with this parser object
    */
@@ -59,6 +60,7 @@ class TTCN3Module
   List<NamespaceType> declaredNamespaces;
   FormValue elementFormDefault;
   FormValue attributeFormDefault;
+  BlockValue blockDefault;
 
   List<const TTCN3Module*> importedModules; // pointers not owned
 
@@ -67,68 +69,137 @@ class TTCN3Module
   bool moduleNotIntoFile;
   bool moduleNotIntoNameConversion;
 
-  TTCN3Module & operator = (const TTCN3Module &); // not implemented
-  TTCN3Module              (const TTCN3Module &); // not implemented
+  TTCN3Module & operator=(const TTCN3Module &); // not implemented
+  TTCN3Module(const TTCN3Module &); // not implemented
 public:
-  TTCN3Module (const char * a_filename, XMLParser * a_parser);
-  ~TTCN3Module ();
-
-  void goodbyeParser () { parser = 0; }
-
-  void loadValuesFromXMLDeclaration (const char *a_version,
-    const char *a_encoding, int a_standalone);
-  void loadValuesFromSchemaTag (const Mstring& a_targetNamespace, List<NamespaceType> declaredNamespaces,
-    FormValue a_elementFormDefault,
-    FormValue a_attributeFormDefault);
-
-  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);
-  void generate_TTCN3_import_statements (FILE * file);
-  void generate_TTCN3_types (FILE * file);
-  void generate_with_statement (FILE * file, List<NamespaceType> used_namespaces);
-
-  const Mstring & getSchemaname () const {return schemaname;}
-  const Mstring & getTargetNamespace () const {return targetNamespace;}
-  const Mstring & getModulename () const {return modulename;}
-  void setSchemaname (const Mstring& name) {schemaname = name;}
-  void setTargetNamespace (const Mstring& tns) {targetNamespace = tns;}
-
-  FormValue getElementFormDefault () const {return elementFormDefault;}
-  void setElementFormDefault (FormValue value) {elementFormDefault = value;}
-  FormValue getAttributeFormDefault () const {return attributeFormDefault;}
-  void setAttributeFormDefault (FormValue value) {attributeFormDefault = value;}
-
-  ConstructType getActualXsdConstruct () const {return actualXsdConstruct;}
-  void setActualXsdConstruct (ConstructType c) {actualXsdConstruct = c;}
-
-  void addMainType (ConstructType typeOfMainType);
-  bool hasDefinedMainType () const {return !definedTypes.empty();}
-  void replaceLastMainType (RootType * t);
-  const List<RootType*> & getDefinedTypes () const {return definedTypes;}
-  RootType & getLastMainType () {return *definedTypes.back();}
-
-  bool isnotIntoNameConversion () const {return moduleNotIntoNameConversion;}
-  void notIntoNameConversion () {moduleNotIntoNameConversion = true;}
-  bool isnotIntoFile () const {return moduleNotIntoFile;}
-  void notIntoFile () {moduleNotIntoFile = true;}
-
-  const List<NamespaceType> & getDeclaredNamespaces () const {return declaredNamespaces;}
-
-  void addImportedModule (const TTCN3Module *mod) {importedModules.push_back(mod);}
-  const List<const TTCN3Module*> & getImportedModules () const {return importedModules;}
+  TTCN3Module(const char * a_filename, XMLParser * a_parser);
+  ~TTCN3Module();
+
+  void goodbyeParser() {
+    parser = 0;
+  }
+
+  void loadValuesFromXMLDeclaration(const char *a_version,
+      const char *a_encoding, int a_standalone);
+  void loadValuesFromSchemaTag(const Mstring& a_targetNamespace, List<NamespaceType> declaredNamespaces,
+      FormValue a_elementFormDefault,
+      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);
+  void generate_TTCN3_import_statements(FILE * file);
+  void generate_TTCN3_types(FILE * file);
+  void generate_with_statement(FILE * file, List<NamespaceType> used_namespaces);
+
+  const Mstring & getSchemaname() const {
+    return schemaname;
+  }
+
+  const Mstring & getTargetNamespace() const {
+    return targetNamespace;
+  }
+
+  const Mstring & getTargetNamespaceConnector() const {
+    return targetNamespace_connectedPrefix;
+  }
+
+  const Mstring & getModulename() const {
+    return modulename;
+  }
+
+  void setSchemaname(const Mstring& name) {
+    schemaname = name;
+  }
+
+  void setTargetNamespace(const Mstring& tns) {
+    targetNamespace = tns;
+  }
+
+  FormValue getElementFormDefault() const {
+    return elementFormDefault;
+  }
+
+  void setElementFormDefault(FormValue value) {
+    elementFormDefault = value;
+  }
+
+  FormValue getAttributeFormDefault() const {
+    return attributeFormDefault;
+  }
+
+  void setAttributeFormDefault(FormValue value) {
+    attributeFormDefault = value;
+  }
+
+  BlockValue getBlockDefault() const {
+      return blockDefault;
+  }
+
+  ConstructType getActualXsdConstruct() const {
+    return actualXsdConstruct;
+  }
+
+  void setActualXsdConstruct(ConstructType c) {
+    actualXsdConstruct = c;
+  }
+
+  void addAnnotation();
+  void addMainType(const ConstructType typeOfMainType);
+  void addMainType(RootType * type){ definedTypes.push_back(type); }
+
+  bool hasDefinedMainType() const {
+    return !definedTypes.empty();
+  }
+  void replaceLastMainType(RootType * t);
+
+  const List<RootType*> & getDefinedTypes() const {
+    return definedTypes;
+  }
+
+  RootType & getLastMainType() {
+    return *definedTypes.back();
+  }
+
+  bool isnotIntoNameConversion() const {
+    return moduleNotIntoNameConversion;
+  }
+
+  void notIntoNameConversion() {
+    moduleNotIntoNameConversion = true;
+  }
+
+  bool isnotIntoFile() const {
+    return moduleNotIntoFile;
+  }
+
+  void notIntoFile() {
+    moduleNotIntoFile = true;
+  }
+
+  const List<NamespaceType> & getDeclaredNamespaces() const {
+    return declaredNamespaces;
+  }
+
+  void addImportedModule(const TTCN3Module *mod) {
+    importedModules.push_back(mod);
+  }
+
+  const List<const TTCN3Module*> & getImportedModules() const {
+    return importedModules;
+  }
 
   /// Compute the TTCN-3 module name
-  void TargetNamespace2ModuleName ();
+  void TargetNamespace2ModuleName();
 
-  friend bool compareModules (TTCN3Module * lhs, TTCN3Module * rhs);
+  friend bool compareModules(TTCN3Module * lhs, TTCN3Module * rhs);
 
-  void dump () const;
+  void dump() const;
 };
 
-inline bool compareModules (TTCN3Module * lhs, TTCN3Module * rhs)
-{
+inline bool compareModules(TTCN3Module * lhs, TTCN3Module * rhs) {
   return lhs->targetNamespace < rhs->targetNamespace;
 }
 
diff --git a/xsdconvert/TTCN3ModuleInventory.cc b/xsdconvert/TTCN3ModuleInventory.cc
index 4bb0b2a33..b4c63c91b 100644
--- a/xsdconvert/TTCN3ModuleInventory.cc
+++ b/xsdconvert/TTCN3ModuleInventory.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -13,7 +13,6 @@
 #include "TTCN3Module.hh"
 #include "SimpleType.hh"
 #include "ComplexType.hh"
-#include "FieldType.hh"
 
 extern bool h_flag_used;
 extern bool q_flag_used;
@@ -23,56 +22,45 @@ extern bool q_flag_used;
 unsigned int TTCN3ModuleInventory::num_errors = 0;
 unsigned int TTCN3ModuleInventory::num_warnings = 0;
 
-
-
 TTCN3ModuleInventory::TTCN3ModuleInventory()
 : definedModules()
 , writtenImports()
-, typenames()
-{}
+, typenames() {
+}
 
-TTCN3ModuleInventory::~TTCN3ModuleInventory()
-{
+TTCN3ModuleInventory::~TTCN3ModuleInventory() {
   for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
     delete(module->Data);
   }
 }
 
-TTCN3ModuleInventory& TTCN3ModuleInventory::getInstance()
-{
+TTCN3ModuleInventory& TTCN3ModuleInventory::getInstance() {
   // Singleton, see Meyers, More Effective C++, Item 26 (page 131)
   static TTCN3ModuleInventory instance;
   return instance;
 }
 
-TTCN3Module * TTCN3ModuleInventory::addModule(const char * xsd_filename, XMLParser * a_parser)
-{
+TTCN3Module * TTCN3ModuleInventory::addModule(const char * xsd_filename, XMLParser * a_parser) {
   TTCN3Module * module = new TTCN3Module(xsd_filename, a_parser);
   definedModules.push_back(module);
   return definedModules.back();
 }
 
-void TTCN3ModuleInventory::modulenameConversion()
-{
+void TTCN3ModuleInventory::modulenameConversion() {
   definedModules.sort(compareModules);
 
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
     module->Data->TargetNamespace2ModuleName();
   }
 }
 
-void TTCN3ModuleInventory::referenceResolving()
-{
+void TTCN3ModuleInventory::referenceResolving() {
   /**
    * Reference resolving for include and import statements
    */
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
-    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next)
-    {
-      if (type->Data->getName().convertedValue == "import" || type->Data->getName().convertedValue == "include")
-      {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
+    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next) {
+      if (type->Data->getName().convertedValue == "import" || type->Data->getName().convertedValue == "include") {
         type->Data->referenceResolving();
       }
     }
@@ -82,66 +70,40 @@ void TTCN3ModuleInventory::referenceResolving()
    * Reference resolving for all others
    */
   bool there_is_unresolved_reference_somewhere = false;
-  do
-  {
+  do {
     there_is_unresolved_reference_somewhere = false;
 
-    for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-    {
-      for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next)
-      {
-        if (type->Data->getName().convertedValue != "import" && type->Data->getName().convertedValue != "include")
-        {
+    for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
+      for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next) {
+        if (type->Data->getName().convertedValue != "import" && type->Data->getName().convertedValue != "include") {
           type->Data->referenceResolving();
-          if (type->Data->hasUnresolvedReference())
-          {
+          if (type->Data->hasUnresolvedReference()) {
             there_is_unresolved_reference_somewhere = true;
           }
         }
       }
     }
-  } while(there_is_unresolved_reference_somewhere);
+  } while (there_is_unresolved_reference_somewhere);
 }
 
-void TTCN3ModuleInventory::finalModification()
-{
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
-    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next)
-    {
+void TTCN3ModuleInventory::finalModification() {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
+    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next) {
       type->Data->finalModification();
     }
   }
 }
 
-void TTCN3ModuleInventory::nameConversion()
-{
+void TTCN3ModuleInventory::nameConversion() {
   /**
    * Sort of types and fields
    */
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
-    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next)
-    {
-      switch (type->Data->getConstruct())
-      {
-      case c_complexType:
-      case c_attributeGroup:
-      case c_group:
-        ((ComplexType*)type->Data)->everything_into_fields_final();
-        break;
-      default:
-        break;
-      }
-    }
-  }
 
   definedModules.sort(compareModules);
   /********************************************************
    * Conversion of the name of types
    * ******************************************************/
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
     if (module->Data->isnotIntoNameConversion()) continue;
 
     List<RootType*> definedElements_inABC;
@@ -151,34 +113,31 @@ void TTCN3ModuleInventory::nameConversion()
     List<RootType*> definedAttributeGroups_inABC;
     List<RootType*> definedGroups_inABC;
 
-    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next)
-    {
+    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next) {
       if (module2->Data->getModulename() != module->Data->getModulename()) continue;
 
-      for (List<RootType*>::iterator type = module2->Data->getDefinedTypes().begin(); type; type = type->Next)
-      {
-        switch (type->Data->getConstruct())
-        {
-        case c_simpleType:
-          definedSimpleTypes_inABC.push_back(type->Data);
-          break;
-        case c_element:
-          definedElements_inABC.push_back(type->Data);
-          break;
-        case c_attribute:
-          definedAttributes_inABC.push_back(type->Data);
-          break;
-        case c_complexType:
-          definedComplexTypes_inABC.push_back(type->Data);
-          break;
-        case c_group:
-          definedGroups_inABC.push_back(type->Data);
-          break;
-        case c_attributeGroup:
-          definedAttributeGroups_inABC.push_back(type->Data);
-          break;
-        default:
-          break;
+      for (List<RootType*>::iterator type = module2->Data->getDefinedTypes().begin(); type; type = type->Next) {
+        switch (type->Data->getConstruct()) {
+          case c_simpleType:
+            definedSimpleTypes_inABC.push_back(type->Data);
+            break;
+          case c_element:
+            definedElements_inABC.push_back(type->Data);
+            break;
+          case c_attribute:
+            definedAttributes_inABC.push_back(type->Data);
+            break;
+          case c_complexType:
+            definedComplexTypes_inABC.push_back(type->Data);
+            break;
+          case c_group:
+            definedGroups_inABC.push_back(type->Data);
+            break;
+          case c_attributeGroup:
+            definedAttributeGroups_inABC.push_back(type->Data);
+            break;
+          default:
+            break;
         }
       }
       module2->Data->notIntoNameConversion();
@@ -191,58 +150,54 @@ void TTCN3ModuleInventory::nameConversion()
     definedAttributeGroups_inABC.sort(compareTypes);
     definedGroups_inABC.sort(compareTypes);
 
-    for (List<RootType*>::iterator type = definedElements_inABC.begin(); type; type = type->Next)
-    {
+    typenames.push_back(QualifiedName(module->Data->getTargetNamespace(), module->Data->getModulename()));
+    for(List<const TTCN3Module*>::iterator mod = module->Data->getImportedModules().begin(); mod; mod = mod->Next){
+      typenames.push_back(QualifiedName(module->Data->getTargetNamespace(), mod->Data->getModulename()));
+    }
+
+    for (List<RootType*>::iterator type = definedElements_inABC.begin(); type; type = type->Next) {
       type->Data->nameConversion(nameMode, module->Data->getDeclaredNamespaces());
     }
-    for (List<RootType*>::iterator type = definedAttributes_inABC.begin(); type; type = type->Next)
-    {
+    for (List<RootType*>::iterator type = definedAttributes_inABC.begin(); type; type = type->Next) {
       type->Data->nameConversion(nameMode, module->Data->getDeclaredNamespaces());
     }
-    for (List<RootType*>::iterator type = definedSimpleTypes_inABC.begin(); type; type = type->Next)
-    {
+    for (List<RootType*>::iterator type = definedSimpleTypes_inABC.begin(); type; type = type->Next) {
       type->Data->nameConversion(nameMode, module->Data->getDeclaredNamespaces());
     }
-    for (List<RootType*>::iterator type = definedComplexTypes_inABC.begin(); type; type = type->Next)
-    {
+    for (List<RootType*>::iterator type = definedComplexTypes_inABC.begin(); type; type = type->Next) {
       type->Data->nameConversion(nameMode, module->Data->getDeclaredNamespaces());
     }
-    for (List<RootType*>::iterator type = definedAttributeGroups_inABC.begin(); type; type = type->Next)
-    {
+    for (List<RootType*>::iterator type = definedAttributeGroups_inABC.begin(); type; type = type->Next) {
       type->Data->nameConversion(nameMode, module->Data->getDeclaredNamespaces());
     }
-    for (List<RootType*>::iterator type = definedGroups_inABC.begin(); type; type = type->Next)
-    {
+    for (List<RootType*>::iterator type = definedGroups_inABC.begin(); type; type = type->Next) {
       type->Data->nameConversion(nameMode, module->Data->getDeclaredNamespaces());
     }
+    typenames.clear();
   }
   /********************************************************
    * Conversion of the type of types
    * ******************************************************/
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
-    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next)
-    {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
+    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next) {
       type->Data->nameConversion(typeMode, module->Data->getDeclaredNamespaces());
     }
   }
   /********************************************************
    * Conversion of the names and the types of the fields
    * ******************************************************/
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
-    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next)
-    {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
+    for (List<RootType*>::iterator type = module->Data->getDefinedTypes().begin(); type; type = type->Next) {
       type->Data->nameConversion(fieldMode, module->Data->getDeclaredNamespaces());
     }
   }
 }
 
-void TTCN3ModuleInventory::moduleGeneration()
-{
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
-    if (module->Data->isnotIntoFile()) continue;
+void TTCN3ModuleInventory::moduleGeneration() {
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
+    if (module->Data->isnotIntoFile()) {
+      continue;
+    }
 
     List<NamespaceType> used_namespaces;
     NamespaceType targetns;
@@ -251,12 +206,12 @@ void TTCN3ModuleInventory::moduleGeneration()
 
     // Now search for other modules with the same module name.
     // They must have had the same targetNamespace.
-    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next)
-    {
-      if (module2->Data->getModulename() != module->Data->getModulename()) continue;
+    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next) {
+      if (module2->Data->getModulename() != module->Data->getModulename()) {
+        continue;
+      }
 
-      for (List<NamespaceType>::iterator declNS = module2->Data->getDeclaredNamespaces().begin(); declNS; declNS = declNS->Next)
-      {
+      for (List<NamespaceType>::iterator declNS = module2->Data->getDeclaredNamespaces().begin(); declNS; declNS = declNS->Next) {
         used_namespaces.push_back(declNS->Data);
       }
       module2->Data->notIntoFile(); // first module gets the TTCN-3 file
@@ -280,10 +235,8 @@ void TTCN3ModuleInventory::moduleGeneration()
 
     fprintf(file, "//\tGenerated from file(s):\n");
 
-    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next)
-    {
-      if (module2->Data->getModulename() == module->Data->getModulename())
-      {
+    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next) {
+      if (module2->Data->getModulename() == module->Data->getModulename()) {
         module2->Data->generate_TTCN3_fileinfo(file);
       }
     }
@@ -303,20 +256,16 @@ void TTCN3ModuleInventory::moduleGeneration()
 
     module->Data->generate_TTCN3_modulestart(file);
 
-    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next)
-    {
-      if (module2->Data->getModulename() == module->Data->getModulename())
-      {
+    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next) {
+      if (module2->Data->getModulename() == module->Data->getModulename()) {
         module2->Data->generate_TTCN3_import_statements(file);
       }
     }
 
     writtenImports.clear();
 
-    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next)
-    {
-      if (module2->Data->getModulename() == module->Data->getModulename())
-      {
+    for (List<TTCN3Module*>::iterator module2 = module; module2; module2 = module2->Next) {
+      if (module2->Data->getModulename() == module->Data->getModulename()) {
         module2->Data->generate_TTCN3_included_types(file);
         module2->Data->generate_TTCN3_types(file);
       }
@@ -332,8 +281,30 @@ void TTCN3ModuleInventory::moduleGeneration()
   }
 }
 
-RootType * TTCN3ModuleInventory::lookup(const SimpleType * reference, wanted w) const
-{
+RootType * TTCN3ModuleInventory::lookup(const RootType* ref, const Mstring& reference, wanted w) const {
+  Mstring uri = reference.getPrefix(':');
+  const Mstring& name = reference.getValueWithoutPrefix(':');
+  if(uri.empty()){
+    for(List<NamespaceType>::iterator qname = ref->getModule()->getDeclaredNamespaces().begin(); qname; qname = qname->Next){
+      if(qname->Data.prefix.empty()){
+        uri = qname->Data.uri;
+        break;
+      }
+    }
+  }else {
+    uri = getNameSpaceByPrefix(ref, uri);
+  }
+  return lookup(name, uri, NULL, w);
+}
+
+RootType * TTCN3ModuleInventory::lookup(const SimpleType * reference, wanted w) const {
+  const Mstring& uri = reference->getReference().get_uri();
+  const Mstring& name = reference->getReference().get_val();
+
+  return lookup(name, uri, reference, w);
+}
+
+RootType * TTCN3ModuleInventory::lookup(const ComplexType * reference, wanted w) const {
   const Mstring& uri = reference->getReference().get_uri();
   const Mstring& name = reference->getReference().get_val();
 
@@ -341,23 +312,20 @@ RootType * TTCN3ModuleInventory::lookup(const SimpleType * reference, wanted w)
 }
 
 RootType * TTCN3ModuleInventory::lookup(const Mstring& name, const Mstring& nsuri,
-  const RootType *reference, wanted w) const
-{
+  const RootType *reference, wanted w) const {
   return ::lookup(definedModules, name, nsuri, reference, w);
 }
 
-void TTCN3ModuleInventory::dump() const
-{
-  fprintf(stderr, "Dumping %lu modules.\n", (unsigned long)definedModules.size());
-  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next)
-  {
+void TTCN3ModuleInventory::dump() const {
+  fprintf(stderr, "Dumping %lu modules.\n", (unsigned long) definedModules.size());
+  for (List<TTCN3Module*>::iterator module = definedModules.begin(); module; module = module->Next) {
     module->Data->dump();
   }
 
-  fprintf(stderr, "Dumping %lu types\n", (unsigned long)typenames.size());
+  fprintf(stderr, "Dumping %lu types\n", (unsigned long) typenames.size());
 
   Item<QualifiedName> *o = typenames.begin();
-  for( ; o != NULL; o = o->Next) {
+  for (; o != NULL; o = o->Next) {
     fprintf(stderr, "{%s}%s,\n",
       o->Data.nsuri.c_str(), o->Data.name.c_str());
   }
diff --git a/xsdconvert/TTCN3ModuleInventory.hh b/xsdconvert/TTCN3ModuleInventory.hh
index e4c2aa1eb..26a7ff196 100644
--- a/xsdconvert/TTCN3ModuleInventory.hh
+++ b/xsdconvert/TTCN3ModuleInventory.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -14,6 +14,7 @@
 class TTCN3Module;
 class RootType;
 class SimpleType;
+class ComplexType;
 
 /**
  * Type that contains generated TTCN-3 modules in a list
@@ -26,8 +27,7 @@ class SimpleType;
  * 	- and starting generation of TTCN-3 modules
  *
  */
-class TTCN3ModuleInventory
-{
+class TTCN3ModuleInventory {
   /**
    * contains all defined TTCN-3 modules
    */
@@ -52,10 +52,10 @@ class TTCN3ModuleInventory
   static unsigned int num_errors;
   static unsigned int num_warnings;
 
-  TTCN3ModuleInventory (const TTCN3ModuleInventory &); // not implemented
-  TTCN3ModuleInventory & operator = (const TTCN3ModuleInventory &); // not implemented
-  TTCN3ModuleInventory (); // private due to singleton
-  ~TTCN3ModuleInventory (); // private due to singleton
+  TTCN3ModuleInventory(const TTCN3ModuleInventory &); // not implemented
+  TTCN3ModuleInventory & operator=(const TTCN3ModuleInventory &); // not implemented
+  TTCN3ModuleInventory(); // private due to singleton
+  ~TTCN3ModuleInventory(); // private due to singleton
 public:
 
   static TTCN3ModuleInventory& getInstance(); // singleton access
@@ -68,36 +68,56 @@ public:
   /**
    * Steps after all xsd files are parsed
    */
-  void modulenameConversion ();
-  void referenceResolving ();
-  void nameConversion ();
-  void finalModification ();
+  void modulenameConversion();
+  void referenceResolving();
+  void nameConversion();
+  void finalModification();
 
   /**
    * TTCN-3 module generating method
    * Generate TTCN-3 files
    */
-  void moduleGeneration ();
+  void moduleGeneration();
 
-  List<TTCN3Module*> & getModules () {return definedModules;}
-  List<TTCN3Module*> & getWrittenImports () {return writtenImports;}
+  List<TTCN3Module*> & getModules() {
+    return definedModules;
+  }
 
-  List<QualifiedName> & getTypenames() { return typenames; }
+  List<TTCN3Module*> & getWrittenImports() {
+    return writtenImports;
+  }
+
+  List<QualifiedName> & getTypenames() {
+    return typenames;
+  }
 
   /**
    * Searching methods
    * Look for a simpleType (or element or attribute) or a complexType (or attributeGroup or group)
    */
-  RootType * lookup (const SimpleType * reference, wanted w) const;
-  RootType * lookup (const Mstring& name, const Mstring& nsuri,
-    const RootType *reference, wanted w) const;
+  RootType * lookup(const RootType * ref, const Mstring& reference, wanted w) const;
+  RootType * lookup(const SimpleType * reference, wanted w) const;
+  RootType * lookup(const ComplexType * reference, wanted w) const;
+  RootType * lookup(const Mstring& name, const Mstring& nsuri,
+      const RootType *reference, wanted w) const;
+
+  static unsigned int getNumErrors() {
+    return num_errors;
+  }
+
+  static unsigned int getNumWarnings() {
+    return num_warnings;
+  }
+
+  static void incrNumErrors() {
+    ++num_errors;
+  }
 
-  static unsigned int getNumErrors () {return num_errors;}
-  static unsigned int getNumWarnings () {return num_warnings;}
-  static void incrNumErrors () {++num_errors;}
-  static void incrNumWarnings () {++num_warnings;}
+  static void incrNumWarnings() {
+    ++num_warnings;
+  }
 
-  void dump () const;
+  void dump() const;
 };
 
 #endif /* TTCN3MODULEINVENTORY_HH_ */
diff --git a/xsdconvert/XMLParser.cc b/xsdconvert/XMLParser.cc
index 9a22d1de9..9b446a39e 100644
--- a/xsdconvert/XMLParser.cc
+++ b/xsdconvert/XMLParser.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -34,28 +34,26 @@ bool XMLParser::suspended = false;
 unsigned int XMLParser::num_errors = 0;
 unsigned int XMLParser::num_warnings = 0;
 
-
-
 XMLParser::XMLParser(const char * a_filename)
-: module(NULL) 			// get value with 'connectWithModule()' method
-  , filename(a_filename) 	// includes the path of the file
-  , parser(NULL)
-  , context(NULL)
-  , parserCheckingXML(NULL)
-  , contextCheckingXML(NULL)
-  , contextCheckingXSD(NULL)
-  , actualDepth(0)
-  , actualTagName(n_NOTSET)
-  , actualTagAttributes(this)
-  , parentTagNames()
-{
+: module(NULL) // get value with 'connectWithModule()' method
+, filename(a_filename) // includes the path of the file
+, parser(NULL)
+, context(NULL)
+, parserCheckingXML(NULL)
+, contextCheckingXML(NULL)
+, contextCheckingXSD(NULL)
+, actualDepth(0)
+, actualTagName(n_NOTSET)
+, actualTagAttributes(this)
+, parentTagNames()
+, inside_annotation(){
   xmlSetExternalEntityLoader(xmlNoNetExternalEntityLoader);
 
-  parserCheckingXML = (xmlSAXHandler *)malloc(sizeof(xmlSAXHandler));
-  memset(parserCheckingXML, 0, sizeof(xmlSAXHandler));
-  parserCheckingXML->initialized 	= XML_SAX2_MAGIC;
-  parserCheckingXML->warning 		= warningHandler;
-  parserCheckingXML->error 		= errorHandler;
+  parserCheckingXML = (xmlSAXHandler *) malloc(sizeof (xmlSAXHandler));
+  memset(parserCheckingXML, 0, sizeof (xmlSAXHandler));
+  parserCheckingXML->initialized = XML_SAX2_MAGIC;
+  parserCheckingXML->warning = warningHandler;
+  parserCheckingXML->error = errorHandler;
   contextCheckingXML = xmlCreateFileParserCtxt(a_filename);
   if (!contextCheckingXML) {
     fprintf(stderr,
@@ -66,8 +64,7 @@ XMLParser::XMLParser(const char * a_filename)
   }
   contextCheckingXML->sax = parserCheckingXML;
 
-  if (!x_flag_used)
-  {
+  if (!x_flag_used) {
     contextCheckingXSD = xmlSchemaNewParserCtxt(a_filename);
     if (!contextCheckingXSD) {
       fprintf(stderr,
@@ -79,13 +76,13 @@ XMLParser::XMLParser(const char * a_filename)
     xmlSchemaSetParserErrors(contextCheckingXSD, errorHandler, warningHandler, 0);
   }
 
-  parser = (xmlSAXHandler *)malloc(sizeof(xmlSAXHandler));
-  memset(parser, 0, sizeof(xmlSAXHandler));
+  parser = (xmlSAXHandler *) malloc(sizeof (xmlSAXHandler));
+  memset(parser, 0, sizeof (xmlSAXHandler));
   parser->initialized = XML_SAX2_MAGIC;
-  parser->startElementNs = (startElementNsSAX2Func)wrapper_to_call_startelement_h;
-  parser->endElementNs = (endElementNsSAX2Func)wrapper_to_call_endelement_h;
-  parser->characters = (charactersSAXFunc)wrapper_to_call_characterdata_h;
-  parser->comment = (commentSAXFunc)wrapper_to_call_comment_h;
+  parser->startElementNs = (startElementNsSAX2Func) wrapper_to_call_startelement_h;
+  parser->endElementNs = (endElementNsSAX2Func) wrapper_to_call_endelement_h;
+  parser->characters = (charactersSAXFunc) wrapper_to_call_characterdata_h;
+  parser->comment = (commentSAXFunc) wrapper_to_call_comment_h;
 
   context = xmlCreateFileParserCtxt(filename.c_str());
   if (!context) {
@@ -99,24 +96,28 @@ XMLParser::XMLParser(const char * a_filename)
   context->userData = this;
 }
 
-XMLParser::~XMLParser()
-{
+XMLParser::~XMLParser() {
   context->sax = NULL;
+  xmlFreeDoc(context->myDoc);
   contextCheckingXML->sax = NULL;
   free(parser);
   free(parserCheckingXML);
-  if (context) xmlFreeParserCtxt(context);
-  if (contextCheckingXML) xmlFreeParserCtxt(contextCheckingXML);
-  if (contextCheckingXSD) xmlSchemaFreeParserCtxt(contextCheckingXSD);
+  if (context) {
+    xmlFreeParserCtxt(context);
+  }
+  if (contextCheckingXML) {
+    xmlFreeParserCtxt(contextCheckingXML);
+  }
+  if (contextCheckingXSD) {
+    xmlSchemaFreeParserCtxt(contextCheckingXSD);
+  }
 }
 
-void XMLParser::checkSyntax()
-{
+void XMLParser::checkSyntax() {
   xmlParseDocument(contextCheckingXML);
 }
 
-void XMLParser::validate()
-{
+void XMLParser::validate() {
   if (!x_flag_used) {
     xmlSchemaPtr schema = xmlSchemaParse(contextCheckingXSD);
     if (schema) {
@@ -132,51 +133,48 @@ void XMLParser::validate()
           xmlFreeDoc(doc);
         }
         xmlSchemaFreeValidCtxt(validator);
+        xmlFreeParserCtxt(newcontext);
       }
       xmlSchemaFree(schema);
     }
   }
 }
 
-void XMLParser::startConversion(TTCN3Module * a_module)
-{
+void XMLParser::startConversion(TTCN3Module * a_module) {
   module = a_module;
   xmlParseDocument(context);
 }
 
 void XMLParser::wrapper_to_call_startelement_h(XMLParser *self, const xmlChar * localname, const xmlChar *, const xmlChar *,
-  int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, int, const xmlChar ** attributes)
-{
+  int nb_namespaces, const xmlChar ** namespaces, const int nb_attributes, int, const xmlChar ** attributes) {
   self->startelementHandler(localname, nb_namespaces, namespaces, nb_attributes, attributes);
 }
 
-void XMLParser::wrapper_to_call_endelement_h(XMLParser *self, const xmlChar * localname, const xmlChar *, const xmlChar *)
-{
+void XMLParser::wrapper_to_call_endelement_h(XMLParser *self, const xmlChar * localname, const xmlChar *, const xmlChar *) {
   self->endelementHandler(localname);
 }
 
-void XMLParser::wrapper_to_call_comment_h(XMLParser *self, const xmlChar * value)
-{
+void XMLParser::wrapper_to_call_comment_h(XMLParser *self, const xmlChar * value) {
   self->commentHandler(value);
 }
 
-void XMLParser::wrapper_to_call_characterdata_h(XMLParser *self, const xmlChar * ch, int len)
-{
+void XMLParser::wrapper_to_call_characterdata_h(XMLParser *self, const xmlChar * ch, int len) {
   self->characterdataHandler(ch, len);
 }
 
-void XMLParser::warningHandler(void *, const char *, ...)
-{
-  if (w_flag_used) return;
+void XMLParser::warningHandler(void *, const char *, ...) {
+  if (w_flag_used) {
+    return;
+  }
 
   xmlErrorPtr error = xmlGetLastError();
 
-  if (error->file == NULL)
+  if (error->file == NULL) {
     fprintf(stderr,
       "WARNING:\n"
       "%s",
       error->message);
-  else
+  } else {
     fprintf(stderr,
       "WARNING:\n"
       "%s (in line %d): "
@@ -184,25 +182,29 @@ void XMLParser::warningHandler(void *, const char *, ...)
       error->file,
       error->line,
       error->message);
-  ++num_warnings;
+    ++num_warnings;
+  }
 }
 
-void XMLParser::errorHandler(void *, const char *, ...)
-{
+void XMLParser::errorHandler(void *, const char *, ...) {
   xmlErrorPtr error = xmlGetLastError();
 
-  if (error->code == XML_SCHEMAP_SRC_RESOLVE) return;
-  if (error->code == XML_SCHEMAP_COS_ALL_LIMITED) return;
+  if (error->code == XML_SCHEMAP_SRC_RESOLVE) {
+    return;
+  }
+  if (error->code == XML_SCHEMAP_COS_ALL_LIMITED) {
+    return;
+  }
 
   switch (error->level) {
-  case XML_ERR_ERROR:
-    fputs("ERROR:\n", stderr);
-    break;
-  case XML_ERR_FATAL:
-    fputs("FATAL ERROR:\n", stderr);
-    break;
-  default: // warning or no error, can't happen (famous last words)
-    break;
+    case XML_ERR_ERROR:
+      fputs("ERROR:\n", stderr);
+      break;
+    case XML_ERR_FATAL:
+      fputs("FATAL ERROR:\n", stderr);
+      break;
+    default: // warning or no error, can't happen (famous last words)
+      break;
   }
 
   if (error->file != NULL) {
@@ -214,124 +216,172 @@ void XMLParser::errorHandler(void *, const char *, ...)
 }
 
 void XMLParser::startelementHandler(const xmlChar * localname,
-  int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, const xmlChar ** attributes)
-{
-  fillUpActualTagName((const char *)localname, startElement);
-  fillUpActualTagAttributes((const char **)attributes, nb_attributes);
-
-  switch (module->getActualXsdConstruct())
-  {
-  case c_unknown: {
-    switch (actualTagName)
-    {
-    case n_schema: {
-      module->setActualXsdConstruct(c_schema);
-
-      module->loadValuesFromXMLDeclaration((const char *)context->version,
-        (const char *)context->encoding, context->standalone);
-
-      List<NamespaceType> declaredNamespaces;
-      for(int i = 0; i < nb_namespaces * 2; i = i + 2)
-      {
-        NamespaceType tmp_ns_pair;
-
-        if (namespaces[i] != NULL)
-          tmp_ns_pair.prefix = (const char*)namespaces[i];
-        // else leave it as empty string
+  int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, const xmlChar ** attributes) {
+  fillUpActualTagName((const char *) localname, startElement);
+  fillUpActualTagAttributes((const char **) attributes, nb_attributes);
 
-        if (namespaces[i+1] != NULL)
-          tmp_ns_pair.uri = (const char*)namespaces[i+1];
-        // else leave it as empty string
-
-        declaredNamespaces.push_back(tmp_ns_pair);
+  switch (module->getActualXsdConstruct()) {
+    case c_unknown:
+    {
+      switch (actualTagName) {
+        case n_schema:
+        {
+          module->setActualXsdConstruct(c_schema);
+
+          module->loadValuesFromXMLDeclaration((const char *) context->version,
+            (const char *) context->encoding, context->standalone);
+
+          List<NamespaceType> declaredNamespaces;
+          for (int i = 0; i < nb_namespaces * 2; i = i + 2) {
+            NamespaceType tmp_ns_pair;
+
+            if (namespaces[i] != NULL) {
+              tmp_ns_pair.prefix = (const char*) namespaces[i];
+            }
+            // else leave it as empty string
+
+            if (namespaces[i + 1] != NULL) {
+              tmp_ns_pair.uri = (const char*) namespaces[i + 1];
+            }
+            // else leave it as empty string
+
+            declaredNamespaces.push_back(tmp_ns_pair);
+          }
+
+          module->loadValuesFromSchemaTag(actualTagAttributes.targetNamespace, declaredNamespaces,
+            actualTagAttributes.elementFormDefault, actualTagAttributes.attributeFormDefault,
+            actualTagAttributes.blockDefault);
+          break;
+        }
+        default:
+          break;
       }
-
-      module->loadValuesFromSchemaTag(actualTagAttributes.targetNamespace, declaredNamespaces,
-        actualTagAttributes.elementFormDefault, actualTagAttributes.attributeFormDefault);
-      break; }
-    default:
       break;
     }
-    break; }
 
-  case c_schema: {
-    switch (actualTagName)
+    case c_schema:
     {
-    case n_simpleType:
-      module->addMainType(c_simpleType);
-      break;
-    case n_element:
-      module->addMainType(c_element);
-      break;
-    case n_attribute:
-      module->addMainType(c_attribute);
-      break;
-    case n_complexType:
-      module->addMainType(c_complexType);
-      break;
-    case n_group:
-      module->addMainType(c_group);
-      break;
-    case n_attributeGroup:
-      module->addMainType(c_attributeGroup);
-      break;
-    case n_include:
-      module->addMainType(c_include);
-      break;
-    case n_import:
-      module->addMainType(c_import);
-      break;
-    case n_annotation:
-      module->addMainType(c_annotation);
+      switch (actualTagName) {
+        case n_simpleType:
+          module->addMainType(c_simpleType);
+          break;
+        case n_element:
+          module->addMainType(c_element);
+          break;
+        case n_attribute:
+          module->addMainType(c_attribute);
+          break;
+        case n_complexType:
+          module->addMainType(c_complexType);
+          break;
+        case n_group:
+          module->addMainType(c_group);
+          break;
+        case n_attributeGroup:
+          module->addMainType(c_attributeGroup);
+          break;
+        case n_include:
+          module->addMainType(c_include);
+          break;
+        case n_import:
+          module->addMainType(c_import);
+          break;
+        default:
+          break;
+      }
       break;
+    }
+
     default:
+      if (module->hasDefinedMainType()) {
+         if(actualTagName == n_annotation ||
+            actualTagName == n_appinfo ||
+            actualTagName == n_documentation){
+          inside_annotation.push_back(actualTagName);
+          module->getLastMainType().loadWithValues();
+        }else if(inside_annotation.empty()){
+          module->getLastMainType().loadWithValues();
+        }
+      }
       break;
-    }
-    break; }
+  }
 
-  default:
-    if (module->hasDefinedMainType()) module->getLastMainType().loadWithValues();
-    break;
+  //Standard section 7.1.1
+  if (!actualTagAttributes.id.empty()) {
+    ConstructType type = module->getActualXsdConstruct();
+    module->addMainType(c_idattrib);
+    module->setActualXsdConstruct(type);
   }
 
   ++actualDepth;
   parentTagNames.push_back(actualTagName);
 }
 
-void XMLParser::endelementHandler(const xmlChar * localname)
-{
-  fillUpActualTagName((const char *)localname, endElement);
+void XMLParser::endelementHandler(const xmlChar * localname) {
+  fillUpActualTagName((const char *) localname, endElement);
+
+  bool modify = false;
+  TagName tag = parentTagNames.back();
+  //After some tags there is no need to call modifyValues
+  if (tag == n_element ||
+    tag == n_all ||
+    tag == n_choice ||
+    tag == n_group ||
+    tag == n_attributeGroup ||
+    tag == n_extension ||
+    tag == n_simpleType ||
+    tag == n_simpleContent ||
+    tag == n_sequence ||
+    tag == n_complexType ||
+    tag == n_complexContent ||
+    tag == n_attribute ||
+    tag == n_anyAttribute
+    ) {
+    modify = true;
+  }
+
+  if(tag == n_annotation ||
+     tag == n_appinfo ||
+     tag == n_documentation){
+    inside_annotation.pop_back();
+  }
 
-  parentTagNames.pop_back();
 
   --actualDepth;
-  if (actualDepth == 0) module->setActualXsdConstruct(c_schema);
-  if (actualDepth == 1) module->setActualXsdConstruct(c_schema);
+  if (actualDepth == 0 || actualDepth == 1) {
+    module->setActualXsdConstruct(c_schema);
+  }
 
-  if (module->hasDefinedMainType()) module->getLastMainType().modifyValues();
+  if (module->hasDefinedMainType() && modify) {
+    module->getLastMainType().modifyValues();
+  }
+  parentTagNames.pop_back();
 }
 
-
-void XMLParser::commentHandler(const xmlChar * text)
-{
-  Mstring comment((const char *)text);
+void XMLParser::commentHandler(const xmlChar * text) {
+  Mstring comment((const char *) text);
   comment.removeWSfromBegin();
   comment.removeWSfromEnd();
-  if (comment.empty()) return;
+  if (comment.empty()) {
+    return;
+  }
 
   if (module->getActualXsdConstruct() == c_schema) {
     module->addMainType(c_annotation);
     module->setActualXsdConstruct(c_schema); // actualXsdConstruct was set to c_annotation
   }
 
-  if (module->hasDefinedMainType()) module->getLastMainType().addComment(comment);
+  if (module->hasDefinedMainType()) {
+    module->getLastMainType().addComment(comment);
+  }
 }
 
-void XMLParser::characterdataHandler(const xmlChar * text, int length)
-{
-  if (suspended) return;
+void XMLParser::characterdataHandler(const xmlChar * text, const int length) {
+  if (suspended) {
+    return;
+  }
 
-  char * temp = (char *)Malloc(length + 1);
+  char * temp = (char *) Malloc(length + 1);
   memcpy(temp, text, length);
   temp[length] = '\0';
   Mstring comment(temp);
@@ -339,16 +389,19 @@ void XMLParser::characterdataHandler(const xmlChar * text, int length)
 
   comment.removeWSfromBegin();
   comment.removeWSfromEnd();
-  if (comment.empty()) return;
+  if (comment.empty()) {
+    return;
+  }
 
   if (module->getActualXsdConstruct() == c_schema) {
     module->addMainType(c_annotation);
   }
-  if (module->hasDefinedMainType()) module->getLastMainType().addComment(comment);
+  if (module->hasDefinedMainType()) {
+    module->getLastMainType().addComment(comment);
+  }
 }
 
-void XMLParser::fillUpActualTagName(const char * localname, tagMode mode)
-{
+void XMLParser::fillUpActualTagName(const char * localname, const tagMode mode) {
   Mstring name_s(localname);
 
   if (name_s == "all")
@@ -361,17 +414,17 @@ void XMLParser::fillUpActualTagName(const char * localname, tagMode mode)
     actualTagName = n_anyAttribute;
   else if (name_s == "appinfo") {
     actualTagName = n_appinfo;
-    switch (mode)
-    {
-    case startElement:
-      suspended = true;
-      break;
-    case endElement:
-      suspended = false;
-      break;
+    switch (mode) {
+      case startElement:
+        suspended = true;
+        break;
+      case endElement:
+        suspended = false;
+        break;
+      default:
+        break;
     }
-  }
-  else if (name_s == "attribute")
+  } else if (name_s == "attribute")
     actualTagName = n_attribute;
   else if (name_s == "attributeGroup")
     actualTagName = n_attributeGroup;
@@ -398,12 +451,14 @@ void XMLParser::fillUpActualTagName(const char * localname, tagMode mode)
         Mstring("The 'field' tag is ignored by the standard."));
       ++num_warnings;
     }
-  }
-  else if (name_s == "fractionDigits") {
+  } else if (name_s == "fractionDigits") {
     actualTagName = n_fractionDigits;
-    // silently ignored
-  }
-  else if (name_s == "group")
+    if (mode == startElement) {
+      printWarning(filename, xmlSAX2GetLineNumber(context),
+        Mstring("The 'fractionDigits' tag is currently not supported."));
+      ++num_warnings;
+    }
+  } else if (name_s == "group")
     actualTagName = n_group;
   else if (name_s == "import")
     actualTagName = n_import;
@@ -416,16 +471,14 @@ void XMLParser::fillUpActualTagName(const char * localname, tagMode mode)
         Mstring("The 'key' tag is ignored by the standard."));
       ++num_warnings;
     }
-  }
-  else if (name_s == "keyref") {
+  } else if (name_s == "keyref") {
     actualTagName = n_keyref;
     if (mode == startElement) {
       printWarning(filename, xmlSAX2GetLineNumber(context),
         Mstring("The 'keyref' tag ignored by the standard."));
       ++num_warnings;
     }
-  }
-  else if (name_s == "length")
+  } else if (name_s == "length")
     actualTagName = n_length;
   else if (name_s == "label")
     actualTagName = n_label;
@@ -460,8 +513,7 @@ void XMLParser::fillUpActualTagName(const char * localname, tagMode mode)
         Mstring("The 'selector' tag ignored by the standard."));
       ++num_warnings;
     }
-  }
-  else if (name_s == "sequence")
+  } else if (name_s == "sequence")
     actualTagName = n_sequence;
   else if (name_s == "simpleContent")
     actualTagName = n_simpleContent;
@@ -478,13 +530,12 @@ void XMLParser::fillUpActualTagName(const char * localname, tagMode mode)
         Mstring("The 'unique' tag ignored by the standard."));
       ++num_warnings;
     }
-  }
-  else if (name_s == "whiteSpace")
+  } else if (name_s == "whiteSpace")
     actualTagName = n_whiteSpace;
 }
 
-void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_count)
-{
+void XMLParser::fillUpActualTagAttributes(const char ** attributes, const int att_count) {
+
   struct attribute_data {
     const char * name;
     const char * prefix;
@@ -492,7 +543,7 @@ void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_coun
     const char * value_start;
     const char * value_end;
   };
-  attribute_data * ad = (attribute_data *)attributes;
+  attribute_data * ad = (attribute_data *) attributes;
 
   Mstring * att_name_s = new Mstring[att_count];
   Mstring * att_value_s = new Mstring[att_count];
@@ -508,8 +559,7 @@ void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_coun
       printWarning(filename, xmlSAX2GetLineNumber(context),
         Mstring("The 'abstract' attribute is currently not supported."));
       ++num_warnings;
-    }
-    else if (att_name_s[i] == "attributeFormDefault")
+    } else if (att_name_s[i] == "attributeFormDefault")
       att_name_e[i] = a_attributeFormDefault;
     else if (att_name_s[i] == "base")
       att_name_e[i] = a_base;
@@ -518,17 +568,15 @@ void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_coun
       printWarning(filename, xmlSAX2GetLineNumber(context),
         Mstring("The 'block' attribute is currently not supported."));
       ++num_warnings;
-    }
-    else if (att_name_s[i] == "blockDefault")
-      ;
-    else if (att_name_s[i] == "default")
+    } else if (att_name_s[i] == "blockDefault"){
+      att_name_e[i] = a_blockDefault;
+    } else if (att_name_s[i] == "default")
       att_name_e[i] = a_default;
     else if (att_name_s[i] == "elementFormDefault")
       att_name_e[i] = a_elementFormDefault;
     else if (att_name_s[i] == "final") {
       att_name_e[i] = a_final; // no effect on the output
-    }
-    else if (att_name_s[i] == "finalDefault")
+    } else if (att_name_s[i] == "finalDefault")
       ;
     else if (att_name_s[i] == "fixed")
       att_name_e[i] = a_fixed;
@@ -557,18 +605,16 @@ void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_coun
     else if (att_name_s[i] == "processContents") {
       att_name_e[i] = a_processContents;
       // silently ignored
-    }
-    else if (att_name_s[i] == "ref")
+    } else if (att_name_s[i] == "ref")
       att_name_e[i] = a_ref;
     else if (att_name_s[i] == "schemaLocation")
       att_name_e[i] = a_schemaLocation;
     else if (att_name_s[i] == "substitutionGroup") {
       att_name_e[i] = a_substitutionGroup;
-      printWarning(filename, xmlSAX2GetLineNumber(context),
-        Mstring("The 'substitutionGroup' attribute is currently not supported."));
-      ++num_warnings;
-    }
-    else if (att_name_s[i] == "targetNamespace")
+      //printWarning(filename, xmlSAX2GetLineNumber(context),
+        //Mstring("The 'substitutionGroup' attribute is currently not supported."));
+      //++num_warnings;
+    } else if (att_name_s[i] == "targetNamespace")
       att_name_e[i] = a_targetNamespace;
     else if (att_name_s[i] == "type")
       att_name_e[i] = a_type;
@@ -576,8 +622,8 @@ void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_coun
       att_name_e[i] = a_use;
     else if (att_name_s[i] == "value")
       att_name_e[i] = a_value;
-    else if (att_name_s[i] == "version")
-      {}
+    else if (att_name_s[i] == "version") {
+    }
   }
   actualTagAttributes.fillUp(att_name_e, att_value_s, att_count);
   delete [] att_name_s;
@@ -587,37 +633,39 @@ void XMLParser::fillUpActualTagAttributes(const char ** attributes, int att_coun
 
 XMLParser::TagAttributes::TagAttributes(XMLParser * withThisParser)
 : parser(withThisParser)
-  , attributeFormDefault(notset)
-  , base()
-  , default_()
-  , elementFormDefault(notset)
-  , fixed()
-  , form(notset)
-  , id()
-  , itemType()
-  , maxOccurs(1)
-  , memberTypes()
-  , minOccurs(1)
-  , mixed(false)
-  , name()
-  , namespace_()
-  , nillable(false)
-  , ref()
-  , schemaLocation()
-  , source()
-  , targetNamespace()
-  , type()
-  , use(optional)
-  , value()
-  {}
-
-void XMLParser::TagAttributes::fillUp(TagAttributeName * att_name_e, Mstring * att_value_s, int att_count)
-{
+, attributeFormDefault(notset)
+, base()
+, default_()
+, elementFormDefault(notset)
+, fixed()
+, form(notset)
+, id()
+, itemType()
+, maxOccurs(1)
+, memberTypes()
+, minOccurs(1)
+, mixed(false)
+, name()
+, namespace_()
+, nillable(false)
+, ref()
+, schemaLocation()
+, source()
+, targetNamespace()
+, type()
+, use(optional)
+, value() {
+}
+
+void XMLParser::TagAttributes::fillUp(TagAttributeName * att_name_e, Mstring * att_value_s, const int att_count) {
   /**
    * Reset
    */
+  abstract = false;
   attributeFormDefault = notset;
   base.clear();
+  block = not_set,
+  blockDefault = not_set,
   default_.clear();
   elementFormDefault = notset;
   fixed.clear();
@@ -634,6 +682,7 @@ void XMLParser::TagAttributes::fillUp(TagAttributeName * att_name_e, Mstring * a
   ref.clear();
   schemaLocation.clear();
   source.clear();
+  substitionGroup = empty_string;
   targetNamespace.clear();
   type.clear();
   use = optional;
@@ -642,120 +691,149 @@ void XMLParser::TagAttributes::fillUp(TagAttributeName * att_name_e, Mstring * a
    * Upload
    */
   for (int i = 0; i != att_count; ++i) {
-    switch (att_name_e[i])
-    {
-    case a_abstract: // Not supported by now
-      break;
-    case a_attributeFormDefault: // qualified | unqualified
-      if (att_value_s[i] == "qualified")
-        attributeFormDefault = qualified;
-      else if (att_value_s[i] == "unqualified")
-        attributeFormDefault = unqualified;
-      break;
-    case a_base: // QName = anyURI + NCName
-      base = att_value_s[i];
-      break;
-    case a_block: // Not supported by now
-      break;
-    case a_blockDefault: // Not supported by now
-      break;
-    case a_default: // string
-      default_ = att_value_s[i];
-      break;
-    case a_elementFormDefault:
-      if (att_value_s[i] == "qualified")
-        elementFormDefault = qualified;
-      else if (att_value_s[i] == "unqualified")
-        elementFormDefault = unqualified;
-      break;
-    case a_final: // Not supported by now
-      break;
-    case a_finalDefault: // Not supported by now
-      break;
-    case a_fixed: // string
-      fixed = att_value_s[i];
-      break;
-    case a_form: // qualified | unqualified
-      if (att_value_s[i] == "qualified")
-        form = qualified;
-      else if (att_value_s[i] == "unqualified")
-        form = unqualified;
-      break;
-    case a_lang:
-      break;
-    case a_id: // ID = NCName
-      id = att_value_s[i];
-      break;
-    case a_itemType: // QName = anyURI + NCName /- used in 'list' tag only
-      itemType = att_value_s[i];
-      break;
-    case a_maxOccurs: // nonNegativeinteger or 'unbounded'
-      if (att_value_s[i] == "unbounded")
-        maxOccurs = ULLONG_MAX;
-      else
-        maxOccurs = strtoull(att_value_s[i].c_str(), NULL, 0);
-      break;
-    case a_memberTypes: // list of QNames - used in 'union' tag only
-      memberTypes = att_value_s[i];
-      break;
-    case a_minOccurs: // nonNegativeInteger
-      minOccurs = strtoull(att_value_s[i].c_str(), NULL, 0);
-      break;
-    case a_mixed: // true | false
-      if (att_value_s[i] == "true")
-        mixed = true;
-      else if (att_value_s[i] == "false")
-        mixed = false;
-      break;
-    case a_name: // NCName
-      name = att_value_s[i];
-      break;
-    case a_namespace: // anyURI
-      namespace_ = att_value_s[i];
-      break;
-    case a_nillable: // true | false
-      if (att_value_s[i] == "true")
-        nillable = true;
-      else if (att_value_s[i] == "false")
-        nillable = false;
-      break;
-    case a_processContents: // Not supported by now
-      break;
-    case a_ref: // QName = anyURI + NCName
-      ref = att_value_s[i];
-      break;
-    case a_schemaLocation: // anyURI
-      schemaLocation = att_value_s[i];
-      break;
-    case a_substitutionGroup: // Not supported by now
-      break;
-    case a_targetNamespace: // anyURI
-      targetNamespace = att_value_s[i];
-      break;
-    case a_type: // QName = anyURI + NCName
-      type = att_value_s[i];
-      break;
-    case a_use: // optional | prohibited | required - used in 'use' tag only
-      if (att_value_s[i] == "optional")
-        use = optional;
-      else if (att_value_s[i] == "prohibited")
-        use = prohibited;
-      else if (att_value_s[i] == "required")
-        use = required;
-      break;
-    case a_value: // value of FACETS
-      value = att_value_s[i];
-      break;
-    case a_source:
-    case a_xpath:
-    case a_version: // Not supported by now
-      break;
-    case a_NOTSET:
-      break;
-    default:
-      fprintf(stderr, "Unknown TagAttributeName %d\n", att_name_e[i]);
-      abort();
-      break;
+    switch (att_name_e[i]) {
+      case a_abstract: // Not supported by now
+        if (att_value_s[i] == "true") {
+          abstract = true;
+        } else if (att_value_s[i] == "false") {
+          abstract = false;
+        }
+      case a_attributeFormDefault: // qualified | unqualified
+        if (att_value_s[i] == "qualified") {
+          attributeFormDefault = qualified;
+        } else if (att_value_s[i] == "unqualified") {
+          attributeFormDefault = unqualified;
+        }
+        break;
+      case a_base: // QName = anyURI + NCName
+        base = att_value_s[i];
+        break;
+      case a_block: // Not supported by now
+        if(att_value_s[i] == "#all"){
+          block = all;
+        }else if(att_value_s[i] == "substitution"){
+          block = substitution;
+        }else if(att_value_s[i] == "restriction"){
+          block = restriction;
+        }else if(att_value_s[i] == "extension"){
+          block = extension;
+        }
+        break;
+      case a_blockDefault: // Not supported by now
+        if(att_value_s[i] == "#all"){
+          blockDefault = all;
+        }else if(att_value_s[i] == "substitution"){
+          blockDefault = substitution;
+        }else if(att_value_s[i] == "restriction"){
+          blockDefault = restriction;
+        }else if(att_value_s[i] == "extension"){
+          blockDefault = extension;
+        }
+        break;
+      case a_default: // string
+        default_ = att_value_s[i];
+        break;
+      case a_elementFormDefault:
+        if (att_value_s[i] == "qualified") {
+          elementFormDefault = qualified;
+        } else if (att_value_s[i] == "unqualified") {
+          elementFormDefault = unqualified;
+        }
+        break;
+      case a_final: // Not supported by now
+        break;
+      case a_finalDefault: // Not supported by now
+        break;
+      case a_fixed: // string
+        fixed = att_value_s[i];
+        break;
+      case a_form: // qualified | unqualified
+        if (att_value_s[i] == "qualified") {
+          form = qualified;
+        } else if (att_value_s[i] == "unqualified") {
+          form = unqualified;
+        }
+        break;
+      case a_lang:
+        break;
+      case a_id: // ID = NCName
+        id = att_value_s[i];
+        break;
+      case a_itemType: // QName = anyURI + NCName /- used in 'list' tag only
+        itemType = att_value_s[i];
+        break;
+      case a_maxOccurs: // nonNegativeinteger or 'unbounded'
+        if (att_value_s[i] == "unbounded") {
+          maxOccurs = ULLONG_MAX;
+        } else {
+          maxOccurs = strtoull(att_value_s[i].c_str(), NULL, 0);
+        }
+        break;
+      case a_memberTypes: // list of QNames - used in 'union' tag only
+        memberTypes = att_value_s[i];
+        break;
+      case a_minOccurs: // nonNegativeInteger
+        minOccurs = strtoull(att_value_s[i].c_str(), NULL, 0);
+        break;
+      case a_mixed: // true | false
+        if (att_value_s[i] == "true") {
+          mixed = true;
+        } else if (att_value_s[i] == "false") {
+          mixed = false;
+        }
+        break;
+      case a_name: // NCName
+        name = att_value_s[i];
+        break;
+      case a_namespace: // anyURI
+        namespace_ = att_value_s[i];
+        break;
+      case a_nillable: // true | false
+        if (att_value_s[i] == "true") {
+          nillable = true;
+        } else if (att_value_s[i] == "false") {
+          nillable = false;
+        }
+        break;
+      case a_processContents: // Not supported by now
+        break;
+      case a_ref: // QName = anyURI + NCName
+        ref = att_value_s[i];
+        break;
+      case a_schemaLocation: // anyURI
+        schemaLocation = att_value_s[i];
+        break;
+      case a_substitutionGroup:
+        substitionGroup = att_value_s[i];
+        break;
+      case a_targetNamespace: // anyURI
+        targetNamespace = att_value_s[i];
+        break;
+      case a_type: // QName = anyURI + NCName
+        type = att_value_s[i];
+        break;
+      case a_use: // optional | prohibited | required - used in 'use' tag only
+        if (att_value_s[i] == "optional") {
+          use = optional;
+        } else if (att_value_s[i] == "prohibited") {
+          use = prohibited;
+        } else if (att_value_s[i] == "required") {
+          use = required;
+        }
+        break;
+      case a_value: // value of FACETS
+        value = att_value_s[i];
+        break;
+      case a_source:
+      case a_xpath:
+      case a_version: // Not supported by now
+        break;
+      case a_NOTSET:
+        break;
+      default:
+        fprintf(stderr, "Unknown TagAttributeName %d\n", att_name_e[i]);
+        abort();
+        break;
     }
   }
 }
diff --git a/xsdconvert/XMLParser.hh b/xsdconvert/XMLParser.hh
index 1a6a2e03f..980062ee6 100644
--- a/xsdconvert/XMLParser.hh
+++ b/xsdconvert/XMLParser.hh
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -19,72 +19,16 @@
 
 class TTCN3Module;
 
-class XMLParser
-{
+class XMLParser {
 public:
   /**
    * List of possible names of XSD tags
    */
-  enum TagName
-  {
-    // XSD Elements:
-    n_all,
-    n_annotation,
-    n_any,
-    n_anyAttribute,
-    n_appinfo,
-    n_attribute,
-    n_attributeGroup,
-    n_choice,
-    n_complexContent,
-    n_complexType,
-    n_documentation,
-    n_element,
-    n_extension,
-    n_field, // Not supported by now
-    n_group,
-    n_import,
-    n_include,
-    n_key, // Not supported by now
-    n_keyref, // Not supported by now
-    n_list,
-    n_notation, // Not supported by now
-    n_redefine,
-    n_restriction,
-    n_schema,
-    n_selector, // Not supported by now
-    n_sequence,
-    n_simpleContent,
-    n_simpleType,
-    n_union,
-    n_unique, // Not supported by now
-
-    // XSD Restrictions / Facets for Datatypes:
-    n_enumeration,
-    n_fractionDigits, // Not supported by now
-    n_length,
-    n_maxExclusive,
-    n_maxInclusive,
-    n_maxLength,
-    n_minExclusive,
-    n_minInclusive,
-    n_minLength,
-    n_pattern,
-    n_totalDigits,
-    n_whiteSpace,
-
-    // Others - non-standard, but used:
-    n_label, // ???
-    n_definition, // ???
-
-    n_NOTSET
-  };
 
   /**
    * List of possible names of XSD tag attributes
    */
-  enum TagAttributeName
-  {
+  enum TagAttributeName {
     a_abstract, // Not supported by now
     a_attributeFormDefault,
     a_base,
@@ -121,18 +65,20 @@ public:
     a_NOTSET
   };
 
-  class TagAttributes
-  {
-    TagAttributes (const TagAttributes &); // not implemented
-    TagAttributes & operator = (const TagAttributes &); // not implemented
+  class TagAttributes {
+    TagAttributes(const TagAttributes &); // not implemented
+    TagAttributes & operator=(const TagAttributes &); // not implemented
   public:
     XMLParser * parser; // not responsibility for the member
 
     /**
      * Members for storing actual values of attributes of an XML tag
      */
+    bool abstract;
     FormValue attributeFormDefault;
     Mstring base;
+    BlockValue block;
+    BlockValue blockDefault;
     Mstring default_;
     FormValue elementFormDefault;
     Mstring fixed;
@@ -149,24 +95,24 @@ public:
     Mstring ref;
     Mstring schemaLocation;
     Mstring source;
+    Mstring substitionGroup;
     Mstring targetNamespace;
     Mstring type;
     UseValue use;
     Mstring value;
 
-    TagAttributes (XMLParser * withThisParser);
+    TagAttributes(XMLParser * withThisParser);
     // Default destructor is used
 
     /**
      * Clear and fill up object with values of attributes of current XML tag
      */
-    void fillUp (TagAttributeName * att_name_e, Mstring * att_value_s, int att_count);
+    void fillUp(TagAttributeName * att_name_e, Mstring * att_value_s, const int att_count);
   };
 
 private:
 
-  enum tagMode
-  {
+  enum tagMode {
     startElement,
     endElement
   };
@@ -216,6 +162,9 @@ private:
    */
   List<TagName> parentTagNames;
 
+  // Stack for keeping track if we are inside an annotation tag
+  List<TagName> inside_annotation;
+
   static bool suspended;
 
   /**
@@ -229,19 +178,19 @@ private:
   /**
    *  Callback functions for LibXML SAX parser
    */
-  void startelementHandler (const xmlChar * localname, int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, const xmlChar ** attributes);
-  void endelementHandler (const xmlChar * localname);
-  void characterdataHandler (const xmlChar * text, int length);
-  void commentHandler (const xmlChar * text);
+  void startelementHandler(const xmlChar * localname, const int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, const xmlChar ** attributes);
+  void endelementHandler(const xmlChar * localname);
+  void characterdataHandler(const xmlChar * text, const int length);
+  void commentHandler(const xmlChar * text);
 
   /** Callbacks cannot be member functions, use these static members as wrappers */
-  static void wrapper_to_call_startelement_h (XMLParser *self, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI, int nb_namespaces,	const xmlChar ** namespaces, int nb_attributes, int nb_defaulted, const xmlChar ** attributes);
-  static void wrapper_to_call_endelement_h (XMLParser *self, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI);
-  static void wrapper_to_call_characterdata_h (XMLParser *self, const xmlChar * ch, int len);
-  static void wrapper_to_call_comment_h (XMLParser *self, const xmlChar * value);
+  static void wrapper_to_call_startelement_h(XMLParser *self, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI, int nb_namespaces, const xmlChar ** namespaces, int nb_attributes, int nb_defaulted, const xmlChar ** attributes);
+  static void wrapper_to_call_endelement_h(XMLParser *self, const xmlChar * localname, const xmlChar * prefix, const xmlChar * URI);
+  static void wrapper_to_call_characterdata_h(XMLParser *self, const xmlChar * ch, int len);
+  static void wrapper_to_call_comment_h(XMLParser *self, const xmlChar * value);
 
-  static void warningHandler (void * ctx, const char * msg, ...);
-  static void errorHandler (void * ctx, const char * msg, ...);
+  static void warningHandler(void * ctx, const char * msg, ...);
+  static void errorHandler(void * ctx, const char * msg, ...);
 
   /**
    * Converts name of read tag to enumerated value
@@ -250,45 +199,73 @@ private:
    * mode argument indicates that it is called when
    * startelement or endelement arrived
    */
-  void fillUpActualTagName (const char * localname, tagMode mode);
+  void fillUpActualTagName(const char * localname, const tagMode mode);
 
   /**
    * Converts name and value of attributes of read tag
    * and fill actualTagAttributes object with current values
    */
-  void fillUpActualTagAttributes (const char ** attributes, int att_count);
+  void fillUpActualTagAttributes(const char ** attributes, const int att_count);
 
-  XMLParser (const XMLParser &); // not implemented
-  XMLParser & operator = (const XMLParser &); // not implemented
+  XMLParser(const XMLParser &); // not implemented
+  XMLParser & operator=(const XMLParser &); // not implemented
 public:
-  XMLParser (const char * a_filename);
-  ~XMLParser ();
+  XMLParser(const char * a_filename);
+  ~XMLParser();
 
   /**
    * After an XMLParser object is born
    * there is need to connect it with a TTCN3Module object
    * for loading the read data into it
    */
-  void connectWithModule (TTCN3Module * a_module);
+  void connectWithModule(TTCN3Module * a_module);
 
   /**
    * Start syntax checking, validation and parse
    */
-  void checkSyntax ();
-  void validate ();
-  void startConversion (TTCN3Module * a_module);
-
-  static unsigned int getNumErrors () {return num_errors;}
-  static unsigned int getNumWarnings () {return num_warnings;}
-  static void incrNumErrors () {++num_errors;}
-  static void incrNumWarnings () {++num_warnings;}
-
-  const Mstring & getFilename () const {return filename;}
-  int getActualLineNumber () const {return xmlSAX2GetLineNumber(context);}
-  int getActualDepth () const {return actualDepth;}
-  TagName getActualTagName () const {return actualTagName;}
-  TagName getParentTagName () {return parentTagNames.empty() ? n_NOTSET : parentTagNames.back();}
-  const TagAttributes & getActualTagAttributes () const {return actualTagAttributes;}
+  void checkSyntax();
+  void validate();
+  void startConversion(TTCN3Module * a_module);
+
+  static unsigned int getNumErrors() {
+    return num_errors;
+  }
+
+  static unsigned int getNumWarnings() {
+    return num_warnings;
+  }
+
+  static void incrNumErrors() {
+    ++num_errors;
+  }
+
+  static void incrNumWarnings() {
+    ++num_warnings;
+  }
+
+  const Mstring & getFilename() const {
+    return filename;
+  }
+
+  int getActualLineNumber() const {
+    return xmlSAX2GetLineNumber(context);
+  }
+
+  int getActualDepth() const {
+    return actualDepth;
+  }
+
+  TagName getActualTagName() const {
+    return actualTagName;
+  }
+
+  TagName getParentTagName() const {
+    return parentTagNames.empty() ? n_NOTSET : parentTagNames.back();
+  }
+
+  const TagAttributes & getActualTagAttributes() const {
+    return actualTagAttributes;
+  }
 };
 
 #endif /* PARSER_HH_ */
diff --git a/xsdconvert/converter.cc b/xsdconvert/converter.cc
index 862ada50a..02bbc555d 100644
--- a/xsdconvert/converter.cc
+++ b/xsdconvert/converter.cc
@@ -1,5 +1,5 @@
 ///////////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2000-2014 Ericsson Telecom AB
+// 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
@@ -21,6 +21,7 @@ bool c_flag_used = false;
 int  d_flag_used = 0;
 bool e_flag_used = false;
 bool f_flag_used = false;
+bool g_flag_used = true;
 bool p_flag_used = false;
 bool s_flag_used = false;
 bool t_flag_used = false;
@@ -32,19 +33,18 @@ bool z_flag_used = false;
 static void printProductinfo();
 static void printUsage(const char * argv0);
 static void printVersion();
-static void printErrorStatistics(unsigned int errors, unsigned int warnings);
+static void printErrorStatistics(const unsigned int errors, const unsigned int warnings);
 static bool generatePredefinedModules();
 static char **readModulesFromFile(const char *from_file, int *last_module);
-static int checkSyntax(bool not_verbose, int first_module, int last_module,
-                       const char * const * const module_names);
-static int validate(int first_module, int last_module,
-                    const char * const * const module_names);
-static int generateCode(bool quiet, bool need_predefined,
-                        int first_module, int last_module,
-                        const char * const * const module_names);
-
-int main(int argc, char **argv)
-{
+static int checkSyntax(const bool not_verbose, const int first_module, const int last_module,
+  const char * const * const module_names);
+static int validate(int const first_module, int const last_module,
+  const char * const * const module_names);
+static int generateCode(const bool quiet, const bool need_predefined,
+  const int first_module, const int last_module,
+  const char * const * const module_names);
+
+int main(int argc, char **argv) {
   if (argc == 1) {
     printProductinfo();
     printUsage(argv[0]);
@@ -56,144 +56,148 @@ int main(int argc, char **argv)
   char c;
   opterr = 0;
 
-  while ((c = getopt(argc, argv, "cdef:pqstvwxz")) != -1)
-  {
-    switch(c)
-    {
-    case 'c':
-      c_flag_used = true;
-      break;
-    case 'd':
-      ++d_flag_used;
-      break;
-    case 'e':
-      e_flag_used = true;
-      break;
-    case 'f':
-      f_flag_used = true;
-      from_file = optarg;
-      break;
-    case 'p':
-      p_flag_used = true;
-      break;
-    case 's':
-      s_flag_used = true;
-      break;
-    case 't':
-      t_flag_used = true;
-      break;
-    case 'v':
-      printProductinfo();
-      printVersion();
+  while ((c = getopt(argc, argv, "cdef:gpqstvwxz")) != -1) {
+    switch (c) {
+      case 'c':
+        c_flag_used = true;
+        break;
+      case 'd':
+        ++d_flag_used;
+        break;
+      case 'e':
+        e_flag_used = true;
+        break;
+      case 'f':
+        f_flag_used = true;
+        from_file = optarg;
+        break;
+      case 'g':
+        g_flag_used = false;
+        break;
+      case 'p':
+        p_flag_used = true;
+        break;
+      case 's':
+        s_flag_used = true;
+        break;
+      case 't':
+        t_flag_used = true;
+        break;
+      case 'v':
+        printProductinfo();
+        printVersion();
 #ifdef LICENSE
-      print_license_info();
+        print_license_info();
 #endif
-      return EXIT_SUCCESS;
-    case 'q':
-      q_flag_used = true;
-      break;
-    case 'w':
-      w_flag_used = true;
-      break;
-    case 'x':
-      x_flag_used = true;
-      break;
-    case 'z':
-      z_flag_used = true;
-      break;
-    default:
-      fprintf(stderr, "ERROR:\nInvalid option: -%c!\n", char(optopt));
-      printUsage(argv[0]);
-      return EXIT_FAILURE;
+        return EXIT_SUCCESS;
+      case 'q':
+        q_flag_used = true;
+        break;
+      case 'w':
+        w_flag_used = true;
+        break;
+      case 'x':
+        x_flag_used = true;
+        break;
+      case 'z':
+        z_flag_used = true;
+        break;
+      default:
+        fprintf(stderr, "ERROR:\nInvalid option: -%c!\n", char(optopt));
+        printUsage(argv[0]);
+        return EXIT_FAILURE;
     }
   }
 
-  int first_module = f_flag_used ? 0 : optind,
-    last_module = f_flag_used ? 0 : argc;
+  int first_module = f_flag_used ? 0 : optind;
+  int last_module = f_flag_used ? 0 : argc;
   char **module_names = f_flag_used ? NULL : argv;
-
-  if (f_flag_used) {
-    // Idea from CR_TR00015706.
-    module_names = readModulesFromFile(from_file, &last_module);
-    if (!module_names) {
-      fprintf(stderr, "ERROR: The file `%s' holding the XSD files cannot be "
-              "processed!\n", from_file);
-      goto error;
+  try {
+    if (f_flag_used) {
+      // Idea from CR_TR00015706.
+      module_names = readModulesFromFile(from_file, &last_module);
+      if (!module_names) {
+        fprintf(stderr, "ERROR: The file `%s' holding the XSD files cannot be "
+          "processed!\n", from_file);
+        throw 1;
+      }
     }
-  }
 
-  if (last_module - first_module <= 0) {
-    fprintf(stderr, "ERROR:\nNo module name was specified!\n");
-    printUsage(argv[0]);
-    goto error;
-  }
+    if (last_module - first_module <= 0) {
+      fprintf(stderr, "ERROR:\nNo module name was specified!\n");
+      printUsage(argv[0]);
+      throw 1;
+    }
 
 #ifdef LICENSE
-  {
-    init_openssl();
-    license_struct lstr;
-    load_license  (&lstr);
-    int license_valid = verify_license(&lstr);
-    free_license  (&lstr);
-    free_openssl();
-    if (!license_valid) {
-      exit(EXIT_FAILURE);
+    {
+      init_openssl();
+      license_struct lstr;
+      load_license(&lstr);
+      int license_valid = verify_license(&lstr);
+      free_license(&lstr);
+      free_openssl();
+      if (!license_valid) {
+        exit(EXIT_FAILURE);
+      }
     }
-  }
 #endif
 
-  for (int i = first_module; i < last_module; ++i) {
-    if (!fopen(module_names[i], "r")) {
-      fprintf(stderr, "ERROR:\nInput file `%s' does not exist.\n",
-              module_names[i]);
-      goto error;
+    for (int i = first_module; i < last_module; ++i) {
+      if (!fopen(module_names[i], "r")) {
+        fprintf(stderr, "ERROR:\nInput file `%s' does not exist.\n",
+          module_names[i]);
+        throw 1;
+      }
     }
-  }
 
-  if (checkSyntax(q_flag_used, first_module, last_module, module_names) == EXIT_FAILURE)
-    goto error;
+    if (checkSyntax(q_flag_used, first_module, last_module, module_names) == EXIT_FAILURE) {
+      throw 1;
+    }
 
-  if (validate(first_module, last_module, module_names) == EXIT_FAILURE)
-    goto error;
+    if (validate(first_module, last_module, module_names) == EXIT_FAILURE) {
+      throw 1;
+    }
 
-  if (s_flag_used) {
-    printErrorStatistics(XMLParser::getNumErrors(),
-                         XMLParser::getNumWarnings());
-    if (XMLParser::getNumErrors() > 0)
-      goto error;
-    return EXIT_SUCCESS;
-  }
+    if (s_flag_used) {
+      printErrorStatistics(XMLParser::getNumErrors(),
+        XMLParser::getNumWarnings());
+      if (XMLParser::getNumErrors() > 0) {
+        throw 1;
+      }
+      return EXIT_SUCCESS;
+    }
 
-  if (generateCode(q_flag_used, p_flag_used, first_module, last_module,
-    module_names) == EXIT_FAILURE)
-    goto error;
+    if (generateCode(q_flag_used, p_flag_used, first_module, last_module,
+      module_names) == EXIT_FAILURE) {
+      throw 1;
+    }
+  } catch (int) {
+    if (f_flag_used) {
+      for (int i = 0; i < last_module; ++i) {
+        Free(module_names[i]);
+      }
+      Free(module_names);
+    }
+    return EXIT_FAILURE;
+  }
 
   if (XMLParser::getNumWarnings() > 0 ||
-      TTCN3ModuleInventory::getNumErrors() > 0 ||
-      TTCN3ModuleInventory::getNumWarnings() > 0) {
+    TTCN3ModuleInventory::getNumErrors() > 0 ||
+    TTCN3ModuleInventory::getNumWarnings() > 0) {
     printErrorStatistics(TTCN3ModuleInventory::getNumErrors(),
       XMLParser::getNumWarnings() + TTCN3ModuleInventory::getNumWarnings());
   }
 
   return EXIT_SUCCESS;
-
-error:
-  if (f_flag_used) {
-    for (int i = 0; i < last_module; ++i)
-      Free(module_names[i]);
-    Free(module_names);
-  }
-  return EXIT_FAILURE;
 }
 
-static void printProductinfo()
-{
+static void printProductinfo() {
   fputs("XSD to TTCN-3 Converter for the TTCN-3 Test Executor, version "
     PRODUCT_NUMBER "\n", stderr);
 }
 
-static void printUsage(const char * argv0)
-{
+static void printUsage(const char * argv0) {
   fprintf(stderr, "\n"
     "usage: %s [-cepstVwx] [-f file] schema.xsd ...\n"
     "	or %s -v\n"
@@ -202,6 +206,7 @@ static void printUsage(const char * argv0)
     "	-c:		disable the generation of comments in TTCN-3 modules\n"
     "	-e:		disable the generation of encoding instructions in TTCN-3 modules\n"
     "	-f file:	the names of XSD files are taken from file instead of the command line\n"
+    "	-g:		generate TTCN-3 code disallowing element substitution\n"
     "	-p:		do not generate the UsefulTtcn3Types and XSD predefined modules\n"
     "	-q:		quiet mode - disable the issue of status messages\n"
     "	-s:		parse and validate only - no TTCN-3 module generation\n"
@@ -213,81 +218,85 @@ static void printUsage(const char * argv0)
     , argv0, argv0);
 }
 
-static void printVersion()
-{
+static void printVersion() {
   fputs("Product number: " PRODUCT_NUMBER "\n"
     "Build date: " __DATE__ " " __TIME__ "\n"
     "Compiled with: " C_COMPILER_VERSION "\n\n"
     COPYRIGHT_STRING "\n\n", stderr);
 }
 
-static void printErrorStatistics(unsigned int errors, unsigned int warnings)
-{
+static void printErrorStatistics(const unsigned int errors, const unsigned int warnings) {
   if (errors == 0) {
-    if (warnings == 0)
+    if (warnings == 0) {
       fprintf(stderr,
         "Notify: No errors or warnings were detected.\n");
-    else
+    } else {
       fprintf(stderr,
         "Notify: No errors and %u warning%s were detected.\n",
         warnings,
         warnings > 1 ? "s" : "");
-  }
-  else {
-    if (warnings == 0)
+    }
+  } else {
+    if (warnings == 0) {
       fprintf(stderr,
         "Notify: %u error%s and no warnings were detected.\n",
         errors,
         errors > 1 ? "s" : "");
-    else
+    } else {
       fprintf(stderr,
         "Notify: %u error%s and %u warning%s were detected.\n",
         errors,
         errors > 1 ? "s" : "",
-          warnings,
-          warnings > 1 ? "s" : "");
+        warnings,
+        warnings > 1 ? "s" : "");
+    }
   }
 }
 
-static bool generatePredefinedModules()
-{
-  struct stat stFileInfo;
-  // FIXME: Regenerate only the missing file.
-  if (stat("UsefulTtcn3Types.ttcn", &stFileInfo) == 0 &&
-      stat("XSD.ttcn", &stFileInfo) == 0)
+static bool checkFailure() {
+  if (TTCN3ModuleInventory::getNumErrors() > 0) {
+    printErrorStatistics(TTCN3ModuleInventory::getNumErrors(),
+      XMLParser::getNumWarnings() + TTCN3ModuleInventory::getNumWarnings());
     return true;
-
-  extern const char *moduleUsefulTtcn3Types;
-  extern const char *moduleXSD;
-
-  FILE *fileUsefulTtcn3Types = fopen("UsefulTtcn3Types.ttcn", "w");
-  FILE *fileXsd = fopen("XSD.ttcn", "w");
-
-  if (fileUsefulTtcn3Types == NULL) {
-    fprintf(stderr, "ERROR:\nCannot create file UsefulTtcn3Types.ttcn!\n");
-    return false;
-  }
-  if (fileXsd == NULL) {
-    fprintf(stderr, "ERROR:\nCannot create file XSD.ttcn!\n");
+  } else {
     return false;
   }
+}
 
-  fprintf(fileUsefulTtcn3Types, "%s", moduleUsefulTtcn3Types);
-  fprintf(fileXsd, "%s", moduleXSD);
-
-  if (!q_flag_used) {
-    fprintf(stderr, "Notify: File \'UsefulTtcn3Types.ttcn\' was generated.\n");
-    fprintf(stderr, "Notify: File \'XSD.ttcn\' was generated.\n");
+static bool generatePredefinedModules() {
+  struct stat stFileInfo;
+  // Only generate the missing predefined 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;
+    }
+    fprintf(fileUsefulTtcn3Types, "%s", moduleUsefulTtcn3Types);
+    if (!q_flag_used) {
+      fprintf(stderr, "Notify: File \'UsefulTtcn3Types.ttcn\' was generated.\n");
+    }
+    fclose(fileUsefulTtcn3Types);
   }
 
-  fclose(fileUsefulTtcn3Types);
-  fclose(fileXsd);
-
+  if (stat("XSD.ttcn", &stFileInfo) != 0) {
+    extern const char *moduleXSD;
+    FILE *fileXsd = fopen("XSD.ttcn", "w");
+    if (fileXsd == NULL) {
+      fprintf(stderr, "ERROR:\nCannot create file XSD.ttcn!\n");
+      return false;
+    }
+    fprintf(fileXsd, "%s", moduleXSD);
+    if (!q_flag_used) {
+      fprintf(stderr, "Notify: File \'XSD.ttcn\' was generated.\n");
+    }
+    fclose(fileXsd);
+  }
   return true;
 }
 
-static char **readModulesFromFile(const char *from_file, int *last_module)
-{
+static char **readModulesFromFile(const char *from_file, int *last_module) {
   FILE *input = fopen(from_file, "r");
   if (!input) return NULL;
   // It should be a relatively small file.
@@ -295,11 +304,11 @@ static char **readModulesFromFile(const char *from_file, int *last_module)
   size_t input_bytes = ftell(input);
   rewind(input);
   size_t buf_len = input_bytes + 1; // sizeof(char)==1 by definition
-  char *buf = (char *)Malloc(buf_len);
+  char *buf = (char *) Malloc(buf_len);
   buf[buf_len - 1] = 0;
   size_t bytes_read = fread(buf, 1, input_bytes, input);
   fclose(input);
-  if ((size_t)input_bytes != bytes_read) {
+  if ((size_t) input_bytes != bytes_read) {
     Free(buf);
     return NULL;
   }
@@ -310,7 +319,7 @@ static char **readModulesFromFile(const char *from_file, int *last_module)
   while (name) {
     if (!strlen(name))
       continue;
-    ret_val = (char **)Realloc(ret_val, sizeof(char *) * ++(*last_module));
+    ret_val = (char **) Realloc(ret_val, sizeof (char *) * ++(*last_module));
     ret_val[*last_module - 1] = mcopystr(name);
     name = strtok(NULL, delim);
   }
@@ -318,32 +327,30 @@ static char **readModulesFromFile(const char *from_file, int *last_module)
   return ret_val;
 }
 
-static int checkSyntax(bool not_verbose, int first_module, int last_module,
-                       const char * const * const module_names)
-{
-  if (!not_verbose)
+static int checkSyntax(const bool not_verbose, const int first_module, const int last_module,
+  const char * const * const module_names) {
+  if (!not_verbose) {
     fprintf(stderr, "Notify: Checking documents...\n");
+  }
   for (int i = first_module; i < last_module; ++i) {
-    if (!not_verbose)
+    if (!not_verbose) {
       fprintf(stderr, "Notify: Parsing XML schema document `%s'...\n",
-              module_names[i]);
+        module_names[i]);
+    }
     XMLParser syntaxchecker(module_names[i]);
     syntaxchecker.checkSyntax();
   }
   if (XMLParser::getNumErrors() > 0) {
     printErrorStatistics(XMLParser::getNumErrors(),
-                         XMLParser::getNumWarnings());
+      XMLParser::getNumWarnings());
     return EXIT_FAILURE;
   }
   return EXIT_SUCCESS;
 }
 
-typedef List<QualifiedName> QualifiedNames;
-
-static int generateCode(bool quiet, bool need_predefined,
-                        int first_module, int last_module,
-                        const char * const * const module_names)
-{
+static int generateCode(const bool quiet, const bool need_predefined,
+  const int first_module, const int last_module,
+  const char * const * const module_names) {
   TTCN3ModuleInventory& modules = TTCN3ModuleInventory::getInstance();
   for (int i = first_module; i < last_module; ++i) {
     XMLParser parser(module_names[i]);
@@ -354,7 +361,7 @@ static int generateCode(bool quiet, bool need_predefined,
 
   if (XMLParser::getNumErrors() > 0) {
     printErrorStatistics(XMLParser::getNumErrors(),
-                         XMLParser::getNumWarnings());
+      XMLParser::getNumWarnings());
     return EXIT_FAILURE;
   }
 
@@ -368,44 +375,45 @@ static int generateCode(bool quiet, bool need_predefined,
   modules.nameConversion();
   modules.finalModification();
 
-  if (d_flag_used > 0) modules.dump();
+  if (d_flag_used > 0) {
+    modules.dump();
+  }
 
-  if (TTCN3ModuleInventory::getNumErrors() > 0) {
-    printErrorStatistics(TTCN3ModuleInventory::getNumErrors(),
-      XMLParser::getNumWarnings() + TTCN3ModuleInventory::getNumWarnings());
+  if (checkFailure()) {
     return EXIT_FAILURE;
   }
 
-  if (!quiet)
+  if (!quiet) {
     fprintf(stderr, "Notify: Generating TTCN-3 modules...\n");
+  }
 
   modules.moduleGeneration();
 
-  if (TTCN3ModuleInventory::getNumErrors() > 0) {
-    printErrorStatistics(TTCN3ModuleInventory::getNumErrors(),
-      XMLParser::getNumWarnings() + TTCN3ModuleInventory::getNumWarnings());
+  if (checkFailure()) {
     return EXIT_FAILURE;
   }
 
-  if (!need_predefined)
-    if (!generatePredefinedModules())
+  if (!need_predefined) {
+    if (!generatePredefinedModules()) {
       return EXIT_FAILURE;
+    }
+  }
   return EXIT_SUCCESS;
 }
 
-static int validate(int first_module, int last_module,
-                    const char * const * const module_names)
-{
+static int validate(const int first_module, const int last_module,
+  const char * const * const module_names) {
   for (int i = first_module; i < last_module; ++i) {
     XMLParser validator(module_names[i]);
     validator.validate();
   }
   if (XMLParser::getNumErrors() > 0) {
     printErrorStatistics(XMLParser::getNumErrors(),
-                         XMLParser::getNumWarnings());
+      XMLParser::getNumWarnings());
     return EXIT_FAILURE;
   }
   return EXIT_SUCCESS;
 }
 
-reffer::reffer(const char*) {}
+reffer::reffer(const char*) {
+}
-- 
GitLab