diff --git a/.gitignore b/.gitignore
index 4fb166858396809fd651fe1ad7c245c2bd7d350a..c41dfb7947051b8bbe4b7fcc16c51982d10e51cd 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 41753a5bcb0f219a0e383beb0428c70a865a32fb..3e9261c68fe1f5eec0e6c3d6926af9e19a23ec94 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 151afe13a57d2523da706c09ca64d50f909c531e..a4ca5d18537338bfb24cbe20076fe1129e1c7176 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 5b0da168ba703e8d2f3674824aec714ad658718f..9c00ec78693e9a8c1aaa8db652b95b88ee7d02a0 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 b472414bad2ce08cc4a318753fcfdfe08471b5f4..62a3c92d6f1eaab2b8496ba53d2ca10165ad629b 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 d1443dd86783ca24c83ae29a744e3b6499ba6861..bca634ca544ace1e97df839d39f6fd6a85a43b50 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 766ca7e36962982d5d874b31509d8a83f146423d..74fc88d40a6c13519d01eb1c221102a52290f7a6 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 6c8e47b9ae46748fc0e88525f57aff7b4bc7d1e9..f4c5fb92b057e76e3c9037586036303d4ea450b7 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 b33ef4c2138de160d28f7ad7bdbc9109970a07dd..eb33baba2d14775d89c80af0dc244d75899e93bc 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 0d35fa76a7e846bffdee812265f928e41c023a01..5534e3d457f965853d1949ac734072c889d9f896 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 9a4bde2be52b66b08f3bfa601552bd79c34bb4c3..c511a9255ae5b1123eb117e9b0af0ab97777b309 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 cb58f0cf331b5f6e02c8dd75ceb566ea9068c84e..b221e865e0791955ba009144717bb7fdf32ce530 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 6775c69a12cc42934b5239f83ca33c7e3f35abb3..fb0748917292bee77479c2b60e27fb1c3d50018d 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 3b114518b88e4e379deb0cd8a83ec88f527af78e..6675bc6d9c211bd48265328a3f1d245adaef3ec0 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 b08d5c5bb75355c21d059499a2468ee43ec4b07f..0d57b631f10ab462d56a991a6781c9c27b850178 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 be54651bc89e8feb885e373d88ad97370b449453..19890ec35177b271fd532cc369b7f94fb13c5abd 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 95a81cdd605710d4574d55c320a0d39b38803445..14019293e95899e4d611f365b9dc81510bf5724b 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 138bb67b0e97f7bae53dc8c92be69726f9998f9c..5dd982e7ff9116c931140852cb77df8c61192a73 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 a150300539340653b0bf21a46496077b15accafc..6a588bf23891982d1415e3d4f539e618f3764f89 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 a2170c998dbd05a216e1902d9782407e73a39685..c0d785a5d1564fb3d50982be4eaa480bfd36b452 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 2b8111c24f048446504062042076e11db353a279..a2f744a3501c4ea8ddab5c291176645ebc10dd72 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 2b98dae3fee72e950d7d7db5e43d3ee5dfebe290..0efbb061e3ea4e065bf184a5a3f6bdc2656adecf 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 05ecf16d2d8af47a27773361cea5987b3c2bfb2e..35dfd3cfdbc3deeba184d5cd0844de23d2d8e848 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 db1d3d3ca8e3bfe50000541b0a8159979ad36a8f..85ffdb452b67f6dff430d9971de8a2a453517ffa 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 026d09560262f0ab8471e18e50b61541f787defd..297498444fcffdb49dea61706eb7a6d72b1799a4 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 1699f33a9dc61072b509faf887f895a4ca0257e1..7c1520d3f9c34b0727f15929c2d01826cefd5a7c 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 939e3941e0246cd56f8e0913b2de20bd75413469..e76ee4f07a61b32f3804bc94e555e6799bed4a2e 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 b0a8a2e54191c0090b174399f8f41e338183ca63..b236a0e1f9cc33a7f424b84b59bec45a6bfd011a 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 2f0dc8aa7fb067ab9ca7ce2a110fd3e32cf43884..50ffd067c0ff895424868aa45a2b3b70a4f24744 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 aa381f09f4e89557416193f5b4357cc0c8f16cbe..3cad4c9e6c38af9ef18390e7ddfdae11b0ead80d 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 560d1a0728ca6ad03e3dc537787873e18181315c..b2d6d0bdc98a7d898d01f724eb25542ba2a21e42 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 11ceec81322bf5b2e7cbc86ebcdf35fea7530a19..724fc746d62285383dd8a496424383b6be432f91 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 b048423f553688c229af9a390658f72851cccf2b..cf31f0a8fa074adff71d905b1739aac2616c80b9 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 7506718b9b7ff08ef133fe840bf5f62c6cb8299f..11eade373897370b01fd8572c7ecbc328bb5ab14 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 59765c2ca697cb6696890a409693f1be7a6a6bca..d9c4f3d27071e081288615d10f9c88165238420d 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 b1594cb48eff007354cad336ed5d9931c415f173..e72b743f1b656adb1cbcebdc9d4607363190eeb0 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 f5db171cf4bff4c16e5878fe83997d917fd6edc8..96104b6a4aa88f3ec9bed1a0a0e7df67d8d3c642 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 29e3d16d10c18e1cd906780cf3d1314c79a0f266..109c0c2722c7d81cee1af73cd46f4cdede837e99 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 8d01c5c01bb8d29be12add3af8ca7df074f486aa..90a59fe81005fcae0d7b322e2016587116f13b73 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 1d33ad7e358e43d35ea2195c61ed1d7187ec6dbd..18754ad8a909b802dac44c029f4aa6c3cdef8ccb 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 cc016fe5b8bbc69d1fefe1a7477480f7b1d60cd8..50dfb9f63bf0fe39b2ca237dec99c5fbea710d85 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 40b8117c03c6afe24c61a5824742b8ac4318c29c..9a0be9df140ccfa823e27452829615ceb83fcab7 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 9e8f5603a8e5be9a428c0b9d0a6a0b9e5f368ccb..4bc3c6d889eff0f624fb787f75df7e508b3c68fb 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 c195d8421d9268e0c9cca1c7522f689be57da653..36116ce4be86f4d90f556540bfc8e4415bc5e8ef 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 632508bc36a777ed7f758f2b9f4c347b72681a30..2396568a425bea2533e4ebfbaec849c75312843c 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 66db4b96f5923ef8684e7f8c607055ad59314b3b..843be53e35670035d1746718c3280198722138ee 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 80ac1bab75c17c3d8b2399a8b205f99959ad0651..6113aeb02a9073c3ca5f7171269c58418d33f2c1 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 5ee2842915c4f4ecad04a27a35ba2814ef379946..8f25a76df35c22f8c13144a390b4a01c40f497b8 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 cc43468101f7d4362eec45fc69fb45e5f752f6ee..117b55eac2894e9fc8c97c6d67365abc260c14be 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 bc8da1bbfb72c1ac3b3c6c9fe47eef5db868f664..38a9a93da0a24b1fbd7c727332d9e5477b931c10 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 202d282f25c1cab453ed741b0bd2f8b564699164..daae450dd4344317f929b13d6c34d643d9e5274c 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 ddb99c27437d7be6d91f9e5709e01756a4ca3069..7de62e88eb68775a75d6b3e76b0177900d183f5e 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 f9769d9f807d0f676aaebfc86314fcbc7d1d9987..e5ff3560e5e5c943188fc1466d9282b09ef24972 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 8f8cac7b2f01891689593f7187211b5490d00c6f..a15d32ad975393424ad61bdbf8c3446e510256fb 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 d0968839a2219f4f951e93186960439aee69355d..4d6f16b4b1084cae21f633d4c1619589d9a21a80 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 cee124237679b9658f8cdb271c2ba2ed2212b206..d07c837e092b2f7311fb8c0310170085aa6c6a96 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 07a7b0a9d2e2e6212c1ffc1bee79cc7af20506b0..bd3298d595036179bbdcaf58bc40658bd13f5648 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 c65aa0228bee3d1eeb08d48e3099533b11fc306f..b07f61555763799fc1b59ee5472cf3f079e6a8c8 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 3f09be2d3ad3612fc56a665178fbd94a89bb5f57..f14825f2f56e836cb1e3f7e21aa5f05a3ef46a46 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 eb142246b8adf7a109554587e7478a5377d79ffc..c131d5787ed19ae92b811043509577a869c7c492 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 2b438fa90a10c07f3624888d972c89a9e76418c1..e90ae493fc7cb0da8f95a1bc5ac89a82c6e1cc38 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 9405a004394489300ced14328f0016309cd6761a..bf62b0650cfded5eabd716efa2270de5007b1cb7 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 3ba9c5110a1c1d1ddef8127e00f2781cf5235866..e820ed963c0d5829d9121d54ee1586dc44182c1e 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 59d2faccd5be7026716368669ae0ee34b92f1d62..5f8963836288252c51966125bbc89a477d9a6a14 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 c125b4882e1dc690d80f09d652ed8c3e87da1c68..5b24aceabc784a6ae060d6aa66d8c094bd21120e 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 62be404f87d87c963205c524e80145719310b0af..2ff8fa3324a6be29e86d3a4f71843040781bc576 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 9632a0e3656071c927b3411691b9a6ce28657902..10f8b4d81fc22785734c5999fa0d05b721a75e2c 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 b0ee3e8e10db81f40730aa04e3bd5aac95dc4fed..c01df15ac5bac6fe6fe0d3fd2d7224ca7d14b7f0 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 3c1bee77348b6ded0cb75c826cd9e04fa9d2acca..456f32b161477f8faad719f3d0fd0f602742d43d 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 9f25995c81c3b2ebdf5ceed1797b0de16132c68f..8de6b0cfb1601df35150da67cf00332c690e25ed 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 61ef64fc5780c5d5b58db7e210768b0a52b718b2..8499fe4e619f24f1d0d27e7166bab7b07b640166 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 9b0f083dd9055fe0a4fd683de705deebfbb180bd..746cde29969be2399625d1700285c667275faa7f 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 0131b42f07148977b9a92ca913c6726a344a0afa..3720a225870a3a5ed6a27f49a3d195324bdac847 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 991449e58504ab8592d13707ca41957f521fc872..4b475352ace20a83d1063e7f247cefb440bf7438 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 638633bdb77d82790860a175bec141a6f7e9077d..df661cb0671f51303f22caba66287befd9e0c3f4 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 0a15eda30d0f288257cc8ae2bdf014559a58572f..41f486b0a3b5cf9cb71463596796cc45c9ae5383 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 1e5380b49c3bed0f1e1561aac7cd88d5c3a625b5..8920ed8fc1c6e46d148b46eb4ddac4496d1424f4 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 47e5a736c04ef4f6a2927c62a4d828dfcbc118d2..b8262e02a5b00412a9743063b3de1425a9214643 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 82f1bfcb1593cdd8045f03e98040252bb1e2b160..b46986c0b1503c304ccdad16478821540e0c9271 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 739edfff3e784a672ee2ad20cfd707f4cfc625c7..e7f956f655c9e0b3611ce847f6ce316c9c656a48 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 c32592c9c5745275a82e92fc4738e425b4801ec5..1f2b9eee85c0950fd8ac6821daa5344629bd3f6e 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 7495079397d82fc1176f84f41f5a152477881bc9..49f727ea0cb2018fd5137b03ba683703e8760410 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 8fcbdfbee9794aa47baa7a925f42e69930394c8f..b2918fba76829583c9c77911713dd5c4b73462fc 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 fd06d5d4c4722ef2a7190c1783578f1ffe4f33db..40b83b8f3d3bf8aebb3f77f92a98a9292fc2a944 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 29f85957b1e185c25e7d664f5a59fbc709b9406a..57eee7ae101178b7b01ab825968ca12a8fa95f52 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 4e58d7a485a42fa75c97dd71625b2bfc6dd0d82e..96400fb734a15d3bb0c7780dfa63f77da1c7753a 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 02e2c7bbed1b151e63b6d9575dc951607faa79d0..ef36e3bfd93574cab3bb3df7a979fc10f86fde07 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 d3861ebb2c1ca6edb350d5085e9b2df25e44396e..d3bf10e6936bd6158ce31d48271f2213883a5ccc 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 5be67c25d2fd84d448bff456bcbe0959538c2e73..cfddb7ab7eb3cbdac05a271ff4e336fa06928d84 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 28125f47dddff9288a9a8fe0d7860d25e34828ce..867cad5d425faf745ddcc9d559fe6ed718765fa4 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 034e8f0ec006fc7e6afd50814c5ef91e9f6b0ba8..20c2f0e2499577f819a65111e4cafe4abb2c90e9 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 7fb2f0b5d35f9603a6bbe8cea1c2daad72f9440e..1ea0cb0971475148d83a6140d347c69f84b29f4a 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 61d324cf9cb2f74e0dfec040a04f6812fc0cab16..a163c219afae881760d4c055b349a7a88001a4e4 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 bc243baa869b11d9bc91dd57368b3b227e77d9ac..5d49a4bfed940e3d29065c38274c1f0a08dc9815 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 619b5dc381eef7786aaacb9d2052057bc6454dce..a9b0c7c55839301cffd3147d8bb0a3e6670a2ee6 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 c10a0fce55b27ed7febe8397294a6e1c426cc6c0..62dd84b1be74075cba47b981751400312093935f 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 d9cd43769400ace4d3554e70c5fb9f35371433e7..82e6028a84a64e04dd0ada6654e76429edd8bdcc 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 6e83b0b2a0687d106fdaf714d607f6b8e0e795ae..342f3c4c17a5b4df51e96cebc87542017e3364a7 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 43eba0332b3df2ed2dcae634c6ceb9b826ddc19a..33ad2f9bdd0ed0f68fedbced005ea8db57836979 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 8764ddf0b020cea8ed04e3d4853c13606b1dfe10..bbfd7ea7f505036e23d5c197b926312d03215b7e 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 e5a87fa7da75942d7254f388b5a9e73cc80a5458..6c6862e2e69135a4d10dacb3c007c5cd98214228 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 8dc4f9922990107a04b2984941a17265f68a2c70..473bbddaec062b0ed535c791af56a0a4c8323eee 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 b217b4a73c5470c3152f6752edd915362a3e247e..c41732417d0c3a3351a58b51f69103a3088e5aa1 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 a9618edbc8e8d98a76d76e5c2ac8a79ad086cc8a..abaae0f0427cc0de962ae79056a37f90ff2bcb74 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 38d4d32969d4a1f327ea753742c124e6710cb3c6..21751cdb5fa0dbda5e73f36a1deed8c4b6bc0fb8 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 3a801a8c2f4c15845ee39e205adbf03ffe1cf787..98027d7cfaeb1379f927d6c1dc8f136246964649 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 310fd65db07e4dee3f5e6606faa8aff209e97a15..3339107bc93c2bae24aebcb87d81afe57663675b 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 0c7b52f7b4a04418bf1acea1c747ae849dd836c4..7c92d288b918375f900a08f88d0cee4ea2e937f7 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 ef8686ca284d4a777037e3186c8d79a1ded0350a..77bf44cdecc450d493770998814662dedc0dd193 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 fd6a820b9e460e197dfdc719e316b792aecfb7b9..42b6267e5ad407053a83efcfe9bf2241258b247f 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 d89b24738dd1c05277239b6660e36d3b2e1233bc..188083d134655eeb7b454d6b2be4b608da4606d5 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 72b6c64098c0244c82b04d2c73134a711ec8a648..9da124588a56af2ef68dac82b15dc29e1c4d3bc8 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 00b0eb82ade105d352d117362a38c2111c76bd2b..e9dd5e4003928dd42d17fc8228634a0d281b2e1c 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 4435280bef34eb7f6e3ab3b9edb3be8567548625..90babcdb8ac12019fcba3431a8c9721cf2cc222d 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 a53f8490f012a598b4b6742ad9a7dde2d88f881d..2f34defed2c34dfc05ad300451b49287e979bcd5 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 f3b3fbe58e4799258755d378c572058bf31dc284..edf2d6802af60b2e501d2c34c0a5720c4b491c24 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 bef4c7eba673bf961e205d71577ca19082a2a443..957d1310c1e8cd505a89af51689b18691aad5ee5 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 5d41eedb6c61b8603feba5c25bcdfddd02aef47b..3be85a9cf6805a6b644ce61a8e44b1c3dc2d4059 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 f15099c47f3467ffd7b80565fc13864dd0f63823..ede9eca483f96269fb8190a11288f78983b5ad2a 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 244302f2987b530cb0d7cecd4e8674206a37f01d..63dba48876329f4b86a48f3c5570adfb90a57109 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 8b7da2e1b6c6f60e747a1b5ca653df371e359b65..9131608e2dd3a120c8c1a0fa6f91a153c140c00c 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 146d57e8f6bf734b209d0e93e03869f82397c062..c328ff56760bf52a1026f08203c376305430a8e0 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 2df9a3418a128cca6aa79b8dbdd01ee5862d25df..9739703d711b7aa72ba35ac3415aecaf0ccf8cf1 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 a49fe4be86d507ef5e6e536595816cbe74ee7553..66c7ff038e78410a53ac1594499cc9919e41b0af 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 4d5362d21abed21939a27613479bbd1bfdc1b10a..64bd7faed66b1d4754dda016739fcd7167a7122a 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 3f9f88b7987ece6c2abbfc3017334e26f7f76535..9a107ae7cccfa8d902e78590cc1f1f16b6982651 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 15ad0b576b78d78d49476bd3e1f5a43d1b2e7a54..1d58b2e87af4f647ff9b7afc7aad0780b9485b7d 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 0c460df2b5284f058bd80f9311da2cc1ef2479c3..f1b21221c82ae7f0d7f285a37ad79c4b3ba3c5c9 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 687e9ffeda6278e01a476db231b595455101a63f..03602eb661f15ad63b602d901551ed17102ef86b 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 f81764b20c58b03d70fc2d4f4371984c075d19f7..b7d1a720ab9b9a092ef2e736c52b54da862e968c 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 cdd9f4518f59841266f0be53320a626785996ee4..9a8421b218f55d36a9ec55b1de220da08c2d37bb 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 7a0d19b5ef4b9d779ae65fd23cc1b3a3373b66d1..c4e8ff3874f2aae35cdb4b8758a50293b411de0c 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 4e522034a52a595c28668cf7bfdcb6b516d6b0e3..10192d71daea2e4a4cab711e6fe02d2aeae924d2 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 4252d22e3aa82112d27e61c9512f75508e2ceadf..3bf80cfe56143bf192aa797ab35f49ae374c6745 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 477f52419df62d01b21288ef1b6a6255038ab0f8..38880f6fef2675e5e8c90b62782e8201751a15f0 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 eeda1762889bd0bdd63dd12f4eb2c0bd4206b604..097ffe76319b8cdac427362e554d3f6d3a3123b0 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 09bf713792999d66efe20247379f9777e9238a82..cb9e6710def4751535b125ada5e3eb473a2c18d7 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 5f97b3d90634d15e4cd15670fef550ce496c0f74..875a06c41ce975732007a7454a3a86d53ea021eb 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 45ec923447d3f57afa12a4946d08d1cd8cf23212..ca0c1714b17e79736fa2fca10480402b371812be 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 17c98dd3843dfe2c551f62d29fc42b4e8e0122e5..de35cfecaa92019dd2a9207778faab5e2d73bd48 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 1917183ff01bd950909304d09b8f950f94beb815..fac3507572bc2774072154bc38e54411cdd52c98 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 886e953e1ddd9ac5e6d330d809eebfcef31f8fd7..cc57780c177a77c423911c77300d1519f97ef861 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 60f81ae5b29a34321fa734ef800d5d874d17575f..bb448b30701a9bdd0cfb3906bdfac69254f40155 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 f7fde1aa5ce0eeba292d7096fb7b14d63cb21dda..c6fb5a15a5d0b1ea51e88053d08d7d9001371132 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 bc18d923b287a18eba3be87a0346f19a6b7f8b02..ed38eb6738a0833212ad9238cd9fd2fe4df2f18f 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 473213e7b23bdf12db3c614a450eb9248053ddef..f6f94c5a803eeebbb4f76d4701b07466b32ff3f3 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 f8b0b24d48e01beb810a3f5d4b047131c68d49ed..99b71736d5a345d794e83f566f733717f51507d4 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 cd26bc71a0182cca192ba85df4411c2d0194aad3..4c55ea16bdb0aded49c1c0a0909e6e1a9a12e948 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 15b26cef69cbc8008963d3e4f203cb7ade29bde3..e3c98a8c734339ff8bebd70474d07ad4fd2c883c 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 33ec9799a95692d22658c5448ce891264aac081d..684762045a02c2440e304f820f69f471a7cf76fb 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 012358c85d7aeff734adc76ee745c34d23303a08..4bdd48cafdba2502c5d753fab89a29d7c5c97e8d 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 8449e696bcd62947a0bdd1b3dac1a9ae6a5a4895..efe3c18a4eacd189d19e0c32f17b5adab00352cb 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 06a57a6a9864e5704d0481dd8bd7aec866cb7a09..119f4a3ee3959dd02f9d2ab9abaf6463247624a6 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 b971b2b4d7b22c0e927dfa57722a131def9f73c9..d8cddb134fa0b0cac9942a89ad0536c7d6787920 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 d3f896aa23137b0a2ee866c00940c2ab02403fcb..9a6cf7b95ce8af9ed17daa852929469e4b62c3dd 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 c63f0444fbc64707f0850572fc59dfe7c2d358e0..8465ed877693f51a2ab4b3c9f1edc2a147ac43f6 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 780786c363180483f8b82862cf696bbfd5f80eae..e070d9c989da828875fc05003ec77d18ebe487c0 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 4d1bfa87ef2ed0579fe2b9eccba26ce2df788547..7c503ef9efb5e66bfa698234f89f2ede0db1b4ef 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 c4e8fa7bf61be2ca1d75adbae72be7ef911f7aeb..fe151bc5b6c1e2a71fcf9ab3c19a3e04ac878f7c 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 7ab2076be7f53640daa59af5de75d17897f0792e..043afa75861097f93cfc4324cd63959e129db111 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 36dfc69b9ebec84aad0e02718a51436767141c02..4d90e3996b19aed03808c5e415ef210abf9077a2 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 d7bc09200901949ad81c22d5bc5e208aacc75ece..b3ead3a6ed86c18f01df368db20251310a4a53f9 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 91748d4b716b572462da1568814616bcfcda6d1b..fe24901df8bff61985936b2050d30a6c82efc6a3 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 cdac82771ac28568fe6844ec8566418669875262..3c8b3111cb74e92fc67a9c42921384824ea6c270 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 668fc4e2596e2515159ad120c2c6016ec88e73ef..277653453f8b875b4a58c012a9574f76a68c8f8c 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 db99d791148d1e144ecce2e259edb647a87aab47..5a35dd1a93a29ad104c93436b955ce9164123f50 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 47ec94d8dbfe9261bc4c245cf7d495aed76e4867..7f1699b61a525a42fc90dd0643d93eafb718e58b 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 ca0837af9536a4a37b9f64d48d647ebeabcb7cac..d1e3e2678a96496eb9038f2bd6c3ed35c4f78203 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 02d28a6697c744f736de2612b719920f06a22cbe..b6f201c738d09a169d44ea297acba5f78536565b 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 7abce565f7ba2be923bfa18e07a1e31cd7c75cfc..139091caabc1b08f3d528832353d6ab4942afa3a 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 94af53796a164a156c1ef16512274fc1989f8ee5..535c718cda54c7f9651d09e93fc3894283074adc 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 be5b020be27492ff5f3dfb468f560b9f4538735d..54dd73a418ce06c9b57dd6ccba29bbbb6ed8ab74 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 295ec30df72d013d5d21811edabc2639ba86d31f..73019a2e3a4e9a51cdecdcf491d568c02188adef 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 93bb3a616dcd14c0c3e0198230152d9df2f53862..45e0b9454dc339e48c73e19f8b3dcbff016efdb4 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 fb70102fb7e9961aac87c808a86409a89663895b..92d913e1d5f1a23fd049ea68b78c9e9e4911c3df 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 c7a9701e782b98b5fb1c2445f77d6bd143db4e7a..52402dc51ebc07ce2ea6e89b64537ca2a5d2efad 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 03f6d5ee0fa2962cea552ccc5e472b4a50ad3202..5342d34c8fdac34a0f676cd433ba96e54347d6f7 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 9e49bec993a26da0fb3a51fbd640fc96a589f301..8925f8e0a8f0e4c0331ddf772fee3d3c50bb185b 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 44df932c945a41e6c4d71625a06b3e8bf8300bb7..3044da21831ae85f9c26321f20522150611523cc 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 2e09f946d1b8172825c3363c5a5bd9c198c90c79..fa5cc13998f705454fa2f3dd24588338732d8713 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 59fe270ee9a9ecffe4bfcdc53e7efb820d7bdba4..b401aa1c14a0453814a4c9cf0376ac8828bd383b 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 77f69afcb334d8bf735936157894b8d5aea8477b..4830661ff94dc25e044f7549e498e15f705ac875 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 04ff8540967159f2187e67041b8e50e6cd703b67..a5eb4f5fe350a4af3c602de8a0b0d33f06cae435 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 b9cb1af8a4c416abeacf54a23fce8ab146014cf4..cd26df6411f0c9dd6ba40a3a300023ca4ceb6044 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 556de501d3e01b07314a4ef45bb714b0af0b12f2..c5fa2fc7115095e1fd5cb6cabc77933e156b4568 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 4497b6ca79a5d4132311a5fafbfdf961a6625a9e..063baffe5e181ddb8b09af0a9d4bc44ed97dbc03 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 5f07d028593a13016839d9423825b1de8968746e..e8719923ae2106cd01bf7ec4d5fc41d793f7a114 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 ab77ee64962b1f3d29dcfe98314472f3e57ee80c..1a9a2088f55a47769f74cb0b9612b4247c1e9d27 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 2889ab5f47a41a01cc47d8b992656171d0a64195..74b6e8950206e6d84030431e0640ff28de674f8e 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 5fe27f987e238852e0a01ec486f4869f1878f119..96d0c33d8ffae4c50ca297f217482b8e9279c67b 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 0072f9f6973bed6395e83f5c0659b5e0f18dbceb..39e157f0de2d8d935aa2665687bee7e0763b7a5e 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 84e3017f8803120e3b0ba43c77808df218b4ed92..e74a8f27b589bcdb380308003e374784951a3a09 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 6f9cfe3a10d02bdcf613d89923dd09ddaa9b6a2e..f210f480bbbce8e9ae08afd9a0d43391dc850e47 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 04455ccc09adca725451a11f3722b5426a24d97c..74aab749b612543d161945970f1970bfcc51236b 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 0d4a4ac1f8e08d39c7ac5ca6eab176551f8efe80..9cb0ae39f312dd369a1e5d6f83ec29aaaa944756 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 c0d202a50d7fe6fe9afb32c37680513162c36292..0963278396c910f0ba75aaa22d2e5fc02436aa08 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 bb684ee32d7f828a949ecc74af5779e9f6532d9b..9e7318048faaf4f594431253ac5842e0661e0c38 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 c33a672c77454c3c29b452c3935b1b0dcb2bac6d..cefefd26aeb9d072d47ad3531c62e99e4f6fc3d4 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 d620b3fea798064d8e8250ae3b721acd096a6aba..4c41a154c4f362c857c267789032d02536919aa1 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 e469f4abfd6fa91299c6fd1d7fe8c0741512a6c3..1e75686f39ad32525ea6a9c7a4432f2717784a2f 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 a2e40da58dff4b3b276aa73f8000428259cdad9e..e90757adabe9ca143e83785191bb799de6586069 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 d88149fdb1e4ab26f018638687a45fb2aaf3a207..6406b1ab7abb4f6a155e27c1f6b64d2425c79ada 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 5ee51dbdf249f0d4b2a71e029bcaca619dc6be7f..e83e60bd9654288f07686f95739fd6606284c4d3 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 bb1016071acdf002f3587ea4770f78e3ae7e5c67..ff726e17b7bf2804c655ea6d377a180f75106970 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 d816584384bdfd176bc8acada1ed2590cd7afbd9..0ac78b04f6907f99a2fe0f4f9fa5387cc2ba1748 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 935e2252472b33756ac2b4a44c27904fd978dfbf..a9f6e8c5fa79e64c74a0723c620398ed40e7daa8 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 a6cf2db0bf37988fbd43d7838f68cff4a74d96eb..8fe256be8c95969ca225004afd8d36e1937f9b6f 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 129081b88f10082e55bf94f254907765f58d53ef..a366f401c5dd07df2b22a16426f0693a81f1566f 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 20ee4925b1873301076adc9de8bdd04be9638325..6be0fc58d13745a7b071f499fabe1541ed1f23c8 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 edbd97a36498611f5c57729846f597695fd02ebf..f1b871527d9e54e389cffa9c2898e9455ee2c5d9 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 279bccc0a5809da4764b49e33cf338cdb2018f0c..f1cd8f66634538002456651f3552ef6e8bd9f471 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 11cfeed960cff696544851b0868e3626aefc6e55..c0bb577180582f94899dfef0c3aa6c83621153e1 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 0ee44cf13e43ec043002544f9b3b54f4351a0db9..5e0c9aa677436f4b87c6855b6c71342859522ec2 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 4cc701ff01a85fe19107215bc0a5f1c12af84d2f..ff6e0d5d89b87d32dcc702aa7ee52bb8931be470 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 9405c254cf29508ddfdc4d774eaad6f67fec9403..609a1ba1f8ac092bf5396064e83bf41e660a6586 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 ab3c9a2c8c4aa227558fe03bcf59c065ad271bf9..36616c1a7c88186d11aea6c2877a0d785bb12984 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 dae43d0f8261ef5d88dff09e4e66de06b1085d95..f2ed45698745d414d07b5081e702b4b4dabba560 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 8d913443e6eb19d10e9d728f3b0c1f71b89c74a3..7e08a64eeea1f08444bb28a96d59223d2d032f3d 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 9bfe0bf49d4afccb898f34260ebf86b943ad628b..f3e10b681a3b940bebb0e7a8fe72c7227c01d021 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 a3794c836efaa7275c9c471af9e0d06374f10674..06966d9b2c24048fa5f364f0150f613551f6521c 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 bb34bb2a392ea9a2f4955c6acd37478f1044fe6e..7a96c9d40012709a65e3d9595f7ebf6bd5f86775 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 a3a25dde4c651ffa4ce878e7997b1a3d659452d2..bae774e0c47944c7d97463dd0699aeb2f554ec61 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 bf318635cfdabadfba6331550820f0559c420e7b..2e70ef1bea098f0e45f7e3c96f68f89fc40a4a39 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 c64c2f767c2f865a966750bd6ded59fa052ec230..37511128f179cb303c7a4f3b7c5ffa30c52aa3b7 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 76323a4e0821fd3f0030686e94ad9d184c7ed04b..9eb970c7d30815d5636fc752b0e0218f5e25dea1 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 d55b1fa8e5bbd61920896caa516e785ae7dba5c4..a178fb2d9c761e2158d009b47bd4aeb4b0c0f698 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 f1061615021be15c4b464b03dc299bce5848aecc..b890333a9bc63cf9fc26738b01fc9b3f5168b06d 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 210ff857688f6a802d4d0f85bac33879125c1b14..179643c7ac0b7327344b005aeeb214cc955f32a4 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 0807ea524903684f31f336a5568bbfb49b3e7c8d..2a7a60e664d38b7281abbda0b3e76adca4ceb6fe 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 180fc91fd77c97f1872077105f793f1bb9d152df..5171a656b4b8659275651e21ebab49fb341163ac 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 4ca62b41b1f1fd21eb851ec16e82b8e64a983212..c12e7c794ccd872614d956500e0001019d9f1045 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 4c1506f011750dbc3410990d8c98172b5dca3676..b5b502557414f118cbc8b677e716968bce0d5577 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 6c6dd17cae11eae270df95e995cc6fd8e8dcc86d..eee68f2b953859d4057f0681d8c549909d415c74 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 66f3604ed4c9252252be0d4e3612f27884efa363..cbf0dd4da776c8f04128e945469d27132304dd34 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 f6c1cfa41076b1fc849a12dcdc4c1bded52eadb4..1e1da3c5667c2981f49837daa1a854f76fb58b1d 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 81a3dcb7b5e8a7906e1b8ba001030b6e0bf304fa..ebf355b87942eed4d20b110b029aebbb9559feb7 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 0230edba6f49cdd5b69d36b1cbec5cc0612fbd9d..da8ccb49de5fb898da051780128425b373c300ad 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 cc4b0649bdbe1a1ca1e7cb343682ef44ff123b45..4307bff831524649cbed87bcc14f936939718bd7 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 871687fbc2b53014844c8584ecde27f28d1f81bc..4400f4e628f80bf4b3f1fb35047b25e6d819175c 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 f8792e7f1638681a541b0570b2209064adaa8675..5443e3eed475c08f2cc86df0d8b71015d9a6d89c 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 9f3b80c88141410dea6249546f78669a462483fa..f3a026d84330e013650f20f81e0bc1499a109266 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 dd838f1e8afcc803df0cce4a2c2b86c020eaff80..7aa09df40139bbdcc7919fe29e911283ba55dc7a 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 d56631a41f7dd807d06c4f730e9f23691f0569cb..2a21532ff25f44f90ea10ed2e2a4b8652a25b076 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 59d6a43cf586096d963dde9ed0e628e6df375ec9..ea3f06b0ae06ef414ba6373391b7b437032a4084 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 18e6faa35d842c40c9726a51aed65b77cec5590b..01b162f45bba0373be610a7ccc215987f6ce3c61 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 27c7e4af461d39b885580b44beb565f65a0d5967..c61c13f4cd692b5f4b3bebc6ffc3d88c2ab7ee91 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 1fd91e8886313ec78d1d51d27bab0538d272417f..7f1ff249d68d735c83534f5fa672cc4df542d1db 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 670ba2ba363e2966a6e863bda9a69e60ef4f2b79..84508658cc0a30fd2ea1155425dfa93354def267 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 b997527584ca03e07f2418cfa6d4277153ec18bb..4d1100fdda483d54abd3b9e1b9154dc836dc72a9 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 bf6ec359cb3434cef518e310ed897a3cf41421f5..54cf6478d2adf86b3d32d8b15d9b5bf8aa22f5cd 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 ad429c4138db16a337fac0414a135bae4b20fe40..11a4263476a1fdc960519b6091f0bb80e8ec6965 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 6c9357d694361935591cbd51bdf156ffc22580b9..662884b44f4edcb9126b224bc6fbccad88c4a96e 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 8fc5e90a08d53c2c01e2df44084efe46f524af6b..782b6cc236427d21399201c8e15c43bdf11ba08f 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 c5e13f7eb12abf4b37fc9071a24a47a0a3dcd4b6..ec88fa7e8084169934dae19147a18f33a95702f3 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 03752d141a18628600601fa68094410c223947dd..ceda4d05096cbe231ec913639645ee5d184eea87 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 60ab5a6f259b4aa3cad6da1bc240b2d5d02c46d8..66056175e74065d775621568f954e1c8452629db 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 ac5a5ec96e57ff590fd2800006bbeeacbe89046d..250cca4f037db655e6d7d2cc2ff9499c482edb8b 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 8b39ea507c6f2756dc80f20eba0683aa6936ea6a..18f6cbf4fa3a169096b45563e83f93a7e920c03f 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 9558b470ff514ee5816bf3fbab7b8ef9d3d1736e..86055b60295e05718baa828860ed119b46dd5a1c 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 221d087b380ccba276530df0350ff6be085d6384..1c2542951633c3833e31cab6ca66a8014a556b9e 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 5d5a2d8dc35e14678658cc0d78fe071e0bf5eef5..5c2afc7a433a19b7fc0095a4601c8b5fbb03ec66 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 d8aa336d2b527085f6eb214278107753d5b913f5..6b373721a87e8aa231ca5f705cffed4ea7e4fefe 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 4d7cf40f98bc0b4524cf9a2b8183671df7438366..7787a647c3eab157938ad9a997e3360ec85fe218 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 e7b99fb63fb7df660e6961c83c5315548983ce99..1a44df928d7392783a147ec0ffae32bc441f29ba 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 ebdf04f09dc2dcadbf0d75686232ea9c2bff04db..7dd2c7ec06d456b1a26ff42b0adaec9d3cfe3f1a 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 ce0f040b69150c38348aeb9ee231e255a0a2d136..3b3cde411cfcae130d909bf454dccb7554cec7b4 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 df5d0d460a062a172e7fe2f086b83186d9fb1723..a3f05eb8eb214932c42b9544771991a24277ee22 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 e6f19ba6ca21dce68fe9250c9e86667e68fe8b61..50fddbefe0f1ae632d16ddc7180dcddb253257a6 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 76613cedd62da3962ce345e06ce50b55ffd7330c..72c34bbd089c0040ee1f587a0691ab51c3701f08 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 79fe281c049b46672d53435b627e9f6140abce91..77a06a2e7e61e3cb92fe2e9953c0cb6dbbc9ffda 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 b2b7489c94e37a2034123508f8fb74ae582deb4e..0a51d1eb7e50a3f2bcfa3a3e9ca9bfbabb6ef0b3 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 644ca5096781ae90a4e07ef2260c65f57c1afbb2..55c0090fb24b1a81807c537b9f8f6d97344116a9 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 bb1428aab959c1ec59bddc6c0cbeb1621c0eb737..20d4b73c1570ca4627a29cc01e8587bde30f4cb5 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 3ac4d32faeabde6ec9e2b7b73928a7f35559847f..8e1dc2bd94b9dd64b981ea5ad653a652e2b4bc7e 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 2f6bdd22ead60a26c7b2e9280adec942d6c8e556..775f291a4be03837ae6d6947b8e2031be83f9383 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 67011c3ed9b9b53847ac9d768f1424a1e68fc789..847bf3bfc4ed36a438498548da9f4ea331ed895c 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 2086d4c2f5049bd9080ae8ed4eadfc005c7bd91a..84e6aeba36b0a4123f01366b9816010da1908fb7 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 572a751f1917d88da9dc94072d96906cbeb208ba..ba730953b25f4c83bcfa3ec67ba3cbd1294c9274 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 4b1f08bb3277303fd91f155a64ec8df706cdb438..fc22f55ecc93d5af1f74411f4ab378edfb2b02c5 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 e763192d97aa19550764d998996f570baf6c5900..35d2e51237fb3c3c85006b77d1c0610b13fccd6d 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 0000000000000000000000000000000000000000..8504ae315d6d1f138c85b7538f95600818dccb47
--- /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 e9d3b9f8d57140ddf04906ba1867a9720e5af385..061f9d19db3c31534fe28218ecb3328b12a031ff 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 67b4081a1968031f903001b9fa14d99270462d9e..cf8a9fb62f1dde4fd56b676f10d99fac540ee1aa 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 0000000000000000000000000000000000000000..9c56ef9b28d1786a1a1793815f9e122a76394e6f
--- /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 0000000000000000000000000000000000000000..fe95d6ad71c967af980e235f894de3f4d3eda09e
--- /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 72947e8b8d7546aee3b960b0f62dbe80dc4fefaf..aaa1b64948b25269fe783231ef93103c6ae0c7be 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 c7328f45739856811d721098bf37f081d24bfe05..6bd656552983cf4876ce0c53ad5e5f152dfc06e8 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 3c4a94f73a1035afd888760c34197e319c308d86..f0dd541c73fe8ba5b2adcb1bba621718db9c7a70 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 1101061aada2501d5b33b92a4d5f55b6494c7bb8..07548085dae8cc5155589daf985bd5afb134f3e9 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 25e07bb9d2105347e67e8914d304641b5f1a88c0..527bf66d493d28684ae17fc91728d33e01bcf847 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 929f5d27f88cbfd9a7c69d210db8f2f78ea618f2..f911031216ea45978775aec4dc7012d9aec3cf93 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 0c2430675f31ea5040e6a2f5f7cd9848ecaba9f7..c6e4bcbae77b29277d5d07c54d6d8e07eaabc015 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 42e32a7d6d3436a663a49c35e36364976a3bb913..0f1f79b5ee23b3ff6e98c4639bc4f978a24c0eef 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 c253796b756b782dc01494bb929964ea6d2b3870..f9cb4d4a9ceb9e0f8137a5311198847b1d4d3756 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 416ae3a906b328cc16a28e0570ad4354e4f9a7a3..0ada30e45c759081bedb45793dc2c7e9ba3f189e 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 0acdf99ecf67d0af209fad7bee7fb431a372fd9a..85001a9e59984d1e76af9d45bd1a21bf566c4242 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 49cce39ff29654ff4bb7e9903ff6e05d4ff4b6db..90f285cf424b47fa2b6f77a1763194108c82c275 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 1cca55d783d8417f9395850d9b0d66ec71ea5449..e8bd03cf06c1a1d5067234ad8c1f7c4c6c4a8e42 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 3fc93683e06f7dbf779808a70278a4412a058fba..bf121de50da889fb935445e2cef886b0b539dc85 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 d0b57c4a49c355a7499e3488ae5839a6691dfb4c..f36264302d4cf435b622b5ae205ffcb02e359548 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 7a2483310423e937250386f938e8969536f83596..e094212f2b1b4430bf25c15b05f79a0894449a3c 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 6fb4305eb15577406a456ae828cf5e503f4f3297..5cd8372826c50c3d511147279e170140f1b52c2d 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 ff3aa06105934259d9a8c4407430ff643dc3fdc8..2777ead0b1c54bcd6633a2a9c51560845f664f89 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 9b3a0d192518edd391321839cee2d811ecc982d0..a40610b2d6cb33670077c232fd754a547bbca3f4 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 4d88b73d56cc4c1120fead25282de3a210aefbcf..b8a4b2f6541ec059f3cc90c7edeca2d2042afc0e 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 debeed2c7eeb3bd8a9416887828514e2eebf0c0d..f755eb474155c814ac5489a3efa746327664999e 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 97d82bfc64d9232dd1fdb22dec8e2d09816eb075..26a338a494ee712e4bfff9a128c531960a2b5628 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 953445164a0aa05e962cf70bc3270e38e2e66723..56bef8d79c61c799b24797e83205eb2c3c72b7fa 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 f742ad66780fa0d7b85e17bc4e42b50d9c8519a0..8956dc8e8482ce838070de2e19487d2d814816a6 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 8e0dcd4dfb64c31b3a61d8b823b9d5424a331189..7a4f2dce833ed413ba467a69cd819c497e2e66d5 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 c7edcdbcd795fce975336ee526fe2e3f4c1eec1c..dce76c66df0dd5418e3e801c456a9ca17a4b2de4 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 9c93a86777d31fa90a4814c5dfad9858407b746e..6ef22e6eec474589e788c9a4a855f27c77d0a42a 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 9b7f53444650b76e34c3f32a94a94f60cce319f8..a2070229fbc6f91842e3e8743ba13cec27b0d747 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 5d2e66a61642b62b93e794f20b5183eaa1da8206..a6dd30cff67339e9837fa310f4b628e0a78ee457 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 65f868526df4afeb0e49a3b68c375af0843b513c..1a2ab9beb142514491dff2ab6ccc67c24f8c21ff 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 a439f913b13fa84f2b39ddbe50b08d889a572508..8f5ed5551ae8fbc99928d4cf3763eb7531135500 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 e8ba46055e11f9e73cf9ea9e788dde461786e1fe..d74aff45168687522906df12878b5ecee85ef3ff 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 4ea1a52c1005293ea63694d478ed70c00fc74689..0faba13bdffcf709104c0a4ceece023d8635f9fd 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 5fa5effe6f157399c70bc6e84c0669f3e2124628..03259a0b1138947725d1caf344ed023dd5e16122 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 78262afc400cd9ed3ce07821a02f919f29d08490..181f6afe324d8b1fd0a0c2cc17181b5f07cccdfa 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 4f602ae55a97417ecef5c868ac3e3e71ded658e5..3b0da21a3e9b15fbdb53c8245bf759f253fc498a 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 5a0b8dc3d0244ccd318f327182fba692994ca4a8..c6c480fd4a66abf6b3a1432dda0ea7934617b059 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 dafbf2d1d45387ababba9205a0ebf6c50c4b3648..aba8584615d68e358980ea4ddab7eb61d9421cdd 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 28dce692f7680b4383606f3e6a638ff60f906818..37e0d81e2578a727d27b47dc8539a2798c362e4e 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 ee87f5736e6f14ab499d28cb72ff24029581ecfb..18cdfd94263d3be720688ca2a916405f5656222a 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 c945a6c1eab06736007c2abae44443a496f1a955..2c0a20d1171db498c1264041c15a9df21ea25f9c 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 612f12c5c9386280eb5f8241b7b125c601c01e0e..e56384e61fec193e99cef407bd5cc3f927f34bcb 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 0000000000000000000000000000000000000000..f91b841214e1f360c71b6bd0e0767690724f6aaa
--- /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 189fa743f54e78132097a53377bd4c384c638389..41a165dc3e3ab28b799a617fc12af773cdcb4ea7 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 a597ae23a39802f84cfff8472d3e626b424d1387..2444bcdf8a6bd9dfa96e1ae7374b2f199c633425 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 e7f3568519cb9e4cc4f074351488d0638bf4167c..93c3b0a925f7100fe6214d19c8a25e8199586d6f 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 a5fdf6001a583548caa7dffb8ef2e5cbe15df7fe..564d40680404a2ee890535aa461a441105a232e5 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 2d6dde040f1e5c8bc836878261632635c1406cdc..68dc9def7e36a502c3dbc2dcf9db693d3979c089 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 08f0e44c4bc2f42ae4d914ef2685776b512646cf..4d9f199c5f34512c64f9fb2dba3191b691f59bba 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 ad8e59102e1d85ba752f2b7dd9857c4baf154cf8..5c3cfb448a6fdfd237fcc9b21ab274b03d702a20 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 1622650cadf2b2de0fb01d8169defcfc0fc6d3b5..99c06bd0ecff1abfd66c1465726e3cc113c18c5b 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 65585c6a905f2a20f322ef02b4b30ec5b36fd42c..0a7a21d77c58a54a9f446929f8e1fb6499e566f6 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 68ea35628ceaea02980281347ef0dfd5bfc1fdd3..fffb344bf5c6d2ab8574356ac1e32ba15d8b0d88 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 dc866a4d320f2eb07a4374c276acfd589a92843b..1068532e95fe82f3c616f91ac478edf94023eaf3 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 774764a1a83623a134bc5ee46292feeb5e2fe98f..7033d8c75bad25dd446a6fb464db6b79715a89e4 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 22692fe7f0c2b42727ee6ce1e2fba7eb4891c042..663edd451e53876876e8ff67538a79ff5926624c 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 60af9e11e78e2cfc46bdd75a81e425a43d7bdcfe..fd1ca579a906fd9932e241d3514d81e30e2ae5f6 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 b567e2256e8dbbcebfb4821e8110657a801a34a0..ad371a230dae21de1d0027210210482c20ab287e 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 eab3d4ff8d6cb1dfd783f6bf18f4668472f11bdf..f0510df4af380fa3c82f78ca8f48377d37aed723 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 8c8bcefecb3d218524f9ee2da2d00f01833d7660..907045893407772effc0a536f5e4981156630ac6 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 e4515b7e1bc6d13267051d152339178b1b11827c..2dcfb51a7e627c0b00f7da2384c6e2bed6c45629 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 7f5645b187a958c783aae88dbc204811aff6643a..fb035bfba23008b6527f33e0d2a85f8e4b900110 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 1308de9bbef643fc3706a65cf3b0dfa05f6c80b5..d361ef8d7c987cddd9051d92471f8ff1f6544665 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 cae6bf1eae03ad430ed6a7b31a3828fed16dabb0..907937d41a9519510736442f35c80ba88dcaa2bf 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 4c9178436927525092da276afd4e63f415f50993..d7d12fe352443b6714ee11fd5eff634cd8dfe94d 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 6ba8736d88ccea6a4d9c816ba10c7a5e8d171ba8..6003bbc8f0812f6cd88ed3f61f1dcf3702a54156 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 058f5e34f12ef3ada0541b259d60296fd61f2318..2c5f0b86add6003d28aed2167ead7e149a8ce129 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 33edafe5e3bfbdd2754387f85769bca40e2cf1e5..8de9dc51082a7f1c60c33be9eb4ac42e0f8f1f14 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 b36952e7b4f6c9c17e5ad1d9c9a1b5e4a64830b9..8ffdfdb98d2636352d3a2788ab81cf5a979c5e17 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 4d15c4b6fc62efde3ac1b4353d4adce98eb510d5..6600e00df0df1d28cdf323682f1e96ef65fc9eb3 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 7f61f7582bbc009e7a08e0e633d898359be5c13b..31c996ee92109edb60273a8a0a6c068a404f4794 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 8c31d75ab02349db875ff5f90bce0d7ca4ffb6b8..028ed8e9b7965027678386bfb28ee0c9f673ca09 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 d56c8e15fb04777f7b88c830a6001a7a7a65677c..7d952d119c3beb2086ed6e89c6ceda6b130e3738 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 49b8a3e8de4ffad153be9c32d782950c15c9f640..cff9a7cd491f2314fa81225eb8b13e2406643cfc 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 271cbb94d399d1db4880a90b6dbadf5e7d17ceb7..53ac0e0af0b1c16c18ed32d49cda9c5e17f59054 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 d8097b7dd007d231d32e919484281695cb451966..e3745f7be386d292c811302cf63d678fc20fc532 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 e58216eb8fdc81d2ee1b5f384c50d3a69cb981b8..1cde7caf3c9ff661ffafad4ea878d04f0ac2e82a 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 e3a6a6c07c516bc254eab3249bfe40cb28f49a0e..fbbef50a158c4cc6e92c34d8f2cbf0dc584628b1 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 e22683fda632cfeb91e19272211d0224131f2b5a..83a4b38f7e715e0dc4dd5e29c48dd5045a43826d 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 19926d924da268278f0520f2f44e7a793ce927f2..6df2d6f6b36d933e73e5cc25cb6c3956cf21b798 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 834124e977efbcf9e4e0315c9590dadb8be5964b..705346256481660ef44c1e30c3e7df29f0913647 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 3b5d7da3feeef6f83259db4b0674fc2832508509..e0daa87a163f3c71f4da7adcfccf0aed6454f338 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 8d91d3833a50a474ec2b662b75084117f941f250..d729ad7789421b1b3d2f5417fa578a8773988b31 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 cf129617b01a0245da4a4331742cd2af347c8f55..647ba8a0b5d2a821c349685b250511e14a93a9f2 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 d9c52ebda58e55d16dfb63a55e03bc6e9ed41284..0de92d788cd0f81fff32a14b996f8f11e4947d53 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 fd145b621d0e8fb9da0c73ac919aea3246194538..87f6e62deda614fe29e7215daaf1050fb5fe8878 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 4a9a0314be68316585d7ec3cfb30f45225921358..b44f99c7ea18b438ba216eabd586667ba798e32d 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 e58216eb8fdc81d2ee1b5f384c50d3a69cb981b8..1cde7caf3c9ff661ffafad4ea878d04f0ac2e82a 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 489fbbbe92b37161afe26f68017ee335bb8bf2ed..6eadceae5cdd6d90fdd0980d761cfe647cfc55ae 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 d3dedc04fdcc264e568d383621c17639db9e570a..589eb0f504bdc5bcd97cc01b53d1c8c23f63466d 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 f4436d6ac143bdee568a17772b2828b1fdc50792..d443f94fb4111c0b545e88468f3a4db2c0491701 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 ef604e02407a1ae54e0150a408f4c10464882b28..28a394d5329eb6ba5852e292ef7724289a6f838b 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 bf9a3230bb2830d52db9a66ca0464004f5d41008..e5d4902109e18df4fb67781f7028967d432efa7d 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 3d0552ce95438829bf1b0a76ffce6cca3bbeaca5..8c5a32aa255cc46c34b5f5147cd56d4e08d5756a 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 03373a9c41385950c84c77d0371fe77420d6dfc5..1dc98c0a9f79df90ac2e6079f3c6288f53c25479 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 3011ec228af79f9263f7dffd03ec1fb712eda28e..e3abe004ba6562e4c8e6f8f5cd3f6223a4983f88 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 f4c5b926da42ae5a6af71901f4963aeab490126b..2d389814d32772eb95f810debb0f5c73b157bb40 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 5ced083cd47f735959bdcdb80bba6a195d8996d3..33515628420d4a9e4b508f8f6b194d3ca90ff7ff 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 bde23e488082b780240ae669337c3f0cb842cd6f..346ec7d320c09192c440ecac8fbb3dfc83dff78c 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 86e414e2443f138ade7805bf32fe82c522d71c33..f955987ec684603803e4460eb6479062e1b2bf90 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 b86039917c06ad1a861cbc48def61d20f046d175..ac36eca8182450c27b4892454dd53225ab79cac1 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 10878ccfc78b3d1df56c8361c70a9333798afbf0..95ccf183794229f13b2717adde50ada9630c5111 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 9076fc2cabc09dc651d55ca367118ea77d63f36d..852673eab8f889c3966cbbf18e8ef19504154ebb 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 b1daa6a209427b4d7e5cd76082bcef1bcbbac59b..af97ca52a6b12740e39de0a6e2c1b35205e6b333 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 b9c8a9ab95bc2af9fff81d54c863d8e40f6f6839..02a61ad96fcabf05a672a4dbaed25694dcf48c06 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 12bb213e53ae64266614b41b714f9c730605f991..bc1b2d8426fa8992940387a84b7384e207910dac 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 23587f581c564e454b1834f17f3823d68d001b1e..16deb6f812effb38c1263e04c86e2ba8292bc011 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 ed9e4fc55ea9bf9d1f6e93bf75309595b3f1e098..cbbb4f31935c626241851dbb9cb22cd74818e4e2 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 6044b41bce4b684813b13d79ed7826a8c77883d5..b2464983762f9abeaca49db26d86a8834235fafc 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 23587f581c564e454b1834f17f3823d68d001b1e..16deb6f812effb38c1263e04c86e2ba8292bc011 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 c96bba94f6f70c71b20aca85f0ad21ae04c539b6..409f3bc40e21a544f58de0320d34f6a3ea1e893b 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 d949776f802c68dfd2f5ad796f3a959813525fa6..6288f55e08091029fca8eb283b6a66407a117e29 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 c7386fc4e175b1d89938f72fcd338ce7bf16ee7f..63d71dd5d86ee34f0684da28d762f03b6e42a811 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 c56d0f338464b689cfee126f07d60d493351b95f..afa6ab752a1e0aecbc6d08092654275bd772ef94 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 6ba82010e640e2275a34e237976a4b68dfb84017..90a2fd69b3f1dc931a7f765390e28780d864b240 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 da3dd1cbd2f1e2810407834fd3224de7beabc142..5ca393a21d6b1a3afa082bb281ff3d4b563bb509 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 543e2927fcab2928689ef28be950c0813f667dda..da310fa76d7faf86f96d27356d6b3b933c61a759 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 6202fd575319ac56b9c5166bef3ee80bb26f3fe9..cc0f4dff3f6f41f43eaa0fb470bcac5f13761235 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 15560f05ad7f4ee4796cc23f4450707bcd6dcdb7..e9004b044cf85a4154cf323ac16bc226d1fb6ad5 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 72a66408157c1c8542ff0b2d554c724f109c920f..88440d98d49a6bfc891aa75cc4a1fa5c97b272c2 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 89f360a943d4b1e8b90a96a9cdea301038c7facc..038937b10833b57eba3d3404834aa3f0c2678879 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 cf01ed27a8ebceee11edba732891ff8a153b076f..9daf1b1d933a9a71febf8d4e2b166a95452f3fe8 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 abd89344b4d860e26d9fcf716fbc3989eafe59fd..798879e72380342d233d2e7a2b4030d232db015c 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 c1d6b6b29c60dc855fc5299c9311dece7b721089..5904292073de9b66028498b801b55480bd883e20 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 8816adfeda5571319ccbccb7f29c4c28b4cf0272..da88b239d186aea08a4de55f60a52d502d0fe5a3 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 8e81be7f95718bd1070bfb08145089d26a2b2218..d19e48452878a3e4c187f215ca0bd791ac44eb94 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 459fbf98a6d00883e7979d18704e60ce49cc9479..eff45d72a2846209d91cdb08e43cc7d3dfd818e4 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 188fe0ef9df1d154a17cc79d0ff60a8b0c566894..36795f574341ee2803e42f381857bbb046718c4a 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 e466ab5665a081d1e8fd5f2b6affbfc6cf860f50..23d5c809d7f2fce858f05ff6ae055c9ecb93ba5c 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 1472ca19498ffc4e0616d789e47f00e4957e9400..04485ce6a1eb24aee984faa4f10a34ab348771b3 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 58ef24ef9f0bee07d6246b8ad391a104554334d7..ac128646ebe9858631ae7e55ca3239a639b91725 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 4a47e2297d7bdf73f9c46e6697070d2e4acb9c21..092a82822f05418e5268fdc2b642ff2fbc21cca9 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 7515e0942f8e500069c113a8c640de634b7f770f..1bcc2d87c138cb37f83a28ffa762ccc492e07df3 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 f1a74270441a5d216ad5a24963227715757ba7b6..160e6fda3d24ddac68feaba7ed9b100a2fffda19 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 c38040f94b94aaa98464bcf86ea1313f7d92f29e..7ec5ddb068c0c0dc4f1117e1bbf8bd524710978d 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 d949776f802c68dfd2f5ad796f3a959813525fa6..6288f55e08091029fca8eb283b6a66407a117e29 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 1388bec1cc65576aff6abe647c470d27035853a9..049c9ece6d76677371c9517e45697275354eab63 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 e536a7232278325eaf54dd19f923ce570f3e85f9..5cfd965cb3ce1a479f8cc9c4d2a2cc10cea60a64 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 7dbce4ba1c66866da30b3ea02c685be11a8b9be6..7d29ac5a3dfdd6385bdb8f520a194fa3b8905bb7 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 df96649a48212d329fa7c3115f687511ce2b9d13..fd3a2466944f73eb2d052e48849732b6a2348a44 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 0603a22777b9ae7568ab7bd78ebeed4a7aa4107f..869d656a3109b82a25790e318886bd69a6d00546 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 922258a601a2b718973cc0f692420484c61589c0..b3fd1592b496016af4291a0eaeb5b85ccc90ac0a 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 23587f581c564e454b1834f17f3823d68d001b1e..16deb6f812effb38c1263e04c86e2ba8292bc011 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 f67613bdffc0f6b4e016bc74a4571bc9342089cc..910a6bd6740f719b28ae708ac3b0dab7367c2df1 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 0000000000000000000000000000000000000000..e2d293255e6d2f314e34950e486a48630d873491
--- /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 0000000000000000000000000000000000000000..16deb6f812effb38c1263e04c86e2ba8292bc011
--- /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 0000000000000000000000000000000000000000..9f8b73a42167cf5c237b4578421d6d4f4d392ad4
--- /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 0000000000000000000000000000000000000000..3a4b58ec16cf2f1390a36c7a92f8823e3b94b425
--- /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 3e9418197de7d6418d1a0b1f952598f6f0a5ec65..8a4b4b0690222cd008452139cfc656331c57df55 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 b9f769fad8d316df44e9e9dace8475e07fdddd5a..a0a5020fe3ab4cdff48192dad5c9e8aafbf854ac 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 26596b983eb5a2666e8837d6502c9ed3f5d5cb6e..c572344c6b45f9cca5390c4fc59ea9040d371ef7 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 efc21853040fa3d2db629a356e13afd5db9c1ba1..23de7033463bd9f14aa1b8096d40fd026598f886 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 9d6fef899d9c01ca25131ce91428225c8935dfce..ddc23cec976a4a270d332d4f13f0fe5e20016cdb 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 6c18c5191f51aeb9390a2ade82539fbab7881926..9261c58f6abbf1af48d7b2a6f046c670f3d6d3cb 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 cc2ee339e03fc39165fc6e7091688f45524eb0d5..ebb2c6f88f57454534c55cf89dea7bfad10a622b 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 e986d513ef40d7eecb72b0270f5ff4671e665bc4..4fb408d74f9beb33625da41cca4166e049265a72 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 9fab451f8a3e6ddcc1a42b9bf0987981bb11763a..db532da1e62ff5c31c7b5bed6b29610b65cc795b 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 8267c7e80233dd643f7084ff016d307a7ee3e0db..6c5bf499c63344d10c618f539586b347eb6ff05f 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 b798f7724f426038be4e68e86013d3ac5e941ff1..6752f7e3e14d8281f6886482a4e244168a6d974c 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 7b137422792e79c53ac6b31d299da74890c7d39d..336bb81c008fec46d9b80e735e241b4b8843e103 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 bbc017d8387398b19c41659e283c8445e7ee56a5..8e7f40c7ae0833c6b7068d26626bad0467835f4f 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 e159b32cb44af766a370ff38176d8e60247e6a92..c44b24c58bfd9d32916021997157847ff52e3083 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 ae3ff7995460a0e9ea095476f77a1a46e80d0bd8..22f0a4495e28044b546da528dde8d27d8c97d4ae 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 ea0c78daaafbe7295afb9433f8777533dc89f736..9e640eae434bec4b9ff2dee345210f53fce619ed 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 3c60f7bdcbf472c4c6dbef24a35c25f257586fdf..5df9e2a0e22995e090ec0018124454e6f04f4b7e 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 1e038fd06fd37aa9469bff30f282a1adfc426b33..7a90b71247b10fe40a4c1ee36837d1eb76665f81 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 d949776f802c68dfd2f5ad796f3a959813525fa6..6288f55e08091029fca8eb283b6a66407a117e29 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 ad76f898d5aec28715714eae629a88c19aea61eb..81fe5b93960746d27f412cf1cc62ab27c6e71333 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 6831b134f7146460cac27237de5d20f6e8f78ed9..f402ee39919191b2050d46b85ea2a9e283ff656a 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 d4b7a487e29da63e456f3b08e02c77e2b1487d1f..1df2abe1bdfbadd9de55100739016246cf1fec32 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 c5d16a723565a8c69df0c20022f1b954edc48d4e..57f284152c17d96f8885101c25f291ef65aa9c2b 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 dcca18e7819a7ccb5a3b58e911e9516f24f68562..1cf912cded44679a8207353d94a41fa318d56271 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 6b64f585dd2348bb8950b61f2c2a9004113c9774..e43389af2fe2ba478865075fad3266b71233bea7 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 7aaa2c377726c706b921a51ba67526c01a900e2e..276c2155ad6f825856d1e6a7ec5ddab55ecd7f34 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 642ce2e2cacd242f240d93c2934fac5404ffbb8a..9a295d3a0775d1d2dd8a7875d60bc653790d9541 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 8dbe9c1f953f1b47234ed5e782c9d8c8f34bb081..e54e781f6ecf199432a65c8de46ab0a1c116e05e 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 6d1376e084c03f587bd1432734ae612a98ecb494..aa2284c25b9c7cc48ce7b2a8b4308f07d1ad0367 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 ce124b9477a88bbe5938237ca473edd2dad99dff..950da56e0f2baf27abd7fa654a532be48950078d 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 a6bdb0bc717e7443011052239c2b4de5d78dabaa..c531ba810a61923e3725ed463855fdcc81b6fc5d 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 4b0954721fef5a31771300a25c361f9b817c93d1..5e041bd0db8803d35b9c0ec91a56bf650944309a 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 466ff2da3f7a518709c18368e6774fac58da15c2..2f0062f3cbb879244ec007bdfce9e650a332fd12 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 87750762732c53252b8200bed4731731b6d689cc..4ab37d48ed6fcd1dcb17e5fda9a8194f80c1b4b0 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 65508f828d9fd13223fbce82731a5b1b593f7b97..82a683c4a34e492e1d75cd6500eb4d279ded7fdb 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 df982443fb77a54f11ba3f210857442b28b5c486..6bfabedcd4c4cc6bd4ed7f809de0ef2fed95dd63 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 07fe806467de7506c4d66b1a2e49a0200dee2d11..4c7d93eeac766978330b70e3891a83a064885648 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 995095668ce8e44edf5841a40beefe77b194ddf3..e2e1768133be179d495372e896232b93aec72dcc 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 7f88bd33f9f3ae7f54c2db99f0b7203e532989e1..dd5261864b7631ae7232d8ba5c5e77901e62ff1e 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 8b9f631212089aae4cfb0d4bce455714c613b4fa..a3435cee111128872df5524d60146d8815ec5c46 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 c82e869c0484b6511056364c32454d7b893127d3..c6f72c9ea66ba48d667cc271bf3acd4e2a336253 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 ae969d375fad7cb344e564eea1f409c6c425e9b1..24e61adc87ed0eb042d00a57e3bdff2ec20cee57 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 6d2ee007aa753437b2ab93f51489eb129c6836fa..f9e35597f33d52da8f8b162e5be43b21ffffb822 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 538932bb75d1903695ad632ee52586039c46d00c..47ba47638c6497f483d63cfe934ca8f71eca8f22 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 be93139a3feb49b842c34f3670b039de7c631033..7522267f7a59249217896d556a77a7f82b1828ad 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 365636f001143effb069a7127d20bbffe3b810f0..2815d46ce995cd89251c43d1537555bd9ef8b900 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 b215fd33e37f9da7dd2419b697c8fbb48f234d90..5ede61a47630142acc3b7d048adfa774323a92ef 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 21b0bdac72ade9001dfdb9bfe75ce26809bfdb6f..cddd73cbcaebf61f4798fb8d3bfd063b0a8001d0 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 d8292ec0892074c5dd607e8be27226c8cbac2a87..43b31572cefc357f5805c6fef9569600495cf74e 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 4f04a3bf3b1f4a71531ca414f1349c80cd40e60f..1b2c91a69d551ffc62edb2b2c9b0c2dd9ab0c631 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 4acf7cf854656d5f20fa3afe0e80db1b8a7e8720..1e6cf607e908d3a44b9ce184135d08b39f60c7dc 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 b8472e34999bba41a8de85324dc50933960b0471..6a955fba42b0d175d960e0580adb87a8a2b29d89 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 3105b7c643ade0fb35b380f284b4475a15bbaea8..b341c35502b6b71d78aaf308a1ec0a70baf50842 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 195d3c8a577b0e7d2b23ea280baf1cd0de141287..d56f5cf2a6bd6bc3df79271fecc2730aa4ddbe11 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 93e84af5362bc8b274800cbe67928cd77ed1e6b3..6eabb39e747d54f3c4918c51e704172675bd5c7c 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 561abe37fc8f637f482093368c11558686412b71..037aab71691adeb30cf580cef005d4d597a0ab24 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 fe80cd2277e6689f79d63ac2cce0f99919f42d61..61d3f3b9cce32835731cfcfd22b43429c0261b01 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 52c1163cf15a93bff05a656f5909e1ff8da640bc..2869b4c4b6e156f95067156067a05e7bb3899176 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 082a22dbfaef70a4465b1695fba58ca86c3fba5b..7ef2d4c02bbe4ebe419e3e99d9cd85277be34536 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 4590fbbf5db41682f4dced471e572b805dab35b9..895cff14c43c9baebfa82c4e8ff76c7dd62e655c 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 fdb92c39ed2880de3f636c6c83fc68f61038a653..4a1ae274b619b0341880ebdb33a207c67e88da6c 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 37d7123fd77174deae39f79c91033b93f9128195..588c8f40b05e4339e31e6f42ad6cd9e120303246 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 66216937fa996e0cafb75ccb777c4e7ac42d436e..9a5804446d5c9cfc9b5b82614ea9acf4a68db5cb 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 1536b8dca632252f99daee0729a42fac0b173502..590a4d11a44f6b9eb6a2b3ba20ed68451cdcfcab 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 84fada1b3b228d198469355e136caddced12e8e3..3107f156b5654a49e89c56a4bea5fd49961c7b27 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 ffac6f14e320e93be4c86035203b636a67cd2d5a..83ab60ad893811ce60f82b8cae4c02f4b205bf37 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 ab224ded871627d73bae8a77e50bda918e543391..dfdf113acb79a11d1f12fb4ee83799beb0daedf2 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 50b9f43b759e46aa10862c269230db25457f70ed..b3bc692854e386d65fef13dfde842ff1af133e32 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 aeacb8963669dffee5e935fdb9c9daa7a0fb5e9a..97815d2be5d55351cb308353dac0dc7b02675f65 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 529a5cbb6ba3aa150bfca2b811049c967bece0a4..39bed68887e808f013677467b50aa11187c3d1f4 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 a612d95c6e0ccf9da1f478d1a239e38b2aa3624b..9d3b4b93c1b04ef33f8f5ee0d2ece58d49ff67e6 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 71a23dfc9a750df39166012bf7faf4380fa09b5b..85291637ab60b8e0b4866e04c1f5bed8b29eda16 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 57fa3d694e9e8586a48887532f6c4ce3fb0850cb..4d112f3c26b50a109bcf0a63c6bb33fc76e0fc22 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 61af359dc42715ff2213a272fd1ac1bddb98b4fb..6d5c351ca333b953df645a0da7e38257139e64c1 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 219103fc5d00503a40c37343d03652d32c1b185a..79bcb4e684c3264c4e64883242b55c07856e8ecb 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 e03610ef8d577bc5e68de72e5ed49d6e47a52a53..e40490dea7696df3842e455ae0ac7a4dcf840374 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 1ce86147610c51216d12830aa7c9a72c582eef47..7c311d641f854617d56f38d39947524dc980dc6c 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 39779fc6c17927ae510628b5f546660f373e8fad..ca6a8317b01dbfc3ebfb714f7120a425b2311785 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 57e9d2610114102e420b6d12b2aac0333901e334..dc930cad103fc07dab7fdd9fc57cd3efdad67849 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 549abcab556708db72365bc79ab2322167e7867e..c8e0f8bc15c7fdc3e1639fca7511aa2095d769e9 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 1531845f001152096a68201331987c6eddf7f44f..3476d04031bfb3b5ff04ac5e8ec3f1c6e867a0e2 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 348f9b3894cfc0aa438e6f18610a008cff7c2a4c..d3346d726a9f5defc549b98bfc6d471735decf7d 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 530ae95fdfda55201deb6d3c33307d6f3b2cb0a1..5235adbe89ab26986aaa949cbec588c9ca374052 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 9b834137d9b5dccad4840fcc0b171d3b157c71b6..b9bb50a0de5909df159c9cc0d97a4e0e00249aaf 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 3fc1c2b9b3e313df3432d92a97c16f45870790c5..b58ae77582ae89a60a0f6981f415d593b102dcfb 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 78d8025a0c8cb6e0239058f2da4bd5bc8f1a7967..41a513d7a1f74dd86cb5ea7be05ab71a9cd542d9 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 189ad85af7adebf81e6dbbeea214cc0fbf407170..858f10580ec7ab2209574aebbe19813c27237428 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 2d8b8d194f73b5777b184382a04ad43011b7d598..1a226dfd6c18706e38061134814d41d233f09eef 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 e58216eb8fdc81d2ee1b5f384c50d3a69cb981b8..1cde7caf3c9ff661ffafad4ea878d04f0ac2e82a 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 e110cb134264b34b6a7271af0b5949855d5e9a83..31b827cfed9c72bc9464270c37432387bd3d09fc 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
Binary files a/function_test/doc/TTCN3_Executor_TestReport.doc and b/function_test/doc/TTCN3_Executor_TestReport.doc differ
diff --git a/hello/Makefile b/hello/Makefile
index 50b53ea6d05353b2cef4bacb1f86e82cefe5cab5..7b03f87f89e527897043371897555125aacc5944 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 99bc07e8d4bd49aba228e4d2efe1581035249454..ca64e58ef610647462f90df79c899176919e7ed4 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 edead6dfe0990eccc1f50d305f0900e2837d4c4c..899b24161b2ebc833704c762f72f0fe26bf9e998 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 21e611bbc86515885243e20f2765d2aa40de6065..c0c0cfc7ca5e62579fbb26fd15b5e1a056d7f480 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 798c2fed605e2dcf98625132cbd25bd0ce6f49e7..7eb96a329008de457678c803f04664d373e82d80 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 0000000000000000000000000000000000000000..0a2adb0743c4c28d86c61db1a99216b83c3986cc
--- /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 55bbae00d9435db9f64cdfdb10f059cab39ef54a..4e571c65d97f6dfd6b3d5b5c03c96711b30e65a4 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 2492a76be2a0b4a3b72dde1ebd3ab9f90b82c3ab..f27e75a7e3deec195c32ceb66300251a604d608d 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 db883ca64854874d98afc0db6870d48a82a1d64e..6d80dda63ed4897359f7df02dbfdcece1bb106b7 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 c0a495ae0584c67148a88d21f5c98edb07723efe..65b4776affff9c2321ca2738142d32ef9265db9d 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 8db23380da4ec380ce5d186b84de4c753b303f86..890be2c516a605fbe75eda5a3c4211c00c3b069e 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 f83c982216187b7651d5e1726a6987bd9a5ed7d8..7996899edc57a1faa4557b8ded1ba3d5417a7a85 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 3f45f49b21c81bdb92688abad48bce3f8598bb1e..4a87914f8c647b0566692cc0d7c4315226a2e6c5 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 7c3e10a2b55bd1b88b966f101903c3679c40f8e9..3d33e3db22e51f27c6f9ebdcf6e13fb7a6fecd40 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 799a8667bfbc73f6c276399926995be6a332a7ce..94be11c3ad8a35a200f308467c96fea01d9b2c39 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 1fd25e94f73c2b66897e5778e070e8b5b603fd11..7ffe7ef1e072b4767269a5c3ac8207b7bae8c1b2 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 ff6078df6c546f6b5c47c8d3690f380a3bacbe40..54ea38a430544896b59b54c389d0c46f3e9f4851 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 e8acdd7aa045629ce6b28e359e6659184c07e1bb..8619ad7ce30843ae9e3e3b7a02709b18235c30ae 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 c6f480a6ce20a20e4bd9d944e47efb2d1b7b8a09..fc28c9c9573e399a65fab15fc6ba1795dd17c7de 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 7811d2354321d5b0957fc40d137f0c7e239a968d..d9f67739622a8a4dfedf83eb5bbfef97b240ab19 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 0000000000000000000000000000000000000000..5ed4c752bbfaee37cac0a8e04c45b91ecbe25257
--- /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 aac0d364e48f7b5a5a623f9efbb94f4099dd463d..032ea67bfba837648597fefd60e4d9ccbdec0191 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 3e472163b20aacf3ea81fd34164165da61ce9ea4..c1a12a60d976dce5ec68cfbe121720bc4fafdcaf 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 c393d0b340f4c24e17d4206d949a77ccadfd3323..dba42aa860349278d2ea05313bcaefdcc3c496a7 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 fa4d2ed3e093efa7714bbb12e93aedbbf33ca65c..e0928c87cef47eb1c8f4556077d0e7a584bd0fbd 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 566ae405c91a3e083e37773f04dc3ef16fa5caa4..fd8e3e270947466214f73465716279b914e5e233 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 1be8bd3d5201f73be2aa0b49673a3313a8067357..a01d9c421650ca704664a35931947320b59b618e 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 2e2851c46e247b0fd5a845a7e0d7f71072797c75..2e72772e72c4cdba6f3f36de85a79ff1c9eb3c65 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 a3f3c13d1712d047dc843ebf4c8e9d98d4130fc4..146211e19ff302dc0a0a126d8fc4a977d99f6c50 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 e9c66b8e5d4c70d701c34ef23535cc91fa2659e7..22fce52b023df833eb870eb61b852429fd6c44f3 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 5a2ee5ad24d890110dc876825cd50922972209c6..afedc1d0efb40c769f757233ad31ec30b9c35934 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 5fbcc30334391d9abb14cedd1ae0a312c571ca1a..4ffae2cb1861ed3da8177138279e1bf636d585eb 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 ef527f942acc0c0213d0600a61a2a8d376da9d5d..346a2d52e212a5efd9d6f2f365a794306ed303de 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 c13a6d69178808d910b54a755526690a690a7952..8cbcc6205a7aefcc89d568f39bd8640261eb5dc8 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 96cd52ccd180d3399a7aa9fcd57c752bd67b9207..57f56d699f5e8b28bcd84ac3825d82e083c96e62 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 96f6a100775e3924e2501016b46e977edef99036..c6c364946d7336a048a6249a826b59803ce9ea79 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 d75ca66fbf801757878d8a34fcad931e20076097..19d8c937b1e69f24a6d1844aa6bc483a5c59a995 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 faab908455c8e90958c4a3d986916d5dca19310f..c72b6335aa3993c3d22be1d01dd9698bf167695a 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 4a09a2785a105ed13c89782e10597f561de4dfc6..b0213569ef577ec260f629fb1b4bd7312eb52aa3 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 3e0b3de017b13515e832907573b097c87d518c04..b999bb54ff611df4f45565b82c5c5dafb71d0e8a 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 8bae89df5ab4bb0eaf71c7a1a181f18c43f90145..62599e0d8ffb615d124f007578230e33e0d382c0 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 7a4a7a73de0823531d87b7d4d038305d6f37d7b7..9e64719d220939a9a914cd731f733635c32a8b32 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 8feb427b1edd9c9bcf96e6faec05a5bb8a1394e5..570e9169ac0efdd102fdfb9f0a4af79654ce212a 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 f9686af8fc4b30da25144649763adbf4e428332c..9b9770c606c317132ae47e8f7eb9327a3b87c7d0 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 04f388c6f4d73969d719706fc772f55823cfe20d..3c9d29d788cdb125ce19fd30ff7e3d65289eb5c0 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 f2344584bc1a6f49dab43e97fbf96036a5c74142..bfbd80551d8c590178a4290d9952196551894812 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 1d637d9852caf1afd92fb8b8d95a86964eefad71..72727f4f9b9dd2d857ac31091148e2805038c09e 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 50fb536e4a41de7912086184b63f269c9b97e75d..7976cfde182c6a9fd9e9dcae44438f55634d9a9b 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 0000000000000000000000000000000000000000..4044bcf79527342db1825aae1e13ec66c1bd14d7
--- /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 524c8ce6f8207e4137a5a48520f938a6d07e5be7..c009c782ed2aa1962856241fd9c7d2d93d521de9 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 af5b94d121ba7c10ae888273d593bfe89773357a..044c4e2f5a8664a2e05e850e519d68a64d76f54c 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 6a42268bb170fd7b418377186bf6117c26e203b8..de3321a34011ded3c30447a08bb897279a6b4961 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 65f27d38c6cc462fba4c8172b89dab9a6df20af6..b1de695017ee99873247b30702fe049e8853d9fe 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 11a1d3fa6632f1b1a51bef30459c71ca298ff6a8..9970a037d45fefb9ab9adc75a15c47b8bdc40b3c 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 316b9fba0064efd155493a3e5410d88a4ace2bae..e89e8ba7a08868944fc72818498271ee519162b6 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 f967169a02428e4d590584945eaa3ef130df5c09..f750107a575f1fd9bc30420ad44a77f4e63cd3e6 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 22ae99c87ed3d64c3a2a7b377e8b4922ce30684a..aa075916e6d830cdf3190cc840f404adbe7b05b0 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 edbe71edf26064dc3568f19477374b120a9a6780..376be1931f58dc061fdf6ab31ed3b88260b0ee5a 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 92cd11c751ed2072f3c77c0c0da829c34403a305..5c337a5f6efa87ae2b87803ddbd644f235315ef1 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 a336205195b9dc0d775c7189b2a865435b4a12df..750e462584657e86568f98f36758345da9cd891f 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 fe787908e925051701c014b9fcf33473e0361f9d..fd308ee280dc68272f02bdb2c34099abd87a2060 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 54f67536bbc991313cde31d2b169da0a70759db9..66a2d56d2f80b62576e3360c5870dfe8bcd0cf78 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 e8ca4bf3225ae6ff3022da274d3d703ccf33d521..76ef3954e5265aeacda0ab40b9d7f7bc6a69119e 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 305dbcf4b99e47096995ad2a25e19cbdd6cb0b30..7e1a26c79431017464cee23c7db00b3cea68ba42 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 30929594a213149b428162aa6009fd4aca5df879..cd4f5715646e6fe38907c898a22a445b923695a4 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 56aa55eef3ada0cf60fae8511df9f64d4624afc3..1c520f8ca251db5dd5c2c225142f892be5e36c73 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 5a39aab1871e5cb021365a23ea7bfe12f736a57f..7a922194c9c3df96d521c3bc3d3c347a990a1502 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 a28892773a2dd60787517cb7653e050ac1b25594..67f3311c34f2e258de5a8e7096da12b19a72d666 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 10f6e7a18491bf75a0dbae5bed306d130db39243..32dae049c4a1e7e2bbd227675c7a9e9a38c15014 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 fa3ce4beafc29bbcac04cfdf4499e54746d5e3c6..78215ce48eb3e6897d6b6cc5429d4c15c4a3bc9e 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 b36039e2e8aa467d8539d957a2feba353843250a..44c0902619d94aa7caa895833c1caa10be5df759 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 637ce41e4d17f1578fe4f1164a400a0260d90247..8030f2f3bb8d0bea07871ad17ce52b76ddcc0f4e 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 53b5253d8b5cd2c64db7678493c723432397a587..ddf95d6895f6107e2b7bde4cfa684eedab4cc7f3 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 2178c723e15a2ac37c029e47e52a3b52cae145bc..159aa95da190ad95acf1a820c9e7504625a4865f 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 5b34f1d44aeb12e5effead65fb1bf7408bb97258..2eb9693f9c2b3f4f44b6733b6d1ff8870308b42a 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 959df7a0ad58edc61ead091c211a0f3a10e7bcea..2c84e306599f22410e35107f07dcd225714be153 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 4b3fb660c79973414604275c826a256718839c05..0c2fc6bbf871c978f014153c6adf1ed22c590aeb 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 760f4dc468d589c8a8cc4254cf94710e0561a558..43dbe1a2b133c14d9a89fd642f71e042124ac6a1 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 cd3c6864d602745f4718f5a291eba1e0935eebc7..b1e9d37296405fa98b7497a150f075cbf3f4dc53 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 079d57a67d7b1b69376456c5ac58c910b8c8f012..7c53359dd0f5355552e19bf801bd23e3cad2d9db 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 7e9d7cf3abe15625b2e4ce6871e10a29a0b34c9f..e5dfe00c5effd532e18367e8ec0749e674388aa8 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 a8314ad4f1230665b0a931f2eb95ab6c5acfb8a2..80f7ca3232f64789a1923290e1daeb82a7cdb37c 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 bce21eeb2716763626efccb23e3307c839ef9516..9f94127463d3cafbd72a103d97a55acf3e208a65 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 16674054048259ec82240a10e46e7efac7dc8657..bff732c3975721c61c81cae192fb49694fe7041c 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 4b5701598b8af5259d0bc4abf34b846088b490b0..31641c8330a7f4f9a8ef7fcb2663fb022247dab9 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 4e2edb715117b249e4db9b19c51fbea9ef008398..d55420c3312b40d20abed530c9969395ac8b5ca4 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 f18446d5c3f6ed13fe2415489e830436e39f5bb9..1930b49a1ad631f4ec72ba35d3134edb218179c9 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 b84fa97997686cab3a236891aa1e25ffcb19bb54..99ae0abe5987f082089dca9c97d515eba9f9d594 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 e9beb4592969de9d78ab04be9d42c5a082407851..f1310c893a71833010e88a143f37c8b1eb9ab0d3 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 be33dd261a349609423d42acb35df8998639fe70..1b477141fe40aad898b6dcc3e7637c8a7e78d6df 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 cffb90114c4263ef1fa8945560c8244a65520690..ec4e94c7cdc17f881d71de620478d4d2bc4aa89a 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 e94804a39121c4691ff85883c07f2658a2c2818c..d8e5320ee3da81d73da4ef9b85d95ebf7e87505f 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 326741de368c3090c70505eb8022402599d0ca1d..c569730d212b0e2363326f4236a55e00209eea5c 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 0000000000000000000000000000000000000000..279b7409f665c6e0c2006ec781af14676b6a1683
--- /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 7af596e5266fb6f099cfbfc73e085272af35c6f0..5d5894290e2e162956e8afbf93f43a3aafc041ea 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 68d077db2e7876214271b6906f4e1cb3c0d054a9..11389da1f0204770f0a926f06d8bbe55a2a45218 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 8a600ffc9ee3c0b156586a959e1081c6ae88c3e5..4ba6fe0fb6f199c25716b9370a7d132b5ca7f4da 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 11d0b75529c9ecc381200dc2cc0a175227aa0d24..c775786123657fd41fb3ed051a0aa217e6b51707 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 a90ffd38abf5662504553a379a41a9b6fd9b5aa4..7fccc2a62cdad7ba9b1cdab4acc4bf6c3ef32357 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 cf4fe58328030106b732fde3a84f318e32f26d9b..0231adef279c92056bfb29a76544352133b1da70 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 6f941010fc26924881cabe34e66e9deb8507a0b0..ee49e8d40d5daf7162717110a7d1eb5d261729a4 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 76a88f74c8a2a821dff2350cac5adb96a972a200..178e8040d8ae24b51f8f50ce24fdd4960cd43bde 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 480609a6d6bdc2ddd7ac0b3959b1495e5bdba3bc..87c602f20f7b392db83ec272fe2938fa73cb490e 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 15b27af7f1908fae67eb27af1e42d30e19bc8d8a..eacd011567c5a46dc9526904396baa6991270ee3 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 e853f8182f12cf8330a97bd77bbf44e8e8ace94e..e5cc3608de5427b172aafd701b05c8e54cea40a8 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 cc5a3efabbba9b0f67d0db1b1764855c347a9c8b..4b7e8bd739c62fa15ef866102de97cc6e4a0978d 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 9c38b856b413e3e253908b34d61f147fef4e836e..4ddc07c60af0dae2711dde76361fea51312c9c23 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 ea973507544a8dd645d044dfca71dcaa9a72ef57..aba9a5b74a2b003303eec3816cd3c1b996e64a40 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 065950f5049cf0c7f87efcadacaeb3848ca86df8..1b84ebb2a9f717ae6717fab1b9c1c7ab2fccba87 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 55ce6dc477e09ead886ca45d9fdaf6d695cf59aa..1d3c159b52ba92aad085c241f650a3e2e6c48b0d 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 ce807f19bd004fde5fb0a744de3ed2a7dc0e040c..f1cc2cfffdf70035aa44ddb2374e3e97c26d1d8c 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 61fbb4c73d20b9b4d7df79ce143b874ea83a05a9..570a3b515caa4ce8d255bfa3d54458bdc5cea24d 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 0000000000000000000000000000000000000000..99fe3d8df5099176958e3881fe9f639df8cf1642
--- /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 49dec2dffda97fa7cf31caeac359985a5c5957d6..e653df99c0b0d8e3c8de9f62e3202e11543b5d80 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 9c3d3ff78d3b7a28cdfd1138e037eb9bb3de1697..9f85d54a9337f3c0b3aed89ef5357594bdddcfcb 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 8b7e3070294b6bf954bb12892b2f1426eb37750d..2d82d81e253896aafafc13a07f2092655be06957 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 d12c001fafcc2c7884d5c053a925f1aaf253354a..524dbe2227661686687e99636807dfb9d9cf5ccb 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 6faba2457709d2164ae2348d83fdd02f52dcc17f..a276ed5d701f04912d0aae92b1813d911dfeae51 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 e1a838e028f38258ee58ae47eec5e8fa4a7b5198..9ff9b9d80ec9cd9ba42394394dfcc6de03dab768 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 18e53ffebdc9e521ef119be5bd025a9bcfe4d982..279b0e1324f53e9aa3537c7b74ae753dcc778c42 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 3f9ac7f338104a5d3873ebc600c93244aa038a7f..aab4280a6ad0dd3902d8304d5a63edca1f767687 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 5a3a6aa913e07afad75f5156247c8fa1a2fde273..5fc7dc13da6029c5e024d4937ec3d0cbe989136e 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 3a757bc1a0d2099bd712b946988ff04255517ffa..daad11437108132ad119f067a2d748a57ec8debc 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 465844ac6249fcb51945b24f876acd1e6c3c57dc..e24b3f6906d5c829cc74f11db5da3aa104defff5 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 ea6cbd0accedee2b3171d4a9f94f5a5dc69a5255..2119f84e06ea0dbd046d645bb78a4f238a4de723 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 23618406f5aced66da3e4e053dc00ae1722a49de..c9e1c7d63e420dabbb17d56ec5bd76073d81a038 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 70fd3daadd7be3dc525dd8b735751d069560ad2e..decd5a84fe08d014e5a4f16d4984f52a3e029399 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 dfafcf236b2e3d524f32b19f1a69f54945d5243a..bbe6ecdc2513f6858b1f47865034f6dd69836d2e 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 51d3d93d04dbad5a24a6f24ca3e98141f8dc6084..38075d8925ffa5d99f111ccad8f0315754958fed 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 aafecee1d5c8c495c81b154c74a6f0d7872a78b5..31c570a60f450605919e5917689c222f9bd7f30e 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 5b9a3e4aaa4c14bea81a6bca3f866c886bb6afe4..3e98daccbcfb4ada501324194d2217d2d981a95e 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 9b69811193fd19113a51023369c457a55997ae51..0256d57334ba2be95620d56043dcb1d51ee3ae7a 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 d4fe34773aa29e4156ad4e0032d030ffb92ad543..db955fdac29360ed84f638ec88dc06f8818b4436 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 665eaf6f4501f023810ae3d27554cf20a349c5f7..7b805d8951b5db8a998ac7ea1c6ac41060bfa922 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 3d6219cada20a8df98760fbb8b7758070e59feb3..4378fe0f38b79dc3d671b4b1d1ee0cfd5a15eb1e 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 e97382d04d6382cb7aff53a5c58df0e3825438b5..49d2a14116065f7148bed297b718a859baa1ce5d 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 4f42e94e8f97ca2c8334dc603e21afe4d86fbbf8..7c5874b245fb38e929e9d5203e00bc9e40d115f3 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 218fe542667d4572adbed87eefdf177b63d30a33..a8555059b997d89dc7bdcac4571a01358fb37666 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 944626b78fe89e698c99f373ccfced8e99afe831..2c825e80a7315d5ac5163b1d16caeb873b9de57a 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 66c7482f4e88bbb3ed0df1905290197f43082053..5906f4ba74a4511180276ad843fc674023b2efeb 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 22c315789d321c1461f26e9a5ed2180160337dde..c1f8f9ffb4202ab54d5bcc3459fc9c293088c40a 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 6da6dfd75db84bc5562d52b43e513eef8367dc36..4567835002734861fd070866bf09be6158b9b033 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 466adfa005bb497c6b21328d206967a0e39278bb..6f68b995c845fa3be47b2722d48148d5236bc97e 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 0918920e3152d9b2f2360d41d4baa18aa528643b..c726c9b184bdf3b87fe89e84483313486e4837dd 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 13fe624b04163a75cffff0bbb866b970da799c52..a92d3b39f8a6de4354a06d22e482e3e7d8945557 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 4dbaebba815f9e3218daeb6978954f8090ee60fe..2f3357eb2970c100dd5c8b9e8dccda1750045337 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 7769f83a0da8a62d54ffa88b30489cb559fead9b..aa2b1ed074cd2d4816f383b450fb1eebfb2be648 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 ad908538e94c7ac699fe22f8eaebf99318ef53ee..5e84d4573c1596ed1ad73cdaa642ff28bd06b79d 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 cd95bec870f845d7d02165765ce6af03f048c224..cf1cff3d57a66830526986cb630f4c9bb27c6bc2 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 eb29a25f77e3942ba3f1197461e4da15fb5a2957..94ca88c708d509e00070595d50e9d432b5eaa5c6 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 ddc0686b5b5801b66faafcd1b3a3bd97056c70d3..50f893df690092698bef47f09cde10be0a599d99 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 11a0b8153fb6dd456ace73891193d90ba296ec5d..ad77b9d47242a635f7583dda16d65677a98d8f6f 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 1f5c2bf29847f0291771555b039aff422b7fcf86..c8403f13d79ba28594dfe57a6879d66248218711 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 7448a817f5c51dc5860cad4c702f8db1893ff989..0be342d6cd93d4154e332aaa8de94a4e8fe3bb0d 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 9873bd089d2369c7c4bc40f8dda5d203b0e44ccc..1bf8a20766148a5a2f2d2f61445e26253564e190 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 6fc46025682387bf3c8a635fc4ab7ccd9dacbc58..4f31e1d94d7acc7877d678d6284194c46f255cdb 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 c78d8bd0f09417594ea08fd05aa76a8b77ba5c40..5a5570f53a63d62e506ef17e180a6cb4efc7be67 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 cf2c635e9b955686e7e58333d3b9d897771d83e5..8b9826b596daf83ae17e3ebc0bf4a32afe6ed644 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 d7aee11e08db203c7e0a1185189709c6f1dd5585..702a601abdd36c9a1f8f1851ae8be49004ca55df 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 0000000000000000000000000000000000000000..24e6f8d0a426649e3a3337add8ae0e77b492360b
--- /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 b06763020d5a480017be962df4f89c30f01ba1c5..e4e533a036c9872d068dd4be51efa3f346ac6021 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 5281b90682f3d1793deceb913c061faece7c49fe..dd450b2115f403a7d996785597e1b1723da913fc 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 250bd9ce5b9265d6a3c61d7177004d890a847059..4df316c7cd910f2bb4fb0b45cb595675882a8e75 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 375577eb8def74a92e862d72c3401ffe99660e11..8a86e689526f8f54ed16648cf1f7b5ed9cc52702 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 e13c4ee9952ca68793fc9d6252e1353cdfa8d45f..180908847e7250684e37c69080cb768aacd65667 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 a6a1c0ca1d82b79f52c5e6f16bef1a100ed1c759..4f178444a51b9c8f0c8386cfaff84141c4b09cea 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 f75dd79a9039e81c4e9f13b51fcb89a39a7a037f..8c6d016fda5976e12f632620237fada4e589dacc 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 2b14697b2f17c69ff97b000f192c3c74213d8e04..de5d63042a370745e565fa410824d163a0391118 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 40abdc673a195e4d632da5ef82ab63870572dc6e..773946296fa0f94a131eb167df4525ef9ceccd86 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 81feb494fbeb31a410bc263c1de5469f838583ad..48f9895444bc45c8fb207a63aa9846223a0a9d90 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 a633b0f8ccf897e0630bb7c9d8490f6c467d42c7..c87410fea91d4b3e74c61d5e7a2b2b52b3a61f95 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 8241cfc1efaa058ab19fbb19c6c152c5a06e65b7..ecedea1f1145fd3a9fcff166ae2919f9e8fd4da0 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 c7400a78dfeb005141f76d0f5cdcdcc3e7a05408..3e1bd5d9cd178470c9bf89d5208c5ca267fb7d83 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 837fdb0afebe58a7ff336875968401fdcab81c04..e11ac04c7abd40e178913a832510e477e9fe8149 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 791996bd4a2c0156dd016800f0a9d81d2ecccc7d..fc5a13c62ed8cb9bf7568f022ec59e7bc909afac 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 ba8e281e0f195bc08e12d288f5d173e818c3b06a..33fa5f92dbd544be130644ee5030dd84bca10ce5 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 572affdbdb90d9d0d2c00957d4806750f4f12a95..a16e7b61ce910dff97ea2e10107d7a50772134ef 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 9d9e49165b1df888dc09af26d92a3c49d19539aa..db0da42f8bac7f89c0bce604b7ec53c3742fa023 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 dec0f968d06784c89a3a1ac27eddea2db1585698..b4ddf4c6f42398d6bf63f267b7661b0dddeed82c 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 0bc493c5bd6ee247e6e3f374a8b0b87d2fdd549b..815c2cfe96c374c95e45b262eb132ec10c021de5 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 52e7ebcae34375231a9d14d5a7fb73a9f892bb10..45d37e6def595f80055a6be5862b24e305895897 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 a621872e7a96aa677dfa5f913b8eecae2799927a..c7aa1b69b129af501fc7886fdc744295394a3212 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 8b87335a09b0c4e4f8b31fca04773326ee1e5268..52ac9b6ae90f9b008ce099ef2ed65c44cc88998a 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 fcae067d883c51f7f58b1cf32dd7ce3f4e7c5428..e264e8ab5fd580530fa77a3d1579ab7ef43b0f0d 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 8a13767e1315c31975dd01f6b2e7ec2bfc5cd3bf..e27f1d50ed1c66919a8a512808b2ef554372f1ce 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 2c699e72c0ea47816f3eb0ffb6e8b13764af7da2..e09697033991d8dd45374d95e8baa95c266274bc 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 59bbd3192dd4de08be4bb7879db81fc0fa73bff1..fcc490b376ed1725f82a7e291c2ea2df3b9b47ec 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 1fec6085f860bd3fc66c3dec79840596d77feefa..4695de22a6e5b13d971aae1c4df0b0e38f5f2de8 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 178bf1cb9d72e1a5d6d615342f6e9b596d9121c5..df1c1cb878899371fb133fa3e68c27645826d5c3 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 d9a4e96a364e1aac0174442a9d98405bbf1bd2f7..974622893612dfa920370d861fddc6676690d92d 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 77c7a1d2c98d30b2ecbd7cb36fe3e9657cd38637..52ffeb5a12446b1bbb8d42d5077e63137947406b 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 e30215180679a77fb4b86459637d14c514fbb864..c09374af7650aa23daef418152413328626a65d3 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 d6f5b8aaca977fcd8fe5f8558ddcacc6b2c1e03a..17195e72d86674cb8683d16e79d67cb0ab114ae4 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 19009e19cbcd04e3936da8c466a5f93b9212c6cb..aadf60503a91f496609aaa6efeff754c48b2ff40 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 6bd354a7b4f14c5d0bbd4d24c35b5c54cc161929..01a3e5bb598388b356519f5a5f1b7c0e38902207 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 cad631b89f2c7b61dcfdda6fde940a22735ebb70..0754052cccfee00f4de794413edc111659ea940e 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 4af0a2f208ceffc034e65daf956b8d0cd49479c5..5ce2dde64936e189434c14be997afa9d5e8f53a7 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 688b6aece483df4bd905a7555a0ea40eaa92e787..9fe661274c9ad4f85275b25251e26188ad8e6643 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 9eb1767e6737dd8160d663ff7bec73377a7374f7..e2a9be385599553240ff50d4e158a34a076672a9 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 ea2db0ba389eb7b09e02cf7b2e722deb319cfa20..f1c8effca42a22e9900d69d5df4fff8f5351f9e1 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 1dff1e1d37627bcd69767d65ec176a6b11b4fcdf..be37452803f1678e1ec00d2f0b6b5fe12a5cb02b 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 fe66f100505ded593925b88180a628989ce4e144..7c0f74bd7fbbadbe729cf5d053c0b96b70a8e13f 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 693f544d044ebfc70d64175beb08ffffb355f9bc..95130ab74cc7519c06fadc2e104007913c8ee0c9 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 626c8c62a00e7d96866003ba7ba3b374d6df60ab..e3a25c919e999f35b86fe2487d11c77b5426e637 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 65b3a8735f1dfcd8c27d3803d29a2ab6903c851a..f8110429c5326b04ee5acfa53b2139aee7ea63e1 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 70b6ebd61a1b81b928c1d94e317c726b5941a86b..dcc6f383c881a67f744fbf619624cd12dac8d8dc 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 8f2f58682d37ff7675ba59598166db09ffe95e8b..d819d2ff6f221e8d81892fb54300463a7b98652b 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 b953fdb5e09ae4d19302b67f2b3a7b355bcffcda..3ecadf566d1ff4c4f5542f2f490107ff570ffb4a 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 eaf507f2ad12c7f4806452b8ce2a7fe1fbe3fbde..d282cef4c3c4604efced76be3a2062d3cbc63b3e 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 06afc85e73ce77e66ce75f35ec6fc7b3d5ac65bc..8f5e308df6aecd260075f6ab1dac4576d6744d97 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 5cb194a178b56ad5cf67f48db859e1d92ea732fe..d8f0c0fed807b98dcec61388cf99cceb394da082 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 35df1c72fb60cf18e66942074e9945f805d6ac72..297addc18e831c3a2e8243c79580f63263f5934e 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 6915335baeb9117dd8e74395760225f7f459aa37..11f01f2a09c99d465ed15044fcebe38ef1bb0816 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 9cbb595aea30ed6e2f31db2e7610093920c7ef4a..e880e0e87bbeee41da394bd43a47b1ba5b0b3a78 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 d2e5bfc3fd4b66b44b4e12b662945a50ac28db90..a1300bbd565f9283e3377e7e5fd3a3026b16760d 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 a35510a29f811609eb01f80636a7b700f2b0c9d4..767e3cc2a61b124c0400b7f4f59db3d09cc49606 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 1c7e9a32eb44525546dc6c8be9aabf0a049014bd..9a46fea4e709a0a55367f5a3a70c3cd6315f1594 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 a81e5aa1a8980b1b91ee72b81b0e4f0770ec266e..3db12048aa65abf3f103d4178ea3e4a7b21dffb8 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 1546fca41302b40eac0cf46efd7a13583fd27533..85a60ed8127ce87559670645ee59e6fe49bad6be 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 ee8a2ba74c02385ffe8115d24c29b79e2e01fd76..8f3f53ae2fc7e8d56fca0dca22aa2a66323625d1 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 4ba49f51a976ec75c4ca78ab050dd2ef25f340ae..e016cdfac877c9a3a5168776c88306c323480042 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 0360892d99523264eceaae7592dc8f1ac20e37bd..6589fe31817a1319ba866b3102310f653df128fc 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 439787ab69134a9e135fe107a30f79d3e9134b78..d2c6e69559d53c691baef49def443c37a5c45f7a 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 67b1d27dae8db6f7910d72f71f421b22d78e887b..14a8ea2aad6d80c73e1cf740308ad914d2fe1f3b 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 94cfaecc5ba4862babe81f754085602c8aa8ea03..8bb2d87d140e7d4f37ff574636c15de304199859 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 09cde1969be3b94c756115c22f8e73383d702df5..5defb1fd1e94f2ff53395083f4fbf9973024d4a1 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 d4b41d53d610b79b5cfbc7ea7be63237d8b38574..070604ae9cb7ef67a84c0e7b5883e07ba0f03428 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 43ab512fb85f7b9879201493d6cef67edbb23a88..40fd5ec681cfb43d931c02f265622c7771c12630 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 9014a827feb2ec424bdbb612bd6c9c228ad82fbd..f509bce6d605e4c88dca443d90a824cd3f202311 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 ab0cf12a7c86d1f5c47f7909e488d0f227576000..a04459a0a1c4a427a50a3d2ed455272928d04300 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 5ab761a146c91f3ff7eb32723ac4891125df7013..cbfff95cf60b3b53d24c12d29eb5939ef2275262 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 be1254b53438aab05f913ce5992b5329bca5c90c..c2bfd0d5761a9972e2490a8161d582058600b353 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 f69d5fdff819df5e21aa372fefc844399bb7ad55..8034e12a6796e29c8ba3692ba386be3d44f79cc3 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 c5e7133dbeb938455b47a28bca5496aa56baa42f..bf6bc6637e7346050053a05f73c6c008b8ffbcef 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 d28fa12918324c63fda4e140c2b7dc0b600cfc73..97e6d837e2d0552187310b43811cdbd1e74280a3 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 38eb7ae3cf14a9dc0f37d0f363c68648bf823f9b..30eaca1d37b079a03bcaa9ad8389a67c7df62d50 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 e5de509a1d62e2d4d7e3bbc812ca3f5f39b2ab67..e2da83ece9464f42798cb3ef3c635cf395445fc0 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 2d46dd64e8eaf977f8e92e9c6d5aa9730f26645b..b6b3eb034761fc63ea5082c015e5fa4d27632878 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 6cc561a0bd7ec92ec8759ceaa94b2b2d0f178022..2b98250a4b90a72b4cbbd86b9953c19d2470e075 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 b02c610903bae329e0d7c9039cba77c93be27258..d306ad93865c54115479425ea217f2395dcae425 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 bef7c7239288ff0c47f41f4f763471c3f3739b15..cb45ed7a4cdf7b48a8a875e3ced83299716588cb 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 6f3610fc5ef1e7882265fbfbd0711e0d07a62f02..c812ae640afd8faf3e91b761e2b47674dd88ffd7 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 d15dc3ceac794c33011898e623dc2c56c7ea021a..c5eede8a69d5812da74b0973f031b8d2209e60c4 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 a40e614348bc08e6d850e933d49edc19953eb844..3c40b645104ca433f8b7f730af40e02a9f37aa80 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 cfb04ebcf0d212015e2674decf2ff8108e45e93f..3f137bbe333ae064fdfc7d59053c6b43a4460c99 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 825056ea0e14e3720855c40d7f0d80497d46aa91..0e38052dc8c461ea41fe1d3ba3d0f4186b6dd671 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 7029815409e963793a85a7c3c92063dc8ba2fccb..7726f416a324bb9f3734288dd5673d2806500438 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 98bb5751e91a29547b305d8925bec0e3ab388125..6ec7a035349ff8d5c206698f5f8cae5ed1092a52 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 19b40d502b4172c9d6a7234c97b993308c96a2aa..fe83955af7421a7ffcf34429d44f97fc5bca83b8 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 8a002730367faa470b67f8777883f3d8846f62a0..e8ad975270d25da871b1ec210ffe73695b9d52ee 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 c29a2736e714755713e1ad009612817f1debfeed..849bdf5f9d34e66d6f5d43bfaed06d4ab6ce19d0 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 f1a522ba0156569516a95bcd4419d3261551d84c..bb7acc6f882f683a33cfbff46fd72bc2f6cfb45f 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 39572cc0376ec9acca71a155047f6d9aa9973f03..94d4d43d6f1e14dc2be8c9199547b7b11b73cc1d 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 abf7365a01cdd55c621c7cca89d31095850cb06b..78cd133b9c4cb3983effb4c6ca7abc9f808e339c 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 93ee3f171d4adbdd94e7ea0031913d529c89382c..2458f90d9fb0bf650c61bdb82ef3197f3eb92baa 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 0000000000000000000000000000000000000000..9a515ba5a575ee92edeaebf1427da628a01f17a3
--- /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 50e788007b2cfca8517f3f794aa3043dfae6d172..e18daad92dc74f34c08d90abe64df42cace22a00 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 113334d20a396f24d98aba2f70b6804d1e09a546..62b75151f59273c8b772bd1dd9334d569b8f99f8 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 d84c7e044c889b129b306bc5d66793e4702a87ac..0b3b68ae1e05dc279830128fcd117a4ec7b0b625 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 528fc2bbdaac1e12af2648b24e47d71a56eef0aa..2c71dd524bbc7130bc9c936a2cc058bdf84f49db 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 d84c7e044c889b129b306bc5d66793e4702a87ac..0b3b68ae1e05dc279830128fcd117a4ec7b0b625 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 36ccc2e04521c8c804d8321ba7508bd4d53b8b4d..3ba7ed714aabd59c6988906dad0d48dbb8f0973b 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 546ab1372bbc07f48ed83d65bb695437f0097a01..9b9232e67202d312248ad5c317c1fba2682bb5d7 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 0ca21ef611d119e1e23aa7fa0ceb52b9c509d6c6..f40c5895ee7ef3cbbf546a02517a2fe9e76c9a84 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 fd6d723db1e992dfa7c330f0f25b5fea216f27f9..d2bbc4ec81cce228a011654be9d84d0ecb47b5eb 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 8d49aaf7b1dd21b259fa22d477d281530c75f691..af45888b72abe55d36c13ad86b5915c9cb1b5adc 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 b4823f1761a258a70d820d582f1d20c60a5b0889..308300e7c07ffad08836916af4d41c18e1cf7e45 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 f53225f3de46ebfd59e88d1bd1f780d40b080643..f293c97bc0f6faa740836f6aced99351b65ac25a 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 709ad165ea4eb8ad065228b738c5e4ae91aba433..101930f986bd62bb8d40bce9ea5a106559ba562c 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 7aa3fb2d534754fee996cb7ae04f211289292571..bd12162ac6a66e789410cb4b3b2eb6cbd54622c3 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 cfb8beffc94078c0716653b937b4e4d9b408da4a..5d9e47216d40533989281f6fe31fbaaa99b6d0b5 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 12978bdb7b2776f8dfc96a02a25e1e8689055666..f9a02b0faf68e6646200de190c72f26341ebb423 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 fa787f2a22bb3c6eac9d940e0c5b310532e44738..d9b03a5a6eab1f22ee30ab53851d413825f5fd29 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 e379e884a1c577c0cb88f41a07bf5eb1cd88e4b1..67ae8507de06d56eeac347c163bba261c4ae1089 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 e5d0ca05d4e2e29e37a124f78a6a0e0bfadcb648..cfb9919efef5d08600dd0625a5788ebbbeca036e 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 e32a5de3d7855dda921b375e3b87fba3c3ab37fa..ead55f518f83da3afa03c5b869bebe4d4fccac56 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 75d23ed6729f00e6140f38778ef1f7806f3e2fb0..3d86ba94da10d03a3825ce0a76748723cf929709 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 ca3f9c97eeb5ffc01c37ed50d01b4fe5241e84be..f0b2b6cf49c10c7e09793d6a0c4e5eada3816313 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 55eaee2d8ddf6e55347225a4ac63bad68bc9cbe2..88046be41dc9736f9d0e7ca6d65db2edeafc95f6 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 c0b384196374a2cef55a4ec148201cd577c1b683..c6b297411900bd00a8e5e14dc8ae078e241191eb 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 021f67a7f31e94f3038511977a3f608497ee55ba..ae5b29e1be37593ba00e0001f679c77668cf9850 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 4d568e1c508de8ab91105cc88f6caa3ef5212c1d..072661bd1a058273fb59eba1d7322e6b7a8add13 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 16c0d0ace43becbf346e0363442005f0ded40263..e5a1845a6d3272d38eaedb188c0ff748cb617b05 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 960342c60e985fca68636d10e2936584ab040f54..3ddc49475038a46f51e9114fe0666d6fff3f91c5 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 8dbee09a99c9f7090d5cfedcf90e60984fd3fa2d..5b01bd66a71a0c11656831a57421a8a7a7e40f4a 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 0eb1fa1e09ebd3e6f0e874241bbda2d1fc08acc2..4091d42b91d8f58bb94d732234f4f7f1c6860d34 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 1936213d0d4b6391ee0886469fa6bfb2c06dfecd..89ca1e1a0fa892b03d932b4478816d4beca297f3 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 01fb895e27261a83569f7c22ba5007758b1b3f5e..04688fe7f06cca7283f3e96e061522e62d845bf3 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 9db4fcf1370ada10d7e35ec021a686fc7a469a6b..3f46f5dac4dc880a34242216d0f0292e4def0cd7 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 a619999227034659934e2aff99ea97c886aa5f0e..9be12a30a557cde32e6aab5eaacffeca437acbce 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 62bd5120985ef05f716a56e5ca820157db49b870..05dc8b1ab71a8ad66cf7faa33d013fd808a8bd13 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 da51cbef010c96dd2959c48a232e44fc2545a57f..9196d4c8900a518e9b2125899f6893659a8e4f28 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 dc179138782573d9d16f365b58271affc31d2326..2939b2341a3520f12fd1288b05736a6dec55ee7e 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 d7fc1099c79b2f9d8ed96a2b1288d81594ab9a74..2ea37467c072e0a45efd03dbaa0bf25a487c2ae1 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 2326fce8ecab044f86a6e65d1df243eea71388d0..ac98a151a2bf66473c028add95c4d656c5751998 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 8c8ffa7fabd11d373f0316a273d32c6b191b0d96..0177209efc65f44de3b40681189ca9c91b355639 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 3ac3111dad20c2e1a37c9f8513f217e2c0125ddc..e6fad5c3b42ee2b742a7fa667b47ff49f61fd789 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 332403bc6097d6524c5d5172ff9184845a80c277..2c117ee28e8973e9fb7ad4ddbcf602282c8f7d20 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 742e495d273b7e8ab91d118d3f1b143fe0d0d974..017f3ccc91ea82e22c3f4805a7a8546a0b2aeeec 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 7326eeb93e6fafada9ba200f41e46995bcbaf764..91127a0cd56b2dbe9231b8cb5327224a86dcb296 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 9c6212be1162890a07553f1eff9f25cdf7815cb6..16b31d0a04939d4768525bfc75898b73906d2511 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 3f274b9036e22959dbd5512126652e4fa6457ca2..0077e225f7a84e5c0fdf621ab8e64a7c3b513097 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 ccf1b9fc33dada23c466b14275c34910464b036f..a793a378c348f8f8f2d05964ad004c78d6f6e0bc 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 d32f84e63a6f24871d0e780a34f652d61ac20bb5..a16909b4e2801414d3081b7313525674fdf0a841 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 15c1c8301315016217b7ad2368e55f15390e5612..031345bbccd5073a01b727db81684fbd10f767d6 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 44344291294900988c6c0bd4f289fdba9887568e..0e79c9993a9aec1d9af1cf6ea42341ba000a773c 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 3263ac57e93ef3441fd95ec146474b077883d78e..f744d564249679de4ae17a188de6822b9e0df6cb 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 c077113892996640f3b9463e39999e4467410170..486ff21ae5f6d019b04a09d6412209c941ea7095 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 0cd6457dfb4f61e995f49b47ad1614da92fe752c..8be5ef92a22642034793de24c1d7c8577b7392a9 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 25edda685d9090fbc2c08462334e542198014fc4..f76f2a0c1e0d0e40bd0607f0c4052a2cd85f1a7b 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 b744cd218dfb38e20330743c02e035246f2e967b..7928402ae9a899b7baf6a05259d5eaf228459b00 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 fb389596fb24ef8228015c5fb66eecbe43728770..d45fe0f5f3e53c657b0db133c5e246fffe56258f 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 cc7e9b2ab91a2a3c52e7200a6912b1d824b194be..965c020871ed93216ad282b3b795ca0f24a7869f 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 935d3e9147c630992839005ff9e1cfbee3ba2fdd..d138505faa19822b71f94fd4188a4e3350569231 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 c44c2c93293249b9161fd5c7147d9238c466c58b..2d5d231bad1e05085e765aa4c5808fe9dc812afa 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 497d845fdde7fa23f6468e2711bc2756efc3c1bb..c970643f9c981adbf5aa01257320f57049aaaa8b 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 b177b8ea188c517ba675871809007ceb3d7a06dd..12885c7e64211e669e6b58271e5d2e1c725df682 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 5094e72ebfdfcc0e917349daa227d914d0a79fd0..237f20ae8931db78c7a859f1ae00d401ce77db4b 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 3ea2b1494efb7ea2cc674a35db9d527b72d96438..3cdbae1bb497b6b2540494b953f2aac637475033 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 21332782a5dfbd0322bbea8d21342498472a5695..c2871d26b66f0333eb2e02c3d5e802b9d33c3c4b 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 1cecf78db61c9f705be206f93a87cb0f0559dbc2..bc5c08fef2e0a93f68a8670b890ad60e45fb28cd 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 34996eaf1be1dfdc0dd7c7e9d63929d77889e247..18766fc92323ff4afe26a3f38f145e6ca2a2c047 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 ed189207c75992aa11118644129262615f3a509f..13885d3890b96b93931c5826e40414fa61baa377 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 e243ab205c6d740f9bd35c43886618a6c31af95b..659c22d548baec3a1569fbb085aede5765bb1864 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 2faa380c2cb2b5f721e678623161a9f5ff06cda5..6efb81f11e0d57470f0b9415c7d3431835ae2a04 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 d31b9f68e72577a6b87e050c3327c723b115ddb3..a2e9d5345c1284e1fe7ab6b568a589d609f64d4b 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 4e344cfec46fcf37b707c1b475495c65692b8288..d09de815af9f959f3d04caa47f2841d8ce125e66 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 3bd41f053d42f9462d30e65a5d13a8c98794162d..85840c392e4847c22cba741df16435666c07ae1f 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 bc7aaf197f31bd3daddc15e907edebeb57292a7e..fa9dd21cbed0f63fd7de2a88267d20390f98f096 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 232a371c759c0f2f60565a6da8850ecf3b289e99..8c6be7520c32421a901fba1c8c42ad6a641e1ca7 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 849f166cf020269950864c8029e29cbdf80b6d3e..b4d6b934a2b5498b7931d7340eebb03e41a998b3 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 f6dd13c22eb616fd2aaee060a36e1f3057a685e9..3df8932c7f45f6902c6f8ffaa377bfb115f1ce68 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 f28f96142cfc02034df55d2e820ab24c2176315e..8fb1a9939aebc3614dfef14927227a7e30eba8c7 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 e7002b1c95da3b56ea4bf5a358508605bea69a18..8ad2d4f1b81d0d1559592df38052386bfb6ce495 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 a5cee891fcb49c381ef2c6ea48825e9a3bd6826d..a32407d2ce720a4064e55ac54666e8f061906127 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 865ee9caabbb97aa481c09c86180b2d86d69c715..47e87e789859b46a02fdd1a98f6fcb6a4c1ec372 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 0ca5e112dc421b952ee48f33a1fd3134abeb4563..638ec3ff8bc5fdee5ce442cf77d855186d4ba4ef 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 1c03b62e22c87592c76702b9f16e5e5e0a4a22ec..8a68a6f1ac127154afbfe99fcb3f06916e0c1440 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 e2bc00ea83e075393bb84aa54258517885a7556a..8b9d18b09aab01ec725dee8aaa2560915aab136f 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 e425731d2b5e1c8be758647b4eb167c91aa8c7c0..506e7d22b4abd21b17f8251c1164c9f66d7bc057 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 8e01df39ec0adc5c5a7df4273cf3c3d4f1d7652b..83bf168410736d36e840564e80f3310541a11ffe 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 aaf687f9084eee91dfa59e5e90a678b4c431b2fc..d850eedd154ee114b4ebded26e0faa703c58caa0 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 513d8858d14ff7e35b6ae17a238bebccfc643515..02fec8285b97ee9316f2cfaada8fbd0bbeceeaf6 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 708bdd4f0ac5e28a114aedd12fe9f0cc82a0f908..9bac68f6b9408f06cf74ba563d1ad50a72d7a2d9 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 30657213c3777e44d05e2d9984dc29222ecc9605..f360feae0b4cca6551649673e90483f2a2996f0d 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 0abd5a73b1347f0f1f4054a9779a02cc2936a97a..54520ca68eb190cfda25ef1f475ad1be06d1fae1 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 5bcee704adde56528cbfdfd7ae220301fc343ab1..39eb981e7718b318b3f15c587b4c3b6976570571 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 91460bc544dd11c389bcf942af53d04cf3f2b0fb..fe679abe1ea42c58f420fce853834994079a0296 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 64cfe6b3ef341a03c1ad3fccc5f4c042bbc5a91f..bfb5c69159ff0d6579405fc6854968559bbbe267 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 8c5a0ee2caeecdf488917f44e4a65bbd9d10c06c..dd2c47f49a9f1fcdace4efc58ec22a024e4d1e4c 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 da2a3edc44130c00796d41343bf5d6dced0443e5..e044c5db190b9f9148fcb3f64ef40bed6cb24642 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 5d7cbc9c5ec05fc8401bc6962b5c92cebbfd2be5..1a182e809b62abe2199472c95be5429b97f31f2e 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 d16c388afc89919d74d99163d721c804bd0a3c7c..72979382b9674083892f4d4501516b245b078e5c 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 31c48d22f9fba10e4f9af4488ab2ee7c83256388..a4d48cf057831f8c7a6b88960f68f1d405f1e199 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 e9244f1889bf1c102c37ab2ccf7158441424123d..b39a0c686b406ef561f7eaced14240757dd492c5 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 84cecab541f1e3a22fb4663f53ad919e1bb2d89a..74c1b47918f801ff17ec0b6aab5eaf6bd9a0630d 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 edab927f0af63c9800bfefc4954c5d37cff41423..9f004d592024427022e29e1ef7b1f558ef78e9f3 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 d66ab6db2c7ef807d73bf5e9685acdda57c5f8b0..75b1e7f410fdea6be3417273453573ffe6f73cb8 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 cc406e4a3926995265ea0174c4ddd9e1a4d8e734..6c8d6d2454e4ec99e869177b650cb729c8d473dc 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 4678fdad7fc8e2a2d77856e9f73209fd7ece6896..a723f3cfd7f5af6bffa23cdc861407acab0889f1 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 41000bee935a9510630449ceaf5af371240c18b8..c3dc3dfe44f1695be2cd0299612d1ca5e7c41efb 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 c8511706fb553e40ad348e0d54e55343ca6cb0f9..0236b7a8d5c72956bfa9ce5e77710032be2ec511 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 c41559e5a06dfd65a08c394f8caceddff8d40a38..6a20edde4af1920247b1e154d98c20b4bed93603 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 514b67cd38bf1e7ff3ad4538482b519e86773111..1e33adcd46cc65155dcfd5e3946b1f59cdad3b3e 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 71a5d8e3ea467294b1e09d29775aec73ecb10714..823308621e8f534ae3ca99d061f95a25cacf0cff 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 b3ec8eaeba46f05dd1f2172307b6867201665212..476e2c5fe7b2415f76620972640350defc93b229 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 59fc7b95a6e4fad27504a20dd2e89cd84f28abd7..90bf3e0f371decd345a3a0dc22c350eba4f29cf6 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 51c674f484c453db3ccc44d21e7fdfe76ab32d56..27c9534f43499876e5ce7820ef80fec43eef176d 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 2abb5d743c20424f112f8da3003e0003621726af..d8ba8920f150147e922c162b63c53e283bdd4e79 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 35f9e42fc952cd2a4abb2c69ddc0400ed6e009a0..56b93f6159e42490a2bee97c415a0a6084009856 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 bd292d44df602d1bd6c6bb7d784cc71bebf4d84e..a4ad18bdff1c45b58ce90011b1170eac9d92ba3a 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 1d1d4b3eb2555a42847fac3bc3520d5fa4cecf00..1deef2bc1f6eef2326bb9bad1ae1246d30e86ec9 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 d9ee81d7c245bcb0a2904dabef57e3a031a79d80..aa3e32f0be97f2fb805e4e2361fc3f3365efe6d1 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 3364b9f3fefc9a6b2c2d439ee60eb1f7be7cfc73..58e01ef8b776a7826f8d6eee2eadf28f2d2bea9d 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 7779d095a1e70ed55c76727bbc26d9c435c4b51b..3ae2fa3186f441fb444cad3023f4288c27cea2ff 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 a2446f5c7852259f8f956a5ffca72190f801910a..15d702d3bd10a93446a7ed925b8371c05fab062f 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 8e7482d9576c8c3a599718e34a5b5f610d47d7c7..a2c8d8f56ab034e5abfc5da603cff65ebbad7f9c 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 ecb5634419ec3c78cb6e23248cb81bef4a11ba6c..9b3d6799777f0416ed22c265c953a1651afe5d68 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 21f5b8c33803a53640d915f6a966ce433d08b2ad..260ae966185054a2309ebe3b94dc774746936e8b 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 15ecb00a9e0fb0b2065a8735572eb88ee375e8a9..4d2578f220be513a24d5d59c6515313b637d1dcf 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 845c7d4614ceb3d310d28aae39b29324cf306885..a2a351d0c4f7e568736d73649043cc40e9ba51d7 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 cc0d65426cc0cf246f68814fde74603e9a9df3f2..5cec67051170b54df05d212255922b48bd5b5c4c 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 7b640dcf125b7b23cde9e81092b0f4e726979463..f4aa7fb68c79997dc2708f90b0c276b00d1346c2 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 f77bb6cffdd9ccd965fb5d749ab209e5fe26d3da..151ab05ab1140e9da906bb53686e5ac6308c325c 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 7631301d586b2890c4cd0ffd6cb5c229ef0bab74..7c61c1dd221e40b3c9b14bbcc8fc6ea08b5c3037 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 94b2e52b47bd998d5b21f94898306f02a3932e5c..807a6f8d9f40eb65583764be384f6824d3c3e2d1 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 8dadba7a34ea4f24104354122ae370d8c9b6f48b..5225923f3dbe51bdcd005211d4bb1080dc09676a 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 848645f612f6596da2eb9d8f2a2b3abaf7013c33..66cd518c31afb3d5333f7a1c5ad9c95edcf79b6e 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 47b80c556bfe076db28e119a8008dfe6d6a4e424..8c7589b5bae0496e58bdf4501b9d8b32140a4e42 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 4b0e4e9d7a3d817be0594c1fd3aec5731dcdd50b..dc5b8640a321eddd02a8efc274e09b800046ac9a 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 d0df00217af5675cd6144b38a91e3234512135bb..cd52331934300904fd94fe0f629d4b0bfeaad6af 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 d99f9bea22d634dfb67078f8ce0e559ab619975a..7bc5f3a7054d5fcd3e1d9f9f2f14294481265e79 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 05092a23e90bd882dea187aa09ad09f2a9f13a6a..a34bdbe29d8c0b75d33991cbf676255e621205f5 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 7e930ca6746ed740d7dc602631ad43745293130e..b5c123aa21dfed9159a1c161e80d196eb4a295fb 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 13b28e70632fad8b89d786ee60001db6e2cb7a15..91ac234280ba113c8a47cf759bdbb68e0ce84d4f 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 200bbe377ff9ec66ac748aeee76571e0ae319666..81dad3eee29a0e10c862c6518fda8ccbef6a7a8c 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 57fd16ee91619b68ae5f6a7080e84d2af014dddc..bfa4346b1b9abcdd75f1e3e2ecbeb807326cc76f 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 4ae0723e5b9d1d4a60f2b3e574a2dfc58a0558a4..ee252ff40693d98df40898b368323491ac68d5d8 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 74a381318cb8592c876f1ba9ec09e98a6caed71a..3caeaeaad24cabd318d340df2408961ad6ab890a 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 8638453b1767297f11459e833ac05a03c36327f4..f1f1dbcda348e1e319e30e54724cc6e01060d18e 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 b84c63c8c661a0e6a42f3e90b6c44a52f853b6df..3f566cfa7c0fd8eb8f40a8f7bc940f742b974b90 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 976fc8b95b6724db93237a17c582a5c11c5a46ce..3b1925b82572f6a62e6aec3ca5cfa96b142f5aba 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 31eb55b6ac66f11fc507aea8cc0916fadadebf6d..6c7686eeda57fe21519b0ab374d1db0a423a0579 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 d7ceeaf996aefba4e0bffd289b523b1020d96d19..b641367b3493a5d83259111287f8864636bc38d1 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 298a57bfcf9080c262542f3580c8facae70e366f..efd35934b3a3393c7b812d7849ca59be5753218b 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 78e44eee44aeb822ecfdc3bcbc2c2f776359097e..b854717bcbea1f9c9b82ce913b666005aac33f46 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 52da3654fd975f4d3d046950dc90bc0f986a386f..9bbc229d69a02ac7dc92379d0dc72b350ee5d9fd 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 ea20d6b075ad2d6c5f7d71e719b65dda002e6e96..7d2e2ece81311da6271f7efd078de69c7841e707 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 3ac4f6d9b958f8bffd5cdb3be2399d3290a96f37..271eeee3c7f2aed7cff69acb8e6d5fc0f427c359 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 b7c3bbcfdccab80700873bae8183b73cbde8f9f1..737d87fe1f618810da338752fe86bedfec5aeeb1 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 0c4a7ac2ace61c2dde4a842cbc566e8120da94a0..e824b2caaa4f93b3f7125b838a6182eea76823ca 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 c1cc3600853f429b2ce307e16e2d26f47e4f536a..4e8686696d3406a50ffabd08ebfb139850bcbcac 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 661c904c9d745222010094f699c978cd8fef2363..2a0cca26be7e3b46282a2e2619bea3e8f383cfcc 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 a928ebee81dca1ccd00a10450506ac5bac0eba82..92079fb43c0ce1950f04c60f6ad9515eec9eb331 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 91a076dcfef068913d5834b5004667caaa472b94..ee556a51f7eba3a5c1a8f889418810e100c11d73 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 aec56d4cc9a6d9a1e33bb8800db018d88814217e..587ce22fc18b0d07a05dc17e5bf505a01097252a 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 090ef509f6f11428db46a785866e9a5f93276925..468764de82fe834bd0a510bd979d7ef538daf1cd 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 6d45fda6d4e23d19a7db6f6c01567001c9d786ad..389148399d95b504f6a169bf1db179d89d830ebf 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 a7f4b74ed9ad5088b0aca2674e5a36e3f44e4263..e2beaa9f26feda05317c08bbea00930905026ff5 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 8d9a3dc6186f14d8622b152cf1ba0afa9b5301c9..b13d68dc6c087ef614e732b51a283165daa15a15 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 1fb7c694fd9468f025387391a7d9a79ccd0b5a28..77d7276f3176d88270e0c6b38249ce39f2dc469b 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 d092d1ec2f7dc7e87ea2ee9a24a1dd219f1d9575..cf9448be6ed81db049cb58e6d0ec2c3d5419f8f7 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 848d6f62813cac17f69fbee41f055bd069d1eda3..5624dc9f0bced5c584a95309b6a810f50d47a444 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 b51a1eb7514c8a0cd1873b2e962c1c8ab7c65bf1..01da91bf5f2ecc7cd446ecfabdb49cab4863a27e 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 8941244edfe0deaec626189cd0a1b6506aa62a69..2c6496c853815a6d303f268f8e47d57a59286fa0 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 396d43af90abfdf69a73f8afd58c1445fba92c9c..b754d509e179da22e04c8b9c459bfa7cb2e4f8b7 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 f65b2c6130929233cf9f2791d7de91d3ac836f42..db604c58c9eb751acc66915a9fa095c5ee078913 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 665fa795d80cef8b46042618c9cc5d0bbaeb0c60..ce27237278a2ec611b657693183060dff00809f5 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 ba6587de482dcfb50e2e1a051c28ac538bee2d39..5944ba3ab6dbb8024595e070b3e819e98f81be2f 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 ecb5ae810596d0a2cb99e3094e4f0c3b10644a17..ea332825134d3717d7dd60e28cf17b18243b8bc8 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 61b76a539ffbf0335d3025566566453555254298..9c609bf6330094912b4de66133737b3b636543d6 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 eba96b57b5308590eb57523a42f81b203446bdf4..4fdfe0f66be43151d77478b9eb6dda680a08d865 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 fae76f8193c0424a99fa6f94fd76c81f737283ae..18e342d82ab0b6270103dfc47727132b0be47de0 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 25d44bcbc97a9fe15dec681079a4e09647920679..77f93bc6a6556ac5a1f8b0bbec454406213a796f 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 65a99a2acf39fe8e7d17e73f00d5391bf7c2a249..536439d248e5643e2fa33e2af8a029a9a87276dc 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 74462db3cf6cebcb450c4c8e11933346b4f49cf5..e17bc5d8990d110ca654f061584250b8993e9e0a 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 54a6f763d944a0cd1816b726fadccce1eb062870..c591b4d075eac96d493c42449b7ed0eb585406e5 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 120cf258ea540640a58923dfd7992977905204bb..23a5d05ba6f6fe1d6341111c8e630327472c6c68 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 fbc170464a7d06b24b71c4088a11ccd5e05fc0fd..74a594388a4710ff082e9c9e3bed93e2cb667a9f 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 4d19a894fd907d6aa6ecc59f0e9e9bb4ddb508f3..9daab6688db291b18425606db14700c58161c733 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 263d9981dc11ee56d7a720eb64d7942f71172af6..a972630bc59cf0d711f4076cb2ffc21a0251e8ae 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 2090ffc49080c9bdb0001f0878e87312d58b9c64..d20f2f46f4583c53e13a73c08c65b70b7a672b03 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 11b7bd8b77561145acc6544d30f4e109a523cc11..29fb30c1ef89c8040ae41ecae52b57090ffb690e 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 42f65bf8afb558dd3f15334347e6ac0431c12954..23e668bdca997c5ceb81ac2f05364cfc4a7e6b8c 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 95017a2f2acfdc3a962b9a6f26a4f6a6c5581870..1ff704f824fa9596a1713ec6e67497d6446c1eaa 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 5f2937c901d3918d5fe1e25426a559c4f672b773..458e1df490eecdea8f042cab3dbf3dfc1e1c169b 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 79f42cdedf026edc436fb8b3fa4e5502662f7179..99697901551475805de6116d4180810cad787b56 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 2c60aaea89c1e5975cf11036bfab580e92fbc2a3..2f438ee2c2885fdc0539168c7dd0e3ba70f141f4 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 d9561621bf8ad1678e278d8069f037254225e22b..b25711d2abce80eab9ca66f2d1b8a5e3056a508a 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 240cbcaf39e682d3be271e27525bed715c498e7b..7b307b42580ca3a71e77d95832cf49402ef6d9aa 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 3d48627d71f0075c6ed9f54ee181ded9f9d26535..0f49a9a48927ba067b0a3d57fd7df7dd85dfc2a9 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 300b2b6ad41f001ae991b3eb4d25d7755ec47e84..e21915e28d18c5bf0c67f4c776e866d89907e9a5 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 3c917a3f906521b6c380bd611bc28db67986681c..ee6297efd494da9c9212e1ef083a6d66830ad86c 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 543a07e9968a6bd88254acf79afb0b40622bb011..6d93bb8da7071dc4143c817a86902a77c12a5342 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 ebfa712f280da546675d9a41059b9395f4cb632f..a05684933220f323f1a6f466aa74336ef507faa4 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 c143c6df73e22ac96916f962d85b1a4142427d6b..9bda568eaac7b9d1bdc95bbc4f947882ae1ebe95 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 d2ec0e1a17483fa7c8de6959fa3027411008190e..7bc52f3011f3f8f8de6a0c65642c8ea382bf285d 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 e5cb733cac59276063986665e4e5deb1c87f634c..c818066244d19905c661a529b7bdf8a9b1379e39 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 64184fef4e98c86c0c49cf5560cdce98dd57e14a..2f007e12f8401dc2a58a20407e70cebbe8a6c8ed 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 b04734f9cd7f688ebc1ebb3f482ad51eb0bde2d1..a066a8bdce202dd1445b28082e110a7e893210cd 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 c07f8e4501d1ba9e49d57ddd059a6dba0cfb4cbc..d02f8a2261b97d3a4f91c6baaffc1a55f921ed9d 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 3a47a27e1c5f00157625f98b521853d6641b9994..a024c7d52bb6b60ff6569f0560adab20b6b3a881 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 b5949d82c4523c926a1fc377c183af8e3e9c4fe3..107f9ad0e6bd1c9684d831b57f336e7f24c27a0b 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 e18e8764a20af5baa3f9118c8e2b4eb40ed2f454..191d640caf3799050e35922d4b346786531add64 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 e87e3f5ba4527353272fe5cf4c3722242a64fc7a..4e15aff6613769527d847320281db549259903de 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 7689c0182619a0a48c5b8db68ef9ee7754f903dc..e119d65e62c931ce5194b113f73f9eae34cf1d42 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 c5b4128864f0b4f4ee83d28fe22022bd1db6cb97..1302a37729f9e0c8a0ca559969ba1ba3a7b9321f 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 fc21062d0946b6245f5c65b48bef32db964148e3..21350cf0784ae26ada460edc8aebdfaa8cf6ab21 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 519d5425798abd571e63edfae2869420e29d5922..262a9b29eb4061f83c4ce7288d3597b1d978209e 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 626b45f2470a5edb9021b9c310e4edd9b9a0a3e8..21dbadcb06116efeeec648a191aaad880b66defe 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 c82fbe08b46215298946bd991bc1fdbdfe9e1a45..3199c0fd75a35597c73164456c0b6c52a6b202a7 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 04a042302dcec232deb57228b4c292e59ab50e61..9df39ecf5a02676caab1cb9c37925c6e512c3b53 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 e59d2af0492ebf88938abe37c5742ae5a7717a8e..5525b645f90bfe7350a5fc8aaff969904f4d1094 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 dd0852ae771b50e170414723e2c931dbaaa41ac4..6bc310a0785e0d0dd0d96e2629e970f722602695 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 6a71e6059889175ca90e9e24f42d05cbed9f7cdc..d48edc4ec75435b8be3260ab2e13aa2941bb7b27 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 80e0788e0f60843bf7f6a8dd1e5fee74c5827343..54a302b4ffd8726476058931b6be59edb522d0dc 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 d05ac9971e0e771b148fb535f72a5e3e3f24fa08..190c4e17959073105c93310cb819ced331cf8d21 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 ac8ed1e9aedeaa95aa41398f1eef831af1cc6ab5..7173342352faf3fa549fc8d4eed6c2ca58926a00 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 f322aec1b10a81c6792ec2927c4f019002388623..39d0e7259012e62c4fe3179f7035de63c90c7f88 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 008bb51c8c0f24fe5b211163e7fad7a390b89d32..a913c0711dbe4f8ce7f6e39aaee0042a92b3fd9f 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 234ea98f511e0873e451f8ccbdf8d62a2c7fd42d..440f8f3e546e0679e479f8d9215aa23092003e98 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 dd28702bc4f0c349bc3ba8060fde7f4e5aa86a7d..769db8fdd88c42a8d0028326c319adb9da572a8f 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 310b5d6745598d23999b78de98bf5fc258678ffd..df79fce628fecbb4b399754de762823d71737d5b 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 c23e17221cb316f9feebaa95fa0b4ca5a79a34f3..c38b2e330153f4d4137c10c147400f560dcac16b 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 c41311a750bbccc36832c1073b2c6f47930bf264..9f8fe7e88d2315e3fb51e551832eefd9cc9bc17d 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 2e99e00b5f0752821e4b1dad603922c060bfb678..cb5ab8242f1337441498b44d4edab4877dc8f72a 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 0517b0b352cdb73bfdd20a518962e702b3213db7..9626b02098b1d2750afe371732806cc434c54d0c 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 d6f4cec7f22a0b34a12411d899f66a892e540178..95daaf97a48923e4e20139697d316c2d8fa6ebd8 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 c2b2f55f5443c1d2d8e8a3346af45a557226b86e..41e2aeb5d96400944d9d90fe4ea2b0f2027852cc 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 0185183c37f45c238e38f5f245b0c3335cee53af..97863cfc641dbc0953fb34e657a3c8b3179eff73 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 b72fe6066ab10d97b9b30a6aa3885f478bd5ba0d..217de890fbfbbe6a23d39c60e5994f9347b4b703 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 372f706d6c0804b7e6d3e13c72e7fc6f66a9b3c5..1654b718200f49cf650a739c88d87169e079f7d3 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 c31b2ec4b06e6a29b22d8db3582101b1e85e91e1..cc51bec90f43c9a69e6d5cc14256a0ee369c544c 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 61d22a87fd944898806788576598b8504b03e64a..ca2e5f17bc995ddd1a3e303bc5aa0e361feadf34 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 b49e9d5cbcfe192a69d67ffd037132d9bafa2c83..fc09ac43d5fd8429ebda9845ef3858c108fae628 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 3a48e2e3490384a5ebe15de0ba0b87472dde19a5..fa17414b3f317793cca146f97529533c23df99c2 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 4b85e6ded30394063264287e81392cd4287e9076..01361d583eb664da7d50a988bd759c053cf123c7 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 2bf941c707ac96569d88f3d07e435b376083565e..2b58c944098d4735f64de2dabb6ec01ddcab7a59 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 7692739d284e99b0dd03ba44ad6bf8bfa964b7de..91b4223a9092308db37fd4937a1ee5c108a12183 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 e9b9b1e31b41feb1655f32e5313011899186acb2..f38a9d126c4f806e62e148fee186f331c0d3d044 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 2e0565231e100e0ca9d4908fb64be73ede2a14bd..34b19e916d971aefadc9782226b89369796bf458 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 4033690a7d1162af0e098a28306794c5e3a6db30..5d66a83df2ef82fec010623e53c0bfa84e55d741 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 c1996488a027ed213a0ab2347c68c2594902d4e0..f2c64268812a2975a20e7e8f04a9f1604256eefd 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 f37cadd9658dc00849a02eada242954b625d2b5f..db431ad22f7e671778eaf5aa8e7dbb9578b19765 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 e36fc646193ab5d8f536f09f09b575a0602692ff..123f88bae0ccce6ebd4451b811b0508c9c9d026d 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 02c4bbe76a8d8e0ac37970cbdb8eba7e080b3330..5586592bb554f339c8b879783e198b86a5d02ecf 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 2d37b0f9f9f3395ef76f135072be664d8f61ade9..ccb5876bd76974da7ac72ca45f9eaf04f8927541 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 4bceac49229aae80fa3bfcf1fa5410ed7050ede6..a02ce6db39df09c917712782a88b77b25c5c93b1 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 3bfc5f6307fdc4d25eea2e5417397920e3055131..e365699be872e88e75953ec285945069355a14d8 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 2eecbc66a99152758003258f3097087800e3ebf0..fa7788eaf43f6fc0b0c6c56622378c2f3966d200 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 d5f2925deff965d41c5b5422e4b4eb428d175998..88e90a96a251442007432ce1204c4c8a3cb18b0b 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 fa940c12451c6b908cfb264e2770fbc7b8c52aa9..21f9711de4536a388bbefd1b4f2cf06cd755b609 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 a8e7e4665a21bf509cfc8fcef58888883f87e929..f61b7b0a7c519fe9424a40defa7c300f943451e8 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 a97503229b912778ea0fb15da6d6ea93b072801c..e6c5e56b2c4c5f4608df560cfa47218ed61e96d8 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 1069d1db002d8361680adfea46012b89c40db243..93ecf31942358ab37a365f33f971516176ba8512 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 56bcbc44f6e80d451d050798388936c0cb6524b4..442a5a598a173b16a03a029161ae4e7e1d6215a2 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 7eda0ce1c1a54355e75ce63f9d9a85fe1663af75..b7e1b1b4539018f4f1bcbc8b6be096b3b7383adc 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 1b48fdfbca1d7832e2c04a24036dbfcdf7692f17..a9e369b9e24f72ddde12eeff2d3df293a1cbbdd3 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 482966d46aedfe5760a87593b10cbd28de2365e5..76cf4a2133ee9d666af0e48c3d8c6694b82f008e 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 3b2fe60a6b249b31045f25f6888cd5d7b1b91c38..15c9faa5f9a140bd4cc48e835f1dad353764c125 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 b5d73288a5a211bd6b9ba809cff196d19a694cce..97a6ca92fc55323a9d829b3ac0c37332e7a9d482 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 224a13db082067893f32838b92688ae78f3a9e55..7251b7f3bada448a31ea029c59271cbf4d1b46a8 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 4b4692c7fecba10ac4cd7a869ae78e13818177ee..d308ae640afd417d6d941ca7c82b5733685b597a 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 0000000000000000000000000000000000000000..4286683d83f98b15c168231d73111dbf8e76d7f9
--- /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 0000000000000000000000000000000000000000..245e483abefb489aaa425385a79ff19fff3b729c
--- /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 0000000000000000000000000000000000000000..204d0c1f2ffaecb155794ca53450e7179f423d89
--- /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 c92a311c15444776b64e355d73761d816dcde303..77c5e8f52e4f00fc6b297d8747ba1188ec40a546 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 70c6879257f98b63d0f0ebac318dfaf72898523f..92f19e83bbfed9cf166fb0f967cd785006ca5655 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 6039ee9e922be770c210cda9a093632cbbc869fa..981f07eae6d98405a2d59332c36f758d6a8eea19 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 ed899cff5d37da77226b6c1830a7141598d99326..3398477218429d2866225f3cb7a0bd4ddcb8dc9d 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 5401b9df4ffd46793a45acb9b1561a6515789766..fc41c1ddef73388d7712c26eac00ebd34999ae57 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 80a8d9b66ac0c4cb1ca3b47d0faeba728f6dc93c..b0e952bc8b0f8dbb17ecb06a5457b6253272d249 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 0da6e46b23b8b942e138a120a6e939feab941c82..bbd9bff9959319f5325dca121fc18840f2fb5e4f 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 47007d0047a2ed9eddf873277ea43a7a0b77353c..321c824723fab864cf4cbe220f77d09b4ba5aca7 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 6119f97c443a7c392c7695a46888ec5434a727cb..a80da239e75856a6ae12462203da73fd333672f3 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 80c18a7bd924c13db1650354ef400834bfe6b2c4..55900f61a3a34202adcec6c0baf1b232f67921ee 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 09b9281103858a68d4c2e69c6d77916f60775e86..829f4a8191bbbb1e228f744b59d3db7f323abd03 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 a52fd082e576c619d39bd068e5a70fd37fb6ec9a..665ce9ca63a71eab7f691d3569a0cf92c3385670 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 4e449c71ec459886aa485686ea2a0ca3bfcddf22..1bd5d85bbe0a22e43fedc4c7a126636b8e5bd515 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 dacbdc7a75df8b5fc21291261009fc9b42f86e3b..e8ec6c4f4a745af7fba3c51f59bf190aca7f4ad4 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 fa3dc0512e8358b628dfdf8f2106c2db841b0710..2586529e1160e62d3376bbb7831172363576e75a 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 2e272505a417699075cd3364591f1ab354dc7a0c..df12a9c0b029b2767ad34eb45acffcaf6022b589 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 180734dfab11c9a74e44d51412ddf0f8cbb3d244..281a34498465ae4d3747beb64a5448a1150558a2 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 4df497aacd2f6ea296c5b2707b24b3f64d27f252..1f954546040a3e419e2af0c8a0c09b3cfa42af7f 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 781d9299cf4d432b38e816918a51da83232f1139..e857b51ce0cd9afdedd8c452e9989dab7c583b8d 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 cbf03031026081f8d27a6c8a276ec2ab646e4406..3d0a05c7c45186bab41e0e2317686b302537abb5 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 4e335893e968be0945ddb1da39415e2e9abfb615..1cbf01d8a7717835df0bde34c47f786637358dc2 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 3b3b56146e656621e0ad27d2db6084e66d0d533b..af514e9e3b6543e6aadb323d863d09214fd7ad30 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 b1be45e139dea3ae502800e43094cc5d117ee7c8..d7e8ec390ca96b6d322031765729ef14c99c9882 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 97dcbc921340c315162bbed124426b3734033be0..fd43ae81ea31c6a9a8639156116ad7fbce930542 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 0413c359543a75a6a78e19a84ea4c2f45943254d..611a11694b0e769a3737f1165ebd69a11be56df3 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 6b229b78fe6f2ed84f1ed42c1c850f997fe25bb4..2f25410453635d351e5dc13f81027cd03170fe98 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 403b705d2da09be57a50efab9c56b2616e226e56..56d7b110fc7eed94ca169d238c34234246a93d07 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 dad3560c72308ea54566bce15f297bacdb4db0e6..005dc9d53daf81a471d3ce1680f8dd40c0a3c37b 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 09b2f38a8ee10525859263d86187fa9a694b416a..609423ff576f3930253dfced6bcf647138b930a8 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 6e6744a468e494551c8afef13da7dbb4b1b71549..3844daa911795e6ea99c144172f096369713977e 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 ef472421b22a0401f965cb7d9b40db62d3c1036b..7d46f65a702f2277b8f323cb902b4d048e6f6046 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 97d0a3a0865fb1228036cfd17a58b339c20f2249..efdd2043478f70334114b77db8a1d7b12499e717 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 ba9d9497a4e2bba0cfbbf4b5b8752bc804c3c431..f24a048b7f9bcab72b75d6ef40f8e794a831c37b 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 ef1157406073ffc8e366dc667149e1b844b177d6..bb62b9d23303bee916e7fe605fe62d5d4408d94d 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 77029b21f99b25a18b1ee3905c10f2b73ef2b0a2..6bde22deb2856bd25d8405a94d06e928d6db09cc 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 fb23eeb5555a34aa7601364f427c2e676b341441..161fc8304815714fc16be7960c516a6d57ab3aa4 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 73821c01fda3e8c717853fbe12b0e3ea4e5862cd..fcab18e78371a23324002d6419de3a556e430668 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 569e2a2b5b42a8de108a7214fe8eb23c986910c7..280f41d7bf364e2d765cfc220b5fedf4690055c5 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 afa504f8b40ce78a54d0d40243fab987a2528590..56de99458bc3336c8c24f170dcc1de0e063388c1 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 a978255e3518e7aaf2f307cf67ac8a420b274278..48472a7e87b24ad7e26e47cf2953ac41bf3f6f08 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 84fe4758611d79bf4c6a92e8a6acdf5a5c8a4339..d5a41efcd64dd28c50289cdd555509d7f6c4347e 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 b4b8cdcad5b954d4594786fb73cf0cce9b6afeca..d06a375d252f06b385a7114251e6774b5e9b033b 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 f28f85d9d5953f88eb01bd21b39041bf490e1e03..490c56ed05a44a7e4044ef7d541ba2b727c6ea74 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 8fb4935f73d4f1ffecb3cad80b6f2df5f310bf99..443097e2ac6f7e2bb469261f919e1737f5dfcbfa 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 ac0c233db64107f807fb9990755b470bddb3e020..79fc98fecac4c75d1715c5a4a626b0c7610729fa 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 5ba25c47924f682fb5a65f687dc01dec83f2bbbb..d807cfbdc1308a3284a5873e8f1124a6ea5b3edf 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 5fad79ef5c4bd676b8bce70e49db5c9aa9104102..a5501dfd5335530df9f707ce009587c5f3ce5815 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 7438714d4b94fdf00d049cb6978a44f0fdbf1911..5d97d37fd2d3b10953e2df3324eda1d5f1bbf529 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 e680ab0ebc2e7a942082fbe886eb7393eb9186ac..bac9ef5017b44b25cce102d390d94fc632c07a63 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 8ee4fc267ca1aecf8b9a81a76f866721f380da3c..d35abb763e88f00062c712e88b29e2f115cd2996 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 e7cb17161ba69fa57e72c4433ed180feb4a5b8bd..63e7713f72eae92c427c779141461632b2725e00 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 132b06a9827a1829eac6922c1022cb37851dfef1..0a6c84bec61418c86a1b2794f40e63dc32bbf1d7 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 ac93b7b732ff15919fb50d9efc8f98f93e4b51b1..089625b389d933ab4c5bee7a8c2a4c50041538e6 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 b1a63b18dafd27c44b2afdb219a3310439773569..b9bd34ddaae925a1d678295d0441cb70fb04f619 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 0000000000000000000000000000000000000000..7d5c98aed848dc5ed6fbd6e5b3a566a444587df5
--- /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 0000000000000000000000000000000000000000..faadd49a1a49cb9f43fa5c6a54aea013f3fb58cc
--- /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 0000000000000000000000000000000000000000..798fe0b49501a66f4997ec9cc7c950d85db9f251
--- /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 6d9a50d4b15d0d2faf30e4981e65ed53123916ac..dfdba818944d68cac8361a9dec5f4faccff27e76 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 ad7c8150e191ba9cf084a5850cce92b5d51a3706..51f7998715848d253a325d6e4a95a85f376d12cd 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 8e4d48be2bb862020184d2306f2ead7ef2e35e13..a8c0b01e9f3face23325a223c71df416fa99a7a9 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 e6ae4513e01fb4db446704565b09fa103e39096e..b19092085726d4915a3f5d442c68567743228908 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 b2ab1d3dae0e9c33cbda31e034abc33eb0d9f21f..f6ecc31660b1b16c79624e959463e4927502daec 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 7a286ec1ceab0f1067b6c53fcfc1081e0db6c279..3f616416e996dd719113f54b130b7b5708721e16 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 a5a9b0504cac11415134cc36d56ba55ed836eac4..2a4b49c6634218e760e94964badde4b9cf4cfb1a 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 4baef465c6ae5220969ec49c885a4e8a80f7a5e5..bd3de3324c8e23acf44edb1523d3926519b4e5fe 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 4ddd5216873e94075577b8fb4cb90675ae068273..5e2f1a67b3927ea9988aebe3fa60c8b83523c66d 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 880fa5ef3f914d1b914472d40a217ea51818a1fc..894ed1ba6bbfa9713a89bb46bf87687a6cd27e8d 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 5ab03a00317c594ff97a6b3cf8860ff6f58ea935..6a2bc0ecdef9c1e0b0c5df043435dc2f5eaab56d 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 3ae40b67bc4e28f538ae2fe586b2f106b0c12e11..76c0c1dd3957983e26db67b5d134306a9aea4cd9 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 ba3c428dab572750d2815e61c3a02bf3c38bfae9..d987429fbe6333cc441e7ba6efdaa733aa25f3d7 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 93f50457d5c53aa594ed1495406a2327a6a3b5ce..8363cfb0af23814ff0475a15470cafe9d5f168a9 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 ec9b90864c2ab9b159a69a5fd235e1066ba650b1..3c426209a2e734af088f0e430ed74f0ca22dea34 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 f877007c4c8fc1e7d1cb99e7cc1cc89b7e7c477d..dcea8327bab7a1511a2e95579cf62134d5560a32 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 dfef33305efeaf23e60b75e62e669fe6bda4ee38..8b030e01f11b12c553f7357374ea1bbac5842443 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 3dd31d6a72de2ef69c2bb8918d2cf6ee786c0835..3ed93b37ecaacfb00dac54c9bccffe99c3ebcb37 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 3a3370523aaae80b334d0605d318e85e3a910106..7502659525aa63b4fc6838e105263881a22486a6 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 5496ae2e697809f13bcdb0bac84da476598ed902..303f157d6eaa8a7be86716d7a12e0a380cb661a6 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 dd1e3766258c347dad15b54e916cce322df4d507..6c053f3efb82881b1d32dda478203036def6c137 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 153dd1a61d99052cb99ff57a19afa1e385312c4d..259a7c0c94d343b3c821890b9ba0a896511c61ca 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 b81a9999a52efc27bc4e28fc2d2975785ab7f9b5..c027ab189b630c4107a6120c8f668867e8b8b7b7 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 6cc0d80e56f4da650b7f904a4dee8349e3bfe726..d0457425b67b0dd08e4fdd69d3437278ba9cbc00 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 943360d0827419beedbd9c57d238875777f909cd..46f6e8ae5aa57fc21f28d7f0733ca1b18b15445c 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 d37f3abc75e34d775816d397645a671ed5849951..2341da98e8e3f50184690794813989303cb91e0c 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 e9e75067959a952a9a9ecfc8489565de185f93d9..060d51aa33a06c736c0bcf8a358edd42e2ea6b67 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 e116ec5fbf4ea4452fa60b6af29f143855a061cb..2b4678d46cb6fcb7b5b9bc91efe1cb516cb24ed0 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 59a708c52ff7dca63eb5fd5952b83bacb185bc35..3b7a6ef655afccd669c09ef6f2eb4f168af5d1e5 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 f5edaa6334fd94257fee9d6d2b28f1e5c4b037ab..8a7bd5dce064af30192ac1fb4a9abc8f28310dc4 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 e4ad73ee815afefd8af3e6a79ca129683c652628..9b36aa7b12ef5ecb3a03011668bfc12e1c0def12 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 8081b76893863b87737e007e195929deffb086a6..fae9808aa849d3c4368252eb4015352152bea716 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 dc811cd918646ba38201b8faee449fe000817444..f1a1d46c4f6c3512a791425f0e216a7935e0f0b5 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 8fff1eb671674599ac1adc000bb1d38c9f141a6b..8e803874c3ff8124bdecfc13c40eca888c6a35bb 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 2b6d82439ba26351df6ece3b78156452772a0da0..5c49410d1639b31cfb5e3aa2df6126725b1460a1 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 9e92711edc0a4a30417b87c664568a55be6980d2..de2d71eefdd0ef85c9790067c922d531b08e306e 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 00fd5d59ef763bb6867e3e5ab1bc28ddd0f98bcb..664c32161b455a21a566bfbba9dced55441f88ac 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 215cf2839f1da22eb164c4d72d2256a8de26089f..2ddca34f058f0e5315a9ca3dc963ae76f5c04624 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 5430e5f727f4c0d95fa3cb7719cde9a0055389c5..1973104249919b0b1677eb5a3658fa9d830242d9 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 9bdea10ae21cb961b75e22614e774f32bf9d000b..a138095aeadce7390ebfc136be808d29d1bf4fe0 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 b727f68337346fe31a9be6d35f7a3d3873f66d7a..0e87ca36b9d3579c245dc073f594d7679bdbdb8a 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 4b2e124eca2f8f491b9061857bdee803c9525a23..7ff5320ec0892d9568d93fe7d11938ed698e87aa 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 caf8c3017aa56ebfe4f555feee3c2c47729614b5..754c204c17b7ad2f0759863cfbcab5c53a859e8c 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 a3ab0c0d5e619428f25c67b36ffb77b8c19d75f4..7b5fb4ef79f104704582d7f4fe59b440c2ac24d9 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 a5154c0646aeadb1e1ebaa284e6757d83b959beb..1453838f02fd3048446714f36a68e9120f062628 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 f8d6f3f36fe12836083be9ba5e3d36445b101a84..8a2751575f8201abdfa900f5fe473d5270893a6c 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 6f34e3e7c7bdbcce103ddc9b070d566f140436cf..7382865ae927c669e636f364f7bfec4abec299f2 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 80f6b8660983734faf133ca779de31a510e8c97c..78c0971db3c77aa3067360cf15e81c7666e2d6e0 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 4e5a8963969413a0dd0c267143182376cb2030bd..a14f0cffc42442d76487767fa81a0b2269162d06 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 870b4ac06366e0ddf10af8c6283c43d8ba51a935..3df0a16f6f648ffb4704ae6b44cddc9f740abf10 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 472d5d59a3e6066761483270b7b859402ca20e09..c0fe24db1eb9a87f28127e41a453dba2fcfd6f03 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 ef84549aada13d58b72a0c7d15ca3ab8b619fda0..c1401c0d5f4b92dd1b89def065f8d74099b8b89c 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 c533ae9c0b41baf511c2d2374375ee381ba14a82..9c8ff4c095908f6870e091ab8a92116202c70ca6 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 4ef5500b1b37d4a741725cddfe2c265372ef290c..d6f7d231350a98880204733391d08c4ca58ca092 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 5b7e5a737ff40846d02afc4635b0b5741cdadc2d..9300992d9989f6b3a8e90e67d78b3c966e0ca038 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 e74ed51007d3fe1ea506c26a56f0e09b1efafc31..d7191b2e0f30b812c558e4415ad9a62687e65094 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 f2e861b17f6a5b4923d5de7ad4eaed8323c089b5..5be221366c32ace9d6d44557f00662b354b6ef9b 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 5ad14bf83d01ee8c1d5d272fa9a7e9ce8f1b518d..2b2f8844c81c9c93717715ddfd60e8e9d214022b 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 529c1a8db16ec4385ad5466350fe4c6ff0287717..e385eaedc4cb699b61419a833605172eba234179 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 914fdbcf7ed2568e5d392a71a13612df1d390415..db9546a680877652db096f4b4f584fda1440467a 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 af6299d55ff61a0c0625a3887b1aa70344feb0a3..56c74bcde5de70e45a8f0c541fcdc0a34bcc2ebc 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 ef35824db8c61eb7e1049c3925d9d68f0993d5f6..02985495686b16c6b8ba9b2f3420aeb0ae01a150 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 680f7fe7695ad0f2b34531622606a21f31e8134d..7a029b6785f081a4ac22c7858a494f6a46c3fd4c 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 893350c800138b1b93d5b89d39a8fa1e52eb6704..0a07dbc7fc93c0754ec9e5f668eb263e91640a61 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 b3829c831a806874e7f28d43360e991e3783b15e..ab96069b43b7ffcea452db53c80b8bc11f89b38e 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 7d05ebaa779e16b2d2b4deb5804434ec39d27ee8..b0f0f71b751f49b8ff0f38fc574268cee4dfff29 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 73195482654cdea5e7f92d4d65558cd8c7c09795..15e463167943320aee8ca022234f3498036c71b7 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 3e2cc339034f04a44df02103b53106c84666d7a2..6cd66e1d19624ec0a9cf8e81302279460c82aede 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 7c3ce375fbaac650cf20bda872131752a2e45a3f..deca5f34e4bea4286bcf8b93506f5a368896973f 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 c67dcfec92c9f7bacbde0cc8ca99469ca785b4da..121cb0792fcdd2b6fe6159022fb54df42ee9f4d5 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 e7773912bf1e74d0b846b645ce363c46e19232de..f1331194f4080949e710e096ae35978fd2b57afe 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 4c263a39bd917d2314731508bd16b8df1b4e888b..1a3f240aacd626b13fc9d3870eaf9228404faa3c 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 37b9b497b9fe900df0b01a3bc77bc064231cedbe..b5b865e11de85cc07e3a9b94e1b4b80483b0c87f 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 6156a89bcd6997f514dcafb6a4fdb8b9028e9520..c01aa4bb6ea17c4fa7c2e3e54979eae3d70665d1 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 c400a5e69c28fcfc334431a4814427212cca1f2d..13f8528bd1e44eb14ac78a13f5f1da4a8b30233f 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 4db4f20bd3156b01e30dc65ac3b9a2d505a57719..55c17c1cea7ca3cad44a001d0625f428019fbd62 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 fe9baed3f9e9c18075e27687ed75aa4012e47db5..b74a03284068ca3260364a16ba8a3fbc2bdfca92 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 e2693368c4c25fb527dfe3db5bcda8e750341c99..f5b851827994ea53f6af73b6ab42d619d4c3508e 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 c86ba02af49185cfcf466af39296b6d5bd984ec5..3a33e6117212c9e8bf94c16d1b045784390fcd22 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 988bd4824500b211ed8e66d99f4cee3c6774343c..ead0f96cc2dfc7a93c9a21cd8e93645910551b1d 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 9281cfea6f23d48d843dd17cf58e429d189c9e9e..2957d7841e8f6598f1bb687551ae709262562301 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 1e7ebc2c1d40414c5ecfde4f874923c6226a0f10..0d7c2b4443bd5091dbbbad2b492c2a681c45c2fa 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 204944ad56349c960602566f2af420d4a841f8ce..a8792e32eff597955592ed9981173c1849767204 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 b4c6a0cde363a13111013f2f7975929a4d1b435c..ba6b2d34ee633914fa6c5425b1983eb7ae2052bb 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 56b21f5140138167b020c0480dbe394139871839..3758adf905fd8d7330bf285805c205e7b1ccff11 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 2b57a169838b5605af44cc728a0964c8271ca57f..ea6fbf86c2cd86a62df5485ff66a68fa4f77d378 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 df76240217cf65c345dcce23a7da386513e1a1fc..47c44bb2076562ef9f8850433f672c6feb10cd0e 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 1d43b6fa809274216b0699f4ec3ef9b728c474b4..afaf5b9a11e3662b0dbfaab753d0419baf0552b5 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 da8ea94df9c8f4a727417da5838da40b06dc0ba0..b63bccda1b2b3c55fea4cd19ce8f8fe080c5f561 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 3dc25690b409dad10c5648d7c12fa708df75657e..d5c00ef6473568a27f1496c4fe18a86400b93f31 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 93e93f6be6652ac2378353c9275cb7852b248495..108e07bae424807ac130e9450df49348e021f686 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 bc2d6f41353997a228733d571a9ca352efb09d46..fea511d81144e7c8d6fd5114dedb293b7410fbab 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 1d43b6fa809274216b0699f4ec3ef9b728c474b4..afaf5b9a11e3662b0dbfaab753d0419baf0552b5 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 da8ea94df9c8f4a727417da5838da40b06dc0ba0..b63bccda1b2b3c55fea4cd19ce8f8fe080c5f561 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 fa9db7b43012106554491e45a07e76fd76451427..ca3a9f1574b8fd3f304b3f60918e95215dea8afe 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 6536fe26b4bf87a405ca29e2dfce94e3c9bfbd36..1aa80bb2c245b206f3230855c32a1f929835c821 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 37f824851cf5325c33ad0ddc7fba1c7fe491b851..788f9cb2923cd46022d36d4411433fc561aeb50e 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 e680ab0ebc2e7a942082fbe886eb7393eb9186ac..bac9ef5017b44b25cce102d390d94fc632c07a63 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 6962c415b054daedee90551dbba619c4871626e4..42f578336e741831c410c410381f28bf78ee0941 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 8ee4fc267ca1aecf8b9a81a76f866721f380da3c..d35abb763e88f00062c712e88b29e2f115cd2996 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 228ef1bde51ed6283e0b21e8b03d5c5e2471e164..ba9621f8c69b6f70d7bc59b93c1e803a560ccec8 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 6e972e448c1544c968a5168d9d2df750d639a9f6..51e27e19b0953c7a9b163fb709c6af1f8d22fd69 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 e22d93d8c7619e748c082b3fd50e2560937b70d5..52fb6a9a8a82d98bb745af1eb0773474732d83e7 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 0cab59a6bf78402c9be1ce805a9bc8c5824b00bb..e1ebd13fb488bfda49d938ad8f01789c906367d3 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 5e350fa333df7afd025afb67deb9c025b9db7ca3..5c199bc92574f07a3ed5a604ad301fced05ebb6e 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 303cc6e87f770f94527f8d867e8cf79c59e6edc0..3f57f0870d13a94a4ede4a5a610c12693286d8dd 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 0000000000000000000000000000000000000000..0e2691ebd0479d12df0bb4a03564b5bd8cd330f6
--- /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 0000000000000000000000000000000000000000..d4cb2c755116a1b8fc6f29112d73a2449c6276eb
--- /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 a5bb5a7d669b33f626be03f048060b4f56e67201..f6d07f76f882e158eb1dd1d6d99daf779de95fed 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 0000000000000000000000000000000000000000..1d7189964922192b508ddde612a1eb7817dd2736
--- /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 0000000000000000000000000000000000000000..d290022db42bf530c2b63ea9c10ee33d29c8b056
--- /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 0000000000000000000000000000000000000000..092e2ce29f0514c90e6d4223986db5cee1852457
--- /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 0000000000000000000000000000000000000000..db65f03573b27b9fdfa38a84d84b8e98d6be034c
--- /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 0000000000000000000000000000000000000000..b1f8603ffd8d1de9d8d3b8e10dbd83b5d2ea5905
--- /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 0000000000000000000000000000000000000000..922b7d335f87a8f85d9ebff2a4ef1aca59669e83
--- /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 67942d56594c410abb1eaff14422281f4ccf3ca7..e59f45c836f4246214bd904562f1e782a91c84ab 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 0000000000000000000000000000000000000000..cfd3171068060fdf785d83fc2714b3058f3e6636
--- /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 0000000000000000000000000000000000000000..2e00420f0c67cef8af1b37a4ff424f4d1603689f
--- /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 0000000000000000000000000000000000000000..a9518704a883f018952b898bb3df25922ecda1d8
--- /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 0000000000000000000000000000000000000000..de6cecfcb0b3af9be02ca4490a463c945a1422bf
--- /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 0000000000000000000000000000000000000000..355ebc6122a03faf2f2c259145c6493bad8c670a
--- /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 0000000000000000000000000000000000000000..8e9752f2bd07879ac4a29ef2017cd6bf49ee7130
--- /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 25f20917ca411f3e59c5e6d32d3e03c46e8d0e79..1de1f784afb3012de87b464492a6ed7a307001ce 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 975cd5053c0e6011eca0c4a0487b727db1a2a913..9ccfd41faa0d9b1382717f3fb5b5f1f27c6dfed3 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 b3015030c19eb127a715b7e9035a3380d3fc35bc..dd0b42517764da0600b16bfc19d465a13e322314 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 e11add5144a27f8c97cf31fe7cef68fb19d0158e..b532fe813a7f7b10c81805fbb2e8878fbac30d65 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 97dc03fb4a6d6b417664379faa8cb6891dffa100..c92140f553bc5e1ff17de142856010a1c20119fe 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 4fc59253292544326b6782fbc24e49c8fca154a9..546ca189fbf18cf512834c49088115e8aad246b8 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 e4a33cbf27220213c3c1c4dca3557a4a8223eefd..41f0cf0b46119a6739ae1d0ab60e8abfd4b8ef93 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 8e96abb3dd59105b8ca0f8f35c2571bec872dfe8..9524b13972709bf27650db373c984180044a08ea 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 e04cf6ef338876857077a264c40cee5f27bf58e0..4245926022fcf177af045ee03ef2e224de1291fa 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 0030f4d09b39c6c7c19c1de14e231290e45c4ec0..8ab1aef4392428e566cb54117d7c1de8f78efa18 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 0000000000000000000000000000000000000000..05f58b1bc938d7ece3f4c2c5dd354b0f955010ba
--- /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 0000000000000000000000000000000000000000..6de7ecf85ad7f4f8a925d1ed8b684a8b0eb44b2e
--- /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 0000000000000000000000000000000000000000..a6287c1273442069a72b874d8518e2a460ee814d
--- /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 0000000000000000000000000000000000000000..52008eca6aa76958dd044f777186acd4347baf71
--- /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 0000000000000000000000000000000000000000..96f71e9973a5245b6a9a41c74bcf59b10f730c75
--- /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 0000000000000000000000000000000000000000..0bd3ad2ffe33e5a89933287d050e66c34387b0ba
--- /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 0000000000000000000000000000000000000000..478671b81572156acd843b7a8de9f9c4fb74e16d
--- /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 0000000000000000000000000000000000000000..cf43d72acc1da719f3700f290f756891ff8b107c
--- /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 0000000000000000000000000000000000000000..5a10da2291c9d7f84edbbc85a11402e321f65f4a
--- /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 0000000000000000000000000000000000000000..ba8b83766da04b0ba32a80cdf9cbd3deacc6edea
--- /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 0000000000000000000000000000000000000000..23f6f94eb318acc9e76adfb4c5b4dd2cf1fb8855
--- /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 0000000000000000000000000000000000000000..6e69091dbdcea73380e92982acb40db825c09baa
--- /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 0000000000000000000000000000000000000000..aa818f4f1915df3e6190430bbd72a6adaadae3c2
--- /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 0000000000000000000000000000000000000000..ae46f37976ed00a0141f333f224c5708146c5c20
--- /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 0000000000000000000000000000000000000000..849806af6ffd9b05c9cc35bff003889c584ecb05
--- /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 0000000000000000000000000000000000000000..5a93520947f52ef13006946eb8d86ad76fee53c9
--- /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 0000000000000000000000000000000000000000..b42e50ff886eacbd662703b32a104a8a5e74340b
--- /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 0000000000000000000000000000000000000000..7903decabeae558dd531c1d98bc580c3f7f00f3b
--- /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 0000000000000000000000000000000000000000..85b24ca27f94e235d35d881f511447faf99fcb35
--- /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 0000000000000000000000000000000000000000..f7d2cb7e0f5c42fddb13a615491bd834a89ac312
--- /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 0000000000000000000000000000000000000000..5d41f8cc12f3fcfd31101f3c2ccbcbc064d180cd
--- /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 0000000000000000000000000000000000000000..a56b2f5f203938048b7e591ba3171ad292e7db10
--- /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 0000000000000000000000000000000000000000..331666bb511716b1c82e40f7610895b8f5d30744
--- /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 0000000000000000000000000000000000000000..22c27242d5f9560ff4ee5e1450d5d033e8c92b29
--- /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 0000000000000000000000000000000000000000..e6bf57780347f5c5504a78a0fd9cc96d4837dff4
--- /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 0000000000000000000000000000000000000000..020d90c330a19fedbf3632604879d34f5a2c4b52
--- /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 0000000000000000000000000000000000000000..e4f8c809416a3800eb48fa2792741665a7973936
--- /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 0000000000000000000000000000000000000000..dd99f621e3cd5bbe2527f61b26a1cf2a11e3317e
--- /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 0000000000000000000000000000000000000000..e81d8adcf0cf24fbb29287d5471221a0d5d2f41f
--- /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 0000000000000000000000000000000000000000..d07778addb54972c9707c3dfc57794573af4885a
--- /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 0000000000000000000000000000000000000000..1f6941eae6871e216bc065bbf6ed223379936bcc
--- /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 0000000000000000000000000000000000000000..67156d29859b0833359848d6b17c53722602aa0d
--- /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 0000000000000000000000000000000000000000..b8bcb3d43496ee304c42c25abe8efcf2a2db78ec
--- /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 0000000000000000000000000000000000000000..b233a711b0dfffee20965c8feb084183c1087741
--- /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 0000000000000000000000000000000000000000..ba3a5b76dcddd806fb058087a6206ad61de119c3
--- /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 0000000000000000000000000000000000000000..ba5af2ae77b237a7b4bf409a9c9600ef139cc881
--- /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 0000000000000000000000000000000000000000..5972c3f35721772fe1611068c7df8950f7833e5b
--- /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 0000000000000000000000000000000000000000..550b52498d196416682220d671b7271ac3897f6e
--- /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 0000000000000000000000000000000000000000..f1bc2b8949c736d2e6ea85ca9854966924942d57
--- /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 0000000000000000000000000000000000000000..cd2a805409af6429bf76c7e61e518ac9327644c3
--- /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 0000000000000000000000000000000000000000..d5d02bde72873dcbfe33b8c4e67c95f47faf62cc
--- /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 0000000000000000000000000000000000000000..eabb9184e835db1b925c5d4d38ea9e44456707e1
--- /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 0000000000000000000000000000000000000000..ad5eb2106d994083202b3a8cbb5b5757aac16adc
--- /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 0000000000000000000000000000000000000000..67a1587d36772fcf9fde1ad513605a65db5b7af1
--- /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 0000000000000000000000000000000000000000..ca344ceffa6fa48de8181a3be4613384bdc3d030
--- /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 0000000000000000000000000000000000000000..099a091aa039241854eed6cdb70bfe4f811d38cc
--- /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 0000000000000000000000000000000000000000..45d8a8dffb0cedcf9d5d304b75d3c1b840f852af
--- /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 0000000000000000000000000000000000000000..ce36efcf4f4bcc71f55a67c0a72c188c5f863128
--- /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 0000000000000000000000000000000000000000..e74613dabc4691d81e0fbbb16e9f45c47acb73ac
--- /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 59e381b42b254da8b820cc496d9f944766b0f576..bc2683904bc3891fc2293aaf0c47a8d6056de169 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 6337552576ab47bd965a5b223f77ffa0911e4b8e..6e92ce394c1380aaacf222f0e9946e695862fbc2 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 737b5918bef52763b42016cb6158356a9ae9876d..581369ec53b71b4ace04aa8cb97b3816e3ae5720 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 6f2e9bfcc07d8b8f7fc24733cab63d42c0102a45..8c47a5fffcf7efe401fd4abfb78a42a7b9c3159c 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 05f5c2bfd06762d0140525128acc52cc688e09df..395ae0267c333a4cf5bb39941ef44303dcb3361a 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 b3af4b597880eb8e9988b4f4866a4e1bf321d58e..f101ffb607067f39d34ee8d20b9689fc75eada79 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 1de6b29ff117dac0a241905d425ef91d162b5361..6e0ea2406400768158308024790cdd3dc70dc160 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 7d226b3cb3e0f2dbad930f8eb041f7477b4dbe45..108e7a68bb2157719c8213eb229e42b8db526e8c 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 06998fe8501b98e6e9913f99922a52ffb57e6f3b..e86e0beec2f1d576536fca8f2c508bc4106d18d8 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 98a13ff702acf31bbc5d4b7a33cf8ffc6ae4d03d..23a0c7cf0461f0cb45b59b3f5175bf150f360837 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 9682f0a1c8b62749ee9aa65a391ce222e7560cf8..e0bf34b3884ed2139f3bb82b25ffc004d9198742 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 4f1370d5081fc52d375c7cd6cbf7d5623a37bc9a..ab84a68400d2bbbc9623597b5d199feedd9d5bd6 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 20f0c2ac414943ed2714cf6d33821e351ec2524e..4c818f5b8a4b306a5f3728f62e4aa288fa08629b 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 f529a630ed32a8737396bfdf45bcdc02b1b6379b..f3684a89f1c452b220595912ffb993cb4af21c6a 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 b0a42904a60f515f2a5904f45f3fdd7d3518df26..f4305497e6d244b67dc8ffc3484e65b147b25b55 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 8748b545b78935546bcb4aadfd93d66e4eac5e9f..2997cfadbcaa7717f1e29dd966b05ab25c425c82 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 2a8e87bcce78c1d9965d9b0afbc9ff6de31b5c8b..1431983b375206bef94a15d808dc2fa4e4929167 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 726d649ae983c79c0d686e04cb5d5a4040a633ff..82a530b319f518a1d6014266cc00db5ef8257b1b 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 6939b4157bfdfbe0201e557b35674dd3af80817f..0445671b0a0863cacc8009e437a90d975d85184f 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 8a28b5e46535fd60ba8da66f883b2460c570ecbc..0f5f3fb90ef80d791b0eeb9d14f089229fedf5e0 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 8e6aaa2cd627aaabeb62ba13f00a40341681d7fc..d5a23a4574ce033910eb43f9efcecaade0b2cd79 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 00a8c88b2072fd07b3efcd8ffa19c059b5b6f873..ba8f5c0cdfdacbb0f15d24f8aa37bc7aad125969 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 bdf985148f628c928fda983bd383a47d37e22860..3020bc67271352ad76ebda5e8c414d25afdb9ba3 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 a9057c0385a18fd9409b037a6f398929050ce78e..25314ad8198f470ae6a04e785af92cdb3a66c4d5 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 336d7953244524d6260fd29c9e050cf3f18c7366..c56fa91b3636e79fa2a0b669d155c148839a1e25 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 45f0d175061562a7a9b916b1a14ed8532db10b5f..8a7bd8311ec1ec7a1c53200bf1bb776c30dd8616 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 1a60055abf96982cdd8970d14dba072170573e4a..ca958ccd421f606b9fb2f5b503c77af85121d459 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 ae7493e50332dd129461f3b96596e9eb84e1bda2..89c6d4d5d28860312aa41b992e0ef5667c419ea2 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 fbf4fc7f28e953de189187844418909e28028c94..e52d31d2d88a094cf795f8be9fec76c48cfde32d 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 8612f8836cf0b2f536a076c3b604088ce4fde1ad..1df6afb76895828e180e35660b99332d01011235 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 f010107b58f44a43b3a4a6fc21fddcf3cb30ac5d..d63bf2323736f0fe52eb3e561f3b235c9c4a2380 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 b3f10b625adb913989596b6fd0532c9f66607683..0c905fe0f321f8e3a005dbd8e4322ac755678e0c 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 d0e5440f203218185b9d7f859160d8e9593fb408..75208af6df577b62ff4ba94d160b3441b03ec5e0 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 340ed63448a965f65cc79f12b53b0fdd551a66f1..d3f1021aa3646a2827189def8e714a57c826085b 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 82ff8438d1fdd677bfc5774f91a14ad4575e50d9..b73f7bfb127637a0143dd367f5a84bc8f5780a22 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 22580d81d58f180bbe531e92082aa948fb602cf2..eb4cc996f0d281837c85a1a1ab90667d12d44fa5 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 e680ab0ebc2e7a942082fbe886eb7393eb9186ac..bac9ef5017b44b25cce102d390d94fc632c07a63 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 d340dfef64b96b9d1bf895802d80c7b322a55512..8b29b0e6f1c011d7d73947412ab0e785531bc265 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 271837239c1dfaf2087fae3e4bccaacb489d7dcc..4814373d96d6e2d51f08c289d06cf28aa52292ca 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 5c591b3b6931ea2cc870ddda23c46162ea813cea..a678ad8d7354fe746fa1ebda5f6aa02a964f8b92 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 ae00dd67f476f89de6b8fa4be13f0fc630e5f302..301b638c2be6a3de18e4a7f6b048e2425152711a 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 c61dd0927dfba7b00b5f2a925d9fc5a090060b8a..ae2c2261f2c2c3a63e5961262a8d202c5a1f57f8 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 f5f88899aed779964a90bfd97759f5d5ee645238..574f61b0df3bff0a83396095a799ae04f9bb936b 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 b2d8ee517c73ed6fbe4f60fadbddc944ece9b370..383f8f32952bd628eb6fa2db2d529074b658c0a7 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 b37a6becda6b5e046358f9a58669cbf80afa62ea..ee5b6136b3d9d317d959e21e2d63a7d47a26c906 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 0104a0d68aa4cf5e24c855f8644086a3f6770fed..617532615dc2af9be3f736cf1b44d0e58cfda959 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 b36eff03ac5354c68e81aa006770fd9648fd81f9..63f87d145f291812e942552ceb70a122540e67a2 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 411d796a79ed9c31c6f1e231b07e5399cb9bc0c5..d016b1ad215604fe267feee82e150284a19adbfc 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 917665c47d73efbf733bb5fe3c07bc1e35f07b6f..3055450cdb442a8bfa24b5cb5e67929a65bd740d 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 3dc17add8ab46ba63200977aad4df7de80c23c6f..d0a91ce83d8117a4cc85d796d7a262e67f03e8b9 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 3cd9c73d99bc4f50c65259f233bdecf59772e857..1f4c4c3ca68770a833fb4248a812878bc4ffb7b0 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 923101abb8f674571567962755c3d2d0bff4bc96..a62810548d57ada929dd5fcc88c6ed6ea1999e02 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 a5afae49bfeabc83c8b944c94b1fe2cf2e276c55..940ab36d80269477bace6ea34a8c6ddb527a9bac 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 a5d219c9cd7642651d19f48d6a74fdaf3d9a746d..cd1f7847b18310b67aeb89417b61a8ecff45eebf 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 bf30f015eb1790091396996d5a198a7c67b26c22..da5a4a2f2ffeadfaac0c76a8508c1b6d8e7ed84f 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 08d4ed17c49119115652eb4c36b70e8606d1496e..3433acbadead888f612dd2fa11e46d8b55c0fb90 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 73eebbf483791553ee03e5af4e0aa9bb7e36ba24..64f2d2dc414f93bd059d150e668f3636c1f199c1 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 0b9473c86cd811a7d76c670035d6d7fce82dafac..593d10f38192167c15bfe2e583548c4a96023550 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 2e093f0f48e1d8c5368f47c8aa5c820ef06fdc5b..18ba62ede51f732580f67fc18c156196b356e6e8 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 ad42ce5802d763b0eab229505c8e1220e1622cdb..a0b1c3df2121d1959e42fd842a9e1759a68321d6 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 e933080d5113dddbd92debfddbc0e393b44bda0d..106d28e95d70dec41d8ca8f7a41bf544374f52de 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 761f8850328cab5ed901a5027846d438af75dac1..98f11af36075c6955121d74ff13979429846aac3 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 6313d0d15f28ce0fe1ec215a89a12744566ccade..1f4702f76c782037e3c6d77aa916fe15f1d388dc 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 17d5d2aa794e53a3aa792fcf553d32c8e41b0082..396427723faa05719a7773abda52ccdcc6de57f8 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 0005c3c75aaef2dea1b0ca67f3a9b2b8ebaa7ead..86b90ccaedb39ea90fec5df00c2a911d9b8075cc 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 dbd57c82901b7ca347b87c7ee59dff76036f99fa..f6571262726dddebeea5844e8eadf79d2b5db520 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 8a0e9e6a390c09d19eae369a1a6c0d08fbe43347..63efe83f11c8bc639868e0cfb9b8d764ce96b0ca 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 89d5e6da7d2b157e1b876cdf68a75fa8a9b937ec..496051155c8c9ae39ce1b298b3b4086a337f96a6 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 7cdbeb95b65ef400b46a3efb5a4192253d208747..306a6223a379845257c5e879d85bafc901aea4ab 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 9fe1511b89912d9f075932d11c946f9bd460824b..9a6ca867ec709376579826bcaed52fe65b1d4f03 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 3fb065be6adde63ae1b562df0cedd049d47392cf..71cf2d3daaf49308c698b2c38479bf817d9ee1ff 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 a695a8844a6cd9ae76467693a3feefc82ddde0b3..749ef6f379f2db2d44d96a5cc9269338a318b2a5 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 ca3747dd2ed35e8ae7a150263396e6d5f0595030..c14d00ecc430855b451170d987db75ff3ad79b7c 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 582f1a60bcbed1384a96f917c147e46d954d8f1a..0983babe964557c3d78df28029d4c13d6443f5ce 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 a3bec1b9acf36e908b7fa5b02e474df1cb59c571..074d3a5aba7d369ce2061b8c27cfccd92c748f45 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 d78000a3e5c401c5b35312e7be8073fcc5ddad81..5f5e84bd5af30eaa5596d108edec1a0e50bceb28 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 2b33d1c95304360a601fc119742e2d881b512b72..317aac116df4d5fb2ab0fdb346859a156e5809ae 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 157109ea233a64efaad7448c20f36bb3edc4e5cf..49a6f38726d9ae528b5314673464f58acbc8e116 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 55ecb816bc39aca10a363e88a121e69251a8e959..9a63d55505f2836ca30bc682b774ff180370bca1 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 33f05ef750193bd531f6e6b82a48ab947e567002..531513b839f9f66b385ade443afc9f891f72bed2 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 6f17bbd4c75565fc6895ef794243c01e8d3b8347..8dedb0cad21d13cc152b9a532422d3a7a8d62f36 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 6d087087343af544a38232f8b2dabcfd72abe007..f37d8fa7c9f23b24ee5955d865d52afbcfb99fcc 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 3bea97cdbe8fc8c70579fa9ee529c3c787d3319c..dbb2f6ac79dc31005965a4dee258425f058f99a7 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 be9acdb7a8e128d564d178b1b46e06a3c43fd10d..01e4d2095ed97814b45dee21cd54baf8bcbd5a79 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 a69b3e1fc06545dbaeba97596c5fd6ff1199eb27..2fd2a3cfc75e80f812ad9ce87f29b1f32a78bf1d 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 65ea1b9e9c41f2da1d12ba484eecabf426251cde..e3f0b2d5de2221ad27e64355ad70364019a7dbee 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 ad6932da319521a25dc1e2289e6de673b76be946..56bddfdadabbcd1f202411f897ef079cb167519f 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 b2e29e22d63c0ee6c2634aaa3e8e142d7f5239e4..dea9ebfc72eb18dd287c899eac5e01ed0ef3413d 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 b3c6936c7b3049e520e1c79ef78c89130b36b1bb..a87c198e0efb940166b48f1209366c187b4e0f79 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 6417e7a10b181df318c8cbdb9a853c4be5603d2e..fd50557d1ad96f70065b2ae53060c18e0f345729 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 872d97e646aac9d8256e3a4f1628437d79df4560..19703742b73b267c61eca7b218116dd6a4493091 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 04d3130ee785b45e129516e82ac3f80113440424..3553e8e16eaf266555229114f4494a51494dde45 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 a1b4872e7ec575b8167bac0dc701840660791a5c..3dcbd820dd18aff32532a8adbcab90174b27a78b 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 0511e8f6ef2bab826ee06a2fb5dcb6ec603d4ea9..8754f309b709c118a28bb77241f87596469cec47 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 fcc94268f56928d3f4147f93ef9196608ff67427..c840deb746f2862619a10a6a50aa33d4db4ed6e7 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 746b8b0704713c12f5e18e9df33bf2ffb5857a83..fef2c92c8913f30bb9f42b5eeec3e1b733bf125a 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 80781d13e7b29e23737d50619fd10eeee51059e0..ba157fa205320234b10ee8aca21fd4627c716d5b 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 30768fe4369288b90b5183ad1851a761995e1fdc..a79e143a220eef87fdd7b0664aee5753cd470050 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 442a9daf12c421b5faba2adc443d5b3524e5b0ef..728e05f72def9c87b0b1e11ade8e970637b32256 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 39bd6e134410d3530a9e885379b711edccbef32b..35780ee1c9a9ccc8501f2cd6ec6f02b237b26ee8 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 66b921ec85c187370f74242a2df64be5f3db7772..bd1c893de540631cb21f0688a0160e7e21d97493 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 74f4cec7515a5da987391f3c1f19c96e113f49f5..8d589d6e44a1689437859ca648a38e0e222c8c18 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 27d4063608f38b007a5b2bf2910aa6888c4385ed..604ecb401d04cc5241bea472d553d1df9aa780d1 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 eafa1ecc144d2adfa77e205533ef15952be32ac0..bbf095d071967139e99d68411a5324badee869b9 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 abca00531e149d2f06bd5b1ebac75ab4b6bc786d..93ee54ccc6ca65ef2ea753e8e1c341568d3182c3 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 46803b5a94ddb98d3728764d9d224c59a86362c9..a4aece9ebd60c12b3cea6ad7e53996a61998f378 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 88a122c9861fdff3dbd291fe2cf71bc298d88991..a64fa7e33d6bc4fbb2c8774a569996c3dd3f5f95 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 9e8eda95fd6aac0914866fa0c8a69f445b2eb15e..703766f1848169a6fb877347a854ba65aafb1400 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 a07a60724993a630ef65077117f9cdede80e476c..5f26572aa8b62524458c39a1bc9d6780e726dcde 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 f3ce9d08ddc125ef11919db5f11b28ba81e8e2fc..e1b7d13ddaf73eb64c88318eed95a81b063a15bf 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 2456122e7620e39e67fa22c90f93b7ef23091ac1..8a705f06ff4d7ea9521a5025a3f70373569e1d02 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 6d049f20e27a25908693ee62c8b367df89007c0a..87eba2c71879f068e3099aff285b06a3006e15dd 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 77db3ad811b2d67440ca94204b2fc5604343f966..b79045a0c583c71a14bfb2f87fab5b33c7e9b7dd 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 6d3fdd9dc1556ce5fbc7b9754397d76eda469423..0095a65f25f57bf5290aaac5056da5096b743cd9 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 1157779bb2b8dd2a90e0c2d7be1b222387620c30..a02428c79e2cc017537c7b24874f4e2929421779 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 1157779bb2b8dd2a90e0c2d7be1b222387620c30..a02428c79e2cc017537c7b24874f4e2929421779 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 e680ab0ebc2e7a942082fbe886eb7393eb9186ac..bac9ef5017b44b25cce102d390d94fc632c07a63 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 8ee4fc267ca1aecf8b9a81a76f866721f380da3c..d35abb763e88f00062c712e88b29e2f115cd2996 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 0fb5637256857bb3232cf45210d2bcede0f2020c..5a77f73a481085f79ee95bf048556a735a249442 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 65010546e4c9ce43a34789cafee720c186119fe3..04c8b875feca7f7d9fb4d71dc16316941f818387 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 33e62fe5333d7c460c3b5a4caef88d9c8a917aa5..a28fc99b73bf533b8e98babfcf7335d67e9848de 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 95baf14f827ea6bb3cdc746430c247e9d152111c..661a173fcff981aecef70d30074f1d06c0b4a630 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 7ea23d323c067b67cc79634eae8640d4f7530b23..978b3d9ca924edfbaa27e96e29e35dfd65718dab 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 49c711e3aea11a7a31534428660d9c413330fd73..e6fd53899d0da82363887773e7d954b15ea3e06e 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 ff0a7468e6df35fa71bf004b5e0b1fa38fba97c5..9a79cafef8617fcde459c559b5cdea936de46de7 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 f8c1c77efc6590c608bae9f1f4b11782da3bb898..1e319cc0ef70d2556aee35f46ff2f3fdd3956155 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 8537a31c11c56d5b4f4883b694209c895bbb9eb9..8079094b4a0a39900cb1d7d6d3c28a6cecf082a7 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 6faabfc386c2f59f45186802a594657fd2ac24d8..36e269a1855219839599671e8366591ff147d8c2 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 32cc565750e8201755c92fba743248cd89d4f444..c968830c1830404219ce47d60e18310decd0e6e6 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 a51935f17e77287bd0e73b4961ffba1ad6c00ad0..b1b0a802ed3b90d764814e62c770777bfe5f366b 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 57118230d8d7c33679bc24162d817f19d49349d2..6a692997ec25d7f7bc5638897a9108c5f81b6941 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 de587aa2dd416bd1c7dcf8379f224ff0c26d9740..bf506e274aa84e877efae20f3d0a5808de580d82 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 a5f22be6772d4cba6b884ee7e414d68c5cc8ab4a..b819f01cbb811f0b5d533a1e0218744367574466 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 f775bff520abbd60263c1a0c5c5115302e73bfcc..1589fc843dc866475cc182c42f6b4a27c825e352 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 0d017b20c0ee7a01cd246734734b9523cf4d8126..1d8a470466938a4cc682cf780fb65ac1b1124131 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 a3e4c84f5b6bd7bcfebe8da6f92ae52172d1f0bb..ee395b8c806add7562ce598a9d6060fae969fee7 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 0000000000000000000000000000000000000000..27e7eca2cd395a90b51fe119c540c6631f53990e
--- /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 0000000000000000000000000000000000000000..3c70c4bb9ae3050642f539c2447aa4406d7bf770
--- /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 0000000000000000000000000000000000000000..e186ef084d3290a6876e067cfda0360a06bcc3a8
--- /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 0000000000000000000000000000000000000000..99629204976632afe4c3fe999e2c881dc917e2e2
--- /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 0000000000000000000000000000000000000000..5be49499be7c67d8588ff945983f63fd813182a3
--- /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 0000000000000000000000000000000000000000..40814285e727760241315eba07a678088740f826
--- /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 0000000000000000000000000000000000000000..5bd123a760c45aa9d6081a34cffd3e79b6fd473a
--- /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 0000000000000000000000000000000000000000..c31d37797b20f5280ff63ec6f300e3a3006a6992
--- /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 0000000000000000000000000000000000000000..6ccede2df052202df01767296fb71e3c9648da0f
--- /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 4dbb47264a0b1e24517301fef79d313b8ba79090..8626f05d428fa298ebdab914d3f62673ba52845f 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 0000000000000000000000000000000000000000..de0baf90b3e078395283feed4ac8a16d936ebeca
--- /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 f9d97f8447e8a7ed237e029f4032f62cea733d90..0c71aad0af1809c912c04dbc4e58a73703f0762b 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 e935a5bb8cc7eaa567bac9151430c47de3cc89c0..d3a64f86417b1d4d2dac171390ea7b963e417105 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 0000000000000000000000000000000000000000..f4e37c2b3764acf5318efa5d3a39f4e57fff763e
--- /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 0000000000000000000000000000000000000000..418026bcb4b3ee9bbdb3f6df783e12ffa813c848
--- /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 0000000000000000000000000000000000000000..d5791454d345ef82c3039c3fd2ea8f037de07a75
--- /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 2fde44f1770a09a13728364c89ea4a844633f076..d4e03432c52497180f984532e9da664f2574f08a 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 0000000000000000000000000000000000000000..9c674f41f4fd54a915971d0d25150e10068709a4
--- /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 0000000000000000000000000000000000000000..f3d426781220c9a32ede3a4f7782ceded3d103aa
--- /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 0000000000000000000000000000000000000000..2f11aa5cb880381ee3d863f93497184505fa6c95
--- /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 0000000000000000000000000000000000000000..a9acff6a1f8882d40561230d8e73bdfd71fff51d
--- /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 0000000000000000000000000000000000000000..8c76a1f864065753ea9c73a597f35707dbf93bea
--- /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 0000000000000000000000000000000000000000..af29e60f4932120fcf447ee4355e31de94a38f15
--- /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 0000000000000000000000000000000000000000..8eb448cdfe40bf21b0f44e77326eb9cf0f90dc96
--- /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 150d439ed2b6567ac1e800c625a2ad0a77109221..684ffbb6ab37bfe978f54cec111c612197fb01d6 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 0000000000000000000000000000000000000000..2d03616c2f16974d01d4a4323ff98cbaffe93b76
--- /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 0000000000000000000000000000000000000000..accf732372ec73b8f242cc974b55f75eb8155fe8
--- /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 0000000000000000000000000000000000000000..ccb09e6bab3a3e2ace53fbd56b3e50fdd787152a
--- /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 0000000000000000000000000000000000000000..7dbb68be8eb23b4b95d7ff0904019fa036f8f7cf
--- /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 ca0b6b6cf1bd9340f8a0bcff90915a286f9565e2..2d9df2ed379409eaeb42d434ff9f63ab78acb3c8 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 0000000000000000000000000000000000000000..a6f1a2fceeb21edb4c6d44896d87c7e939d7a34f
--- /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 0000000000000000000000000000000000000000..435600ecf8fe395e9219454cdd7f7f1ef7ed693b
--- /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 7c30929ca53a2b4a022e230436ebfc7897ba69e0..32daca650404822675092f4d1b81062f467f1d06 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 248de0a0d3e33e6ce5ef13fd882d9da17330dd3d..292a7742067fb83ce0d84319dd3909ac2e7cdcae 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 0000000000000000000000000000000000000000..370043ca59e2a034f38de4c6e05219831523713f
--- /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 0000000000000000000000000000000000000000..5ca8e0663c92a161057a9741e36c88db4676929b
--- /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 0000000000000000000000000000000000000000..5229db6886b54294d1865183ef9118a13c9f123c
--- /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 0000000000000000000000000000000000000000..1e1530724a8f2803ad0181572f5dc9d8d0889440
--- /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 0000000000000000000000000000000000000000..4d3fca5095ed1d24ea7220fb30a440810498d7d6
--- /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 0000000000000000000000000000000000000000..03df4768add4b2f3d113f3647dc8851c7b85fa4b
--- /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 ff11c8a5c79ebab60e84e4a510a2f5229fafe5d1..e1a38d96b3e78dcd751e391758dec848aed20b2d 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 33abc97c882050c482f0656fbe522939d8e185aa..f351c989722717d747f276e320687b1f63e7ff84 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 7d727bc0c9ddfe6b612660f4649934dbc004f95a..62f22cefe8090209c42c0eab9ef46d1ce373345d 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 8151fb972f648c3e2eaf9d4c588240a47f11d6aa..ae2765aeab4c883fc7acc2170d016f417ebf14ec 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 75334d09316165aa13cec5ae0b0303abbcc1742a..34c0b81e2cf1711a4cef2f488166065d10b9d95d 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 8fa9f434d27806922d134012546b567dc5835e8c..dbe3396f678ba1576d61745b0201409116043497 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 bfd3608c5baa8dc3325b052230022d5165e7e648..63ebec149f79fb5e34c22ff8d4e39e10e7984a7b 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 b72435c20073554c991e9fe818e57bac9acbc0de..77776a2b8785cb54e0b182eb7cb90c482168eb46 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 87e70b27b7cc7b0657b8efa41d3ef6bcdb3403ac..db251999de5e9609031aaef09da032b93fc01c29 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 4a2229b6982ad61c39bcb1dcb57ce56dfdb5e03c..78c4ffce577f8a47c08c6b270efb1e5aa4bb89ac 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 5014b1cb0a810928ff69a33016f2307acdb990c9..1c140f613dda6e09b61c648f26288aad8c5bb166 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 e31ec0efc129f3fd725c7241dd8e8637190b1e98..10daa4943cbbe1f5cb302b035b107ded625c934d 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 ecc739a432c68f8f38604e8851ed0a30c3027502..c5adcff068f872aff173ebd91584336714f61d7d 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 c3777305224911b614fb3abf0217bca2f49c6ba6..5289b49397f457b781755df7dbebed31d63b6796 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 0000000000000000000000000000000000000000..6cd1129b599e9647fc3043df4e3693cbc3adda20
--- /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 0000000000000000000000000000000000000000..fe49abe9894891ffa4e1fc83294c0ce111e5cfc6
--- /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 2c0cb61a44891a98a35c9c4075e3c307b04f467c..9c8b56e643cc3e91d28d2016fdcbc90d142ba687 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 114008b7e113bdcaef05aa2a6f2622245c539f25..4fcd13eeb0f2f153b6b2a4ac42cdc273158ebef0 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 0000000000000000000000000000000000000000..595b9f74e2127c24e2256314dfed0e3dcf1d3648
--- /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 0000000000000000000000000000000000000000..03fc277b0ca89fcbf4e48fbe91d0f3a78a708070
--- /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 5a2d55c29bbec3954ec0b65fdbeb5536f5df2484..6f28821e99a0c62502730b373f2f6d9dcd159aec 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 d393f17ba66cc2a1240e9fdcca120c6f63828239..8cf9100e059beca1fc93a3b7caac80eff588bf5f 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 0000000000000000000000000000000000000000..28671c9e9ebd6f6f41844c1e86a50810c0d6454b
--- /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 0000000000000000000000000000000000000000..f354444ef53b767c9258448fc2ce33211bed31fe
--- /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 0000000000000000000000000000000000000000..16754266d02a6c71c78647d7a6979aa992752dfa
--- /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 0000000000000000000000000000000000000000..45dfea72da5b02f3cddc61f3ac70e417361cd910
--- /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 0000000000000000000000000000000000000000..2887ce8d097f7d58a1851874c39c90c5af3e791a
--- /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 0000000000000000000000000000000000000000..fa616c4b0a5542929a330eb76c78d3cd02246a98
--- /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 0000000000000000000000000000000000000000..54da365158c9dd242d60a286ff58275e390e1385
--- /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 0000000000000000000000000000000000000000..955c1c31af1e9f5b15e5afbe254a8de02a1c7ab3
--- /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 0000000000000000000000000000000000000000..d834536fc45a97dc6856cdacbe380e4a1d3794a1
--- /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 0000000000000000000000000000000000000000..fbaefbdf9cbcb75ff5ac5e62141b5315b5dc0c94
--- /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 0000000000000000000000000000000000000000..cd58d2c5a262dda9312a22a88df7028db8fcacdb
--- /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 0676056de0720303904c8ffebe1d4568ad52a1f5..603b8c298ca5fed618fd160c56c4ac009e59269c 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 4e929bb2289e4ba4e1064ad30b14d6460957ff47..91f9013975de2368b083968524fc984549fa98ff 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 0000000000000000000000000000000000000000..532220d376ac1d1dfe032f1adf3cb200a5fa57ad
--- /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 c2b0c19b4a74988923af31ca2e78f81e3bb2eda0..0e8bd4ccdebd26fa83ea2554a196a71bc7dfef05 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 53527a086cdb193a9d618aa2efb1d584f073b3e8..8ebbbb3f3d245b522c987d6bd9b059b02f888a03 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 0000000000000000000000000000000000000000..509bc194ff6c5a585ad2a806397151aefef4b936
--- /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 0000000000000000000000000000000000000000..bfbfeb2959815ff444e984c644194eef6704f8fb
--- /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 0000000000000000000000000000000000000000..0ceade97a3f48c221d13c4cbe5b3ff8b75a8bf2c
--- /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 0000000000000000000000000000000000000000..ff05d58cb62d953d4c4a222acf1011e1e7e7fc00
--- /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 0000000000000000000000000000000000000000..7b4e97c8254f1fe9e1bcaf72a3f902ac5faea4cf
--- /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 0000000000000000000000000000000000000000..64d9fa310c0b5db2e9e143ee08abbf08f2aadbb6
--- /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 0000000000000000000000000000000000000000..7b89a0c2f490387d967edaddd761c6ce00d5cf1c
--- /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 0000000000000000000000000000000000000000..3e5f37930d9200e25af1a68c9d461e5efac4443e
--- /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 0000000000000000000000000000000000000000..3e72e95a6e9cc2de5b3765ec7f60ae95c70bb43f
--- /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 0000000000000000000000000000000000000000..3bd3797a5ab4dfc8751ca9172c939c363449f0bb
--- /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 0000000000000000000000000000000000000000..cf7600bdee344e2acfa73cf42482f24735e0222c
--- /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 0000000000000000000000000000000000000000..03e287d6a42213e99881a01aba0081599448eead
--- /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 0000000000000000000000000000000000000000..4a7084f1db090d5d3b7fc23aa72e5c98d044bd7d
--- /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 0000000000000000000000000000000000000000..6dfc93eeea8c039601d95842b98cfc56225413a7
--- /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 2653b81d5fef18a5d678006b55c8c4954e3677d5..4fda8733ecad3a5b446a9977184f0b78191aa18e 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 0000000000000000000000000000000000000000..d1259e69ba722f59e7554b048500aa531f53c0a7
--- /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 0000000000000000000000000000000000000000..b5b87fa35e8c86739663b150c710ed85c5379cba
--- /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 796dcac2001b62793e3cc93034eb83694e33a4d3..961d0286405e955ffc568e78938a13a887489240 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 843b772255dac3fb68d50030f6cc688b5bda891c..f439c14cf3044a50fd505ee27aff5c7a27f01fa1 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 0000000000000000000000000000000000000000..0ac5b1a142e00112fb51c98b0bd95e892e5d92ed
--- /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 0000000000000000000000000000000000000000..e32de3a27c3fb11e6c036a5b32dfc096f09acc99
--- /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 0000000000000000000000000000000000000000..cb33a3c31a0ad94cc51c10609e13528f787b7f77
--- /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 0000000000000000000000000000000000000000..8d0f5d82fe85a6c9895c2484013b02340a1ac879
--- /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 0000000000000000000000000000000000000000..cf6913d8bbc7be93569a3b57d0c582ea71732ba6
--- /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 0000000000000000000000000000000000000000..0f13c46f9cf79525d9ec7972216d55f192035c96
--- /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 0000000000000000000000000000000000000000..7095cf5f8e6975456f3e189a84f9ae475204f2c9
--- /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 0000000000000000000000000000000000000000..292bd2e93c6df5dbd3aa3f51313571dca94316ac
--- /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 0000000000000000000000000000000000000000..295205e47c0979c8aaebf1c720c17c29721d1426
--- /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 0000000000000000000000000000000000000000..b3278903d5aa2a5f1ebe59730760589cb3c5a265
--- /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 0000000000000000000000000000000000000000..340c9e42c6d6f730544b81f2d76c233e550535f8
--- /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 0000000000000000000000000000000000000000..6bedf299556f53690aeed1733dd575f3a9f3dfe6
--- /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 0000000000000000000000000000000000000000..39508369f59dc24d90db03097bd135951b3290da
--- /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 0000000000000000000000000000000000000000..0487d3dd36989403258c1ebe2de33f91a9a0ab5c
--- /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 0000000000000000000000000000000000000000..a44ef971bafa0562fc032a5ca06d1695f5e4b889
--- /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 0000000000000000000000000000000000000000..8cc4e425d39b24ba660dbab280387854c2b1356b
--- /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 0000000000000000000000000000000000000000..703c07b9fbf702bc0ac8731881307b7a6f08e303
--- /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 0000000000000000000000000000000000000000..aee6e52115b85e0fb9d12a14706fd6975a5e3920
--- /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 0000000000000000000000000000000000000000..8e6fd084afc7f51ecf68f530221b6c0848536bf4
--- /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 0000000000000000000000000000000000000000..9926db1be8e2faf6cc9036c704d687f4578411dc
--- /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 0000000000000000000000000000000000000000..b0af40c2f5a6e82b518ea51a727ee3db4e8ad68e
--- /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 0000000000000000000000000000000000000000..b15a2515ab4c3923658d59b2179f48a03f236950
--- /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 0000000000000000000000000000000000000000..8b5b42b87c0722b7097fa6e092994643ef1c53a6
--- /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 0000000000000000000000000000000000000000..5e7520fcac62ed355e9939594514924898999e76
--- /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 0000000000000000000000000000000000000000..07592f39c184d912153e237d20c71c1322766ad4
--- /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 0000000000000000000000000000000000000000..62e8191a8138e0cce13611cbb71bfe2ac6c04b76
--- /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 0000000000000000000000000000000000000000..a616f008e0ae753fdc7ba7eeb55553f10837fa02
--- /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 0000000000000000000000000000000000000000..f785fcdb9f30ae4635d9525cb927f9ea83114e8a
--- /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 0000000000000000000000000000000000000000..6251869c447bea5a1313c464ce7e8522454d18bb
--- /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 0000000000000000000000000000000000000000..ee2d2b274f4ff4e2561c1e6912a93aa8b117d99d
--- /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 0000000000000000000000000000000000000000..3ef5b6b10bdc6213240e608d335e11adf392b545
--- /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 0000000000000000000000000000000000000000..6fcc294f814bb4056de99689942f52b8b16db60a
--- /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 0000000000000000000000000000000000000000..b14d559d3a64657a70d3de76c31ba96d3388e60d
--- /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 0000000000000000000000000000000000000000..48c036d4aeaae67b527965d3833024e7f391ac5f
--- /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 0000000000000000000000000000000000000000..605c3e7c5ac5ad67ff45a0324271b796e315ac89
--- /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 0000000000000000000000000000000000000000..19d4e14acb2d8f8439902eb0ed81d4b3f3ae241c
--- /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 0000000000000000000000000000000000000000..cfa6c173bbea10b44c3a63f262d3bbfaeee49a7e
--- /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 0000000000000000000000000000000000000000..d2e1d82e8c3452c108408e5105d096f15c796314
--- /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 0000000000000000000000000000000000000000..e4b46694a87e1cc6431972e640ee86311dbc2022
--- /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 0000000000000000000000000000000000000000..a5afc7a723f1a45df5a4f5d336a8dba78f537e56
--- /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 0000000000000000000000000000000000000000..8f922fd54ca81a60dc772bd3b9ed7f51e2d849a3
--- /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 0000000000000000000000000000000000000000..5756dfcb27d428e7e0f786cdf190a2840481b794
--- /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 0000000000000000000000000000000000000000..cdbe3b36118f871c32b18357d3a2c8cde6990c17
--- /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 0000000000000000000000000000000000000000..e48118822d12f1610b699f0447e6f273d9362dec
--- /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 0000000000000000000000000000000000000000..0fab3a1a1067d2928aa787a616b8f3886fc17af6
--- /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 0000000000000000000000000000000000000000..d3e4e6bfedc3ffaf7922a1b0aa90a3cbbc2f60f6
--- /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 0000000000000000000000000000000000000000..27ef87610766d3acff44902cde2311f416c50f28
--- /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 0000000000000000000000000000000000000000..74b5e32cbade7d3fc8aab10df97bc58b8352cad2
--- /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 0000000000000000000000000000000000000000..59c9fa3c0dc1d6179ab4bee8d660d56da0100e94
--- /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 0000000000000000000000000000000000000000..48363dab245d4414fa1384bd19970c18016e080e
--- /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 0000000000000000000000000000000000000000..af56078bc19dfbb4a71c567524ee68e9006306d0
--- /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 0000000000000000000000000000000000000000..f0dc37aeb66a472df024686b670e78803d5a520e
--- /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 0000000000000000000000000000000000000000..30695d851d4417441171e991c3d388389ec6ddd7
--- /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 0000000000000000000000000000000000000000..695e5e2f8843f0783d8fd678c328c374ddfeeb64
--- /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 0000000000000000000000000000000000000000..9f55a652fa86783c8bc97e53b595c0b7bbffe423
--- /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 0000000000000000000000000000000000000000..f29b8b62e3e7515a51571185f10e8e77192be440
--- /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 0000000000000000000000000000000000000000..0f69e60eef4caaa61059760f5c89ee6c12fc93eb
--- /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 0000000000000000000000000000000000000000..3e03fb8aaf83a05d3f5a260ab0f2f23946e72f27
--- /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 0000000000000000000000000000000000000000..65fe9b3f71f93ead20e457f4e723b7289bea56c6
--- /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 0000000000000000000000000000000000000000..a091c1ddcd6e1542c59422116966c40e47cd0a82
--- /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 0000000000000000000000000000000000000000..66689eeeb467542f59190da3259316728a188756
--- /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 0000000000000000000000000000000000000000..c72afd388ba4885c32c6a55b5113446cf6ca9ff5
--- /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 0000000000000000000000000000000000000000..82fecb199ca9a97a8bcdeaa7b91316108d3f875e
--- /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 0000000000000000000000000000000000000000..642ed71a1ec6bbb1ba92b4da8c35474e976df4aa
--- /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 0000000000000000000000000000000000000000..f2bdb1b4fe6f1a97eb3f5155770c6495dfcacd5e
--- /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 0000000000000000000000000000000000000000..fd64185e1a08b9e28e5655c8e2436c11b699dc41
--- /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 0000000000000000000000000000000000000000..ecac4e16682fc3dc14d3f82e344b7a00903fadea
--- /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 0000000000000000000000000000000000000000..2de26b6ff2853c9736bb31e8217c61885dc846a0
--- /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 0000000000000000000000000000000000000000..431a685807fe16e8c0fcd8e6622d17068df212cd
--- /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 0000000000000000000000000000000000000000..bd53b98dfb2238a65dc35f87b9785a9e3f8663ab
--- /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 0000000000000000000000000000000000000000..5437379a3ad85d6bc17d820a0ed207c231b12192
--- /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 0000000000000000000000000000000000000000..4cf162bcc08bf76cf00538dc6c1ad94b6f6a5d91
--- /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 0000000000000000000000000000000000000000..325ff580cd5b4360a3e9120f1ba0ce99a19e36cf
--- /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 0000000000000000000000000000000000000000..cba594e14ee67be36c25165213879ef5810eb983
--- /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 0000000000000000000000000000000000000000..0c15e9cd14e4238454125fa08f83cf244b603e98
--- /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 0000000000000000000000000000000000000000..6db9e84f0af8eb92ad9af7b9159d25cf22b8bbbb
--- /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 0000000000000000000000000000000000000000..211b2a4f07907c7fb59355212fc76cd86fa6e619
--- /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 0000000000000000000000000000000000000000..1e25a908339876ebc954078f225932eebd5b418f
--- /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 0000000000000000000000000000000000000000..4b61eb1652aa624cbcf4172aabde59e13ebfa1a1
--- /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 0000000000000000000000000000000000000000..146effab3dde08cc7a4dc6cbc1b2ac0125209289
--- /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 0000000000000000000000000000000000000000..08baa58af30e204d120d028ca80036683a96e6f7
--- /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 0000000000000000000000000000000000000000..187e2d3e901e8393cd69cfdbfa03c18e0aad5858
--- /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 0000000000000000000000000000000000000000..556563d79e4a2581f06bb9d9d37c6863382139f9
--- /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 0000000000000000000000000000000000000000..4be8a04479b18be239e86eb54f5fcacfcce64c7d
--- /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 0000000000000000000000000000000000000000..4748784d7c8501f2347431909ac3e070c972fa1d
--- /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 0000000000000000000000000000000000000000..5ac81e8ba943734443be9fa9f77a4c52de4f34df
--- /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 0000000000000000000000000000000000000000..e5faebc0e0e0db9220214b907ece1cc46d2e90ec
--- /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 0000000000000000000000000000000000000000..6351dd91e8e6d15cd938de0ffdd31440f83772f3
--- /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 0000000000000000000000000000000000000000..039ca24cf9056f4dfd5d2794e80cbd1e9910185f
--- /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 0000000000000000000000000000000000000000..ab4575e137c5f3957e2c1d738ebe6f6cacc339c4
--- /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 0000000000000000000000000000000000000000..9bcdd3b026f026441132c820bfcf6e909c4cd70e
--- /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 0000000000000000000000000000000000000000..0ed2791487d17431fb0b8c109164614021fce461
--- /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 0000000000000000000000000000000000000000..5ff043cab42be5c9ff09afd27906e84c49b5e3db
--- /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 0000000000000000000000000000000000000000..c0c006c2eb1021f651328cba9a9508d7e7e3ea0a
--- /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 0000000000000000000000000000000000000000..7849d43a6cb4904b02a8ad1cc99cff49faaa8f82
--- /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 0000000000000000000000000000000000000000..49cc7ed4c4ff63b2760eb846553e1e1ba95fcbc9
--- /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 0000000000000000000000000000000000000000..2f0a9a14ca0ce80cdd7e29993e9028f249cdeb4f
--- /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 0000000000000000000000000000000000000000..39286a554eed6d03a819ba49a07c45eb97579f31
--- /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 0000000000000000000000000000000000000000..ce443c2462ee84b3ca09d0dac9337b13f6168eab
--- /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 0000000000000000000000000000000000000000..27875e6dc698219ffe84c5c407883ac10afe3069
--- /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 0000000000000000000000000000000000000000..794ed45e8ec8d61f5457779d684b29ba59d16415
--- /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 0000000000000000000000000000000000000000..1977401faffdccd556012cd76b5893a75b0b05d1
--- /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 0000000000000000000000000000000000000000..0c0f04c9acc571e6fab2c01cfd081a2ab186374f
--- /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 0000000000000000000000000000000000000000..de305597fec5fbe56dbf76f8bec0a6679e7c6bf0
--- /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 0000000000000000000000000000000000000000..05101b5182d1a30163ae5fae84397fa5b7204e96
--- /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 0000000000000000000000000000000000000000..38ef61a0c200d7eb21c10582b181f002c047e1d2
--- /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 0000000000000000000000000000000000000000..a2fb5050d81d18e47a990e722f3e21d9eea903d3
--- /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 0000000000000000000000000000000000000000..5fc133381665e28291639e129023271a7597a82a
--- /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 0000000000000000000000000000000000000000..4e8d0d7073b4e2ca3c3936cbd2613e229375e6d0
--- /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 0000000000000000000000000000000000000000..ced456d114abf411078e923a2f12295fd90bb98a
--- /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 0000000000000000000000000000000000000000..b3628f2fb4dd7ad8ab09937a758e1f9520413dc9
--- /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 0000000000000000000000000000000000000000..cd9d9f12d603582d993297bac4924db7fb18f35d
--- /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 0000000000000000000000000000000000000000..e45a39057e9124a9012852881942b593c9e65f21
--- /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 0000000000000000000000000000000000000000..4ce8e2d4ca1722e6ea2533a4fad89e2b8afd967e
--- /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 0000000000000000000000000000000000000000..a2c55cf5011495b9f7b1733e5ddfec0949f31289
--- /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 0000000000000000000000000000000000000000..955683891b84619ad3b9501e8a45231ff17e94de
--- /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 0000000000000000000000000000000000000000..be231b62aeca0eff4ac144754ca5761953b373eb
--- /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 0000000000000000000000000000000000000000..ef670b5ada5f3a8f54ddeb5c732d96420d777303
--- /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 0000000000000000000000000000000000000000..d25a8838ed42713f1ee699c6111ca83f7f55f541
--- /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 0000000000000000000000000000000000000000..438bbd0d63329e227111dac8598c9ee4202b76cb
--- /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 0000000000000000000000000000000000000000..f85d1922f544a31713d1a8a60f8c0d0e971ea6ca
--- /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 0000000000000000000000000000000000000000..245af1ff417275be4a1c3ae49571ca84fde0ac22
--- /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 0000000000000000000000000000000000000000..ced667151d4c160587739e06a5756cb2a707453a
--- /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 0000000000000000000000000000000000000000..bf9ebc472f0d74faab32210d60313a89d13bba4a
--- /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 0000000000000000000000000000000000000000..3b85d4a7aa52f552cab127cab7323a1627cb7352
--- /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 0000000000000000000000000000000000000000..aef15408f76db7d6dfa7e31333d15cb9668770ee
--- /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 0000000000000000000000000000000000000000..c1e365e2c3d204bdab35468de138ee2d224346c3
--- /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 0000000000000000000000000000000000000000..51807f2511600c54cff03544303f2119bdea0256
--- /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 0000000000000000000000000000000000000000..1553c5eabdc228b2576c048e6aed4937fc2ee735
--- /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 0000000000000000000000000000000000000000..f8703b7fe78502a3f81e54c4d12273b3ca757eee
--- /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 0000000000000000000000000000000000000000..befcb83c84f17aa161f5c6ec0f481f854e5003f1
--- /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 0000000000000000000000000000000000000000..5991cbd2d870f5cb8d52a97393a37e597a45d59b
--- /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 0000000000000000000000000000000000000000..a166d44fd4e5d9ad54bfb096613396674be43736
--- /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 0000000000000000000000000000000000000000..b830377e4a9b746c8669e7d7888ec73d64269272
--- /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 0000000000000000000000000000000000000000..9804d952461d80581610dc9d4a37513e6164861b
--- /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 0000000000000000000000000000000000000000..d53ac2dd32d9df2557f1da7df2384260e53d44b7
--- /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 0000000000000000000000000000000000000000..68d423ce938b6fa33c2531417e52f9c709001ba5
--- /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 0000000000000000000000000000000000000000..af56d3757afe46e39c0489ad8bb26bff7abe3450
--- /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 0000000000000000000000000000000000000000..1753773082b69a8f33d8f6fbc55f82dfcdbaf18e
--- /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 0000000000000000000000000000000000000000..3463ea3081378d2f4bdb0cbb92a29d1b3c05013b
--- /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 0000000000000000000000000000000000000000..e07f04900a668c540a5137aa42ecb167f79ed5bd
--- /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 0000000000000000000000000000000000000000..0352ece7a12aae478bba750eab20f53f9a67f918
--- /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 0000000000000000000000000000000000000000..4cf7dbc639326503fa31ce7d065f11b85b92bef7
--- /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 0000000000000000000000000000000000000000..be980f0800706b8f058510729ecbda86d1c433d5
--- /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 0000000000000000000000000000000000000000..f6b52c136b402efb54d8a4cf978eaaef86115c75
--- /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 0000000000000000000000000000000000000000..ba21846937aebc6298059c1291bcb99de55df571
--- /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 0000000000000000000000000000000000000000..a10a2c1a4c470bd86335c59d117cd97cad2e39eb
--- /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 0000000000000000000000000000000000000000..3494dbf54ed921134212f99452a1bdfc269ae616
--- /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 0000000000000000000000000000000000000000..4a21f6b557b1e5179df0fd5cfd6cf205738e5855
--- /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 0000000000000000000000000000000000000000..f6e79c3652d7c34106cd2da24009cb1c919f1c37
--- /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 0000000000000000000000000000000000000000..a7f62d8a8e52a8c120b1b5347fb6c43037c7d312
--- /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 0000000000000000000000000000000000000000..78475f90815ade6be469532f6985e71751c65477
--- /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 0000000000000000000000000000000000000000..bd6d0cf4cb584d178350cc55dee8cdad3e2738c4
--- /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 0000000000000000000000000000000000000000..c219a144615c0bf2c721105345a00b62df5b016e
--- /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 0000000000000000000000000000000000000000..a57de87244bd1dbd988c379de02886ec5f3094cc
--- /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 0000000000000000000000000000000000000000..ca3ab609d8fc98b8e503d75e26421ac64ce120bf
--- /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 0000000000000000000000000000000000000000..142330edb219853f03979d722cf6a83c148774bd
--- /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 0000000000000000000000000000000000000000..eb46760f77085a191fad5d43d15dcc8752d89d0d
--- /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 0000000000000000000000000000000000000000..ae71997d76648ffc94151172dd61da80c99c9a4d
--- /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 0000000000000000000000000000000000000000..08bd6a217ac79fd3dfdbadee160d21c6c67b5f75
--- /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 0000000000000000000000000000000000000000..32e2846349cdcbca073facdcad51d6b63dce00dd
--- /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 0000000000000000000000000000000000000000..391c659ddd5a10cd770743da460a85705dfda265
--- /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 0000000000000000000000000000000000000000..a2ad3b82c06aa7aa563833834111adedf783462c
--- /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 0000000000000000000000000000000000000000..c9723740381512deaacbc62cf69ef422808ba600
--- /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 0000000000000000000000000000000000000000..8d68002e9c05bc46436f490611efcc7eb5242b85
--- /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 0000000000000000000000000000000000000000..991cd79fb7817715ba4974ecc9f72702b4bb46f0
--- /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 0000000000000000000000000000000000000000..cee59bca3af6d240a7b6e66c1924647a92d04b6a
--- /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 0000000000000000000000000000000000000000..d36fec9b48c6bd0a9ea93371844f422b110cefce
--- /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 0000000000000000000000000000000000000000..ced665233a4c73cae28acbd302f0a0253ac3f9a4
--- /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 0000000000000000000000000000000000000000..b9db867e29ca720e4790e191d99f6d2c538e817a
--- /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 0000000000000000000000000000000000000000..c7c8e7f4b3d8e78d6c74c7d673ba76f9ef23f91f
--- /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 0000000000000000000000000000000000000000..10fd4ffb159ae904ecc07bd78f32b0bad94dff20
--- /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 0000000000000000000000000000000000000000..515504abf1fac4296830e4784df2234fa6c29135
--- /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 0000000000000000000000000000000000000000..dad4d4bde992de8b76bcc11f1a7ed7aa1ff42b0d
--- /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 0000000000000000000000000000000000000000..740827b9f6ac33dd60e39b8f8bf5efa5bb44a470
--- /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 0000000000000000000000000000000000000000..f627158f47c5f1b30a0415a9faa847f917f17a79
--- /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 0000000000000000000000000000000000000000..3088d01e4dcef0d3878408a55bd4d64aee9e1f6e
--- /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 0000000000000000000000000000000000000000..3e4f217466a2092c3d964254dd07534e5a8979a8
--- /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 0000000000000000000000000000000000000000..244dfba6b68946f2152f8167d26d9dde9d4c7f12
--- /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 0000000000000000000000000000000000000000..71dd2c3bbf8dcf6b2b16fb751cbf2aec2eb3b875
--- /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 0000000000000000000000000000000000000000..617d5a18d0f55d0ed2edf8fb1ef468baa1b4a0e4
--- /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 0000000000000000000000000000000000000000..6b238e8cd908d5dc45b3d23ab8cb95f79585e1eb
--- /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 0000000000000000000000000000000000000000..eb465a5a58e41d584d62c045d0077cb38f53ee41
--- /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 0000000000000000000000000000000000000000..917fafbd2cb6d800a9056a4d1bc54b6851016973
--- /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 0000000000000000000000000000000000000000..504424ebf98df5e8dbcab9b5fd274c8f5a223156
--- /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 0000000000000000000000000000000000000000..c607c9b650b34a4a405b13bf1b06fd73a49c6699
--- /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 0000000000000000000000000000000000000000..f1ffeba6edf49bec004cdfb26a812eb4fb0e6392
--- /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 0000000000000000000000000000000000000000..9305940e6c870344ea7966860f4be3e0bd3e14f2
--- /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 0000000000000000000000000000000000000000..3130e5d2c997f7b6488a48da851f6c990ce71fa6
--- /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 0000000000000000000000000000000000000000..e736c0ec1c5fb1505ceba167371b3a8725b6e8a4
--- /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 0000000000000000000000000000000000000000..36e33e9df18e67047eec0b775c4cf2c64b8fdab8
--- /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 0000000000000000000000000000000000000000..348547a5f6b4f08d2c483c25546133eb9525ca7f
--- /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 0000000000000000000000000000000000000000..97cd176d5e4c4e620b5c4094b94082b58222834e
--- /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 0000000000000000000000000000000000000000..5bfc98ddfe81e52a40c484418c65261de94d5c6f
--- /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 0000000000000000000000000000000000000000..75528c4bc7462b39db0c40b37073b293efd0b9b2
--- /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 0000000000000000000000000000000000000000..903f8e74b082b9c2e3061dbc50f2c31bcf30708a
--- /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 0000000000000000000000000000000000000000..054b25cfd7c104112d9f90bf825e5009b3f1d3b0
--- /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 0000000000000000000000000000000000000000..72e366610bd3e17591f457874d53c060f3f2a978
--- /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 0000000000000000000000000000000000000000..4e1e0dbc1c95c3c27d5ae9185ee2f1f80ba698de
--- /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 0000000000000000000000000000000000000000..dbddbe13eaee6fe11a980c868b6bd4ada5032d3d
--- /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 0000000000000000000000000000000000000000..4252b8fb80ca542af401c9ac33443005df2df5c1
--- /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 0000000000000000000000000000000000000000..b10bb907b73c8812a3969f7433fced6a46328f18
--- /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 0000000000000000000000000000000000000000..9254ede7972eb9422a0d0168992b5dcee7f1bf0a
--- /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 0000000000000000000000000000000000000000..95b0d151a0187f205490adaa0ac02f74d7b56d37
--- /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 0000000000000000000000000000000000000000..d2d48f96b9302465c199c119a9dde6f503cebf14
--- /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 0000000000000000000000000000000000000000..267698b32de65fe14517fd07061c7af189913180
--- /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 0000000000000000000000000000000000000000..8bc6f8187124c9b6cd7c9a2b6dbba3051506a12d
--- /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 0000000000000000000000000000000000000000..dd62bc23beb17206e05a68248058c543912a3635
--- /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 0000000000000000000000000000000000000000..a9df75ded799d8639f595773b8b91277ca7ce8eb
--- /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 0000000000000000000000000000000000000000..7c26370970e7ec0a6f4c3a40e6eb5c72dfbf0185
--- /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 0000000000000000000000000000000000000000..c45100d1402a94c481ee005a2a86ccde1b08c1fa
--- /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 0000000000000000000000000000000000000000..5cea7acb1cc3c93afbc59f19b1c7bd2f19620fee
--- /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 0000000000000000000000000000000000000000..3439339937fc7a9a8a9b3e96724c76a08e2ebd1d
--- /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 0000000000000000000000000000000000000000..697f9edceb618ab7bc56a695a7af5fe5925f31a8
--- /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 0000000000000000000000000000000000000000..d71a6b365c91e3595a93b86fd2db5c3260b10e49
--- /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 0000000000000000000000000000000000000000..8b39805f0c3b738999acd2eb48599a35e7324cda
--- /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 0000000000000000000000000000000000000000..72ab646f77474e0a135b882495e238335287a30e
--- /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 0000000000000000000000000000000000000000..80c02a5681e31700375d8a3aa98c9cc3348be633
--- /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 0000000000000000000000000000000000000000..108c5be9ef1ec2f2e40072386a1d781930c1adb3
--- /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 0000000000000000000000000000000000000000..95983d0659d632e30f3e1145008b196e2ba2fb83
--- /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 0000000000000000000000000000000000000000..a206f1d2e65f7fa40aaf0a4e3b11889ef6f9cc25
--- /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 0000000000000000000000000000000000000000..889c25bafb6b75821acc5fb0e2b71e76ff2783fa
--- /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 0000000000000000000000000000000000000000..9e68e570d33d16dcebb9b02dd62fa521cc8fb36f
--- /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 0000000000000000000000000000000000000000..4d33a12568d4225a44a5b6d450db8ac53baf02b1
--- /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 0000000000000000000000000000000000000000..295c488dd2a52970c653a4d9a3e96122c6cd9ce3
--- /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 0000000000000000000000000000000000000000..fcb9516e13e0412955394f21b7cf51ac12691b5b
--- /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 0000000000000000000000000000000000000000..e4a0e73e4eb06d593da002daf4f46da18d3cfc96
--- /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 0000000000000000000000000000000000000000..7b334cd5822f43d816fd21b12ba9b1f830c327b6
--- /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 0000000000000000000000000000000000000000..b5cca266bbbf7fda72406f45da38aa0012e40eb0
--- /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 0000000000000000000000000000000000000000..d2afd1d6e6f7a797fb8fb020103f6ca571eb324b
--- /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 0000000000000000000000000000000000000000..3c0f587ac89239b4bfad16eba89e2be0da2ca55a
--- /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 0000000000000000000000000000000000000000..52424adec2a91cc095f9471f64855f8d213f6597
--- /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 0000000000000000000000000000000000000000..ab62fab25ee1bfa71fac2e1d19a07a417aa48b32
--- /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 0000000000000000000000000000000000000000..3aa72de5e1bba76520fbf915e219c0d6f3bb3a85
--- /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 0000000000000000000000000000000000000000..e9da4b9b2131e1318a32aac161924bddf5d1b23b
--- /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 0000000000000000000000000000000000000000..ba954934f37f8ff25c8fd41da327aff7f5f5c068
--- /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 0000000000000000000000000000000000000000..ad2722014619632dd8d67240fe15da882c618ffb
--- /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 0000000000000000000000000000000000000000..be1852fa5beea3d2fba1567f9eba5390a8418dd9
--- /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 0000000000000000000000000000000000000000..1321632e3cf2103d56a4866bac8813589a5a9112
--- /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 0000000000000000000000000000000000000000..7528f70b8b5e066c95b8bce6f3662d716137001f
--- /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 0000000000000000000000000000000000000000..7b6e680835acdea53b6165002574280bcb48e8e8
--- /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 0000000000000000000000000000000000000000..d26902be30c3ae972133d98cbb3585ebb884570c
--- /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 0000000000000000000000000000000000000000..cfd3172002c3153e44effcfd2ef06cf0f953bf75
--- /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 0000000000000000000000000000000000000000..72fd051eccb13a1ed41d12d3ada72ed3506ba223
--- /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 0000000000000000000000000000000000000000..128693d0506cf535010f96e34d3cde2593fb6b75
--- /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 0000000000000000000000000000000000000000..059b96e8fd8095bf9b52f1598bc1398e91e403dc
--- /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 0000000000000000000000000000000000000000..792bde69b63e36d3b41561682b386224a6ec144c
--- /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 0000000000000000000000000000000000000000..9997e45fb6658e772bce0e7ae5faa963f0c28661
--- /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 0000000000000000000000000000000000000000..728a7857042fe374c394382df1e6bb8e18eefef7
--- /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 0000000000000000000000000000000000000000..f7c935260c82a6fa0ca5a727e2252fe3ddeaad00
--- /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 0000000000000000000000000000000000000000..9f4074d63562c6dfebb64e025fcc98d38a59091a
--- /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 0000000000000000000000000000000000000000..63e358c0d2f8c771fc56ef4507d8d36a230efe6d
--- /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 0000000000000000000000000000000000000000..c247c6d9ebfcd41d1c992256b58db505a50203fa
--- /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 0000000000000000000000000000000000000000..a4a7a96becb899630ac6a853afe55793fa07b2d7
--- /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 0000000000000000000000000000000000000000..5ad80c18e800649e7d8298d509203ffb38396f44
--- /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 0000000000000000000000000000000000000000..b10b57e938f6aacd940d676a16cf444ebd603941
--- /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 0000000000000000000000000000000000000000..5e34937f979f6b3bb68060bc594276f2b08e581b
--- /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 0000000000000000000000000000000000000000..0e67629b9c66f401b8b713be438e2b6ece120074
--- /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 0000000000000000000000000000000000000000..00b69250a0167fd2c64eb9b932840ccadc519781
--- /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 0000000000000000000000000000000000000000..3a9804a1eeb943fd97affab4f936494037b1fada
--- /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 0000000000000000000000000000000000000000..e2542160b5ff90f33038bb7c26695b4e6a3c2730
--- /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 0000000000000000000000000000000000000000..5b6b36916020477bdd5ac7758a70c172fd743c70
--- /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 0000000000000000000000000000000000000000..50cc6a2649967ec6c44ae92853258625cef293c6
--- /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 0000000000000000000000000000000000000000..b3a069e7aab19de90a74e0b70372b9a454762d2f
--- /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 0000000000000000000000000000000000000000..9697fd6a00547f0cd52667ec94464f0190ef5d7d
--- /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 0000000000000000000000000000000000000000..979e0cc992404e21df41be6afc7dac3bd1b706e9
--- /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 0000000000000000000000000000000000000000..2e3b7c7c7210667bcee2dc9e73033fb6083ae8f2
--- /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 0000000000000000000000000000000000000000..b9c696bdd6ff05a24f009daabc715dd82d9b51f9
--- /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 0000000000000000000000000000000000000000..a20c08bab88102e20d624f41f6d40ef2e35d7077
--- /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 0000000000000000000000000000000000000000..be66eb755a3bf990340c92529bf957308e68d515
--- /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 0000000000000000000000000000000000000000..a2e5fe0971505ef7ad7e2e9c480ee76cd843340b
--- /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 0000000000000000000000000000000000000000..ce35f0ef0491d065ecfb67f3ba6f84c2b5e16f6c
--- /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 0000000000000000000000000000000000000000..7db3abbf681ec747c2912a56b20024318f6269a6
--- /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 0000000000000000000000000000000000000000..73fdd0c14e956e4f06456f2a6e2881c1bda228c7
--- /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 0000000000000000000000000000000000000000..a443fefd4c6224877670117a2cd7e3afb48ec2cb
--- /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 0000000000000000000000000000000000000000..335f97cc1021dd0aba8d09a92514382e7932756c
--- /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 0000000000000000000000000000000000000000..11f416063379d9bad7cbcfd4266994c1e9d43129
--- /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 0000000000000000000000000000000000000000..c50ac1f273015da4af10d56af5beb198d41f2bfd
--- /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 0000000000000000000000000000000000000000..efba178901d651d75db98fa050c66851dedeaf71
--- /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 0000000000000000000000000000000000000000..9ba2500fe4670d374155cd3df861d5d9849c1cdd
--- /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 0000000000000000000000000000000000000000..9d86f0d1d83017532897dffa592133d7970e2839
--- /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 0000000000000000000000000000000000000000..888819bd36605f568550e361befa8c38093f4579
--- /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 0000000000000000000000000000000000000000..aaa4048825b2a64caa1e7fc20670857c4935cfce
--- /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 0000000000000000000000000000000000000000..799ed2fb7db82a6ae5b239492c4a0f542dd9307c
--- /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 0000000000000000000000000000000000000000..629c23fbd7d91237e7f2f6975413e88955fc4598
--- /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 0000000000000000000000000000000000000000..9649550c9ef533b0d86a0f16a8c257731c949460
--- /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 0000000000000000000000000000000000000000..6c04b7b1bcf1f67eafb9aeeee44ddc45f2f7236c
--- /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 0000000000000000000000000000000000000000..281f0d96054a0e05692b1f62e7bba47aa54ff791
--- /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 0000000000000000000000000000000000000000..2148085cbb07796b0e239a4ff944e1cceee4a30b
--- /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 0000000000000000000000000000000000000000..e7697dfb76926912c22004d3ee16df7734f4ea8e
--- /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 0000000000000000000000000000000000000000..30d9d4dfff17e11f40f215ecb028a3f87af81bd2
--- /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 0000000000000000000000000000000000000000..726902c3815accc247c0a2d6ae6f568fa9e7c5c4
--- /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 0000000000000000000000000000000000000000..1742808224be2b2747b0ca5a3ae551b4fd1f4101
--- /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 0000000000000000000000000000000000000000..2b1c2327fb838a433e92ae88ff8b87043a167c81
--- /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 0000000000000000000000000000000000000000..c6b43c50a37e7d6662e40e8892c576bacac7d8eb
--- /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 0000000000000000000000000000000000000000..ebac25ca96ab331553774be4c01906d742f96d24
--- /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 0000000000000000000000000000000000000000..e634e94e1fd047aa6cb21b42622155ed10a15734
--- /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 0000000000000000000000000000000000000000..925b785fe1fb629b20b556c98f327674c487f658
--- /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 0000000000000000000000000000000000000000..8e62d60fa4e18e198d230826f7827d95c04a849f
--- /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 0000000000000000000000000000000000000000..55947d3bbee2411e15bfcb67b567fc20c4f63b25
--- /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 0000000000000000000000000000000000000000..8e7cd5f2447db0a50b6b7f51968927a2650f04f3
--- /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 0000000000000000000000000000000000000000..c18959a348ea5a9b318145a4eb9b180b09164d78
--- /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 0000000000000000000000000000000000000000..8960b52f5bda8d8362f24d7aca81964a8ef24c43
--- /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 0000000000000000000000000000000000000000..bdbf3662613f2ff1025be150b0d518b8740da760
--- /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 0000000000000000000000000000000000000000..a70f808337e2c660fd0201a4a0ee1b8291cae130
--- /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 0000000000000000000000000000000000000000..02a995517cb7e67914a4b7003a954d03dd062f65
--- /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 0000000000000000000000000000000000000000..0b5071d074e1ebee70806718716ccb4f0784c066
--- /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 0000000000000000000000000000000000000000..b9fba2728f872f49b4c021d6694ac6cfeb6d7f2d
--- /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 0000000000000000000000000000000000000000..dca4080247f8494fa6e3e216ace50c60d85d7949
--- /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 0000000000000000000000000000000000000000..8d2ddab32e408543830dd0f7a5658cbc2de44dbe
--- /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 0000000000000000000000000000000000000000..53c21d32c6609a7cdd5b4895c6c13d85afbc8a1a
--- /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 0000000000000000000000000000000000000000..e0ab925a051a8b45f42ae33593217486207be011
--- /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 0000000000000000000000000000000000000000..4468eb41ac13fa187d2c08ebaa95fed4d068ae7b
--- /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 0000000000000000000000000000000000000000..8a4fe679001ee133e246d4f3fab20e61fb5ac146
--- /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 0000000000000000000000000000000000000000..23a3a8df3dab143793b819d3b3d1c41c3c62ac00
--- /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 0000000000000000000000000000000000000000..1ff4a5da3f4b0d7e5f661542b2f594b7c813ff9a
--- /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 0000000000000000000000000000000000000000..dfb9e177620f73b6c461c5bc31ebd5ff2506c2ad
--- /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 0000000000000000000000000000000000000000..7d552c79dd3eee5e849401c37a0acba689bfbf00
--- /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 0000000000000000000000000000000000000000..0202b67acd4507e4881b9b9302368c8427d714ae
--- /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 0000000000000000000000000000000000000000..79f91e78c43ccdda3f44f61778b79efd604d01f2
--- /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 0000000000000000000000000000000000000000..26f5a9ad1a8be81afb5ede570b574095f6c95f64
--- /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 0000000000000000000000000000000000000000..62a0858e696751fafc776b06a685990ec1ed040b
--- /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 0000000000000000000000000000000000000000..9b368983a703a3f3c9387ffa8c5f7c9803b2b610
--- /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 0000000000000000000000000000000000000000..f9bfacb4217b7641e27ee7793fb0c9666ba354df
--- /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 0000000000000000000000000000000000000000..24677b85c3e244b325473ea99ec259f3481ef283
--- /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 0000000000000000000000000000000000000000..b357e41499531016c82b683bb779fdaff477f300
--- /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 0000000000000000000000000000000000000000..f33f308961b7caa632dbe12f8955e8ba79896fe4
--- /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 0000000000000000000000000000000000000000..41aa63ff2c763ed2f25df33e2b7e97d5a1231668
--- /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 0000000000000000000000000000000000000000..c8608c2ad6f7ad68900ceba7d24e66923dbebb0e
--- /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 0000000000000000000000000000000000000000..7c583bdd62663c4664ad98e1430da74d57e38e17
--- /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 0000000000000000000000000000000000000000..c9459c8009347e52e63f8220b4866d3139e36e7e
--- /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 0000000000000000000000000000000000000000..dae9998799beefccb4d19276ed339de15db85c61
--- /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 0000000000000000000000000000000000000000..e74e599eee90ba531e176923ae5322144ac9964b
--- /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 0000000000000000000000000000000000000000..dbe0752eb4a5dc105d9dbde8bfd9e4030b1c1a46
--- /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 0000000000000000000000000000000000000000..961c32a17723d6889e809b0ecef693af5961603f
--- /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 0000000000000000000000000000000000000000..47eb14744bbc35e6d6d7ffbd759fe600b8c1b7db
--- /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 0000000000000000000000000000000000000000..11a09e97f89efb9fb6caba03ee00ffc538d53643
--- /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 0000000000000000000000000000000000000000..7d97196f9ca766d6a482479809a6750d66a2e8f2
--- /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 e5876700af396564f72789f8d6b4848137d88183..22640f719b9bc117e13b2165696fab037325257d 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 a3232a72d160f8a01a797a8a806516a6090bd389..6aee03c09ec938b49df4a8ec09f2712205b3ead8 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 7a3a711f187a54da818e0897ef1f41c96b67a0e5..890015240a62816569b8d0e1cec8a93039220051 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 c5eaf79d05b058aeab8e2d3af4002010e0ad41e2..a9852e6ab133e9e8514415df3b02b967107c5d70 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 4334c9d72de2b8f80f3444a705c02687dc6d22a5..dfbb72472447e6b39e16dcea3f9dab6598468cb2 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 45acd7bddaafe63fe4915d54e2ec06aaab5114f0..a40e53d93928e3039274cd9c312e98201611c656 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 cea7c8cb51ab565c14a0e9adc8985f52298e884b..ad425fbdf4914c551d52e36134f499b56451b807 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 7dc6b68506e5e8eb560eaab8ef359d6e702aa1d7..39c9121759df60f0e88fd573d57378b5758c4d79 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 accae66ecb14d83ea116d2021b309519328ce151..1956abe678d7f34847c143a73b16e2611448bac0 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 ac4b397b3f6ed2e103e43e9793292317b17e6c38..4959823aab68145bc54eea7be6dfeb689a4146a8 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 ff71fce71840a43efabf1456beb63d53aace2f47..d355f3b24410870ea2644335270025dd8123fe81 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 bbbfd39d0d28833a486605c051a2032506660f02..b07de7790fff6f7c162e1da277431aa13ebb5e5c 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 dd1fa9e90f381856bce6be89ddc49b98049cbed5..33f6f53176047ba8f458015a26768001b0b0604f 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 933b6d7ae987103dbe609fc4b42a14e30a52eecd..7c0e7064c5b9f1d9ed3e8c1df27e0df7c68a7062 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 daa9b348ceded894aa7a04b42be1365ad0978be6..45b4f54c4b932abd97cb2160ad68299848ebccbf 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 32bde2689922ba8e387ecb2816e5b25dec697b4c..e3623c1c111a4a07a7db0bcf5c90f37fffb6af7e 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 f1197553a5017c9842b61a6c865038b2a1830a45..bd6eef51c1eb5767e4dc380488e61f4823d3a5a7 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 e3ed7c85dd4967d2b89b1b798844aebc2d822089..bc6dec38a11a9eb85272216501fcc8d073f5f2bc 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 2950f5430f390654abe7ea85b3f324f72c990884..2bea0880d8551b6c8f5e68b96bdce44c4365b7ea 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 34b06d99e1b62a77f5b85e7151c8920cb6b11ffa..a05541f4d30f04ca6483f5bbe59c8c4168368e67 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 d6687ca99ae20ce7b50f2d80e73b47c8f217c838..c7c9c40d99ecb158a6ad640f214290f5763c1264 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 3334a7d33f077f7da7503e9877aad56bbc061d3e..b2c0744bc1cc842ae2f5acce0794d4abdc3d7198 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 6508271151bd63733a0961b4151a87a4e1ca4e9c..5842dfe90d1a1220f4a2c0960967c67d466a2c82 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 578a2350541ec34d72481fe3a7c3919e8af07700..befd076f449b2569be5f20052bbfae74057b5c9b 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 7bee010adf4af97c09604dfa4a774152494f69c7..3e9a83b71c19900af0abdc42a331932f061358d3 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 2b7a4c289dfc9e5aae8484695bbef10c11d05f16..b2fd09a33ba172601c7c0187dd39fbf5cb6d8d5d 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 ae7c395b211416c3dd63d2711d646919fd442581..e8704358a70e21ee7e5dc5bc122e5e425acd6dd4 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 28b317563f29b7d81c05cdb9a094ea28ae298697..5f61fbaddbb0c7249630bbbe9ccf23a8a96a8f90 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 06a964374aed15792e3773cf3a588cd734c3ba5b..856843cc4d11c4a1df261fe76f9c577bb98d2850 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 94e71e162548b53a488de199a1de49ef9a728a04..7da89d2334d569d0e8601c45fb2fd518ca754a88 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 06b7b43893e32e83a3cbb8085dbf4074189ca946..8f72a4001e3f564eb9808b97b3f647038588bc0b 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 114010c02607b1d4bd837d22cd01191ccdd9a787..c570255e359b178600b7ea35c3ff3eb305278760 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 23d4c291afaafd7adde1ddcdef80d2f7901b79a9..3f13f0b0315b3bba7248bbe4dbd383bad74b694f 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 d03fb25c261bea4c2cd107dc2abf2c7d8515f969..ba9402725ad1ebc7e0329dbd84d2a8b75ad74630 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 2244b6a04753e8f0f3fd5d0b4edf2f024f2551e5..5b0aa8aa9c11a5fac96eac543ed6b3baaffceec3 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 6f085fb9fd76596954e49e2e42950e68675e2eb6..a52b6035154edd76f64e0a21baa0e8282bfa331f 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 7e31fe52bab90268302f26c9f3767ce60b71607d..4cea6c67949b0dca6597595421e5584ef27c403c 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 f42894e1601ee999ed4f124975ecfe3edaa2f284..9b1f65e36c1767ff5ee9f7dab253652eccb161a1 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 7b722ee1e48f3e25b4b95f048c5bdf5bb0b034c9..bdcbb0d48af5b31f9d8bc843013514ea2eccac27 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 6dca64e879ff8af8c730a2290d3b504a8da95fd5..5139f4214f7879b545f9c2455fe07807cb3d1563 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 6b79abeb4a0ed39f144673eb514c8d5013c45d30..2bbba257ad2cdff22a7f66abeaedd473131cdbf7 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 13bc7372f9bc50ec1bcfe55efe904bce7d8ab1ee..4b6bb03d11f9a3ec296e8c47b3ee1fe91885fdf6 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 56fd80b68a2dcfd6aaeb93443e2eebf715c3a184..af7dad6c2a679dd8e813a00b73ae2ef728b74feb 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 6d0bf5f54fb5b9c1442fd07ecbd8f92f344f6468..4e1ca29474cf71e9967b1ac32663a69bacecca3d 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 24dd6f7c2204f9cca0fdb955869423a60fd6a7dc..c4fb5739195c946ce160331529051b4ec5683e53 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 7f77db3a25de13a559a16f9471c33a0bad97a9d2..ff6f359474f31c2a510d7ee3ce9e356a5f71cee1 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 efb95b352e515b5c55b34db68867d7df4298c17e..8a9d9857a8defa81dcbe64768d0b9893b0188164 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 31942e8edec572b50b523e4304e58719fbcaf389..af55f9eed9bcaa57f640a6cc46badb84a59868ca 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 a66f4ccaef9979c463b22c13bc103b5173cea8ef..d904c8b989f5b70d49da32e366844cdac42c7957 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 5b8d81e08f062b50c62698b22d76147ed8b443c9..a91f7f88b30342ae3ab5d81d8f21a3ace8ac6c21 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 cd262f031ce089a738c261fb5cb34e15f0a1c51f..6eff890650ee24807c5c93da485e6ca85690ca42 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 7a9269e68081ec9b48800eb69c3c4762ea68d6b7..fea5ab43f989d34b859edd09e20d472f5e8d7961 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 6bb7c9cd4bb553811b299d71c0b3f558e95a73e5..d1562ea1ad67ad5b265f2faa68f628abb739299b 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 69c96277330e14d0ecfe79f2aec77828cba01e53..2772c518287133b40d71920697443a5ef6408791 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 08e8155c1cc13f7498957488ff0146f624ffd4ad..aa886a3aae2889ca38f5536cf8cd4b2ca88d8b55 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 e853439f4297ffbd0af8136fc019111822bf2877..b39d2fcd83d1b4a5fcbc6f668ce0a3b4160bcb92 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 c26c99fb1d247c7542a46549909f00a409cb0bf4..9cc69437b09abc3c4df6dc97e270f65674945b9d 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 9e222b814d031b2630fca31fe449ef4dc9483f5e..72bd5233c205b5b66364b6f6dcca3c0bd4f24671 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 bef46a78d6221a8d81fc2cd99cf36c7f4e007e4c..1de319f85b0f8119c92140b62058a4cebe1fbc42 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 c41f4b497727bd89031dbdfaa67ca92e1e7318d9..1720c4ca005522adffb63a744c0253fcf82ed775 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 66a05deeebc2775568af746d83a43ee5b73e2ad0..a372bfda9030dfef0021b5abe49da6f3b54b8bef 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 54bb0564d8c617736cbef7915491a11d3278731d..706e7694cbd479b69f7e26266c36fe9c4f71593d 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 68bbffeb7b53860ede26be5a93343eee96c72bb0..5fbf5dd08830c4ee9acda63a6e7e970e3c7aa942 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 0000000000000000000000000000000000000000..e08b91c3fbf211ef3cb2a403d3feced7405f92f2
--- /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 3affecd48f6aa689bcf3052a584b5adeb6bc074e..37d82c27b186450c11975e68cc79b19871c6a857 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 76585c4aecf5d1d57f5d8c6e064323898e5dd719..166b519fe71f53424e8cea0be1207b6c6ad414f8 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 a0c2c04b63d0636db6cfb3911ffb506f2cb98a61..23517ad8f7ebdad12258dc5ab1fedf6faca6a713 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 5aaa17a6e21a7852d9650553d72b00b144a32f4f..6bb7f6f7d7ef5ed445365ff8e0f1c727e9a038b7 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 4f673df0effe91dad026ffa5a44662747f2de5c6..0ae6a11185ceb2638b48c60372d007cd932b01fe 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 6c2c4fb1c0d8eea1071e73a7c0948854ede478ef..10228eafc27b4ee6a1dfb6670726d160ed92ff4d 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 90642fe5c8b6a078292745135ff00dc3d9258ec4..eaea97ff281791a2d0553ddc3f3e846ae88ce38c 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 29574561dacc3be01404b2991b9df38bd7a01c18..1dfab6a77db702e1b9e75fa26b5bdba82f265e7e 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 947e510f687a96b4e4ac4be6e342f47b79377cfc..84dd3ad326865495e6a9f7b09a5c99ac0e531f2b 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 7e65976ec2e0eb7840335268a5a993c3eb18256e..3396f47deb5fc3a2eb63639afd59e5b73b6887d3 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 cc8c2e8c0e8d9a3991d414f4f68bb0f6f50d0be7..bd95c80ea2ae669d99c6b553250573f52dac5612 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 b1727124916296b41f6be5a29e91076285a35497..d22261ce3f8cdcd7119c5994d1f5def20151e4f3 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 29166d5d55104300667401b18ef526fc5b4919e9..47cd0fcfe30fc53a97ee7c6f3bf2bdbaf25a6707 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 a65be376200a6a0a4d312dd1a3e82d3f9643b91f..1a5553b1795af00a986a758c238057b9b52c3d07 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 34d3b4c431cc030ca1a630e9e960c0d9e8ba1f63..448c9553a3493b45e1677bbb82d4741810a03f98 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 e8713b213685eb50e511b4269c3f925a461326c6..6078e4974cb51c6f57117aac0a666f525adfd7f2 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 ae5e8bd10080fb456734c561148e19c49e8f1837..35f1fa2befe47c8cf3362ed9e0856e25e66e5fcb 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 4a6466d7f4411304acae6321cdedeb7ebefbf05b..a2f61bf3fd99930be88e77ed27b3f7b54853c5cd 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 ea649e144521c8d05160ef3355c6142adc5708de..20efaeb6e39dd3bcd295d8a8b59744794879d043 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 4d97faea8651799ca5114518cb917abadb6ba083..6c4509cc6c87d90a43e2a63230b736c329033ef4 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 830244b4ac71752debaff957da8faf188d8ea9df..fd144a654ebaf76b8855197601e6b277c25e0eb0 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 e9cc5da4b035b29e3fc623e9ad0e298b8daa6789..9a6698802a1a517d1c80d884773f44aed999b19f 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 3fba5279d2d013fd403c1d80583ab2cb0155a865..86ebf08e8dd69a602125d64e0a91f585989d90a1 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 6d3e4f31f67d1fa2c361eeba11c90a2ee5628441..e8d91e49ce59052638fb1fbde4ecb143ae09629e 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 52f1b0439a71fb186146d3b04f788a2ab3b549a6..fd2190ef7c288302483e0d1a4ef2130eedd4d3dc 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 f4e35fffdd1a0bfce752ca0726913a0e2d8f1f52..e1f7ad1deaea1df4e77970dd52dac4b22bc07d8c 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 94c678800bda721f6286d106959f345b584b23b8..3a14fb0e36ac7587f11406c6f4f8f5cfb07a13db 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 7c560048e42c341352467b4f8924f5343f23a21e..9ced67faff9b2ad34b7269da588e4f74e449ff97 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 c5f0d87cd3cec1b2a7dafa1ab6a3d8daf4319a50..70d9524aa03650748749dcc63327a1a9efe9ffd1 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 21b5c15d3eeb869906136ca7fedaec8f99e446d4..a796a68ad1c861e551fa64bd963726ea01a5e6c4 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 e69f3f5b2ed7552a0b170a9e53045ec61542ae99..5bbdd8b6f2af3ef43ecd79bbf770f66111788014 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 c31b2ec4b06e6a29b22d8db3582101b1e85e91e1..cc51bec90f43c9a69e6d5cc14256a0ee369c544c 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 043884c68031de805d1f73916f8e83ba0ee08a07..842741b0dd3a1b5797ad324195f084848c65057e 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 9de29825b42447f8d8a20f3ce64b3ec8a352fc06..585da2d3cba0b0c94978e5b6f92e1d43476220c8 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 2c04ad11ec16f1eaf69337a60d327fce03df0458..15c368fe96c3638ce48606e5917d817f190b7c91 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 0fc1db5fc664a44ff3c01644847ba58ad012d3b3..6eea8808005e8075027442166a5381ee923d51a4 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 b0e3611e82a568e3ec68ccf60a489abbc4330db8..7af42c41a73f92f19e51ec6358213aef4f277ef7 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 8c32b6f94c6fd3760ffb17b03a9729eec9297679..4f69f869a2f9506a4cf7537955637a83973acb54 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 d671c562bfb883ee2e13e38b8a5f1703180792be..265fa260a87f2f478815129475dbb9433a8590f2 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 dabf6b61bd8df9320df4138669b3cf5b7f8d7399..5e26d610125518c6fc09b85014bd64ea3aa2f05d 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 21d90c5f493641840f1aa57415d78f5e27943ee4..b46fabccbff0032155468cfb80182426355b70c7 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 dbfc31ab330fb2e760da1d7e8bbcbc8045ed1be3..4d8f1f054acbb8683aacd171761d21d992664d46 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 23c25eba96573886955caac8b18a7b9b33ab3390..2c3d5a07c1ddeab260f6139410115274a4c58fad 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 30560c9ccb318cb7e507b48b0e146592bea712f9..74cb3b4b3100637631e23de3ffd80fb402b9ec5d 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 56bb9f5082e7e4f716ece7258255c637d16a85e9..004cae5920d3d10cce72410df7cdb0ce5d6c8939 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 503a76546f2b3e0471f621e9b7670f6fd29a1db0..67d6b2fc9c96c3905158336d00d1dce4a73f23cf 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 0273c0f4b25ea5296b094b34e5f1bae0bb5942df..81eaae1623c6fc6f754c3824586c4072720c60b5 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 e15391d6c2d507280109712d90ed4601509f9399..f9f386ccf8efccac412c39334de17a4977620984 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 d293d88817c5f9e189fa4a829d52ab19596d4773..39562b1770306c697648e0653e4dc28cafbd9f57 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 d5f2ecf5ec42473895f1ccf42442fe27232d494e..496b3c76aa16486da90c8d1de9ed6b35d7df4975 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 b8ba4b00fdb452bcdc0936746dde195218d3a29f..46145fbcccf25fa550816d781d537c329184d30a 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 46e7995c824f294a84123dec7db62c01a018dc1c..19a18396380e488e69e0d50de33715b0427564d1 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 69d68421d23e528f1d63a487a28563c7a7c681ff..1cc43929bf3339ad58b4516d1115c18213f615cf 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 aa51af65f3727c0e6ea983a921ac946f30d0b966..1af1598dd15c1be57b91f9be685d08f34db23aba 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 916a20aae7a7a908ec873577aebf56970c765449..90307d9916bdc689a65f551f30eac202ed52f446 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 9cb4776ea4a7ac0062e2950a1abcb30d3776c61b..900e8987c6a5d3324178eb07e6dfa188a709b73e 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 0000000000000000000000000000000000000000..a8e97be69eb15f60f3df980fd7f016beff8284d0
--- /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 0000000000000000000000000000000000000000..6a20c3c82336a5cc19e239dea27a3b35182ff53c
--- /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 0000000000000000000000000000000000000000..01af237477735f5f3fd7c901dcfb724b1aa23da1
--- /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 90a786a910b4e59a02187c1b7ddddc81ecf73c93..2feeeb024e049302459224e8b6ac38742c75cf93 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 3eb6050b39a5fba07ea8a91b11d3a124e17dfaca..f9cefd121cb49e2c10fc10cd02e8987046d4608a 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 7ad348726cee55b584d346f67679328a69a15174..c939ce8da568ffa69953f20766f75bd0d93ca7df 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 d48829d5ac834cbe1221cc8ffcc0e026dc24d082..7c57b4485970d285c48e426bc2b7924b5c70e1ea 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 ca2db23876d3c4cbd5f0d3d2dce910494ef4199d..67cf3b334bec47c3016562123180299480816639 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 01bec9a713f2ebd3ffe769519d030b0a7214b1a4..bc897f5ef2a8d2b41b4d9859c7b6970e758937ad 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 038945def0ef355546b8d58dc10b91b2c9ae89a4..7d6099597692f7aa284cf5fbeedaf8f3750c1e3f 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 c59af8468f5c71ecd96a827da8ff5e4b8a410c98..04ae8e7ea026aadb9ccf9e46d3a09cfe114ab692 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 21395e2589789ee4a9024747704e83324563fe69..f19ba3de1877b0282d7100e51b65753be08805f8 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 bbb90c2527e4cc932e3ec3e80ed04384630fa09d..d4ca64eb7636391f41415c69318bd1b1f3d77821 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 7d8f1c1767bacad87861d85a4b6c70b53a47acfa..6a7e90a62d6a256ee3dd91de79e83d77ce8a8ca6 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 5894cd7c573c247bccbcda9a47bc597d590a7a26..e0ed29923641027f1a0eef8b0f08a4f0e046dff2 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 d362c01d216b17722a89ee1c25597c67ca2d0782..1b50c37c1ab2cde43700b01a5854f9d220fa3cbb 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 f448e9784012dec082ec7234a0d1443863db5476..e7cc509025d253b23f87ef6393ed1360eb7c71fa 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 b8d03051699c624c107b8fcb1d2b99893fb45b7d..4dfcc237a2cb036ba13d863a2c72f2ad1aa7abd9 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 c2e416f7d07c76aee28f11a0b9f795bad340e988..11e6f284996e62710da54abe6d3e8cc26ea8108d 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 b6bf782c782399044a2891b3243f1881e62f6c57..ea9a635b92f21851e68009f932e48a7348afe9b5 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 14be06f9c2df3cacd064ba63d5471e17fc63c5a9..d89cf16105a2cd369c82fde109a44e37d0bc4a3a 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 42c7fef8b3be56ff6c1a64b0362b411baf5fc999..1cd50b427a572cd5f7b5eb15abf7e1c546ed4119 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 e55b64cde9f503e8bf5707ba8af38d69fe34fd2e..4c97ee0f42d261ca38da41c3d400c1a4b618360c 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 89118853f8b34e89d335572ed33cd5281a6bf7c6..3e592b56a55c927f58834a28d595c94550eb840d 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 e6c3169db1f7709c56c4bddbc143e66b0ef8610a..1d21240f73e3b27efd29dfaafc094f2e299ad665 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 400722e25985dd92b5bb049cab7c3acab596b0a0..75243fddc612085d1fef5b465f238d5b6f569d0e 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 947f113ff4390d0a85ad31bf3b2335db868a2d67..a78c93aac75f1397e7389e6def3d9d6470f4c981 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 76fde66b2330dbeb00321c5855ef856a11138aec..ada1118fd460e66e65e1efb3530db028c89dfbac 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 9cce67977592501751048f76b80211c4b67225ec..8e31f4921525902668e456e52726db7d82ba1b7f 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 48e6487b2c0100dc4512cda7d4cb6f8acb179984..6e10206566fb441d8247601ae1d2741f349f53cc 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 f89fd35cb1814442a4eaf7282e2fa865a5c90d01..b07578a471a3f397a3cdabb000dba20772fcba18 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 728bc33952512af7c64c63708641585a9ae49d90..60270cacad1489771233633c20dc9fe450cb186b 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 3c605dd0ead772178e2c5f79fd7d599537246e3a..21649c171ab19de4e52765ef8f78b922c75efad9 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 2c63d3af37de6a1802a7caf89d07d979059f9cef..96148757de341dbdf10c07cb08b3161267deca45 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 cda54f14cac22b123923e0e014afd238c9e441f4..8ca509e3bb3ae7df5e82254aa8baaf505acd8ed2 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 2e90bf42ae9c80878ef4c2ba09145b20f153f363..1bd416dd4555c37b5c525d7ba8bd27c5019d2787 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 3b5630ddefb001a42d9f8e0451abbae3890f1e83..1e5b5c5d726a03d56fe18e9193b1999c62bc8b18 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 081d477ed7e01a71e802f590a28e731cff22cab8..d071a3563a8b5af5168463b47363260f0d4b6278 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 18729c4aa57587b651f2a2d4ca10bc8b60ea8212..a734dec643b68a17d9fad9926d9e58a5a18897c9 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 750a5cbfc5d09446530630f2a42dbbd7a6e306e4..c66c70393059c7f283757c47b78fcaee9bcbc57e 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 d06e7d1e1225f2169bfdcd6a5e66371131040e68..9547404427821e807d954c9fe1602228c70c3087 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 48b6997554d577a4d8254661b087e4a3ffabdc8d..f30e4db833e69ae6ee1d56ac5f71ef569b682bfe 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 1125829bd5843a7665be17786188fbb31c2fc985..c60e0476bef98bc228ff0708a6fce93cfe5cb433 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 a39ca698c7e6dc73481744cbb60312f1ac61362a..b09086344a6152995c808ada3cfc79abcde36c1c 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 60304038f6966577f6aad8951e4739b4d14e8650..01f7650983f1f113bd8fabe5b428d8ed2f4c280a 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 fa9c801644b9d09f22a017228c106c6964ad3a82..7051294c847ca03f8d31b05fed53d8fffcac3f1f 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 00d2aa635e8a84e27461d6322f4abf35310054a5..d116d6250f08f7efc0fccbd9da23be1b94eab127 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 24ee9fab001a63a063f20a7120762e064d3fbbfd..8d22a0a8091eff0e8f3e42c28d4010710e0e8289 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 3651da426f22d6d600d1edced7ac12f1e2ed18d5..f35d373e198137c3c0deaf4146ccd4d998fcddb3 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 1f65f79e6e8b46ff357bd39c8c86080c92269cc7..f15e309ce11b42883e21dd2abc93b628a3c24d9a 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 440772e2525864ea7623c55487306956b396bfcd..4943434ab10269208663521e779264edaf34044b 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 c0ddebaae9c7e9f0ef8639a1176ff430be14512d..ca452a92b575d5c987c4a8f0a5cb191cbb806d2f 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 af873eaf175559e233c2dbcab0a6dcfb37370f52..d1623005f89b193ae403ef10908c099d6c9e97c4 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 59e58a619516760edf4ac75c42332ab20105d7e1..8c8e9a47f5928702891aecf4e12543185076b57d 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 2553fc92cbcb3ee7376a50bb87b23583feb7c57a..de2682c2d187e4d407edb94fb084e3e833b553bc 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 f41ea383d0c9fe5498fc78a15b5d8796faa9d859..432a11cac5e3e35e509cb3ed45a816ba5f6db675 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 5873216a99ac4f9b5741ff4195628ecc85d0d8df..bd83016b7a98e16bccbb24ed79618943ddd1e83c 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 81d26816acf36e7bfa564425006b4fff02c7681e..b914e7548afbb744cf7a15d31ce7d7c2033e7e99 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 59560abdd5e953e9986a734857de31d34c318a66..20d73f80841c0fc8c7898c75d6a2eca02274d453 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 b3dc83ac354c09b06815b3a7518cd9ebf49bf39b..4dafcfec2b828c4bbb1159ced2e851ef079db767 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 24e517affa85fd74109952c05c8da0f3c2f9fda9..35fc1d3866a0c71492490327c5924bff2fcf92d1 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 f03a2b9625cc5ff865dac91177efcbeb936db623..7f1a3cd332fb36f5074c523256132aad6a55787f 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 580e20c7a897c1c7e759fc1b148d786f94e0be5b..e4b421d6fcda385ce4ccb361ea5f5a6679e5e546 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 4b28340df6293247b46b3de7860bc478ff6af155..877be3d654d1d0bc64cda8e1e57d7c36cd398cd1 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 050aa27bc176d70eccfc8432bbe5a54161d22847..58ddea58738fc230951bffea19382f926b2f7c6f 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 d7b338ee0340bbd29e86b7ad6bb93b00538a66bd..1136916f31328fc6569ed85ea6948b78c444aa34 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 1f87950185f3bdf5e13bf7e3f268127b85f3adbe..78001709adaedaf195f8c91f52d51bd7dc52b802 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 d8c91f33ff6eef51c7d1012d6f26a4fa659e8b9e..a3a87963e5ea18dceccbdfa84bc6c26c3854d162 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 a39a63771ed832de7521c6ed784d249c29eadb91..44f25eebb495d328ac09bb4464379b9642ea6fae 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 99ddc7b1a1f9316569b098b21c653f69761d68e4..be00cbc4cf1d62e5b3434acba7f98f916df59687 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 bd9ff4c91dc0a41dfef38f91e5905623ec0c1635..dd4f95f98018bc3757c894c37326e422347c9b6b 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 9d04672e671474d9da0a2464a892d8540ca0c941..8daa9840892c5f068d11add5d8c8b365d034d7d6 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 920d6abd0394a09d599549ae235e3da1ece98084..cbf3bacb2458b15a64dd137a02b2b622488871ac 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 5a5b05090673137cc4bff98ad916d4345a0e7770..11e43eae393cebc6eccbfc248073c1d992a0a26d 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 3e06db682e17d5df7c9189d1a07955e0da107c45..2c32afb96e5a5377add7add1b42da8b8d93a4cfe 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 877fac6f8949aa6305535c689fea32ec2f936fc9..74ed796f8942b215c799cbdb6376cbfdc04896ff 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 aa4b14d717d84fda1abb34248542191d6d0edf12..41e719dcaa3122c1307602f70631689cbbf2d996 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 2ad18389e329fab8545627a0360e9d4b9c846278..2817efd61b7f96d151c88b9e461b11c6a9060ddb 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 150fe52f5af3ae4270fddb22d29cbdfa56ea872e..4a32e5d69f1ebab5e88eb70479dc52e04d965fb4 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 df78a8afcf74285c41c079f3c02a0da6dcd9c0cd..be439b04ab4689c468dfb1d30a95a4d2b74f7d35 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 52f192e31c19c25301d14bc2d84c749613f2390f..ab28a50b40f13585d88b53a07c083ab36808f771 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 9ea1826c0feb004536f08de52f7441bda5b627bc..37af7d9d2002bbabda82965e6c5dae8ef7ffaabd 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 cc050c8bb713e093b63f3614d26179b0fa1e2c51..dd01dda150cc7366f02b4fd31218e08c83e3babb 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 f7cf2224cdc877e64f64407b9844a403c390ed2d..c95a5c87cd59670c75759f31125bb4bc68ab0e32 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 59582da5abf40c115d0e3c0ca288214122ffd381..8e07356cb7e1be995367bc96b3d087fb78621cea 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 f0c24e2ad3be5e3345cdac6ec74ca5845ecf512c..2e858d163d1db08ce4ebaa6185c50eb8c6ec13eb 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 b0f8aa4284dab878c399df314743ccd976422062..21f8704e0745d82dded6f5f18062800b33582b7b 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 989c6e3a79aa992e40387445885f557ad9caf1c9..794163090295218461030948d34110a4721fb26d 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 1955f4fbc513f1013ff8a0d94fc04360d2611e01..1abc41c0a9fcc62462a19da6fcbe0fc8a5b307bc 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 1db5ab900b184ad7d410ad6818696f70113567e9..638b94bb27a11e27407c3ae7ac883d2ca04b04f0 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 865dd917ed3870e5a87ed4b4f3ad06851b2927c6..77a859825bd438cb0948a0c1935924a08454fc24 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 2fceb859f6867ca53b43180282032993c6034208..b1a74779e26c8e02607201a823fa62a7773441bb 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 064d93b6911edd72c2ba551a7aa4036e16a36c63..5c5e4afb2bb79ab9b4c95aed335653926e215f76 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 384c99bebb77e45cfccfdaa5c225dcbc905f64d3..0ed2b3c0c25f84b898972f8243a7921929d71f83 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 7d4a24096da7d9e282b6976cb4283fd1ada8ea7d..a4f9610a4788abdc24236f349b8c36048a9fb02f 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 12e484cb7381fe9ee872c609d4259b5366eb77d2..d76b906e89f2a10f314645735ce11b7341feaa7c 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 564e71aa546a045e7de8d17c02555d476f46ad2d..0190b882260ea405c82a96b5409039058ab47c1d 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 e41a2345f4532db6e01436a00c61bd2446689084..fbed702dfa328f03fb3ccaf1f8bd8fd825ba4dd2 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 34671e7fcfa41cf260ed15e7f9d940d045dfb1dd..f3aa74ba78c14bf757dab587d300e67f1825b9b8 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 efc42ea77e3e162a419143a3bda0f4a71161215c..4a476189a97d0d9f348393439d39038045fc6bb4 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 3002b83ccbc35f11c6b61a9ac8d895334df61444..5b1a36ea53384f2e40483b554cacd659a0a50be5 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 73d7db6f33e31e5415eeb54c7b9ce7d78c39419b..e7797067d9961d31d8d15b45f0cde65d966366de 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 732cbfbb65c51cf92a5a7791999e364e5569b1e3..a7ff36be7cf5f900e33ab3d9596a76ba494c9e14 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 ed8d529e6316ab5591139901cc9861fccf648ead..1e757fe6b7d77a6b856425a4619bb0907ac94619 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 5ef14763460252b0050d736cbedbd3dadbea5baa..34dece705a9813729d2149e7d3712ea4977f2166 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 757c7f4f075f2c85648dd974e3366f0058c4215e..6d1a9d110fca81db740369d0177206d4b69ad70e 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 5a2b6c1108c165c3135c784135af501891d8c2c6..9da4a4e7779c7fcf164cbeb14c42969e9c774a68 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 90d7df23a744f7fd98cb42a931b10a94f4500ab2..521397070ef321d24b5d9261f51b4cc05423c35d 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 5cdee6fee0ab1e9c03120dc9e3bf061d9e93c273..2d6036eaadd38364306fe9252048d34db985c82d 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 4811c0f9e259b999e8a487766015f7360c03a8f2..4cead883be4f325a8ef150577b43f081ba2f1b77 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 f140702b64b219e6cc6e3d07739acd492080c65e..db032c2e47919ede8426f37e6e37c51b8d2a690c 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 e3fbd7c4ebfee0a291bbcce08be307f67462c347..6a778241e56fcefbfa5540ff586e55c6155543de 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 c2f70f118b7ac4715467312b9b337cbf488f03a8..6ec4db271afa02d7179f11b219ade22d05094d00 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 e4605e536a8cd355b9a0b0c0ec4a9a56d0c77d15..a987404ed02ee244059e03017b5a889529043138 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 b93ff1685b523a85fb35149c16726345b62d5b29..dc8ae3d8c7ae696ca3f8b4cea203b9bbcb947e4e 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 0639438c6abe95fa4a2512508f3c14b18bac5f36..378d27ab9c7e74311e339ce4ff85d581cf405610 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 57c6240eb40c6cdf22b825203e3d487bdd5d9f41..4e65db5e13149f6a64e69e67d0854501b15d4f6e 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 5d29dcb11af09f41e84d74293eb4ac4ae2384c5e..d3c25d3af179643eea2790d7fce3408c04ef333f 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 13e89ad702df5aba49185e98dbd0551e39d814e4..fc8f1364c5dbe0617bb03dc71a1cc0d96d501c29 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 e41cd8ce80201c1ef622548077a84974ac44b4a3..d63532afde2c78c32da592177b0e6af7c41eab69 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 a027f23e4f7695c6fd3dad53e4490cfde2305643..e4750b7551e04b5b573a2dfb71ed0bafd7d1a253 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 e427578be46381a2feb677c8f02a302102afb234..1623513bdfe8d627d969bde0963b03db9140da59 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 369808f2202201b73d91f7e793f42d74c3328f64..0e9f30a8c05410afe22fdff7efb098e4d2761ce9 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 a027f23e4f7695c6fd3dad53e4490cfde2305643..e4750b7551e04b5b573a2dfb71ed0bafd7d1a253 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 625a674a922bb529dcc4945839d2fa7339b0016d..b550b2e8629bba230db74e60449def8b3606bd24 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 a027f23e4f7695c6fd3dad53e4490cfde2305643..e4750b7551e04b5b573a2dfb71ed0bafd7d1a253 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 90644487d46e75b0b8c0a28cc990333f9eaf1c2f..ad02417d616d14498668b571e2e86a20484a5546 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 251ceafce3215bcf794b4408966a4883efab0a83..a4d636fdf22ae2494f4dc2d403d27d24229210f5 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 9666dd8441ecab19f801184bee09cdcce56d2d63..7575e789cbe8bb59c51e72368ac789ab00df480c 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 e7ccd0cee52cbd8bb3d46d492188f8e20fb3b3a2..49ecbf646c5e29cc66ce5daaaa15be6171449498 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 fd1b2ca3d6e4d8452478954b13f93f15ae5efc37..053cb739d75160c2760b6dc885c997b42a65336a 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 df04780f3c58f0459f6222e359630512c6e6c25d..17f3d0125c3e4b13a42bfa7cf6bcd50f4f66ad26 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 f00bc21ca7352d006dea677ef01306a6564d81e6..c5c8dc9f211bebace0e16ae1022e7420fa162b21 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 e2ff27c6a87dd25cd3e015f7138e16ce049bc656..a8ee3ec8825cb567d8e38b62ab392cb8b2ef0a91 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 ebc65dfb1d0321c38e29d65b9c512bfb5d90ce12..b726e29b09596adbe132c1215c5bb1ce4f35df17 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 f140702b64b219e6cc6e3d07739acd492080c65e..db032c2e47919ede8426f37e6e37c51b8d2a690c 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 e3fbd7c4ebfee0a291bbcce08be307f67462c347..6a778241e56fcefbfa5540ff586e55c6155543de 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 dee34f640c589f5ec5e36d41e7bf6923f1d66845..c1ddc59ff4ec4d2b7866dfb50bfacfa12a96f425 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 e4605e536a8cd355b9a0b0c0ec4a9a56d0c77d15..a987404ed02ee244059e03017b5a889529043138 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 b93ff1685b523a85fb35149c16726345b62d5b29..dc8ae3d8c7ae696ca3f8b4cea203b9bbcb947e4e 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 0639438c6abe95fa4a2512508f3c14b18bac5f36..378d27ab9c7e74311e339ce4ff85d581cf405610 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 628ea23ca791373545bb71e3fcccea37133aabe3..c898e5e959474305f960aab04473d2b5211e1c35 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 a5073b7c7aac217e79b35a40dd3ef5f32f445c6e..2a04889d7beb6e8fa1c99467c0e9d3fec5064cd2 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 d1d4fed0fec3c3ee80e00dde59c99428c9ca78ce..02de4a23259cfd80b34afff1c119bf614e365ebc 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 ead65efdaa2149594cdddb48ccca5dfed9d78756..eb92a01d84775127e3e63c07db51ebfdb49569a2 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 d75fa526aac7272120beb10827e6134e5ce93e2e..e90cc2d92e079bc5ee3150be6aa2381176b27afa 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 b41bc4a2a39e018418c8af4b62e6cc7b3aa68813..e6c162250662638c919356d0924893652ea6538f 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 8d68176a678f6e0a4d06aa50f62a7f79f17b84a2..a38547dbd3cd6e88b3ddf4ad85ffc1fbd9911bc6 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 82b0a414ce398df75782f558abd6a1e04be6b18d..75ac386c208d9b57b49b461420c6cc81bdde7ae4 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 797c9bf6f03877c9921939fd84667f98e6a72297..48649fcfb8ecfa2624c405006a4987c4e3adc2cf 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 1ad05b9538e981b6de09ae0dc697a420537b440a..3478e00fd7565f7777e0f7afc2846da05264f922 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 cd1234fce71ea616cfbcd6362ac46a528b524c02..29b13d7f6e211a27ce017e00ba53c85db18766fd 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 b1990a792186658ade8382e00f80f032e92f5852..60e22f2da0b9524eab4300512fc64ce04eb3a275 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 88f349a203755176dd3b09079ee4970ce7721e85..9f7437158e189cb2cdb7486800aede6b27cded58 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 77829eb1188ad31d3acae79680a21fc03b952c48..487df8fc389072b6a2b61662d795cf0da849db67 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 2010e3ef3076afde910bfa9c5e36730f5b2a6ca0..d0c90d3ec5c5b8294a1fc5d9f269c4f664a6883e 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 8dc134b4535f8a7a3a2896bdd6ba5a83a291c3da..d4736c1780320410e7269c38b5bda48513c1913d 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 364633c3b998f85567758f7a4d46450861b3edb2..d30731cec8d9eea24d473d4645fe5022db266351 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 fa00fe94d123f89af1bbb8d63937f99505e23780..314509603091075c5aec80abbcbfa92c5ee31fbf 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 e89a1d082038b2c0830620d0a5593eca9ac73a68..af362be9de01d6dfda5e5767b46c6eedc93fd005 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 9666dd8441ecab19f801184bee09cdcce56d2d63..7575e789cbe8bb59c51e72368ac789ab00df480c 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 3820628f2ec8ee6e79dc012e2aea8b2dfcd7d317..121f7d2275af27439149df0406971c2e62dc4fe1 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 fd1b2ca3d6e4d8452478954b13f93f15ae5efc37..053cb739d75160c2760b6dc885c997b42a65336a 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 b1e4c588e79bab1ac40aed946403b669687b8764..6ba0ebaf62ef3404714948a2118a96b9fd4110ee 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 f00bc21ca7352d006dea677ef01306a6564d81e6..c5c8dc9f211bebace0e16ae1022e7420fa162b21 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 e2ff27c6a87dd25cd3e015f7138e16ce049bc656..a8ee3ec8825cb567d8e38b62ab392cb8b2ef0a91 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 d182075adb6b63ac6b25138f5336a4797bf42319..d8a63bc6be14ef9544a5528491e3436f9f76b71a 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 f140702b64b219e6cc6e3d07739acd492080c65e..db032c2e47919ede8426f37e6e37c51b8d2a690c 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 e3fbd7c4ebfee0a291bbcce08be307f67462c347..6a778241e56fcefbfa5540ff586e55c6155543de 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 c2f70f118b7ac4715467312b9b337cbf488f03a8..6ec4db271afa02d7179f11b219ade22d05094d00 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 e4605e536a8cd355b9a0b0c0ec4a9a56d0c77d15..a987404ed02ee244059e03017b5a889529043138 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 b93ff1685b523a85fb35149c16726345b62d5b29..dc8ae3d8c7ae696ca3f8b4cea203b9bbcb947e4e 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 0639438c6abe95fa4a2512508f3c14b18bac5f36..378d27ab9c7e74311e339ce4ff85d581cf405610 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 0e243ca7f1dbc837abac861579871ccc00cb192d..76b5b8bd7a5f4a01f3c8d1bf857eb7cb39bdf48c 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 86401b914b02b5e1f615e107cda9f36b9134a7ce..ae2813a6c1bffe958a080308d4b5f2abdb1d64f4 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 2e387c2237e478451709a5d9bcfcebf7e4be6980..88e26cd3c89b5f1f97c346e9912b5ab32b1f1572 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 744ff5b4ebaeb84e62f64013eba465425fbb32c6..f9bc12b449915974843f9495605293ec5a9d98b6 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 82b0a414ce398df75782f558abd6a1e04be6b18d..75ac386c208d9b57b49b461420c6cc81bdde7ae4 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 797c9bf6f03877c9921939fd84667f98e6a72297..48649fcfb8ecfa2624c405006a4987c4e3adc2cf 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 1ad05b9538e981b6de09ae0dc697a420537b440a..3478e00fd7565f7777e0f7afc2846da05264f922 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 cd1234fce71ea616cfbcd6362ac46a528b524c02..29b13d7f6e211a27ce017e00ba53c85db18766fd 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 b1990a792186658ade8382e00f80f032e92f5852..60e22f2da0b9524eab4300512fc64ce04eb3a275 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 e98152720d581ef5a0f835866ac027ddfe8634ce..4a02cc9f777ec7201bc054bb9908ddac5e9079b4 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 4a53971f7aabaf96da687581507d829f85403e15..fdebaf69c2e7d0436f89d9cca0626fb81a5c2a38 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 b4f9f929649698b1af053dcdaac556d76c781d99..9a8c6a993cdde00c8c32fa06b84a830a954a9d86 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 fd38cf36faefe23b7c0463c0d1a45d6779c6d874..4a319541a60bb4b7501082e6a6483a0ca6cfebb2 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 cd1234fce71ea616cfbcd6362ac46a528b524c02..29b13d7f6e211a27ce017e00ba53c85db18766fd 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 b1990a792186658ade8382e00f80f032e92f5852..60e22f2da0b9524eab4300512fc64ce04eb3a275 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 0265fb014ef8771a0da90861037ba2f198a32be0..1e6b74fe3573d8a18354e8ca7261fdf9f26e33d2 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 947f7bf3033a4d3f9df7316b72ec6000714d330c..e143238fa8e19ebc5d150c9c554600e75c55d252 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 ca9b3f9bf6e14ef5c5a2e621898d4169b092df08..cca2ce0355eeb214f5320d35b9fea15db531e455 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 cd1234fce71ea616cfbcd6362ac46a528b524c02..29b13d7f6e211a27ce017e00ba53c85db18766fd 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 b1990a792186658ade8382e00f80f032e92f5852..60e22f2da0b9524eab4300512fc64ce04eb3a275 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 23980d176622f97185bc6d028c89826bd01d5cab..90d3267da5825405bfbeb0250c8a067d04977077 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 797c9bf6f03877c9921939fd84667f98e6a72297..48649fcfb8ecfa2624c405006a4987c4e3adc2cf 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 1ad05b9538e981b6de09ae0dc697a420537b440a..3478e00fd7565f7777e0f7afc2846da05264f922 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 cd1234fce71ea616cfbcd6362ac46a528b524c02..29b13d7f6e211a27ce017e00ba53c85db18766fd 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 b1990a792186658ade8382e00f80f032e92f5852..60e22f2da0b9524eab4300512fc64ce04eb3a275 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 0970fe692d547f734f69482f92d5b26c033d5662..e1fea8ac61c57c2de25a620f91239522d40bf46c 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 a16a6f46fb3f9dfcc5ff193966c066438c055e62..3cbb78af3326da0ae4c971a3e028371425e20c7d 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 797c9bf6f03877c9921939fd84667f98e6a72297..48649fcfb8ecfa2624c405006a4987c4e3adc2cf 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 1ad05b9538e981b6de09ae0dc697a420537b440a..3478e00fd7565f7777e0f7afc2846da05264f922 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 cd1234fce71ea616cfbcd6362ac46a528b524c02..29b13d7f6e211a27ce017e00ba53c85db18766fd 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 b1990a792186658ade8382e00f80f032e92f5852..60e22f2da0b9524eab4300512fc64ce04eb3a275 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 e45f8e36c267908b4c1a58348624f0b777aa1a57..7ffdddf4c9025dfe9d1bf635c7a0b8e8e4408ff7 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 a4a5665c5a4805866d6c531844f76a8642fc4586..387894254ed8aa19b6802a2dcbcbd6010f355041 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 2dd07dac7cf602bee673526532ffd044b8dadf2c..4cb3652f166893d78add24841822f16fe09f770a 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 4c71dfe65fae2f4e28502644ea3f9fab29aba8aa..8d023e3337ce38bc4580fd0c7549ddb1bd831ee8 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 e7aaae1b319d495b08251253f6dcc6de6e30ec00..d6411445e94ca637c23dd97760d48e9124b65537 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 bb8f8abc6c94f1c323edc20015ace9ae511a0e16..445253b8caca0f199cdfdb417d9e7222ff9eb890 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 4839f79f253256773036e794bc939f6f22dac8db..7c6d9de555841c107ec237c68b15a581f52e3148 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 fff4ddbd661daf9697c74d9667eb2174176128fb..98e48a46e4bbae653c54dbda62e9f48637bdc30b 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 46f579a364ce1d8867fb1a68d30af03c9f284306..b7432af291e44448f21e7a1651765cd0c8ca9527 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 a5a941b147adb7ed0820692db9fc12389aea0394..f7d3d3b1cc4723281c1032a1baf297d49620736c 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 f0e309be867b8dd5aae9b8077364a6be1ca9b04b..c0a9332e29cf62ebd3dc0a5698888156690e8f5e 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 9e4bece7e66040dd7e132bacc4c42e91e224e20f..dfef5c9a72975bf3759e8293f64e1ee9fa0c7eda 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 f074d3de05e203e42b017100b7876c6b57c9ad39..84e2152756a53daa5702a38ac61e8afd37afd787 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 8f9e1aad3474d92a3bb80e064ca6aafafb03ee2d..98989753d00a4658fa5f38d5525362783dc25679 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 05f3219912156e2e35fdb0db3f33abe96fb5a813..c6d9910ef49294e98ec710b84b688fa119a53c52 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 1082b17dd13eb76c04d9dbc76fe6ec3affeac664..6e7be3aac4202a293120ac54179880c5d929f7ae 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 0000000000000000000000000000000000000000..56071bb489fbc28a74c16dc3ce52433ad657774a
--- /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 0000000000000000000000000000000000000000..275e591922922e5a0e5d155c2f29912804dff1e3
--- /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 0000000000000000000000000000000000000000..75f69379eee9451050a941eaf435531f98160c35
--- /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 0340933f6f241e2d053e314fd3d047c4c07bbda5..487946a8b274172cd9833765df2217191aeaa907 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 ebb208024ee3c02c81148e27a25c9b3a8a1bd333..f250aab03bda3eaaeca6b799cbbbd3827bbd699a 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 8c370e0d1167cdc1147a32d479df735b05fab47d..91bb8e003d0ec72fe74fc03590886458982891e8 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 a846ca9a9a4872216cd93f43326c6b4730ca3595..8da3f891306eee912ebd24ec98309c6c3daf61d2 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 b7ffef21cd65255c4984c523c7a35acbfca78563..e4a33b8f6f8515129423881bd46955ac957f19fe 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 80567738e13d42dcf96b00b7207e40152750b5f5..e71bca836e5a148807ca9b6b7a38ce530cd467c7 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 3c526f43210cda3cff5222bc3e4c2dce1ad64ed6..f5c1b11fe85c4b835e8ec7991a3e74f8c6fae639 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 72b1492c4a93145f4080703198a116089a9b6550..f41e018fe419d05d19dd3594c446db841fb05e39 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 ab3f523e7d17ac39b8bfa8ccad2d96cdda6f5099..f2060d1296d183fb786e70a78c5241d649bb2465 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 04ea1df4235a6a72b9ada279e5cbd8e553dd34a7..da8eeacb187945b1ab120e8e2a315e942d47d1e6 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 6edc731c03da1f3cd56f788de280205f25460c27..e8db4f059cabf2850c55f297b7fac80d93b26fe6 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 9971b18af2739977986a12b822305da02272a255..503b37f0a7143a91939fa376474bfe59af0c2237 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 ff5887e084d2dc8b685818b1f2754eb49262784a..bfa11b0dfa5d9cfe25b2f3f1329f194992fa2ca4 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 72030e27600d58e900a91260999ba7fe737939ea..af00773acf247e2730772e50239e434ac97e16cb 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 03c6c38e422cfc0167e9ffa98c174367d2e38a58..43599fc4ce97ed196189a5b26ccb6e4eb2542158 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 6035e7658cbf34433fe4cd0aa75b4e1902249bf5..0d3af6c6c05fdf3696c2bab0a48f1fcc5711c7eb 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 8c32d55781eac78e06bff5d8a0b4d858cacd733b..634d6da2d5602b477765c53038d9331477b5d3a5 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 e5f08b2692f079ac476ee728516ade8b7886c19d..79a92e734c85896585f3df404b5d22012b868bb2 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 ce3c85319fcdcba0a591675ed2bba335f725de54..28dbc4eb57326f051d3ec69602407e707ec1caa3 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 d2ab8c9afe9f0c707af33846500209ddc38e2ab6..b084f852029f6dc9bf084f325f767f0cb4431154 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 2ecb1ee5dc9d10ec25badd60ece20c09e4cf21ec..3a2cbdf172f330710aee9c20222b5974425aa344 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 ae34373a222029f42c9b67a133e9e4c62c5f0cc2..fa3d1f3516582e0eb89145dcae110cfb1940e01b 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 2aef5be691051b575e65a560abd5caeee38a4263..f83fdaf06fe9d8bd373743dead2fa93019acce90 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 6a227f93b956d8dbfb894b978cedd345021e850f..805b01747076720655ee3c6a21ab0e925fad7703 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 50ac0e0b344c0d97a68629323c716806c200ea40..1b95f8592e18668a439f29cb2f35f79f904ffdbd 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 3a5f236ba6c26ff8c718bfa49de5f3a0eca5abb3..e984324859205f96e9955cab1e435d0ee2c8ae26 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 69019a2c750364d069fe45faac535c93dba62a9e..dc0676abbbf08d9d9b019e6c2245ecbc99a932c2 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 c29cdc58874b92ea8e37b55cebb1ab9e106494b6..e39feb0956abfd9f6eed00490c45922f4fa0f765 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 1aa467c9a946a996b6afa1d190d2a23d7a81fce0..52ff1a3321e9c42b603280409e4a46e15240be31 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 974ba80539b1b972ddc161a15b798037466e00fc..75b46c32def20dc20be41d783d804004212536b1 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 f92acd83de3f10df11cbd36fec3b6be4bfe3e135..162db45de2baa097fd1fe5fefdc488a528c5c37b 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 6481e8bbc7f22244b6078c12d12e64252d9c13f0..7917f70388f14fa5f88d486c29a25927273043c1 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 0000000000000000000000000000000000000000..1ca723e64b3781cd8f2c5c672f75117d6dbd3d10
--- /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 0000000000000000000000000000000000000000..1ff540fdb82ae6b54c0c4fb39dd3c9760974ee55
--- /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 0000000000000000000000000000000000000000..0c9a4d6a18965ca5c758532e6fd7079c7d0a2a6c
--- /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 0000000000000000000000000000000000000000..ee68ab69a9df6c553394114dc35a390b23b52e60
--- /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 8d800150a1ef1000f0b4430edfdf0e8353633235..bfa16ab56a7c2c279e33ded477b95c94215ffd13 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 9503f6076e5b9ef6e2e066f3c7054d3086b927a9..8f882fe697ca5acc3317bfa34dbd9ff258a0cf17 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 2bd98ead037f4a91549b03f0561022306eb2df49..2634ae40506ad4a633300cb6a723e1925c5d07c9 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 7efb02c6ca3f7147ed4b5043b86141019ecabc26..212309ce3dfb71d6fc12c0a5db3fa189a47e2c2c 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 746e0326ff2fbdb5c32544a2e7e713d82fefb22e..1a18090c02c59a81a72fa3599244a317c10d6c99 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 b5f6d9d757d85cf48a5afac9a00b4c46038c319c..4e8ccc458fab14a832b45ddcaf54429d2d73690b 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 7bc3328fdf19822909ac2f086905e11a2a0213c5..dcb4fa2f396dc4eb9f630b213b3ba46112c47c99 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 e53b818c02b525e9122cc4328d652fdb4d1c11ee..689318d7f274a93f98ab82687c7c694beb66fe49 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 cd5abe455d6ce4cfe7dd152bc81ce45dc4cac5a3..aaea797fd00065bdb08adc6ca7eccbe6925de45c 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 547dc68ea78f23ea82e81ee0d0f2cf99a5efa5e3..75619d3a7e26911258671ca9f88b2a453ecd08cf 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 8fb4c1b742664110f38c72f1c10722de95c2a62f..d80d5f4d12cb2cf08071f84958b39e9c65a96d1f 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 85efa8250de14557759d021d8c6033ca4b4500dc..9ddb8a9e2257b4a6510e1a749648b91010253df1 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 7417a917abb993c6578860957193ec6ce44f097f..120207417de59448d4ae8817243b4f95ead7d586 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 4412748ba300ff9509a4795384faf269299968a2..a892b09fdccf176e83b996622f156c3525383e46 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 294dda61fbc9de354972f21fe8286ee29802116a..d86e3a1826c66cacc0fc873d5375026b825d805c 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 e58a0616fba013dd71f605095a01876fe8945fe2..f326c6d1187d09e91b984975621baf429c9de030 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 79ff67ddc80fda4b4cc37eaa446017698d7150a3..0f89c286d4c897967d0d70cd146b5efdf9bca35a 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 21692f0cc24147f6aa136b461e5f8fe129c39789..19febd853fb64e613752905fbfba7068ce057cf4 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 b65cb74bd5e708b185eb1e6004318a231ca68b76..bbfa05fdcaa149a7f78a8ed4481f25455a54e0ff 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 263b0ec75c25a9dea352137d2c91dcc842ca6d0d..0a212fedf11e5481b7d358dbe6c71db50ff17300 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 10f0baebba7f7b14d98c40a1adf303d637267976..e2e61125648ade8a1b5c71a0cffb6e534fa36710 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 9efcac8fd57649cca00d92ab6e2bb37d56287f2e..fd69ecec8c2d075f3585c67e381adad56aac2134 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 5e7a85dcfcf7b19148e5e2c10bde1c9835bad2ac..74390e72db4df54a1eb6e8a77f3e9d470f2f9cdf 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 5d4d6da503a6dd33ad0d8ce968fd225670cce122..8574b40c3f337aa90c8bf8c62c18f19fbe3627bb 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 431e3b8534f355c41b6016f7e3d82b42a47b5f66..5a8a396f2eade3dd867ff7c194ad26586c651eb7 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 c365e6944004a758a9143d5447d92f34b147b7ee..9d339aff32e37236e696b9dcf95d51ea62034e34 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 f9cb14fd421fbd5b48eeef58412b9385bdea4df8..15d3665d60ec114dd58c84194d70206183fd232d 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 39f99715f2bfa3a2554ea70958bb05a111543450..91591d09e5254304263c7661942ac1e10ec4d405 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 9cabe21363de74960647130740c7427e48228d81..22733f36212aeebf534eae86ec656bf511107b47 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 923c173fb88b4f46928a063e0a7d57fd3babab23..351d4b5f82bada51b1a7d511346c388de8817111 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 9a11521ed84c50517bfc6b9480189b2eb67dd073..116246df4a4db70a21e5e29127e6754845927030 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 a409e5d001c6dac4ac27d95f947968af9655c39c..489166b3d98798093ab1b43bff8966853f9b71d1 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 9ecb4fe03eb43618550d7decb7692be9a6b62f8d..d2a356987ef98eec191b1d3c30c63ec16da749ce 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 780179d43b64c02937da3d804b91bfb1d53e7f1d..841731eec433a190204fcc91e7cce20c427ed95c 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 22768bfa3c3a589845783fa67afb7e6a2a185d71..be60cf1d69706851bb13b42656a97ae8f7e9dd2e 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 fc3c987901fde3fb3d200c0283f3ed4186020ca5..b3f25a8befef910d869074886d02cdf56de971a4 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 98c29c110c3bce135899564d2e04b2e046838b87..e1cf94c4caabb6ac029d1cb2a32f919fb39b734f 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 e2102eaf4bb0bb9b07c4b30bc890d606bef41434..bcb52d6d938e86dd31200d9aaf17beb3ba24ef05 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 8baeef12185337900a5ccee7b62d1603fc131c60..85992d3c983b72e12bcdb0a95c7bfe2e7437056b 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 ee0cf8d607ffa887eea74a6fe93219aba0282250..909dd955b96536c645e095e32ecd922a571f04ed 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 34b7b274a61d8fda37ca45aaf33cb89550862497..5236bf0504a3cc0686fd21203e12131fca6d3f8e 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 b89eb0ce593697ccb7d265abdff5237ef745d1de..999bc58b6683f3fc43713eaadc8e8b3d7e2f9144 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 ec65b9dde69c467e0f7217998ce081e3d1509ccd..4244454206bef2920b2ae116ac1d550e4dfb2c2b 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 c5d6383f0a270aa1ca1c3f77bff67e19d6ba7681..2c529e67f71132fda27e6e44405892c98f9220af 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 6064b626941174e88784b188f88dd6515d1e4f9b..912df569b0dbb5c9d78c70c18dea2d1fe5c22619 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 ab0d13edc1c2e79018594273b5ed15ed49f49b8a..a64455aa214cf47c6a95c75b8ae979dd7cf7c876 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 962186e5f01466830567ebc96ef4f7bd204ee338..2120176861682cdbc82da8c0c06631fb38963ed4 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 33a75adec98f8c94aae6f5b3997bec5a3308213c..091d8653d5606e6450795b4bc67ef4e2da6cdd4f 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 271074d982f5b746e7f0da46d3031108b89501e0..9ecb78df3e5a1b5e8a0dd88a272cf295b3666e22 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 e452ecc24dfe4054b0cadfdf8ce3b89ff3f7d62f..f72993ec83c68e36c2a69a3e8cc4e8043fb1a327 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 21eef2829d9c1b36e7d0ea9318227633435ca88b..b3ed9a21ac34b70c1cfc4f9df96fcc9d2be2966e 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 9a271bcbc291c2c1609b1c1f5064257de44b7743..151ec63e906c5b399f65bdc4cdc67cb2b4e014a8 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 0b79d8a46bf636c5ef096846007b713611b41f25..d8ae97e0fffa954fbdfd22b0af64c64499e9aff8 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 3a41eb7854af1bf461da2036b10a8dcd77335b12..be9dbea750739792b9e8d6fbdab7587a62813f23 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 26035b99922f104cf9021a9c2aaa8287ca3dba96..8351399383ab719fe49d9c8330a8b2a6caf60096 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 ebe783d23e3376121243889d95724578ef5ad9c9..909d8217cc44081eb65121213caa584c2c8d191d 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 f81464aa3c88e396ca79f1a4d038c7251ff250e1..aa4aff4687635db74423398f6c77aa28c622f5d3 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 df2df37eb3a5ae74f81d990d510f58e691d4bcfa..5a4e5cee3605c77afadc15ef70565cc5a4cb9a57 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 709057a59e55c3dd43fc14ca5a2eed4151ea7a83..9eecaf8d9acd0aec99007320ac4410745bdc31b8 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 a84a5328b379f4796afae37e4999313896800dd0..847f864c0f078b4e8cb9f537e974d6013f14e0e5 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 727c0d38b273e201e1b760bc3a28a0141b71ec1e..19eaad6b2ca5c1bdd96e03f2204388f3517e5c3a 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 88360844677eadf344811a86256c44e33579b0a8..42ed596076895f89c76935e47b3a1e3b2e175aef 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 01c3b3b44d9fe38529407e47a094f0b8ffc6e785..dca97ad1db75bb9b8f9c9f3acd47e1856fc1a311 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 887d4f5870a376a4c53a8e0e404b80701eec0c78..1fe9152e5b4609edc93e24b470ad625e3e0538ab 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 e98003300b6596120da45a7a810caadbbebc4e4e..6e18e7033d5d8e3430708dbdc56632af7e837394 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 0ca33cdd232d7499e278683e7fcc13b4c246bacc..cec8c5944bf8140aa1dc4a306eeb88302bcc274a 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 ba22061e944a7794ef56bc36b6764aa935c7aca5..a6f2096ff491d6a7e1b3451450209dbe5782d7fc 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 aedaa0158da80cbe5f8475b1bd3ec03f6b5d4ee4..e4b62b6faf063a7d8fb5ac26e7a8f245f2f5e43b 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 2fc24e79f7882f379dec40f4840f59627856072a..2cbbb835128560204a6e538f94ef40e6108dc7b1 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 a036f9bfe56df44755d51c1428024a0abc3e56c7..f654dfdda64e279e57e6dddc0cab739008a9f433 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 70ad6ab453ee4229cd1fec33163446f1cb9f016c..c440a77bff6aa8e74472f5c330b6be80e3820f1c 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 e0ba12848f7a23331f4e280621039284120fe33f..91a5955e53434391473c65508760439d85730bf8 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 b54148742313ffee89b99200afa68bea3711e9ab..339cf7d5895e3d6080b0e26239f2e9edf17ba1b0 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 0000000000000000000000000000000000000000..cc834ae62d6cc7fcc9e9545467a52f2ddbc65b6e
--- /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 0000000000000000000000000000000000000000..e5cf64d15abaa713a6aec2e39eaff3bce3646221
--- /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 f092054e972151ab868bd7d3410a8e916f0aa401..71d8e1e02632a697503010826a4523bb0cd819b0 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 0000000000000000000000000000000000000000..33e571a982605248b0536971c910919e2379c87a
--- /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 0b7520664f46c645bd1060ceaf2cf645436a4135..95f6d4f20780ccdc6b6a8b05a1a630722c5287da 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 836785c58ec9df41202f247a2b74c232fc6f3c8e..aa7d8883f0e98224cbf69683a886c8eb065ed21b 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 df9240138fdd8b31a64d3be4d8fb9fcd7794451e..39448dce5a59a6c8fc4dda2aaab5bf0de31c9636 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 d14d588fa146f4bbe46fa3a1f19d81074e8838d4..d77b7c0cac0bcb9aa0ce51e06ce4ccae91d62ae8 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 167c74785075a874e1016ec50338a8d0505f887d..53b75b7b1ee7f23b1b17d9c22f0c294708fd2fec 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 8badf6c3cca3e4e4ca650977ddf842525a8b069e..cf11add7bbe57b498d5adf96bcddff876a2c0ebb 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 d84d42ed82b57c267c4ecac63a0d493cddffd67f..76da758dd343063cf6ef0ea31653758b354c9059 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 c718a663e732601a616e573fe22b3d45fd5c7f9b..13c3ef7250a501724c896698b41081fc7923be57 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 9fda012acd9b7305da355da0f66f416f7c245c7a..377b51ee3fc186eeeac315fd46138c31fbf53beb 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 ca7deeeb6fbff9b4c90f1a97ce9067c44e94e9d7..523231bffbf4f2cd0ed04fe33049a81fe17a815d 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 a01504f7adbca7b6c5d095f319609a3221129685..30ce9998281c483e9d1ab90149ed66817d6a2039 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 1b3c2658d3fe25168a58c3a1dbfb59bc1a4f5438..8a922c3977701be3e4e9a51461338d2e16fd08d6 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 5ac2021b2990b4d70be18377bdb546622ecd67b0..6901f03138added5445343737adc874bc0668616 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 d3429452f0cbeb4b2cca4d5ecacb9c16c4f53fba..ecdee716ddc1eaf43615061c8cb6a5de78d035d5 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 895da4a91e5d2286c1a13d485bcd55dec6cd42fa..aed0471ad0fa35e2e3cc13c015b10f3355da25c3 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 5a752c41f64ad3c6a877101b29dba18ca4a4b9c2..8447b6ee1e238a4f0c0fc117b112abb06053a615 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 312ae6d757c2b2c2b77edca14c01aa0759454302..2085bbb2bcebcfb00ecc84a91cd6e822215ed5ae 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 cb85e04172fb5522240347d5c57e0540ed91c49c..e812348a81437d51fecb74478294dc17e7855f1b 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 0050e4e5fcdd8b09e31c44ef243c2030ddfe4fcc..656b18d502d9d6dbf9ce720615975965bd9e4dad 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 f062927a1c8074eea11f74d372562bfb187bbdcf..72391ee5880f805589009ec59aa71aef8bb22d24 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 f24f34d28cb99a2e8b248165197c67937a55f395..871198691c01ab9ab7c6d8db7192aad5bab79ab8 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 2372d4aa80e466798fa8ff32871698177f487edb..60c7356e853558d8e2940650c9e09dec31719043 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 dd7053f58b2a5e59fb1e20a89f7a79a91acf71dc..77e857b698265a7f578e0abea096eabcfd20fe2b 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 8a1edab2ebdb12ad89e174ca189353156e74dae2..9c2037568d6d66b1ab5fed22015c3352a6b949a5 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 7bb9fd5f6e4cbf79561e9923f9adf4aa488fba73..48d2879376f8f8ae998e2616465765a1d5d66de6 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 015381c96fcf51df02c5cc494becbcef1c52c092..73964507483b39e2a102e743dda1ec3b681743c6 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 69ca018700f8e2cdd8fc4b16f7e06d159cc9a0e0..ea377f4142a4a367ff0b737c51930d864ddc42a6 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 00a12eaf501dd324a723615015cdd781c8cdc94d..616eb49b609b63bbec12cca7cc2cb054ec09a694 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 923eded3aa61a8ee4402f8668b7bac0d3a35581b..bd07fde5ebffcf89824bcfcc6286d1181cfbfb78 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 1bf975e67bd8210db9f0ff659be66fc961a8c720..e3c6d591d130aa820ef1c75610ad5a0b8a4f3c5b 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 9af4cfacb3df61b43c1f64f74a2182b8ea5e8a2e..5ce85d0e15acdec8c158b541ea582f88efddffd6 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 30b711589135172835fbc064128f965f49793928..a84c7b59612149f605438e8bca1acbd671704027 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 b58613ef8232733c0294ea4746e1b4a2a8a7226a..8790539a27d10c96222abd91981cbbdfa4b0365a 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 af80b65dae6c448fc2a96a9bd3d8715b1c41b489..9833be9e2ea057a336e80b3d110d11ff815f4fac 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 3e6fac24da5902984ce14145c57cc26a6a3b49a9..aab5534008ce04f5d0f91ad75567822ae8d98a07 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 dae38e7ff1c035e42d592f7367048dd6a48f9834..a681439734db576c6ba58449dcd529156865ad22 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 b4bf5dbd705e8448198151242343ad03621f5608..99c6abb866bfb40dcf992b8c0b878c00d458e58a 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 b7b09cf02c78a1199c7296256f12c7a6c7e913ea..f8f88919fea3b9bf3525e6a0feb02fcb535d06b5 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 5d37d57b5f18175fa0cbc7649aeb411942fea578..7e01af493999ca7a927e8242d891b3e648041d4b 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 90fbb2250a9e04182d7babc8ac9a19d286e2731b..84d1e1c5edc74ee29dce94ea73d4d8b38927a270 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 992a472a1c2fa86ba5240604b4fdb12e45e6271f..e9e69c0c91f469e542d0a2ca80b12520a50ad3aa 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 9564228690fb14dcf2e6779d5d8cacfa1c9391b5..890d8aad565c8b53e5f336dc65ed5d9ecf73bf44 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 90bd66c5102e93323d1ea7af3c3c6a70e5b70f33..e5d1b21adff2075ff8c8121991f105f3dc21108e 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 898c1eaa4affde6b9de26cd15123d15e32ba080b..2fe8db476fa5ede9679580cf496ba39ff5f98f8f 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 23253cb5c981b9b1038763ec7a96cf3e5e696d91..36e3ba29f675f47573c340aca23ec68bb608b72d 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 5628766873aff4f8b85f678a4fdd39460ed08d81..9ca99029a3278cceaae56b2420399b5817b9bde9 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 39503c1b232703c6230e87c7f725fa8504bbbfbb..0fe29ee7aedd3cd160b987d48c724b319bce35e9 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 21eef286ff3a6a7f702cc0b30f8b3b6833b0b378..e9f1420cf9c1658b7bc1a47dc7f00b88b5645d70 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 b7b09cf02c78a1199c7296256f12c7a6c7e913ea..f8f88919fea3b9bf3525e6a0feb02fcb535d06b5 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 0368316a212ea48a406ca84b86c0c40196b1ebf7..1daededd6596b224b5d9bf8647fcc1de2a9ba03e 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 5d37d57b5f18175fa0cbc7649aeb411942fea578..7e01af493999ca7a927e8242d891b3e648041d4b 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 90fbb2250a9e04182d7babc8ac9a19d286e2731b..84d1e1c5edc74ee29dce94ea73d4d8b38927a270 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 76f884cdacff6f06436c880964186d42d33b1224..077c6f4de95d608341cf77e6cba27aff5d9fa947 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 2fb0a63edd3943b0e2819320ce95a70a59a20303..1e8c2bef9b05538eb0c3c2ffeee4acf1fda5328b 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 207c6ca2be91280da230ebe52ea9c4ba9a67efef..377f4ea342e3eeb7dad3e0148eb714e1b1a91beb 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 40af071485fb79599f9df1d9633521392ca21993..67cff25e95e8e2e612d7e3bbf8992df18edf94cf 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 3a7f3b501a14af24396b54783102e796ed81597d..73d5bf924edd16e353a43c8bca471a91f64a09ec 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 4a61e5c1780c2e73aa48425b6a8494dfb2b5b4bf..9d290c7a1a36739c8297d75fac64190eefbd9a42 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 e3259ff3218377ba24ccc7127cd812de5a6fb72b..797cb9781e2926ea6ab6778d7b10601746c2d32a 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 343fda836e9ee0cbdd0db5c36925dc08510898c0..c63356ed56c805eac13bd090c5b5f26f6936b060 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 160890af602845b08b235d60a303ab89322860a2..3e7cedfd774d2fc3873ce8077a5e1239dc94c4e0 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 a742e88a964edcf7b6e96ca46e82ee7be1efdc04..9adbe02becbe51d01e5bb4903d28c81e2dc53b13 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 c5752ea6af0cbaa206818eaadcbf14e0615bba42..40cdf4975b0259935c98d795179c97ae2fafcd64 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 0b0c301be793f937ab1d346919f7be5bd4b57f93..36cd230c6aa1437f22fcc0f77843118018e73f3b 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 595d73a244fcaa486b309e178999a8e821c5f1a1..65d5c1518222fe799018ef4dbc73218b50e2feb2 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 d1a4f1df973652760eecbde1fee0f8e072f1a610..dd0423429597bd25d7e6ca22d3ae6a936cca0b1c 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 84c4d93da17fc082c37fe1adc2b3275958be22fa..53cb4bd34c048f0d13a7e5b00f06d024db80907b 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 4e5b5c46ec0d062a31a7fdd8033112cb7617f9d5..8840c6c75382babd620cff1f67c8354eda390321 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 7598c66bbd0e9e20b527fccd0ac23a3041103085..4e9515f6d0d0361b90a40e7b3469bddc443e0d7d 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 5c886d670c004a66160f7c7fd511c2fed229f064..6f1bd8dd860600a66e91f68d2ede23366e37ec69 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 2d1b63f5356ea1a2f8a82cd6e95f256c797242c0..dcf8d16f6bba7290ab654c6001b3468897fcbab5 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 02a6357a69b2679dfc383758410233c41afe20de..a9d14da3d51e0a98b10ef654e2f4d9143ab62731 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 ccb0d3ad5a2bd0ecc17bf5a8c19b28010746a172..a246c8ce573b99f86ae180f1fee34c347076a815 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 dfeaff2e5d09884556c4065feb750060e0fb4deb..bb8a1da664b98e0ec8041d6e5aaad89152e10b76 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 59d26ddfe1a18b1fa8c48b19460907e75e39282e..f629e01915d242d462b07cde23394ecb24b1e8df 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 d2c6885f85316f26381631a1e3063dc1dd6dbedf..f8c8f807caf10dbb0baf6ee43d772f53b97bbfdf 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 31a024994f16235bf96ba3f60b8862dddffcd917..df4319f9bf59ee252c21837b692bed1fd792020d 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 3b08888ebd40714171ad9f39719ae9a46808099e..d73469f8c99dbb4357341e88b46c0c982eef6fed 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 4c9d127104b4d136c8bc3f186450ec2721e02bd0..fdb8da4a8b3607ec3a02e4875af6df1a1cf63f8d 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 01a4474dfed59509650aa6429f5eaf7064606989..e8925cf1bd7418e67efd57ae99f2085223d7c620 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 43bc7810fbcbd241f4d5e30ed80486046d9fc2c8..c583c6164507bda29ee704a937e40e88643c34a8 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 c8508cace770e0c80bd375c81f93a8bc9ee98dfe..409df5f56934def3a07e3391d837f4566209de5c 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 b3ff3ef64e2f021a77a42a432f7ee7cfe1ae9423..6ed5a7fc77e979b110d608a942aac8d5b003c3a5 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 e82c9382dab4c6dc44d9168613c6cf79b7f58693..2f990668459286b6434842ddc8ce87a5b33135d5 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 7180e6d7efb29f39775032cd8118546d78b3f92e..9aa6e5089534aa03453417e0bd81847c2ea7e038 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 e9cf294f7dd060b06783352f1503d450d6b1751b..afc9d2a1ce5b04f54887d6091965745301a1f963 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 f95d01825539ca5fd8f042b8e960cb1619f75e77..54206f35f3f2d8ce94ffc4801b24c8d73324dd9d 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 17e4fda726bd08ff0ae6e681a36c65c27a724f3e..af93ed16072a692c5e629b8b880951ec0eb2b25d 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 bee48a503fc218f8560e73fa32510e004d43d6ec..7595556a626333fd7e091088244ecd20332014d1 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 f2e159c7b89b6679421a493909a85e93fb1ade16..0035929abf3636a95cd43c0e3913015e4746a7ce 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 11504692145e5a249ec1c26a794cfc85f60cc40c..0a9688b8072ba3812df110908edc1d09fb7c00ca 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 c517d5687f31905b0dbfdc7c010ee9158d30494d..16540d41c8c692825bf05fd574cc4034ab5a0718 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 b1ae74b2fb4437d052a1c6381825bbf2743de7de..b0e1bd5cc0cbb4f9d9e70694e4fe66ec98d543bb 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 f695ffd3ae519cd8d826b2c99d837a1853b79ac2..d53a6ebb59a2a91ed661a7a474604d291b000016 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 8a92f931393d4c581fca39c1a5e9906abda71c9d..13f587f7213f10103d86ce71e6ca07b6bb6d4d4b 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 d79aef0015306c4c5a0c030e2a09291274e26fc9..4d7f1a3830a8d81573e6736fd19b7f6e96baab2b 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 8c448430a48ad5e578a6254bc54b4d45439feb79..96d6a53e2aff5298dcfb58f08aedd8ce9e9124d2 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 92a510c35f731a60964df5ce908c3ccb4fd67a7d..6d40500e2cd3aac1e4921db9f94590391c9a97ec 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 5a3b24a84d00acdaba27fb2b3151df9810a38ab6..d54e12aa1655163292ca75a3bb73b6fbaa6c45d1 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 23c801100b05aaf224c665304241dfefbfff09d2..37f0d4e539d8944af6592a4d0a8773dfcc045418 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 9f87adc84e2957f34d99bea390ca7a6247ba8a76..5f0e1fc5ba2d696f38425aa8e4e5deba4802fcf0 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 2bc01c2845ef99c8a1d7959cb495578149972f76..5e52d613c5299ceb6abb76cf1dbaac246e86c9e4 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 c4a289df2250ea90814ff09d37dfa9a36eec0a06..e571ccedbe07792cce8bd422b816e7bff1e2add9 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 abc0c2e170f90b42d89e5d1c6adfbf8873fe83b4..301809a4a1ce8a43720d2619110cf2864131ab89 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 4b37a184aeb1a427159664842944e0c0641c377c..b3f64e83771f8d19056d32b84166a3419c73ba0f 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 4988e23bb5af7f24e461b4199baffc9c22066ccb..93c423b1c9937a578c22ecfab2151515b7e0b47e 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 f1e048eca775b616b1ea31684f6e34020be99c91..eccd83666aaf46c6228d07fa61a73431c957aece 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 250ff29a9a150a1b1d36ea69a4e10bc48c7206fd..a735770041d37bcc926a2f939e54c22eeb1ae922 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 b59cb6c3a7c292b1acb0f1a45baf15056833371e..0f8da48e0aa141c528ccf399f08979cbe96a1ef3 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 aa7886681dba95be136252c13d975f75cdfb6ffb..53c835211a85030c800a8009c0a9c80550f3c844 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 4f5aa57d7c2ffb99e47111aa73fa108e9424cb34..7c6372872f5ea202dcabc25041a0ecc18cf1d526 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 09fc3b3fef1611268f2ab88b69a2e4236bda8cba..daf7f270c13a1d5174fa224c2e7c814d4f4fcd8c 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 df3b7888fe954f10ced9343431603b1ea4684990..d7343d631e9cb5bd4816d296476d055f36022476 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 e680ab0ebc2e7a942082fbe886eb7393eb9186ac..bac9ef5017b44b25cce102d390d94fc632c07a63 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 8ee4fc267ca1aecf8b9a81a76f866721f380da3c..d35abb763e88f00062c712e88b29e2f115cd2996 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 97456d7411ae68caab2daaec4ef71d08678c9e9e..fdd4a7dc8870fe9fa2e9317ef5daee0c0b2b5762 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 58155bea8bb7be94d403029a6dbf97da45dc4fd0..e9d707be967effbf10849f04666ab5a7bcca2298 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 2a6ea6ce09300f9501dc5d64cd54e2c0415ab6c0..d3013709bec89e773392d8ad498b3c3c5f21f69f 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 44f1c7c2bd79df32499a3fefb7ac33561ff33cf2..a9a7ffe488bdb092d05d3346c9144f03b8884b00 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 06b0d5ba4750f0356d8c4a43a24e6085bc1fc070..de3e2fefc79dcc13cfa1d99951c1ac58a45a1452 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 bd82a663c2a7d691958e4c96eadcab23d4de2c1a..c4d906669bd788348d883c32f9ed8f6fbb3894d5 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 5f678faab93a9a671158cd1851147b0b0ce34ad3..4aaa4e2b9021d145e21c60a65882a7263e447e78 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 527de29ad7fb54dc53c4a06dba6711d3335ed488..47feb42c5276e5aa364e5be6016d38c4ff7bf9bf 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 a98a0a1818ef67ee413420a819c9e57012516c18..baabc430aac75a3b753c6e6f296d352ac951a8ed 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 a66beec19b070d07e071bfe3274cafdf411203dc..7247fdd83636477566b077073334001631afeb21 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 7a0c1a6f159a514471c3044d3c2fe12066d2f046..df5579261417b2a5527b5f9a65c85f7dc186fde2 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 34ef38b51fc3306b6dc68e9bedc163f55e452812..b46dea388b2fd9ff8d46b3982fd6023360e565a2 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 e4423cb57c8e08b7620b15f6e42cb5db7bcbcea4..fca6f33dc2b619085660d52ee647a5c17fc61d63 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 62dce3e8a2cc6e1414359d086c029e1355158cd9..9021d6653a237a583ab487e76683b154c1dd8113 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 0cad032de84f0afad95148f7c69d90c6cb1505f6..c9875a85bc9a1401a1b12e31e03713e73c28f6c6 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 799a71dc029774dd0ad83801dbd3cbbf01fb19b0..e57a954536b89573dd4cba272b54cf7e0d0e96c3 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 fee7725a3d6c3e5ae385cbf6362239b555382e4e..19ed2185c502f6fe4fa3671295145fbb6143c866 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 495dc71c35f1e9de5b78fb7f699b194596ecd428..d9a3b5029309680e889f4bf7eed18aca7f3ceb5a 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 c83c7e40a1044b952cdbdb04ea12397fb68ffaae..e38e78dff527b6d8b6f69b76d3dc6740604332e5 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 ccef3dd7045cfde79950513d56bb0a69e77f1c1a..ac6c306a2e82db65c9ad48623452ef5b74bd452e 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 d937b17990f5aaa27453bcfad556793004587478..ea1fcb0dd0889c902f87fffff587aea8221fe0f6 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 44f4a33c1e6c7ac565532ef677a919e548e4f467..4e3ef963c55b287b52f10f418ad5cfe2ce459393 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 3e37617be203756e79399792d059302a63198c16..7756306ffd20b880cc70911db68f3c35f7ecb054 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 4e67371246efb5a2a34cf58fe35c5df36e200498..f028858efebbf758212df937352b3f6107ed83ec 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 865cee03158fd1039d4b36ac05516207da4ddfb6..f83d631fa611fb21ffdb1839d309d984a36d00eb 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 b1fc898d6c16efafcab30197f49d5179ee84f3da..3bbcb964adfa7eb6b0ab4ae4f01720e7eda00470 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 7f86de75e4d2a77bf82d2100dac37d43e754bf73..9444f9e169f03a050226a70c68fa8c075229a496 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 5f14b6407b5b542cd33997d260e48b3daeffc1bb..29cb4d0e8de705848a97567d3e357a26f4c6b7db 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 2122439560b99d8385b59b775e270d184bf415c3..2de616ecac550f3d9a88f4645391218187183e93 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 59532951038be9df5f708879244e74eb894b40ce..9bc5f8f473ad86f08ca18d665cb8bb6b1b3296fb 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 43c5ca762155fcc281894c832b667b01d1b21ec1..c4a5f85ae9af8d7a66d27e7fcb6949f894359e16 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 78bb7c9ed0f7bf1d85c18f87e49641a1f72fc44e..22f4aba4dc8005d0a909b56f6306df249c36dfd4 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 d1c51fba7e1f620381cf4771e96d582e3e2e311a..95978d48ed8103981a1bfe2267dfd6ed68017682 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 e8ec62f3d8497006272f30eb61eeae1c042e8a51..36893da96e0cdf91cc54063568cae34c3be119ea 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 7e58a354a19af0318695d805befb68fe9569762a..5aa3c9d5c9138c0d4884a6dd41202ea1c43633f9 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 2c573739a119775b43347dd110cd0ff637ae0f15..f1464a340c9f6ccd63a873e61cb3f90907c0d999 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 7ce8f579f71c0c0fafd5ca23c029577f7fdd1d3c..0cd4039c33b5fb44f72b3af64b14ad42e1c5fd2c 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 a2e5e2b2090d9131bfa8217f4f6d898c60c2b91b..597ea115bb6539140bbef6888b205ae46f741f87 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 c146a3ad803f433ff2eb2cf0c2845b34a17ebfcb..0335ffa77b1876b248ac5882e7e1203e8b2dc0a6 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 5ff1221480cfc3dc2985f9d332124622d611d96f..d9fd32e5229770dbfdd5b630a9d0f07ac1ce13db 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 3402dab758d51a3cfd17dc4e0475630a72c82605..85a9672d365a8cd627d6fc7b7cf637854e751bcd 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 0a1b536855bce72491480b3090e8b30d5523cf15..d7105a31fbecde59fd02d785b0aa845c47ccc4fd 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 fb23578b46523caa4121da3ff13a6f9aa9f54b0a..31072008bb74bc8ab448022c1e2758414350534e 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 82d0b0cde68f30199e059e584e46cc40cbf67162..4eed6d62d4127433db7deb8dbda9590e6c20b4f7 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 33f3a8e3be51cb8b83194e52f874027d168dafd6..f2700f775ce5e62d567ae520f73faa25a246ebd4 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 30ae4c9263545d8633cf1153b18b5c7f8ff408ee..ebee2eae32718558bb9f9b45338a4fa60f9c8222 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 2a7fd45d7b2faa1c3a6d265c05823ea33182985d..e7b7bc854cba7daf163e0646ed28c50e15389a62 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 c295b225c0d32508ab01bd0545604323a3481654..67207165a3d59a1125146bfb26e8a034663814a8 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 7c50562dd8fc905e75efcf11a28d4842d4efa343..da2131fa5a08cfda7384b6f37fb01b5b20d7729e 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 b14884baa06be97b990c09926a9f56e58dbf49b9..3ea5d9b8406ca0c6185baf61affa534f2678e35e 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 c9ac1a2b72e88429590f8f5bed8ecbb34149d68e..53dda9333974be65106080d762de3d269a22142e 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 e42ef00874e489581d6de5c0c5b7ae5ea7b93355..06560bc233e541ce4cf23e509305e069c80cd868 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 8d73855cc6d1748f9ca1171c7a8ce5275fb66bf4..157a1b603a07c9f50f7ffc7eeb171c3cc04e0bfe 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 308c520f9a82d5e80299109b1873a41a04a5db05..220d65a5c0cb50aa6547f368f2ec3a1c3d4f0845 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 b21e0550b41151a9c713d12db4669bec7726dbea..e0af96fbbce30ed64f4491a70d4df960c795715c 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 a15731da817b720d174b982449be489ff4bbd0a2..3e87941544b45b7088447d515399e338a295b364 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 7da8e6009f8ecb6d2fed77eb3e47415f1fc4b53e..be0b4682258be23b7f26408e226c420da711958f 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 c61543413a3286aee37abb1ea46207f325525446..7c9acfa6198854dea90d1864b32959b2d4278aaf 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 f5db382adc42f1df20870c83e96b4acd0632a578..5b92ccb49917da69afe0960a9672cbaeb662efc3 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 72ae19eed33353f4248e851e5c20c46869446823..2d4e660d3cb8a607d542407acf9dfddf18796149 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 91072a57efef29c4ea0fd38149b349b352869bce..5587a2fde587fabfd124c0ac37873c126368f805 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 19a0ead56be7a894f23845aa1b6883dd81c6729b..920b0402b515bead10f13c61a84b4458e4bdd7c0 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 645d42fff4f5b35abc4f6ff3da002c701faa140f..b40bf0abf2f9a155ebb576d66cbdfe339d8c6697 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 4188756d07a09590dd4e2c5a87bbda4226c784c3..1ef3d72d8ba56407c25daaefa9f7727d3087bd7b 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 58a4580129de90be2a1e3e7dc705422f7215b377..8defed6bb1b5511293a047e00e70a05aa7c279d8 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 2b57a169838b5605af44cc728a0964c8271ca57f..ea6fbf86c2cd86a62df5485ff66a68fa4f77d378 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 df76240217cf65c345dcce23a7da386513e1a1fc..47c44bb2076562ef9f8850433f672c6feb10cd0e 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 1d43b6fa809274216b0699f4ec3ef9b728c474b4..afaf5b9a11e3662b0dbfaab753d0419baf0552b5 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 988bd4824500b211ed8e66d99f4cee3c6774343c..ead0f96cc2dfc7a93c9a21cd8e93645910551b1d 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 da8ea94df9c8f4a727417da5838da40b06dc0ba0..b63bccda1b2b3c55fea4cd19ce8f8fe080c5f561 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 0db58a13412c1440fa325cedb0c2895af6d5ebd6..0c08218ee453c1470c6d4673aef2736aeb69641d 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 67765a5d2817541669204053868269164e3faf32..4f60bd0726696c5f9e504ce9e2d8c0a70a5f110c 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 4a1737effff8e4026b2ed5a001838ff045666b89..b972387bccbd2472ae9c9886a1a3a392703de796 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 0000000000000000000000000000000000000000..00826b51d4a984a2b826836d34d2afa0ce675a87
--- /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 0000000000000000000000000000000000000000..f3770c8da8ba6c7f1282fb44427a3788e0fafbf8
--- /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 0000000000000000000000000000000000000000..240fd3e682f21cba17fcdd50d48bb94d7b7bd5a6
--- /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 f0c7c0c8ad25151cfb4caf9ba86c63451f0be08a..26585dc3292f47a39577eb3c961d8656d01115c0 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 20bab99b13c7ba0ed13ac66c6c67ef2119099903..e9d60f31f7ae9dc26299d786e4d9879bce34bfe5 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 d76ad2fe633dc457e78f66c3e845e889da71fb90..0d1c39060ba9d5fa38b83f83820f7f5eeda1dafa 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 0000000000000000000000000000000000000000..de88520019eb272aba5b61f56a72b8737c9b7e3b
--- /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 0000000000000000000000000000000000000000..a4ff0850b91075f27e068b7607eedb7d59447c04
--- /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 f4afb600b03aecdeecb74c696c0018b1f7d54877..199bf83f7936c09b101de33d7c13020022c44ddd 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 364528991c28f03f436d7fc767597c3cbac744d5..284b29f59545a3af5ec5dc8b0e4e24e0d05aa790 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 0485ee9a7b5a2e7fe6ebab182fe00dbde6e8a2cc..cdb1d6017acf620d655a58f4188edd59f8ff060b 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 0cbecade13f71b2866eb4a3d1bf151385ebb1d81..b38cbd24ca6f6465ab6a5b733d3880d056c061ae 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 fe76ea03958bdad998a78b1ba386dda603dbfde8..5be6366383a79aadc740474b26adc350b76d5219 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 cc37d83e825c6a3dee1d893c8f7a5a35d5c1ddc5..8e35633ce727b893ec142526d2cb1afe7d01cd12 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 24d5891442811569f09c70c8434ca729a17f1892..40cb419a2f5a3ac818db48a9dd8b7273770b3c5b 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 8523c2011868534cdc0acfa1479e3a2841666768..feeb34fed85108831014d991aa3687dfb7666849 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 099697e0d5a115db854f43fc0f0cc248e7da8274..f29f144f8e9706f3c6d4bd6a01e1122814048650 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 6c1337b5ba9fd8d9f99d111ca8460f71684a88d8..6fd25be0dc5ada9999f5bbf30a7dd46b3edbd1fd 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 e8c3445bfe5d3e19550d3cefdef00e82dbf361fd..c429272c3fd3a4c70467d25aa327b32c1b83d055 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 9f5cd8bfbdf2503941cab46bc0c392315ce72c6b..c6d05bbcb59598c878603806def4d481ab1b1c14 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 07fe5e1b56a7d92f96d003274cf678eee4b2ae16..e3afff69c361055e4314619ff83d82a79dac3ff5 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 f0fbbd687e46c8e2ed901a51571ef692b035e96c..9d22c745e942e68ca5f651b3ecc0bb620451a5e7 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 7352b0ac2207aba864bb9436cd36863edc1b974e..a776233b76a784c9e2818ef68e0d87d39902de6b 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 59075f2a904cbfc31723c9386c6dc5e0598e33c6..0b1d9efa568fd1415239f3df43e536d146dc31bc 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 a7ad921015e16991634613ee5bec3d8c4be71760..d1bde41808d9a1b2a8b0abf25792e4a5e6af9f59 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 84f4cede36a734853f80911f3136c184fba3b815..d033cbdb8039c959c03a14abcdf2c38716c24e04 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 aa369eed52fb5a78e71e3435c814e31407c8d6be..a051428955970ecc54b1518a678be96f25e32089 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 1baf5d9f35776fc00767e3cfbeb66c540de70556..009e88d826e74359280d52f2462eabf1c6f3ee4c 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 1243920aa761f7ec22f338878aec97a1974148ec..c626cd18a27d7f701199cdaa603ef49cac9fa4a7 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 bfb57da609b0600326c85153db78f7221544f3fc..0b2d53cb27560171d44c445a17a49f8ab374d6f6 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 d7ebbdd655e511940ea7a59cc60e2dacee23e998..0b8f287769c43f1b37eb58e0f7021d7e4822de6e 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 8a1b2a0ee3cc4d93de1341369ce6b185f7cb2033..37283deff90946f4e85da9c2ba9beb0a4f1d02f8 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 9092116cb6314de3edc7ce0f412f92a2c89ccfb3..08fb70f8b2c5cb1eb9a06942410d801243146572 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 2ab010390c62e32e4ae8a75820b041b8c915c882..a21a0030856bcbe2af6059e60a30ee549fd1449f 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 dba722c2803927f86db8622dabfbbc66ce86d734..610ea24a382a5e9001bf56a765bae972ad35b4b4 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 1133380629c80b5e933cbc774ffcf33ff39efc88..a19c7dfdcbfe20f7fd4661a6a7ecb7b6252249bf 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 0d855770c63c910f741112edac05734c3de5cd4f..065a43fc3b50521c8940cbcc124a94940ccb3710 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 6c90ec4af996211fca3e3fdbb0d3fa7608d79c11..ba96969e48da29e632d118d5fa753d01c00c5502 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 ccf271bd9cf2433f31439bc387052fcb8182e181..807482cb2e265e4999f137636bb73fc0f981040b 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 84c32df9a85d258442a999a9d396d15a14febd5b..688005175ee390643d67e40c28b17e61bb7686a7 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 28bb64ae550ad5af3db42a9e3f933c0261313ec0..85c344da9a23da69c7ec072a5b6e94ac956c6321 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 d08bd7d90e39cc5d03dfa856e07c30e46ed44486..380a507615fa155959acbdd7f81592473c47b9b9 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 eb3796723e5131636522211d56b9592aefb9331c..f75665a53d7d739b864e5e50f567bd0cca83dc4b 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 b84faf2c44d08b637af9dd113b83fc49ba0410c1..15a561f24a21f512ed7bdbc362d30b9d6f5e5058 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 a88b04786081beb787d872b6407bf1df6706ce34..4cdffce6c27005e02f612279294ca0bae2363f84 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 cc0f60ab4cb584d7b41b0e2bbd61d95608862442..3187a5c1deaa9a640e4d31058023ace6fb17684a 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 d122b64b37b26037108a3be67ddc67aa2f797b55..582e6a437a0f8fd6becc4d4b8ed9ffca9b5dba50 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 2911c0615b8ae65c5af5b8da5a88c18c2b9d0967..9d239af821e507917064c301f137c3a4aac243da 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 26752ad7d60de1de0770cf0ba9e70f444e2b4541..588e2ce1096975d1cd18dcb3f38ad0ec7cc778ec 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 b251fa13a6f5b500f84c6ab422ce2889c7ce1be5..2bffb7460b90ffd54590a581e05525ddda72c9bd 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 3c8d523aa4c72f310bc3bde5b0df6d4b3459a4cb..2a929b75b0e242938bea25c1de93ca9bd48a64b8 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 7dcdb88422f150e720bee12425bd095cd30a5d6d..abf7c3f4eb35fe67f4ffdc32ca6d26fb8e99030f 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 9eebaf903e21672723f23cab5468e432c88eb1e1..006a877030c8e5d25a0640104c9f9e2776442d8e 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 392023bc56ec8ddcc6ffc4ef2c0e5358dad77294..1c9dd84de907b3fb23f4a0741671cdaad3106a91 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 2ec734c6ca03abd673cb35e5bb8326d2dafb50f5..f5b6829055b48134291cba81d9735ce361f9f007 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 038b92e1a31c4074deefc9178ee3f12a5d54d262..447829c4d8ca38e154a9f5b6cf11531a75267bbc 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 70f3c2129bd56f2df678e1003f31cbf0277ac598..b91d83867353d00501d25914342da2d01a446303 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 ab86c70a46e20375bb54ed4602b2b254cb66e002..b16bf8eeff7d51a014c0fed8952130b16d32b38b 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 d734f9cea1044f3dd95b50b14717dc0717c0bedf..30d908df6623a3d2bb72e1afaa2f49e9f146521e 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 93925006ebbea6539e92b7b55d0c5f02c7bf59ed..4cff88442f2da4b96146e0a8b0969fd083defa7e 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 a36dde074f3deca522a23b14d12ffa4b42227d4a..5bcd6b3a25566ba66006eb3d5cccaa9838058f76 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 ecdc492235d7c8dc8dd1341eb9e6d29c38ca10bb..8a5a9c7e6ac830ea20635e3ceae9ce22741c30cd 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 4892c1d02f6498072af6cf7f66b5508b13b98c40..33fce8028e911bae3011cbf3fdfa1a64c5d1c3b7 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 98ee3f27a0a420734b4d5f6cf5394d650140075e..d5f1f6a52be35fc73900ff90d4aa851c45ef15f3 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 33dfd099dc4824209fe6fc69b928aff27a796e36..0080b67517c3b2af56db2b61eb19938570933836 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 8d16448fe33a73c71eb66e5df09bc6975b4946f8..26341104e3c5430f0dcd41c65e1c68033c680dce 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 6862ad9b4496880a439e0949fbc8590ab65ee56a..bc38a589cd288b36ae499954f57bda9599adb419 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 9114b83b6cb504d7dc5e7ca3c58f0799334c3dcc..3b3ae0a14b100565109089309684c00781478a49 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 8d4bad34abc1264de59637babca4065eb2db147b..a9204775b0be439e1fd58f3ba767391e3db9f841 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 1306cddfad0a6585471ffea16b3a95a16e577483..c1cb97ee9b3501c22e0858778036cf7fb5fcc2c7 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 0000000000000000000000000000000000000000..7cb58c379c61e7c4a8e62c965c8d006a09589d92
--- /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 0000000000000000000000000000000000000000..fdb254569f5760326ede832f01a3c3c6b0c1aa12
--- /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 0000000000000000000000000000000000000000..86657172678cfb34da40472a1b77d5622e09482a
--- /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 0000000000000000000000000000000000000000..034d9334202ddb94c381eff1da51426b0a0fdb96
--- /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 0000000000000000000000000000000000000000..5f3f4e621b295c89f62ff90a2ac46ffc063c8dd3
--- /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 0000000000000000000000000000000000000000..cfd3fa558b9ef36f443c5433c8f2848744031bed
--- /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 0000000000000000000000000000000000000000..abee982e879d0aee75e012abaaa61533873af5fe
--- /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 0000000000000000000000000000000000000000..b138b9686133e0043f159cf1710814ef59f9efeb
--- /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 0000000000000000000000000000000000000000..c272b734a88fb63b3b61b96d363460b8424474cc
--- /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 e0c46aad6d6531760942f176fd51e7a35758a0ee..f83b58157e448b2bf7894e218112d82dd46ff11d 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 ceee9ef1dc67805315f25e49f64885e5c3d5ea6c..e11e05e3a148a8e225cc182847d4199be429337a 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 e93be55e04b7442ba5a44bedb74036352d04c693..c643900f04b9bf3ed1f73b9dc33a796a9d9795f7 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 b08f1191216421f9c259fd4e15447ae9ca77cd01..f70cc1d323ac485906369614341eae89ec61e4bb 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 a5680f1c03f7ae1859a5e25f32fcae1d4c38f0c4..ec7257cf7c323c70f5f4b5690d44648ef13f23a2 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 96478900d05c0c4538ab33038d08713781574ed5..e13a7b92e54824332af0992e5330f3e2738ff22f 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 daca9cda6dd7528095edd1511c788fe966b39557..ef9d65b1bb7f17c8630bc37c06a981b1635a53ac 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 30c1f69eed69c53c2533ac7afb59a737c5b45cc8..8f8f8a129386c4b7df45986042f728dab9518b8e 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 8af2632ec3db9ecf86cabd3c91be572185dc76e0..46ecda7fd55ccb4adc137c629feee4bdd41471e6 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 06c95fa94e27372c9777e93530eb64c60dc90e95..3c6f724953c9d8c4d63ef97c3952ecf33ff169d2 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 e6eb9a1ceb4abec585bc095c138113c67d9b346d..1b1c0351b24741f999121d75c5e3f921b5d1e959 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 07c4149c8728892f09939ad461bdfbf5c9c4666b..dcf0b8865d6ecf0cb13cc15353eef15aba57bf21 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 823d1626bc8018693368ec1dd45c1d6e18bd8213..cd8f6bb8cc810630f2ff80de4c941337eb91651a 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 1127d4d0b94739f74e028447656e0370dda7bd4d..f0770b7c9fc90875d938d1ac02617f6f604633c4 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 6fa9f9c6f537ab99fa3df892027d3a74fe333199..88813ea57ceccfe816c2ba21c9b48e9e5cae778a 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 d3eeb95f0870316d1feb4d61265a108c3daa617f..ae12368122f94b4df5e764ceaf6130f16b03a5f6 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 8addb18bccd754936b6391d8801141cba39bb170..75e797c8ea28e6d916bc5ca0fd2a7d48a1c14b33 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 c874dd8d7fb863b3f686f771a31049520a2ccc6b..962f7303e38482349bce45f0990950ab1a023c16 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 9470569805fcfa2e2956f896e8e0edc6226b5f68..0ec703f0cc5fb0a9582edb771dd8c9fe943dfee5 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 0bcc773ac033f0de95aab3a7984c78f56d478f48..9d7feed28c2bad3b2a1fde4927be6669511fa3ff 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 e9a23193759b0889b48ea7f3550524bd5af7c3c2..a138d369967ae23e28a89b9eeaf3e6612c813905 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 477e3b0b30872c5d948e55ddff5079d3fd89e4e3..441fd203507653d24657898626b86f7ae28dc55f 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 d87794624569cb2256be5238c13b324131cc248a..01c9bbde18ba89e7dd954cf475340789de948b66 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 3cba79789bcd0a8a19787023330d1c0d5d984384..cf6bc46a4e14d0fd7c105be315c739639706b0b8 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 fb88956d4b780baaf2ae510a9a8b474077d200aa..33394489b277bca9694b59b7fc85de3966dfec5b 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 fb298a1767347e6dd722ecf6eeeedda1c4c7bb89..82e825584848ac2521064b9f4efd94e2acea1b22 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 cfcba27eb76e71b4a2383f30bd718ce1b4766fbe..a1a9202a43b2bc9f8cfc168cd8b1d7b26b2ec3c5 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 b625aabd379901173b61a6d60ba7bbbd9f612b6c..9026a44b931c82ebd3e2b6864c0670c396a997a7 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 7fc2d27c409e861b44488e5e81d3885ee82ae926..ebbaa2d3e205d36f0050c81bc9ebf04ed73a3cce 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 1445680bff6d1c697d593e286d5926482dbb169b..e8d1807424667f6699b2c96d6d57fd899b7fc8b9 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 ece89b6c842960dc6b49b75652f8bbf7d3aa7faf..0d70453fe9af1de801dad439f4bb4645ac44a1de 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 1ef69c9d5277f74c9569eae528ecd5666f87c2cd..9db1dbd314955acde8c54e0d8967ee5f8be8bf6f 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 b6f4890b265754b0cb742144ac0f0c00fbba14d2..adb618abd11836748caa345edd353518b81077dc 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 cc413e7f4e3fbe53b1a862302a19ecbad3d71b1b..49cd1afd12cd3c8f6d4f74ba3d9a2ffe5caa9ea9 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 eb7f3dd619f8a17be22482497236495ab1f2d972..cb45b0df94ce59db673626a4c192cbc1313db996 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 d1c99acc86756a9127a8419a6d180630113dc9c0..b5f5c2ec29b99497d1a0389abeb15fd9356618a1 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 b030d49a50392a2f416657dd1cd8c636cebf6736..27513793130903143824fcab3408aab670bd33df 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 f779a8fe159df946d1192766553951accc686a33..4f59d1f3ee3098fee724ddf02992039b35fbf1eb 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 3748222a75f5362b42dfa0985f85f98b36e58b7b..42576ec4cd4e2ba331042ea69c9a3a99b0dd28a8 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 26bd4c252260539e41666fde4dab071524814029..7ff2c831d7f14d5df9a425341a50bbadf0c82d25 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 e29736326b51a025b3d7ad77cea6d7095e6643a4..d2fb198824d2a3a174203b8fe0eaca66e07ffded 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 f769504fd2ba3963123ed22dca2f4d5eb8ccb751..5bfac57c23d560b449b80cf41dadda3add9d41ec 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 82371bb68d0aab84f0f7e70caaccd2bcebe01758..4344fa5a888c78829a4e51b09d557a589246d30c 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 fcf2e86ddbeaa5fce350fbd90055153ebd2852fa..0b6b6cef4bd0c3971cb39ccffc29298e85db2ffa 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 52e548491f41aedf132817b9eb62e1aee43b16d3..2acf7ad4f943abf51fb7a2abf829507d8620cd3f 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 bcf498baad58ec48f7a9257fd986124907c4abc7..a10755d93ad300b1f482e309a0f591fe0c027548 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 88f4a6ed59ae18c121383a45703a0c5c18a94479..f767dedea78cc8106349d1ab680192ab53b6fc57 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 84dcb7aedc927ff705b3cb23db7b50cd3b279453..6c5a6df37b4e5dae565d7a985f9163734ed46435 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 9ba43a8e0afe363036b9c28c4e3897619d5e8211..faa4d9a8b83218669a439ea4371b85ca15509bfa 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 d07716eb7dc2fa2b7ca8066c9e7f763d3a3407f6..55539fd8591b4601d0e0cfd1048ff533711ed2bb 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 3ae2000b6753f84cf577d1a010eed4b8dbb48687..b72359e5c14e12a1d9aeac14cc7fced2ef149c99 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 426111b7e3486fe10e85d0216ecf87b23dd3bf6d..a7c7e5312b75913df0ab4b76f5b133688142876f 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 fb0fbae826ad590dac3fe1d5e99cb6d612468449..40630f0138bead0502f4fc3d9c381e25235f91be 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 3fc889a28b89acb42ca429598d0118e6572da523..b6a733f76c04997bcb0b2ffd8bf745c1ea05f883 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 40a29b30ef51f715d79265aee5cf5ca73dcba415..3f419575c41777530d1a6eff80b8d639b55cff6c 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 30664bbb1f2ebec3dcfda293778df10f7f319c74..46b1bccdcd3cc66ec6db55c5863e3a10e29fc1ee 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 534ec07f6446540455f5016c3ac6f379f61a8509..9dcf32afd7e180bbc9d1c78b7aa6665f2bc36d01 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 2b57a169838b5605af44cc728a0964c8271ca57f..ea6fbf86c2cd86a62df5485ff66a68fa4f77d378 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 df76240217cf65c345dcce23a7da386513e1a1fc..47c44bb2076562ef9f8850433f672c6feb10cd0e 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 1d43b6fa809274216b0699f4ec3ef9b728c474b4..afaf5b9a11e3662b0dbfaab753d0419baf0552b5 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 988bd4824500b211ed8e66d99f4cee3c6774343c..ead0f96cc2dfc7a93c9a21cd8e93645910551b1d 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 da8ea94df9c8f4a727417da5838da40b06dc0ba0..b63bccda1b2b3c55fea4cd19ce8f8fe080c5f561 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 85d53f1a070fd9b01e069e695cbdaed05daad1dd..50dff6f08b18a1dba85095df0bf8bbabdad58709 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 0000000000000000000000000000000000000000..4df8c22899581650adeb562e86a92204f3b6a9ae
--- /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 0000000000000000000000000000000000000000..e7b145ca088c4ff7c3e603948c045374c7d2907f
--- /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 b6ae4a648247aa1331bbc30c6fb24def072f14cc..f2fde9131bfc4cba70761bc3c06baaf685695b6e 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 053208333932dbf0ca978a79fe2cc33835a98557..1f8dc87ffa0b75a7e63d4e636a95b4a82256c5c3 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 011b9887d26a9616c75f3576ce518d20fc0b600c..41283a4fd78d5f146624319de12f6e1a28eebf89 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 da16123a449949c148de06385b1bb5edbba86548..8ccb01a5aaa4e8bb0c86afafa94824d5622bf9e4 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 ba3052c5ce85038f527261af20b7fc01b6b2ed3f..5424dab4d851770de9766780b3106aee4363d40c 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 52268badc9565752badd098dfbd80871d03c9ae6..d8be51dd3782c8ab8976f873c7816c4362c18f6f 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 21eb94e5af1a538ed54b64ed96112d0d51866e58..e36cabacd135871ab5c59f8c3fa465aa70789115 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 27c91bddfa88607aad86988ab07dfc7490de4820..964e00f7e2c111b1414e93542f90c1bd0f41e938 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 aaa7e04d316b650004c6cbd8b3e4d7ece6873313..9db5b0239d7873c208b2d0f96e6f4e0c437fec7d 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 5919cafd45b2e55f911cfe06f8df47859e55674a..5507bf77e5dbbebbdd95f0b9c66fa62d2763ec4f 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 a58295916177a90fb4a55cba1e83747c8f01d509..1f52b336af8839d3a16d1ce051c907b8a9c986b0 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 271cfcb17e6aaf223a3e2c4ea6af33a37c14afbc..2e8384fbe5727f2098927e66d1c3f91507634470 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 8af1138d175da460dc8305b00ece321fab32a347..c7da8200c657b495cefb49c62a0198d2298133e9 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 12659310b2477d0b42c12ec28f01d32e5fa4911d..0655926f1d8db10e0a9f7d9a0bd1b8cf92476520 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 7eebb8f7673e0fdf902269ff3600d11d553f115f..932d573320b20276297ee2c3b67d5d55d0e72b96 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 0900e4f402328aa49a9a7058f1717a423a4c3078..4c33aa42a3994886e28948517c3fb3dd87124571 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 c80c3b2fcb1456214f25c25a6e5dc813df53c29e..eed58af1a2c955851b59ca1ebc9c7e9b5b442841 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 8728b9699d5c158fbf1120b95cd9a17306eed73e..ec00b1c197259d3caa0adfbf0cb80e93ccc15172 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 4142c09f5f29d2cd0658e5fa709163d5cbafa5e0..6f012aad452befa4041ceb6c6ee849a0e0a855a6 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 1b28817187123b74004874bbe32ec7336e982344..999d3b640f0f64d44c63cf085fa14c5574b9f9c2 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 e7f5fc99ae15f6345838c878fffd42cf980b6fe3..3cfc20ebce0966201a3127a590714a7956c62774 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 a9d9c15299d667d2061ed0c258c1c1ab035d9ac6..98735491339663f2efe6c02643579e9309ea7e8d 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 c9abfb95e4fa16a6b30ddd9ca604a10182d31de5..8060d5c665ed760ee051fbf47264c02f0d483f43 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 9f353de6830d8363e77479224e2f29ac68718383..6d15530059367f5525244bb43ebe7e6c03c259ad 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 fdc797a0b3c12e06f194d17e5753b458f569180f..159faff29a0f880c89f6c2658dd9336a69731d61 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 c3fc75de8fae26c2d447fabbaf3908b1d0eed713..a3bcffd6de42649bc6ba4a2167689f7056163bda 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 b43f6dac4e773c8dff55470885958582aaafe02f..3f120cd50adffdfec99494db7c0219760909d633 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 446ccd6565a07d950c90ab6ee420b29d58ae0836..ac552deb83f513d161f94e403803c1766784a87b 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 77ad4b498231ea4f9dc5ae278c026505d31ee084..8642eee12b89a8a32ff4e172b88dc49ccdcb1150 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 dea76e81d4ff7232960e60707b861a1bf8a7c1e8..88c10c4c361de981209f1e4e6183558d687c1572 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 d839e203d62588485752f2d3afd183811f871454..da35c28bd6cb95582b0dfa593372c71290feb67d 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 b46a5c259f0bab0595f63ae45a64e33ac0cbe145..616653c436805478f7eb48f5475968ca8fc4b7f8 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 701d67048906a7a7e08a1474762b965979dd99f3..3f612d948d58cf4b1b4431aeb0a20942acbfc938 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 2167c265416568956456e0abe0c8c856a5fbd030..3da757c02daa0e00da2a1ba97339b9d8f0ec5792 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 716ce2d4b49620c7c735223fc44248a74de576bd..0cce095a3c7887893e7e5bbaee4a78c3bb645ca6 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 d1189fdf7030ad0f4b1b0ef0670cbc4573dab279..86c803cad6e3032b8139d55d73e68f2166546630 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 c0b40fc2151ba36d2576fb215d6da5538d0097d6..a6b8c69268892f80191078c49cbc08079bf90485 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 6487ec6915b3bbe12589d85ce56485415cd4835e..dfae3f4af058a20385df1a9b2e11dcccca0ca474 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 e63282cb74bbe53198d435576c92597844fb327d..2bfd3228c9bcd92d585a2e5f9ed89213b2844843 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 25d4674acf1489aa6f7cd14318f7fbf11a81aa9d..2bbfba824a821bed9fe3157ff085ef70aa8c9893 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 03db4b8d6ba42c271964324ee2da48e7f93a3f77..f8584aebfbeb3e34bf44e696b979aa454df59a75 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 b502124647bfd970c62774a66a0dcb6c26657cde..14618fef7d8c8bcb4b4c7039a06ce67009ea9b44 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 a60fbd23f5920a22bac648ab14536e8e0a74be9e..8a8c5c645f42e05abb64c241877532a712bbbaeb 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 4dd5799f214b0c4ba7cd812649e80b928e45c405..3091f354dd966cd04ed16dbcf06ee14dd8078d3e 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 be8378b6566e15042928025627467d7e5165df7f..b80ce075877e0226bc68f25b25f735c029c93f42 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 a1231d53cfa38acd60868f918f12f558e7f04845..47cbdb505efcc7f06eab110b6a2d80339575382c 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 caa0398d9247e6e76521ea60c564521fdd17471c..75e44be3b3e5fcba25b018fdc5b1c628ce7fbbfa 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 7d63c6fa592afd0d99213d433cf5cda9e632ff1b..014c36d724baae8e9e8d139ce160208cb6f176b6 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 2ce96db11f530a5ee686ba8c6d75777d85f8b66f..14250509d0044fe76f75854a03ee37dd6c6922bd 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 f02cce1b6cdc3492e5703ccca2c9e351723f14cc..3fbb699164f508786ee0506e9c04a54bc684ef25 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 6f3c119d66a3d40501b26e53633e94b1f1ef051d..5b09ffc681c6f2dff5815297cae8aff742b8001a 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 d538948d14beb388b1916dd5ee9eb26bf288f374..d472daaa2637409050a1cfa299166a58173e85db 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 7c42d66fff42c2d416451ceaf01710e56ef3c2ff..d157545d038ed2c978aa8aabe8a36ce78f71b0b4 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 40e1c59e67481b7c1ea7518dc51bdcb64b29fddc..f7ce950a6135f809bb4a22f4fa718fe9b20fac2d 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 1497ea1b857c7e14c9884ad55affa6040810f6e5..66f724ed5c24bb3a286676ff1deabccdedc9864a 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 320ed920919080a748b38a62dfe20130e350b8d1..ace4b20cd6e3ad82d00ee22904a65c10551ddc02 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 b71cad8a7f245d8e1d742c11a4455d89a47a1480..f84fa635d0e6be3b7adb1af085df30e219bf75cd 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 f527fd8aed20226a5e2de7f94538a6a07527d9ac..d12e0d192cfd48eac42fa433064cb5d0ea644d53 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 a26d32df1e7e1217f1a8a4ef024ac0c754d76f64..61fa982091d1528af633498b66ea8a3ba171240c 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 63beafccfc19e3ae55a5e289e4869b23451a2034..6f955420b7dc9865fa66c80031270c6e1364e1a2 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 879db8831d5b8c2ab76c125b67a67f070ca5347e..9664a8f5b83927d7322b708f97821bb87414c54b 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 a71680b3367e5774814aa6c4d42a0e65f1f77ca9..9ae178405a9d27d413c09a7b9cf16a24c910ddf0 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 e3dc8ccd779c2b0bb3b6349959e5a78752945e20..c2213da16dd4a240d665a3f0a1ec713ccbc84e8d 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 ae3a144c68dfd26b1ad8bbb2177b2eaa48e119c2..ab2b47e0044680a02a33867f70fbdeaf818ab6cc 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 369f0228a8baf05cb0124996a847e9454702e711..96dc05c93c9cbb63b1a66d50d5c4cce2f0a8bb01 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 d47faf504c208950312edb846c95c346c756f2c1..3d86e2d31d68254fe198f21059e2bd0aed68bec8 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 46dfc6aca99d49fc5306a11e32b4b8f571ec7077..1a974ae5e607509cd3d46f45c66e0f286f9fd1d8 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 cde95f3ef63b8ab9f3a07ea936ffa0c4f0cb27c0..cf465ce10f036d299600a9f6398f40a3d2c39fce 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 bbac38169fff5104d2903ee15e97adb945be0bb3..6669b86c8708c66af507fe8ad5b24cdb6cedcd57 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 0ff09490c934c0597beb59c468b28f76c17afbb6..66f2461c075f07ad5507e72fed1a9bdf308ceb88 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 1edf1c0720316579673d3821f3835e690ed8ccbb..c7742abf48ff1247092e509c725041ae1dfd5544 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 4b1ba75750e3d0824880b989ed9b18246a85719b..ee70db12ab931d13e4d56e6274007765d451b3fc 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 379da391ac0ecf23eb8880169155cbeb1ecbc1db..bd65363f40fcd16e00ae05e0558e50a4f5b2abb1 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 8354a6a16152c457092015670091ca5800a6d5ba..a18a91321364620bf831cb539ea6b04352e4a5e0 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 9656b5da4f8cd4cb4af9507f09f843352a13e861..3dc296b4a256400d5343153ca9ec43ea18983648 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 394f66f7de5ececd7c6e96de0daf279f539dd677..a971f170341d7345a2b23b826fbf912f8726a6ca 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 c8c5cd1ca354073e60fd93fcc1e9b79ccae6680a..9330a63aae3da5a88560e975bf13554d4553b1d7 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 7e64ac2484a221c3708a45a2e6fdab977c62232a..d4dc5bc7ea0815a41bfced3f018338afe345bc16 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 eeea8f2392ec20d8e36d3f0e8de3947500a05cbe..90178e61d167bea128d52993491fa96495b8b08c 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 5878f0be3e40124eb98db4923139f6c73ebed394..7ef0a7c636618862dbc5eb39e243053978afd006 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 f96a93ddc366efa0aa930db3a7a0e23a0b1bd42a..37d1a2597b106a9a5b6d3245d875ff8b3325e8c9 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 381225aad4f0439a92244c65d94b62583b0b1e50..5d26af5d8f0f5e1048b8b054bbdf257a022ed291 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 0000000000000000000000000000000000000000..43e564b9c3d85eea01889418734c2abdd6335fed
--- /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 6a40350950cf7b2029729771c271661ce331126a..34a99f5f3c9a5fc3506c26f381eb90b56e739100 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 b8d4516757423c481ac929fdbee9fdbe8b506668..93eb4872fc508155860bc77d4c8da2c8a4b11e03 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 1fe72e4989b918c42c16d0ef35dd6738890839b8..5f9a647cb4bed9f5d211737e9cda1520b2245dbe 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 9631dbe5970215eaa426238d49fe7cad02565708..e3ca90c1c210bbbe297c0bfa9bb469a21b17d497 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 32c3f8ac7851af500e635ac3db54e020bf9462bb..46f9df37b9a0f396b7b2ac724406aefe7250166c 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 f69d293c42d1d246fc5903a05e12170806b8cf48..4d7efb51174089b2f4be7daee6c19f5bae1c9d45 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 be6cf63c09d717f930eb1e50d944350300241930..4274c80b0f0595c886f47798390dfc880393eb97 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 355942402824183ea59dafb16d52fb938c8eeb09..62bf95afbb51ce81898e5b13471fd3c201bfee22 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 d3e3e704501bf4c31b37489b1aeaebb77c53e8f8..27d2a3f4818008daf54d93fcd52fb1d8187eaed4 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 ba44d9fd54b41908a876c33fe5427ee0f6e82e26..bc16ea55ea30bb43f4c3ff6483e2a577deea8284 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 b861b599033b98cb52d4be5c1453ff2bd0cc7828..de37617c083d3a3dc88de8ad6c2d9acec2ed644e 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 767201112339a4ab4b7393384cebe1df24cca4c8..d88dc3a63054f37f115ba22f08022d236fedb22b 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 b426ca8262afeba771b91f1637327d10d668afa8..779cc1ee6b3d799017215e9070c9fd7c41c73547 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 b8e9f9e21cd95c301cf6b0bc38846b75ffeed54c..d01808ae6ac91c6df3ffeb97001b93ea802bc768 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 422496895a023abc470e90eeff8b561c30756b35..82d500a16f46b5a4df54967736e09a3d5cbd973e 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 4811a05c1db926a857499cbacd25f66e05ade962..e3c3b496fdb5ebffab35473cae327f5f6d2bd44c 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 45826bd65397092ae513e79cbc6cdf9c7a751ca6..d9b894aa0a2db21ed9f9d49bbb4586cee432aa5b 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 dde056b272a7d8b0444b9d8225564a6eb0dda24f..1cacb33a61f74d04f297a14510341f65edb95915 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
Binary files a/titan_executor_api/doc/Titan_Executor_API_User_Guide.doc and b/titan_executor_api/doc/Titan_Executor_API_User_Guide.doc differ
diff --git a/usrguide/Makefile b/usrguide/Makefile
index 00c44cc529d505b585acab59771ec5c99b70ad80..f7705f021828eca999ab181d9bf65004067965e9 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
Binary files a/usrguide/PRI.doc and /dev/null differ
diff --git a/usrguide/PRI.docx b/usrguide/PRI.docx
new file mode 100644
index 0000000000000000000000000000000000000000..cc75fcd8f6cbfd51fc82dbc50fe12205178af932
Binary files /dev/null and b/usrguide/PRI.docx differ
diff --git a/usrguide/apiguide.doc b/usrguide/apiguide.doc
index 0d52c28e306b8280cf08f1bdb59e80c2cfd13305..697b42e51e1aef9e0adf0b62153f885d38ff7728 100644
Binary files a/usrguide/apiguide.doc and b/usrguide/apiguide.doc differ
diff --git a/usrguide/installationguide.doc b/usrguide/installationguide.doc
index c554cf6f5874b559797f15fd698f372cf4dc6a38..097275b5d01b2a416a66ab2f1aa42e68e9db2874 100644
Binary files a/usrguide/installationguide.doc and b/usrguide/installationguide.doc differ
diff --git a/usrguide/pdfgen.sh b/usrguide/pdfgen.sh
index b6a1f585239e7128daae657ae66eb65ac0239481..b0f992526faffbeb08e33fde7cbdfbf69cb42c8f 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
Binary files a/usrguide/referenceguide.doc and b/usrguide/referenceguide.doc differ
diff --git a/usrguide/releasenotes.doc b/usrguide/releasenotes.doc
index e100f7a651d4265693a911833f0ff970b1daf5cb..a8e583d3506fb147d80f06c7512d1091080d0ee7 100644
Binary files a/usrguide/releasenotes.doc and b/usrguide/releasenotes.doc differ
diff --git a/usrguide/userguide.doc b/usrguide/userguide.doc
index 7588f021d967fb79e5b08c9c0784c5ceeea05f95..c329ef15705fe47031787ead346734086eda850c 100644
Binary files a/usrguide/userguide.doc and b/usrguide/userguide.doc differ
diff --git a/xsdconvert/Annotation.cc b/xsdconvert/Annotation.cc
index eb5f612e2e2e4da3692269c82dd85749e456cd09..66fe12babd704662aaee50048b3e084cb870a73b 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 3d1d6cb66e11ee6a3e0205e9a8ae61a854726027..f49aa5bec74473f548600255300bea0ffe98a5b9 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 0000000000000000000000000000000000000000..c1174dfff03e729f06400baa2941c75570cb884b
--- /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 0000000000000000000000000000000000000000..118eb6b9e6759d054c490574f6bafec0a7934a37
--- /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 9c3b26215908f0a92d2948ca1b25a01546a97778..9dfb32a1a312962971b62f49faac222ba3a888a3 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 1f99cc6d8c08f14dee9dd5b989486af8d5ed5c01..e310e32bc357bcfeecf50a0626d5839412b9208f 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 986fc6ce456733cbe013f6ca14e390775e2f1ca9..0000000000000000000000000000000000000000
--- 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 fd20506537c2f98f63a3d37e0b21232405b7a459..0000000000000000000000000000000000000000
--- 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 e2d8a5c9cceb7a7c6f018222ff56b18de05f7b8f..f4817a658eaf927aac2b757004bf2991426beabc 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 9ab3b74c996a715380d32e1633a8cd5a986800bf..ac98df6556d232cbf36d2f64e39a1417fa5e8477 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 1215e95d02e125dd25ed5c0fc0fbcd789e19f89b..c736ceca77ae83cbc8655c11686d73ba578e871f 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 43d4f53c9775fd58099e6cfd69fdb74afd816849..5ae9fb198f524e823542b666b41eee55b5a719b9 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 e4b231574aa6f7634ffec565208b3e5c64601a1d..829631892263c36544b455aac78ef36ffd227730 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 dd9510783d042a64d8e837f41fbe3b9252fac261..c52b197d5126fde594bf8212a7d4c36b338af6f6 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 4b128d9c157da1eb0ebda2ddd42c0a4fe96c590a..e77d3f2d4bd48d0e921ef9aa45d77685042c4f21 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 15e17defb0a00e5df66adb9aa54704fedfd741ed..4347eefff82a1e2259b0995414b0b91c9ae9259a 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 cef41557886eb40eb35c7d1d35f58e6a54b8b78d..dce732fa709f5e48f8493934ca4a65fa846608d3 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 c774ff6ced66b5033788267510198241e852d7ab..b7fa64afb3fe4542f2387c7df6ff9c65a86d5923 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 cee420c1b6b79848d14f26971f95411bd197107f..f80a19a2bc9eef58e55c27fc16903e9455c2190c 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 b2921b510c5d91d8ce9a85a7a2c109644bbfc5c8..16a5f1528861ad2f22cc557ec2dab65f25129221 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 16d80d04632ae4edb8b4287f72d561a9cdff8710..db39ef0bfe67a686d78b596aa7996f4e6acf0caf 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 0c204141177e101bf13ba6bc7a993bc37ef88297..c4ea1069f12120d5282db39ceb35d321bf784718 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 2b6ac71589591252568ee3a9ce9211f59cee3331..a0c2763898aebb1d0907dd30ce1ef032146de813 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 b932b933dbfa8794c7fa226069173bf45080f036..cfa0abacb0b9b9f0ca77a3ca8792ac9dbbc654ed 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 4bb0b2a335aba1c9df0d6adc03e154d22a19bac1..b4c63c91b9373193452f420d4194a4a7f642357f 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 e4c2aa1eb8db8806674307b1d9b950898fb3c858..26a7ff196ca0cf750deb04e9a71e78991f44c723 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 9a22d1de959c0e525a41404706d9b0812fc508b6..9b446a39e92507a803feb2ec2522936468bfc1e7 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 1a6a2e03fbde701d08fdefed0865e5700671add5..980062ee6d300043f13091f926723be7b40c7e09 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 862ada50a91d02127553c70bfe329d7cce89b2de..02bbc555de2187a6269b38d9ad733d863d59ce7b 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*) {
+}