diff --git a/compiler2/encdec.c b/compiler2/encdec.c
index eba7af45f986111b22aa80d5ed8d53baeac0472f..31d0ed6edb51fb7e184da9671fb6e6acee5511b2 100644
--- a/compiler2/encdec.c
+++ b/compiler2/encdec.c
@@ -35,9 +35,9 @@ void def_encdec(const char *p_classname,
   def=mputstr
     (def,
      "void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&,"
-     " TTCN_EncDec::coding_t, ...) const;\n"
+     " int, ...) const;\n"
      "void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&,"
-     " TTCN_EncDec::coding_t, ...);\n");
+     " int, ...);\n");
   if(ber)
     def=mputstr(def,
      "ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,"
@@ -93,10 +93,10 @@ void def_encdec(const char *p_classname,
 
   src=mputprintf(src,
      "void %s::encode(const TTCN_Typedescriptor_t& p_td,"
-     " TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const\n"
+     " TTCN_Buffer& p_buf, int p_coding, ...) const\n"
      "{\n"
      "  va_list pvar;\n"
-     "  va_start(pvar, (int)p_coding);\n"
+     "  va_start(pvar, p_coding);\n"
      "  switch(p_coding) {\n"
      "  case TTCN_EncDec::CT_BER: {\n"
      "    TTCN_EncDec_ErrorContext ec(\"While BER-encoding type"
@@ -173,10 +173,10 @@ void def_encdec(const char *p_classname,
      "// written by %s in " __FILE__ " at %d\n"
 #endif
      "void %s::decode(const TTCN_Typedescriptor_t& p_td,"
-     " TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)\n"
+     " TTCN_Buffer& p_buf, int p_coding, ...)\n"
      "{\n"
      "  va_list pvar;\n"
-     "  va_start(pvar, (int)p_coding);\n"
+     "  va_start(pvar, p_coding);\n"
      "  switch(p_coding) {\n"
      "  case TTCN_EncDec::CT_BER: {\n"
      "    TTCN_EncDec_ErrorContext ec(\"While BER-decoding type"
diff --git a/core/ASN_Any.cc b/core/ASN_Any.cc
index b17c77478654e65129751237e190f63f4d63ed7f..6668710c38bc4ab060f9a4a9f8b339dce8d08459 100644
--- a/core/ASN_Any.cc
+++ b/core/ASN_Any.cc
@@ -21,7 +21,7 @@
 
 void ASN_ANY::encode(const TTCN_Typedescriptor_t& p_td,
                      TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...) const
+                     int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -53,10 +53,10 @@ void ASN_ANY::encode(const TTCN_Typedescriptor_t& p_td,
 
 void ASN_ANY::decode(const TTCN_Typedescriptor_t& p_td,
                      TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...)
+                     int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/ASN_Any.hh b/core/ASN_Any.hh
index a233f5cb8b3815d6db38cfed82d83afe18d6c5a3..c187687924d893f44cc7772e5700217d478004e5 100644
--- a/core/ASN_Any.hh
+++ b/core/ASN_Any.hh
@@ -37,10 +37,10 @@ public:
 #endif
 
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...) const;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/ASN_CharacterString.cc b/core/ASN_CharacterString.cc
index 8a7542ad52ccc0dcb316b4ccb51ac83fa3bce5d7..da4586ede199b88051d1cd5569cbc31d2fc539f6 100644
--- a/core/ASN_CharacterString.cc
+++ b/core/ASN_CharacterString.cc
@@ -661,8 +661,8 @@ void CHARACTER_STRING_identification::decode_text(Text_Buf& text_buf)
 }
 
 /* not called
-void CHARACTER_STRING_identification::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-void CHARACTER_STRING_identification::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+void CHARACTER_STRING_identification::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
+void CHARACTER_STRING_identification::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 */
 
 ASN_BER_TLV_t *CHARACTER_STRING_identification::BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const
@@ -1741,8 +1741,8 @@ void CHARACTER_STRING_identification_syntaxes::decode_text(Text_Buf& text_buf)
 }
 
 /* not called
-void CHARACTER_STRING_identification_syntaxes::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-void CHARACTER_STRING_identification_syntaxes::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+void CHARACTER_STRING_identification_syntaxes::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
+void CHARACTER_STRING_identification_syntaxes::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 */
 
 ASN_BER_TLV_t* CHARACTER_STRING_identification_syntaxes::BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const
@@ -2473,8 +2473,8 @@ void CHARACTER_STRING_identification_context__negotiation::decode_text(Text_Buf&
 }
 
 /* not called
-void CHARACTER_STRING_identification_context__negotiation::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-void CHARACTER_STRING_identification_context__negotiation::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+void CHARACTER_STRING_identification_context__negotiation::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
+void CHARACTER_STRING_identification_context__negotiation::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 */
 
 ASN_BER_TLV_t* CHARACTER_STRING_identification_context__negotiation::BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const
@@ -3228,7 +3228,7 @@ void CHARACTER_STRING::decode_text(Text_Buf& text_buf)
   field_string__value.decode_text(text_buf);
 }
 
-void CHARACTER_STRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+void CHARACTER_STRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -3268,10 +3268,10 @@ void CHARACTER_STRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_
   va_end(pvar);
 }
 
-void CHARACTER_STRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+void CHARACTER_STRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/ASN_CharacterString.hh b/core/ASN_CharacterString.hh
index bcdbf46e652aede8556ad4a4f73593f8ce86bcce..2d507aa3d2f521fd771f7201a901b461cc76a189 100644
--- a/core/ASN_CharacterString.hh
+++ b/core/ASN_CharacterString.hh
@@ -94,8 +94,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t& p_td,
@@ -218,8 +218,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t& p_td,
@@ -327,8 +327,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t& p_td,
@@ -445,8 +445,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, unsigned int, int, embed_values_enc_struct_t*) const;
diff --git a/core/ASN_EmbeddedPDV.cc b/core/ASN_EmbeddedPDV.cc
index 4e8e7137d7362f8fd90b91f16eef12328b297f09..10f6a5d93c3e72a13578fed7bc50fc8da0986d9c 100644
--- a/core/ASN_EmbeddedPDV.cc
+++ b/core/ASN_EmbeddedPDV.cc
@@ -649,8 +649,8 @@ void EMBEDDED_PDV_identification::decode_text(Text_Buf& text_buf)
 }
 
 // No encode/decode for this implementation class
-//void EMBEDDED_PDV_identification::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-//void EMBEDDED_PDV_identification::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+//void EMBEDDED_PDV_identification::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
+//void EMBEDDED_PDV_identification::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 
 ASN_BER_TLV_t *EMBEDDED_PDV_identification::BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const
 {
@@ -1799,8 +1799,8 @@ void EMBEDDED_PDV_identification_syntaxes::decode_text(Text_Buf& text_buf)
 }
 
 // No encode/decode for this implementation class
-//void EMBEDDED_PDV_identification_syntaxes::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-//void EMBEDDED_PDV_identification_syntaxes::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+//void EMBEDDED_PDV_identification_syntaxes::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
+//void EMBEDDED_PDV_identification_syntaxes::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 
 ASN_BER_TLV_t* EMBEDDED_PDV_identification_syntaxes::BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const
 {
@@ -2552,8 +2552,8 @@ void EMBEDDED_PDV_identification_context__negotiation::decode_text(Text_Buf& tex
 }
 
 // No encode/decode for this implementation class
-//void EMBEDDED_PDV_identification_context__negotiation::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
-//void EMBEDDED_PDV_identification_context__negotiation::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+//void EMBEDDED_PDV_identification_context__negotiation::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
+//void EMBEDDED_PDV_identification_context__negotiation::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 
 
 ASN_BER_TLV_t* EMBEDDED_PDV_identification_context__negotiation::BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const
@@ -3327,7 +3327,7 @@ void EMBEDDED_PDV::decode_text(Text_Buf& text_buf)
   field_data__value.decode_text(text_buf);
 }
 
-void EMBEDDED_PDV::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+void EMBEDDED_PDV::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -3372,10 +3372,10 @@ void EMBEDDED_PDV::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
   va_end(pvar);
 }
 
-void EMBEDDED_PDV::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+void EMBEDDED_PDV::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/ASN_EmbeddedPDV.hh b/core/ASN_EmbeddedPDV.hh
index 27490936e30f67fed7dfbed005548627b86c9ea4..3aae96bc21b6b871a250f15dc1ea68a62c172e56 100644
--- a/core/ASN_EmbeddedPDV.hh
+++ b/core/ASN_EmbeddedPDV.hh
@@ -94,8 +94,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t& p_td,
@@ -220,8 +220,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, unsigned int, int, embed_values_enc_struct_t*) const;
@@ -329,8 +329,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  //void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  //void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, unsigned int, int, embed_values_enc_struct_t*) const;
@@ -444,8 +444,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t&, TTCN_Buffer&, unsigned int, unsigned int, int, embed_values_enc_struct_t*) const;
diff --git a/core/ASN_External.cc b/core/ASN_External.cc
index 048863f86d3e45a71e2a61eb6fd0746645d3d194..c5cbfe46d15250a311fa99636ea10c54bf975cdc 100644
--- a/core/ASN_External.cc
+++ b/core/ASN_External.cc
@@ -3542,7 +3542,7 @@ void EXTERNAL::decode_text(Text_Buf& text_buf)
   field_data__value.decode_text(text_buf);
 }
 
-void EXTERNAL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+void EXTERNAL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -3587,10 +3587,10 @@ void EXTERNAL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTC
   va_end(pvar);
 }
 
-void EXTERNAL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+void EXTERNAL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/ASN_External.hh b/core/ASN_External.hh
index 25488f132004a8a2f5eafa3fc4a581a3aab103f7..b7b855171ac8f157022e1905fe7ac85390a41fec 100644
--- a/core/ASN_External.hh
+++ b/core/ASN_External.hh
@@ -418,8 +418,8 @@ public:
   void set_param(Module_Param& param);
   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;
-  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+  void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const;
+  void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...);
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
   int XER_encode(const XERdescriptor_t& p_td,
diff --git a/core/ASN_Null.cc b/core/ASN_Null.cc
index 6891f810c3c4471d4cd654222b042a1af3260058..7eefdbf5a07d840676f787abef1b090816628f0b 100644
--- a/core/ASN_Null.cc
+++ b/core/ASN_Null.cc
@@ -121,7 +121,7 @@ void ASN_NULL::decode_text(Text_Buf&)
 }
 
 void ASN_NULL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                      TTCN_EncDec::coding_t p_coding, ...) const
+                      int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -163,10 +163,10 @@ void ASN_NULL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void ASN_NULL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                      TTCN_EncDec::coding_t p_coding, ...)
+                      int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/ASN_Null.hh b/core/ASN_Null.hh
index 1c9ad3d149a94c4691b3f42755d0c9509369cce2..fb16c7b2e856a758b51db561e44687e0acd2d3f5 100644
--- a/core/ASN_Null.hh
+++ b/core/ASN_Null.hh
@@ -72,10 +72,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Array.hh b/core/Array.hh
index 36ee340951f2a788b27b00f1b92a4e7f3fd198ea..5f09f6cfdde5c1d6638a3f552df9e4691b265998 100644
--- a/core/Array.hh
+++ b/core/Array.hh
@@ -984,8 +984,8 @@ public:
   void encode_text(Text_Buf& text_buf) const;
   void decode_text(Text_Buf& text_buf);
 
-  void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
-  void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+  void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
+  void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
   
   virtual const TTCN_Typedescriptor_t* get_elem_descr() const 
   { TTCN_error("Internal error: VALUE_ARRAY<>::get_elem_descr() called."); }
@@ -1314,7 +1314,7 @@ void VALUE_ARRAY<T_type,array_size,index_offset>::decode_text
 
 template <typename T_type, unsigned int array_size, int index_offset>
 void VALUE_ARRAY<T_type,array_size,index_offset>::encode(
-  const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+  const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -1335,7 +1335,7 @@ void VALUE_ARRAY<T_type,array_size,index_offset>::encode(
 
 template <typename T_type, unsigned int array_size, int index_offset>
 void VALUE_ARRAY<T_type,array_size,index_offset>::decode(
-  const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+  const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, int p_coding, ...)
 {
   switch(p_coding) {
   case TTCN_EncDec::CT_JSON: {
diff --git a/core/Basetype.cc b/core/Basetype.cc
index 84c1604bc3eb07e894ced6a05c8d46edd6eed52d..1c92d07505cea524cd2a330b537f091b1e4f1bc1 100644
--- a/core/Basetype.cc
+++ b/core/Basetype.cc
@@ -54,7 +54,7 @@ void Base_Type::log() const
 }
 
 void Base_Type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                       TTCN_EncDec::coding_t p_coding, ...) const
+                       int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -117,10 +117,10 @@ void Base_Type::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void Base_Type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                       TTCN_EncDec::coding_t p_coding, ...)
+                       int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Basetype.hh b/core/Basetype.hh
index ee6d9dfd5b89693b41eb8eb3678acd77baad61e7..add2b7acc505aa428e8044a81da5ceb5772d5c45 100644
--- a/core/Basetype.hh
+++ b/core/Basetype.hh
@@ -260,7 +260,7 @@ public:
 
   */
   VIRTUAL_IF_RUNTIME_2 void encode(const TTCN_Typedescriptor_t& p_td,
-    TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const;
+    TTCN_Buffer& p_buf, int p_coding, ...) const;
 
   /** @brief Decode an instance of this object
 
@@ -272,7 +272,7 @@ public:
 
   */
   VIRTUAL_IF_RUNTIME_2 void decode(const TTCN_Typedescriptor_t& p_td,
-    TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...);
+    TTCN_Buffer& p_buf, int p_coding, ...);
 
 protected:
   /** Check type descriptor for BER encoding
@@ -812,8 +812,8 @@ public:
 
   virtual void BER_decode_opentypes(TTCN_Type_list& p_typelist, unsigned L_form);
 
-  virtual void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
-  virtual void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+  virtual void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
+  virtual void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
 
   virtual ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   virtual ASN_BER_TLV_t* BER_encode_TLV_negtest(const Erroneous_descriptor_t* p_err_descr, const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
@@ -982,8 +982,8 @@ public:
   virtual void encode_text(Text_Buf& text_buf) const;
   virtual void decode_text(Text_Buf& text_buf);
 
-  virtual void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
-  virtual void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+  virtual void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
+  virtual void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
 
   virtual ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   virtual ASN_BER_TLV_t* BER_encode_TLV_negtest(const Erroneous_descriptor_t* p_err_descr,
@@ -1085,8 +1085,8 @@ public:
   virtual void encode_text(Text_Buf& text_buf) const;
   virtual void decode_text(Text_Buf& text_buf);
 
-  virtual void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...) const;
-  virtual void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, TTCN_EncDec::coding_t, ...);
+  virtual void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...) const;
+  virtual void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&, int, ...);
 
   virtual ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td, unsigned p_coding) const;
   virtual boolean BER_decode_TLV(const TTCN_Typedescriptor_t& p_td, const ASN_BER_TLV_t& p_tlv, unsigned L_form);
diff --git a/core/Bitstring.cc b/core/Bitstring.cc
index 229f81bc99b301680bc0b15ef4571cb207e425a6..28e6d0b84e1b8eafea2e7ec8cd33e26f85d8b3ab 100644
--- a/core/Bitstring.cc
+++ b/core/Bitstring.cc
@@ -644,7 +644,7 @@ void BITSTRING::decode_text(Text_Buf& text_buf)
 }
 
 void BITSTRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                       TTCN_EncDec::coding_t p_coding, ...) const
+                       int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -697,10 +697,10 @@ void BITSTRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void BITSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                       TTCN_EncDec::coding_t p_coding, ...)
+                       int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Bitstring.hh b/core/Bitstring.hh
index 0795bac7a0330a83f6530b16b3f93320bf9e4c9e..61e879a921074c2928ca654d365c02f838d497a1 100644
--- a/core/Bitstring.hh
+++ b/core/Bitstring.hh
@@ -174,10 +174,10 @@ private:
                        unsigned int& bitnum_start);
 public:
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...) const;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Boolean.cc b/core/Boolean.cc
index 7f92f3d0e5a4fd5d179a8d7e44d3fe611ee849a6..5000c616d556f686310cd63fb02349680833631b 100644
--- a/core/Boolean.cc
+++ b/core/Boolean.cc
@@ -204,7 +204,7 @@ Module_Param* BOOLEAN::get_param(Module_Param_Name& /* param_name */) const
 #endif
 
 void BOOLEAN::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...) const
+                     int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -264,10 +264,10 @@ void BOOLEAN::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void BOOLEAN::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...)
+                     int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Boolean.hh b/core/Boolean.hh
index 48a11a6a29951bdf1ad6aa46c03c711fd6e30a75..ea14bd118def82983f888086a0a0ec9a36a377d7 100644
--- a/core/Boolean.hh
+++ b/core/Boolean.hh
@@ -95,10 +95,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Charstring.cc b/core/Charstring.cc
index 6c1f81f5849e06853fc4927b7c212457092bc3f1..6efe3f955f6c9b313b0df4ddca3c2e7b77cba632 100644
--- a/core/Charstring.cc
+++ b/core/Charstring.cc
@@ -796,7 +796,7 @@ void CHARSTRING::decode_text(Text_Buf& text_buf)
 
 void CHARSTRING::encode(const TTCN_Typedescriptor_t& p_td,
                         TTCN_Buffer& p_buf,
-                        TTCN_EncDec::coding_t p_coding, ...) const
+                        int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -858,10 +858,10 @@ void CHARSTRING::encode(const TTCN_Typedescriptor_t& p_td,
 
 void CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td,
                         TTCN_Buffer& p_buf,
-                        TTCN_EncDec::coding_t p_coding, ...)
+                        int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Charstring.hh b/core/Charstring.hh
index 9a8704f4b2f5241469efc82bc6c9eb6839db242c..0e172388f1a4db7952cb1c7519b19dd018dfb1db 100644
--- a/core/Charstring.hh
+++ b/core/Charstring.hh
@@ -219,10 +219,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Float.cc b/core/Float.cc
index 5c3e76aa89ecc53050d206b84b54c415153f2bcd..8b48d90f851508c0c4fddc8ada01582a6568d324 100644
--- a/core/Float.cc
+++ b/core/Float.cc
@@ -347,7 +347,7 @@ void FLOAT::decode_text(Text_Buf& text_buf)
 }
 
 void FLOAT::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                   TTCN_EncDec::coding_t p_coding, ...) const
+                   int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -400,10 +400,10 @@ void FLOAT::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void FLOAT::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                   TTCN_EncDec::coding_t p_coding, ...)
+                   int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Float.hh b/core/Float.hh
index aca7ac8988921842911af8c514d903eb43d7d988..4c808ddb45defcb47b9d4d0b2ba71775020d771b 100644
--- a/core/Float.hh
+++ b/core/Float.hh
@@ -128,10 +128,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Hexstring.cc b/core/Hexstring.cc
index 25943e523a81023ea9e16824fbdfeaa77cb0bafb..35799bc1447f3ca1fff2a42ce743223393c6a0af 100644
--- a/core/Hexstring.cc
+++ b/core/Hexstring.cc
@@ -664,7 +664,7 @@ Module_Param* HEXSTRING::get_param(Module_Param_Name& /* param_name */) const
 #endif
 
 void HEXSTRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-  TTCN_EncDec::coding_t p_coding, ...) const
+  int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -701,10 +701,10 @@ void HEXSTRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void HEXSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-  TTCN_EncDec::coding_t p_coding, ...)
+  int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch (p_coding) {
   case TTCN_EncDec::CT_RAW: {
     TTCN_EncDec_ErrorContext ec("While RAW-decoding type '%s': ", p_td.name);
diff --git a/core/Hexstring.hh b/core/Hexstring.hh
index 7e415ead8e4d7e556f1c3234aecb40b4f2df0535..89c9fddb313a8119a70b15953e2684fcd01c424b 100644
--- a/core/Hexstring.hh
+++ b/core/Hexstring.hh
@@ -135,10 +135,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
   /** Encodes the value of the variable according to the
     * TTCN_Typedescriptor_t. It must be public because called by
     * another types during encoding. Returns the length of encoded data*/
diff --git a/core/Integer.cc b/core/Integer.cc
index d4f7ddc01daad5978e90091edf09e1692696850f..1f8d774179042f099750a2363cee7b0dc8f83210 100644
--- a/core/Integer.cc
+++ b/core/Integer.cc
@@ -754,7 +754,7 @@ void INTEGER::decode_text(Text_Buf& text_buf)
 }
 
 void INTEGER::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...) const
+                     int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -814,10 +814,10 @@ void INTEGER::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void INTEGER::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...)
+                     int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Integer.hh b/core/Integer.hh
index 5608980f2bb4f5119b730a7bea813d0bfada1e38..783953a787df1c22d5ff8dae05d4b1732e59e657 100644
--- a/core/Integer.hh
+++ b/core/Integer.hh
@@ -153,10 +153,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Objid.cc b/core/Objid.cc
index 200225d7fcb0f6586804c7f1eac16314a7963557..dff4ad30f7714ffdf7bb6c12a35fef593a9b63a8 100644
--- a/core/Objid.cc
+++ b/core/Objid.cc
@@ -278,7 +278,7 @@ void OBJID::decode_text(Text_Buf& text_buf)
 }
 
 void OBJID::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                   TTCN_EncDec::coding_t p_coding, ...) const
+                   int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -324,10 +324,10 @@ void OBJID::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void OBJID::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                   TTCN_EncDec::coding_t p_coding, ...)
+                   int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Objid.hh b/core/Objid.hh
index 812cd50e1f0ab840f7401f7921db1e8f04ac60f7..eb79f4b98527ae115ee9d1456647d88494ca5708 100644
--- a/core/Objid.hh
+++ b/core/Objid.hh
@@ -93,10 +93,10 @@ public:
   void decode_text(Text_Buf& text_buf);
 
   void encode(const TTCN_Typedescriptor_t&, TTCN_Buffer&,
-              TTCN_EncDec::coding_t, ...) const;
+              int, ...) const;
 
   void decode(const TTCN_Typedescriptor_t&, TTCN_Buffer&,
-              TTCN_EncDec::coding_t, ...);
+              int, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Octetstring.cc b/core/Octetstring.cc
index 21e2b705c2b735289eba8f3fb6150c8b2476d515..f4ef7e14296cb18a63de998896e8af99dc338874 100644
--- a/core/Octetstring.cc
+++ b/core/Octetstring.cc
@@ -598,7 +598,7 @@ void OCTETSTRING::decode_text(Text_Buf& text_buf)
 
 void OCTETSTRING::encode(const TTCN_Typedescriptor_t& p_td,
                          TTCN_Buffer& p_buf,
-                         TTCN_EncDec::coding_t p_coding, ...) const
+                         int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -659,10 +659,10 @@ void OCTETSTRING::encode(const TTCN_Typedescriptor_t& p_td,
 
 void OCTETSTRING::decode(const TTCN_Typedescriptor_t& p_td,
                          TTCN_Buffer& p_buf,
-                         TTCN_EncDec::coding_t p_coding, ...)
+                         int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Octetstring.hh b/core/Octetstring.hh
index 218b1f3f7bac452c520b938f41f5969b64649932..e79c3b7f371b12767432d9a06a17cf144ce3b524 100644
--- a/core/Octetstring.hh
+++ b/core/Octetstring.hh
@@ -145,10 +145,10 @@ public:
 
 public:
   void encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...) const;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Universal_charstring.cc b/core/Universal_charstring.cc
index 14b03ef24cb4223b80c0c930eb279167921775de..2d64f115008351c82192e9039431b241ee415a08 100644
--- a/core/Universal_charstring.cc
+++ b/core/Universal_charstring.cc
@@ -1096,7 +1096,7 @@ void UNIVERSAL_CHARSTRING::decode_text(Text_Buf& text_buf)
 }
 
 void UNIVERSAL_CHARSTRING::encode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+  TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -1165,10 +1165,10 @@ void UNIVERSAL_CHARSTRING::encode(const TTCN_Typedescriptor_t& p_td,
 }
 
 void UNIVERSAL_CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+  TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
   case TTCN_EncDec::CT_BER: {
     TTCN_EncDec_ErrorContext ec("While BER-decoding type '%s': ", p_td.name);
diff --git a/core/Universal_charstring.hh b/core/Universal_charstring.hh
index 26e7b64e3d1c630eb9d2e3df4c1fb9606c68b89c..8165cd0abb5cbbed95bdfff3b9c7ed4dd9bdcb13 100644
--- a/core/Universal_charstring.hh
+++ b/core/Universal_charstring.hh
@@ -339,9 +339,9 @@ public:
   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;
+    int p_coding, ...) const;
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-    TTCN_EncDec::coding_t p_coding, ...);
+    int p_coding, ...);
 
   ASN_BER_TLV_t* BER_encode_TLV(const TTCN_Typedescriptor_t& p_td,
                                 unsigned p_coding) const;
diff --git a/core/Verdicttype.cc b/core/Verdicttype.cc
index c02b994d5a8c3065eaf015496a512c936e314830..6524f39752279a9f0ceaaed83f822e00e690533f 100644
--- a/core/Verdicttype.cc
+++ b/core/Verdicttype.cc
@@ -149,7 +149,7 @@ void VERDICTTYPE::decode_text(Text_Buf& text_buf)
 }
 
 void VERDICTTYPE::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...) const
+                     int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -205,10 +205,10 @@ void VERDICTTYPE::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 }
 
 void VERDICTTYPE::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-                     TTCN_EncDec::coding_t p_coding, ...)
+                     int p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, (int)p_coding);
+  va_start(pvar, p_coding);
   switch(p_coding) {
 #if 0
   case TTCN_EncDec::CT_RAW: {
diff --git a/core/Verdicttype.hh b/core/Verdicttype.hh
index c7a62a773c2827a8a78d39739e65006db059f6b8..b2cfb63993228a8bdf090d0bc14e6361c63a488f 100644
--- a/core/Verdicttype.hh
+++ b/core/Verdicttype.hh
@@ -92,10 +92,10 @@ public:
   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;
+              int p_coding, ...) const;
 
   void decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
-              TTCN_EncDec::coding_t p_coding, ...);
+              int p_coding, ...);
 
   int XER_encode(const XERdescriptor_t& p_td, TTCN_Buffer& p_buf,
     unsigned int flavor, unsigned int flavor2, int indent, embed_values_enc_struct_t*) const;
diff --git a/core2/Basetype2.cc b/core2/Basetype2.cc
index ce198744f0153f017f9c57e0bb0d94506a18aee8..a24b678c78004c832527840b9ae3260c9b24d2c4 100644
--- a/core2/Basetype2.cc
+++ b/core2/Basetype2.cc
@@ -1818,7 +1818,7 @@ void Record_Of_Type::OER_decode_opentypes(TTCN_Type_list& p_typelist, TTCN_Buffe
 }
 
 void Record_Of_Type::encode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+  TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -1875,7 +1875,7 @@ void Record_Of_Type::encode(const TTCN_Typedescriptor_t& p_td,
 }
 
 void Record_Of_Type::decode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+  TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -3014,7 +3014,7 @@ void Record_Type::set_value(const Base_Type* other_value)
 }
 
 void Record_Type::encode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+  TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -3071,7 +3071,7 @@ void Record_Type::encode(const TTCN_Typedescriptor_t& p_td,
 }
 
 void Record_Type::decode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+  TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -7276,7 +7276,7 @@ void Empty_Record_Type::set_value(const Base_Type* other_value)
 }
 
 void Empty_Record_Type::encode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...) const
+  TTCN_Buffer& p_buf, int p_coding, ...) const
 {
   va_list pvar;
   va_start(pvar, p_coding);
@@ -7333,7 +7333,7 @@ void Empty_Record_Type::encode(const TTCN_Typedescriptor_t& p_td,
 }
 
 void Empty_Record_Type::decode(const TTCN_Typedescriptor_t& p_td,
-  TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
+  TTCN_Buffer& p_buf, int p_coding, ...)
 {
   va_list pvar;
   va_start(pvar, p_coding);