diff --git a/compiler2/encdec.c b/compiler2/encdec.c
index 821163ad02e97a96991812733308777503c9be52..ee048f56e3c9805b4982b388dc556ae68ba614e4 100644
--- a/compiler2/encdec.c
+++ b/compiler2/encdec.c
@@ -176,7 +176,7 @@ void def_encdec(const char *p_classname,
      " TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)\n"
      "{\n"
      "  va_list pvar;\n"
-     "  va_start(pvar, p_coding);\n"
+     "  va_start(pvar, (int)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 d5a7d254fd315ed523a61f85396642b0df75633e..eb96b2d9f9eae404727530c92d6fc17eb56cbe74 100644
--- a/core/ASN_Any.cc
+++ b/core/ASN_Any.cc
@@ -56,7 +56,7 @@ void ASN_ANY::decode(const TTCN_Typedescriptor_t& p_td,
                      TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/ASN_CharacterString.cc
index 3aa14fa4a0ff0a40bc286db9e5789f3ede20274b..f51a30828af42a574427942bdb4d589f59c382c1 100644
--- a/core/ASN_CharacterString.cc
+++ b/core/ASN_CharacterString.cc
@@ -3271,7 +3271,7 @@ void CHARACTER_STRING::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_
 void CHARACTER_STRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/ASN_EmbeddedPDV.cc
index 69072c6fec2422e028b9f9507afad4dd846f33c6..1d2bb8c6f38268714a4a725732616e98d0e32ff6 100644
--- a/core/ASN_EmbeddedPDV.cc
+++ b/core/ASN_EmbeddedPDV.cc
@@ -3375,7 +3375,7 @@ void EMBEDDED_PDV::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
 void EMBEDDED_PDV::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/ASN_External.cc
index 467dd678c89fc25daa3deeafce738dc3ba2767a2..e9487c3bc2cd62d9273a534122000e2a495abbe4 100644
--- a/core/ASN_External.cc
+++ b/core/ASN_External.cc
@@ -3590,7 +3590,7 @@ void EXTERNAL::encode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTC
 void EXTERNAL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/ASN_Null.cc
index c83217680a503372e18781777812c745b0cb1a98..eda76fa7f443149c96f4d3b5a9555fb541ab6194 100644
--- a/core/ASN_Null.cc
+++ b/core/ASN_Null.cc
@@ -166,7 +166,7 @@ void ASN_NULL::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                       TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Basetype.cc
index 189d06ecfcbd83ff85506a17a3b0d519f0f2e18c..d2884ca268b530c223591ff3f9e6b42c65355e44 100644
--- a/core/Basetype.cc
+++ b/core/Basetype.cc
@@ -120,7 +120,7 @@ void Base_Type::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                        TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Bitstring.cc
index bd3659cffdba5a75844fa343ae0a9cc23dc9c063..9ec2181e5dfc6db9e36354372503768124ab4f40 100644
--- a/core/Bitstring.cc
+++ b/core/Bitstring.cc
@@ -700,7 +700,7 @@ void BITSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                        TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Boolean.cc
index 119dff27a4635203590a0c6fa4478dbe26f680bc..be6763a8fb30a01bdd11c982cd801a35fd394e48 100644
--- a/core/Boolean.cc
+++ b/core/Boolean.cc
@@ -267,7 +267,7 @@ void BOOLEAN::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                      TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Charstring.cc
index 5473bc240ac1e24431da080098348ee0d080826e..d9ffec4ce4e7a30ef8770c751cc99f0fee8bbdcc 100644
--- a/core/Charstring.cc
+++ b/core/Charstring.cc
@@ -861,7 +861,7 @@ void CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td,
                         TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Float.cc
index 124035d55dc9ceecd8906e1afbc6306a5c99b26b..a08cfd44388413886611ef8b900aaad8991d5438 100644
--- a/core/Float.cc
+++ b/core/Float.cc
@@ -403,7 +403,7 @@ void FLOAT::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                    TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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/Hexstring.cc b/core/Hexstring.cc
index 30b081539592e5c85079fa6ad1f0a390d0d9761e..2455ae0fa652cbdaf224aa445807f61b4c654952 100644
--- a/core/Hexstring.cc
+++ b/core/Hexstring.cc
@@ -704,7 +704,7 @@ void HEXSTRING::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
   TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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/Integer.cc b/core/Integer.cc
index ff72dc104a9720a87d81d25488fac76a3dad7131..af8d626b59562856e8a4c3e739e4a2d1aacf5432 100644
--- a/core/Integer.cc
+++ b/core/Integer.cc
@@ -817,7 +817,7 @@ void INTEGER::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                      TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Objid.cc
index 2b9f8ed38d19203db12b4d99c736961d9dba3fa9..5045b26f530e80f22c63f633734f75b69872fda1 100644
--- a/core/Objid.cc
+++ b/core/Objid.cc
@@ -327,7 +327,7 @@ void OBJID::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                    TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Octetstring.cc
index 95ffad3ba90ac31a023b914200b54e787a9ac4fd..2275d3c6914157e6bb6cc323e2b931e765f4d12a 100644
--- a/core/Octetstring.cc
+++ b/core/Octetstring.cc
@@ -662,7 +662,7 @@ void OCTETSTRING::decode(const TTCN_Typedescriptor_t& p_td,
                          TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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.cc b/core/Universal_charstring.cc
index 7b94b06ea715f696e3fe6bd4be58184fe0ed23fd..a26ced34dea860ad36cfe7d1294f9b3bd2ffcca5 100644
--- a/core/Universal_charstring.cc
+++ b/core/Universal_charstring.cc
@@ -1168,7 +1168,7 @@ void UNIVERSAL_CHARSTRING::decode(const TTCN_Typedescriptor_t& p_td,
   TTCN_Buffer& p_buf, TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)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/Verdicttype.cc b/core/Verdicttype.cc
index 07f7496c99a15d623aa823b83b67c699934ad1f4..9bc2eba5b7e655330bfe955b715cea2afc6b1f97 100644
--- a/core/Verdicttype.cc
+++ b/core/Verdicttype.cc
@@ -208,7 +208,7 @@ void VERDICTTYPE::decode(const TTCN_Typedescriptor_t& p_td, TTCN_Buffer& p_buf,
                      TTCN_EncDec::coding_t p_coding, ...)
 {
   va_list pvar;
-  va_start(pvar, p_coding);
+  va_start(pvar, (int)p_coding);
   switch(p_coding) {
 #if 0
   case TTCN_EncDec::CT_RAW: {